From 06b3cfc8c5982b050f63d4bd4f3948377e584946 Mon Sep 17 00:00:00 2001 From: AMontagu Date: Mon, 8 Apr 2024 19:08:58 +0200 Subject: [PATCH 1/3] in response field optional are only the one nullable --- .../protobuf/generation_plugin.py | 17 +- django_socio_grpc/protobuf/proto_classes.py | 60 ++- .../tests/fakeapp/grpc/fakeapp.proto | 52 +-- .../tests/fakeapp/grpc/fakeapp_pb2.py | 370 +++++++++--------- .../fakeapp.proto | 62 +-- .../ALL_APP_GENERATED_SEPARATE/fakeapp.proto | 52 +-- .../CUSTOM_APP_MODEL_GENERATED/fakeapp.proto | 4 +- .../fakeapp.proto | 10 +- .../MODEL_WITH_M2M_GENERATED/fakeapp.proto | 12 +- .../fakeapp.proto | 2 +- .../protos/NO_MODEL_GENERATED/fakeapp.proto | 2 +- .../RECURSIVE_MODEL_GENERATED/fakeapp.proto | 4 +- .../SIMPLE_MODEL_GENERATED/fakeapp.proto | 2 +- 13 files changed, 341 insertions(+), 308 deletions(-) diff --git a/django_socio_grpc/protobuf/generation_plugin.py b/django_socio_grpc/protobuf/generation_plugin.py index 3fb07721..9d28d36b 100644 --- a/django_socio_grpc/protobuf/generation_plugin.py +++ b/django_socio_grpc/protobuf/generation_plugin.py @@ -105,7 +105,8 @@ def transform_request_message( "name": self.field_name, "type": self.field_type, "cardinality": self.field_cardinality, - } + }, + in_request=True, ) ) return proto_message @@ -208,7 +209,11 @@ class AsListGenerationPlugin(BaseGenerationPlugin): list_field_name: str = "results" def transform_message_to_list( - self, service: Type["Service"], proto_message: Union[ProtoMessage, str], list_name: str + self, + service: Type["Service"], + proto_message: Union[ProtoMessage, str], + list_name: str, + in_request: bool = False, ) -> ProtoMessage: try: list_field_name = proto_message.serializer.Meta.message_list_attr @@ -256,7 +261,9 @@ def transform_request_message( message_name_constructor: MessageNameConstructor, ) -> ProtoMessage: list_name = message_name_constructor.construct_request_list_name() - return self.transform_message_to_list(service, proto_message, list_name) + return self.transform_message_to_list( + service, proto_message, list_name, in_request=True + ) class ResponseAsListGenerationPlugin(AsListGenerationPlugin): @@ -271,7 +278,9 @@ def transform_response_message( message_name_constructor: MessageNameConstructor, ) -> ProtoMessage: list_name = message_name_constructor.construct_response_list_name() - return self.transform_message_to_list(service, proto_message, list_name) + return self.transform_message_to_list( + service, proto_message, list_name, in_request=False + ) class RequestAndResponseAsListGenerationPlugin( diff --git a/django_socio_grpc/protobuf/proto_classes.py b/django_socio_grpc/protobuf/proto_classes.py index 76da6e4b..5df5ad88 100644 --- a/django_socio_grpc/protobuf/proto_classes.py +++ b/django_socio_grpc/protobuf/proto_classes.py @@ -88,22 +88,27 @@ def field_line(self) -> str: return " ".join(values) @classmethod - def _get_cardinality(cls, field: serializers.Field): - ProtoGeneratorPrintHelper.print("field.default: ", field.default) + def _get_cardinality( + cls, field: serializers.Field, in_request: bool = False + ) -> FieldCardinality: """ INFO - AM - 04/01/2023 If field can be null -> optional - if field is not required -> optional. Since DRF 3.0 When using model default, only required is set to False. The model default is not set into the field as just passing None will result in model default. https://github.com/encode/django-rest-framework/issues/2683 - if field.default is set (meaning not None or empty) -> optional + if field is not required and there is no default or we are in a request message -> optional. Since DRF 3.0 When using model default, only required is set to False. The model default is not set into the field as just passing None will result in model default. https://github.com/encode/django-rest-framework/issues/2683 + if field.default is set (meaning not None or empty) and we are in a request message -> optional Not dealing with field.allow_blank now as it doesn't seem to be related to OPTIONAl and more about validation and only exist for charfield """ - if field.allow_null or not field.required or field.default not in [None, empty]: + if ( + field.allow_null + or (not field.required or field.default not in [None, empty]) + and (in_request or field.default not in [None, empty]) + ): return FieldCardinality.OPTIONAL return FieldCardinality.NONE @classmethod - def from_field_dict(cls, field_dict: FieldDict) -> "ProtoField": + def from_field_dict(cls, field_dict: FieldDict, in_request: bool = False) -> "ProtoField": cardinality = field_dict.get("cardinality", FieldCardinality.NONE) name = field_dict["name"] field_type = field_dict["type"] @@ -156,20 +161,21 @@ def from_field( to_message: Callable = None, parent_serializer: serializers.Serializer = None, name_if_recursive: str = None, + in_request: bool = False, ) -> "ProtoField": """ to_message, parent_serializer, name_if_recursive only used if field is ListSerializer with a child being a Serializer """ - cardinality = cls._get_cardinality(field) + cardinality = cls._get_cardinality(field, in_request=in_request) if isinstance(field, serializers.SerializerMethodField): ProtoGeneratorPrintHelper.print(f"{field.field_name} is SerializerMethodField") - return cls._from_serializer_method_field(field) + return cls._from_serializer_method_field(field, in_request=in_request) elif isinstance(field, serializers.ManyRelatedField): ProtoGeneratorPrintHelper.print(f"{field.field_name} is ManyRelatedField") proto_field = cls._from_related_field( - field.child_relation, source_attrs=field.source_attrs + field.child_relation, source_attrs=field.source_attrs, in_request=in_request ) proto_field.name = field.field_name proto_field.cardinality = FieldCardinality.REPEATED @@ -177,7 +183,7 @@ def from_field( elif isinstance(field, serializers.RelatedField): ProtoGeneratorPrintHelper.print(f"{field.field_name} is RelatedField") - return cls._from_related_field(field) + return cls._from_related_field(field, in_request=in_request) if isinstance(field, serializers.ListField): ProtoGeneratorPrintHelper.print(f"{field.field_name} is ListField") @@ -187,7 +193,11 @@ def from_field( f"{field.field_name} ListField child is a serializer" ) proto_field = cls.from_serializer( - field.child, to_message, parent_serializer, name_if_recursive + field.child, + to_message, + parent_serializer, + name_if_recursive, + in_request=in_request, ) field_type = proto_field.field_type else: @@ -217,11 +227,12 @@ def from_serializer( to_message: Callable, parent_serializer: serializers.Serializer = None, name_if_recursive: str = None, + in_request: bool = False, ) -> "ProtoField": """ Create a ProtoField from a Serializer, which will be converted to a ProtoMessage with `to_message` """ - cardinality = cls._get_cardinality(field) + cardinality = cls._get_cardinality(field, in_request=in_request) serializer_class = field.__class__ if getattr(field, "many", False): cardinality = FieldCardinality.REPEATED @@ -246,11 +257,14 @@ def from_serializer( @classmethod def _from_related_field( - cls, field: serializers.RelatedField, source_attrs: Optional[List[str]] = None + cls, + field: serializers.RelatedField, + source_attrs: Optional[List[str]] = None, + in_request: bool = False, ) -> "ProtoField": serializer: serializers.Serializer = field.root - cardinality = cls._get_cardinality(field) + cardinality = cls._get_cardinality(field, in_request=in_request) if not source_attrs: source_attrs = field.source_attrs @@ -298,9 +312,9 @@ def _from_related_field( @classmethod def _from_serializer_method_field( - cls, field: serializers.SerializerMethodField + cls, field: serializers.SerializerMethodField, in_request: bool = False ) -> "ProtoField": - cardinality = cls._get_cardinality(field) + cardinality = cls._get_cardinality(field, in_request=in_request) method_name = field.method_name try: @@ -378,6 +392,11 @@ class ProtoMessage: comments: Optional[List[str]] = None serializer: Optional[serializers.BaseSerializer] = None imported_from: Optional[str] = None + suffix: ClassVar = "" + + @classmethod + def in_request(cls): + return cls.suffix == REQUEST_SUFFIX def get_all_messages(self) -> Dict[str, "ProtoMessage"]: messages = {self.name: self} @@ -440,7 +459,10 @@ def from_field_dicts( fields = [] return cls( name=name, - fields=[ProtoField.from_field_dict(field) for field in fields], + fields=[ + ProtoField.from_field_dict(field, in_request=cls.in_request()) + for field in fields + ], ) @classmethod @@ -484,6 +506,7 @@ def from_serializer( or MessageNameConstructor.get_base_name_from_serializer_with_suffix( serializer, getattr(cls, "suffix", "") ), + in_request=cls.in_request(), ) ) else: @@ -499,12 +522,13 @@ def from_serializer( or MessageNameConstructor.get_base_name_from_serializer_with_suffix( serializer, getattr(cls, "suffix", "") ), + in_request=cls.in_request(), ) ) # INFO - AM - 07/01/2022 - else the serializer needs to implement to_proto_message elif hasattr(serializer, "to_proto_message"): fields = [ - ProtoField.from_field_dict(dict_field) + ProtoField.from_field_dict(dict_field, in_request=cls.in_request()) for dict_field in serializer().to_proto_message() ] else: diff --git a/django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto b/django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto index 52c137d0..3858cb57 100644 --- a/django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto +++ b/django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto @@ -199,7 +199,7 @@ message BasicProtoListChildRequest { } message BasicProtoListChildResponse { - optional int32 id = 1; + int32 id = 1; string title = 2; optional string text = 3; } @@ -250,8 +250,8 @@ message CustomNameForResponse { // Test comment for whole message message CustomRetrieveResponseSpecialFieldsModelResponse { - optional string uuid = 1; - optional int32 default_method_field = 2; + string uuid = 1; + int32 default_method_field = 2; repeated google.protobuf.Struct custom_method_field = 3; } @@ -313,25 +313,25 @@ message DefaultValueRequest { } message DefaultValueResponse { - optional int32 id = 1; + int32 id = 1; optional string string_required_but_serializer_default = 2; optional int32 int_required_but_serializer_default = 3; optional bool boolean_required_but_serializer_default = 4; optional string string_default_but_serializer_default = 5; optional string string_nullable_default_but_serializer_default = 6; string string_required = 7; - optional string string_blank = 8; + string string_blank = 8; optional string string_nullable = 9; - optional string string_default = 10; - optional string string_default_and_blank = 11; + string string_default = 10; + string string_default_and_blank = 11; optional string string_null_default_and_blank = 12; int32 int_required = 13; optional int32 int_nullable = 14; - optional int32 int_default = 15; + int32 int_default = 15; bool boolean_required = 16; optional bool boolean_nullable = 17; - optional bool boolean_default_false = 18; - optional bool boolean_default_true = 19; + bool boolean_default_false = 18; + bool boolean_default_true = 19; } message DefaultValueRetrieveRequest { @@ -351,13 +351,13 @@ message ForeignModelListResponse { } message ForeignModelResponse { - optional string uuid = 1; + string uuid = 1; string name = 2; } message ForeignModelRetrieveCustomResponse { string name = 1; - optional string custom = 2; + string custom = 2; } message ForeignModelRetrieveCustomRetrieveRequest { @@ -370,7 +370,7 @@ message ImportStructEvenInArrayModelRequest { } message ImportStructEvenInArrayModelResponse { - optional string uuid = 1; + string uuid = 1; repeated google.protobuf.Struct this_is_crazy = 2; } @@ -381,7 +381,7 @@ message ManyManyModelRequest { } message ManyManyModelResponse { - optional string uuid = 1; + string uuid = 1; string name = 2; } @@ -411,8 +411,8 @@ message RecursiveTestModelRequest { } message RecursiveTestModelResponse { - optional string uuid = 1; - optional RecursiveTestModelResponse parent = 2; + string uuid = 1; + RecursiveTestModelResponse parent = 2; repeated RecursiveTestModelResponse children = 3; } @@ -448,13 +448,13 @@ message RelatedFieldModelRequest { } message RelatedFieldModelResponse { - optional string uuid = 1; - optional ForeignModelResponse foreign = 2; + string uuid = 1; + ForeignModelResponse foreign = 2; repeated ManyManyModelResponse many_many = 3; - optional int32 slug_test_model = 4; + int32 slug_test_model = 4; repeated bool slug_reverse_test_model = 5; repeated string slug_many_many = 6; - optional string proto_slug_related_field = 7; + string proto_slug_related_field = 7; string custom_field_name = 8; repeated string many_many_foreigns = 9; } @@ -495,7 +495,7 @@ message SimpleRelatedFieldModelRequest { } message SimpleRelatedFieldModelResponse { - optional string uuid = 1; + string uuid = 1; optional string foreign = 2; optional string slug_test_model = 3; repeated string many_many = 4; @@ -539,10 +539,10 @@ message SpecialFieldsModelRequest { // Special Fields Model // with two lines comment message SpecialFieldsModelResponse { - optional string uuid = 1; - optional google.protobuf.Struct meta_datas = 2; + string uuid = 1; + google.protobuf.Struct meta_datas = 2; repeated int32 list_datas = 3; - optional bytes binary = 4; + bytes binary = 4; } message SpecialFieldsModelRetrieveRequest { @@ -610,7 +610,7 @@ message UnitTestModelRequest { } message UnitTestModelResponse { - optional int32 id = 1; + int32 id = 1; string title = 2; optional string text = 3; } @@ -655,7 +655,7 @@ message UnitTestModelWithStructFilterRequest { } message UnitTestModelWithStructFilterResponse { - optional int32 id = 1; + int32 id = 1; string title = 2; optional string text = 3; } diff --git a/django_socio_grpc/tests/fakeapp/grpc/fakeapp_pb2.py b/django_socio_grpc/tests/fakeapp/grpc/fakeapp_pb2.py index 787fc967..1b648b8e 100644 --- a/django_socio_grpc/tests/fakeapp/grpc/fakeapp_pb2.py +++ b/django_socio_grpc/tests/fakeapp/grpc/fakeapp_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -16,7 +16,7 @@ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n2django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto\x12\x11myproject.fakeapp\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\"k\n\x1c\x42\x61seProtoExampleListResponse\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.BaseProtoExampleResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"X\n\x17\x42\x61seProtoExampleRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x05\x12\x13\n\x0bis_archived\x18\x03 \x01(\x08\"Y\n\x18\x42\x61seProtoExampleResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x05\x12\x13\n\x0bis_archived\x18\x03 \x01(\x08\"1\n\x1c\x42\x61sicFetchDataForUserRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\"/\n\x1f\x42\x61sicFetchTranslatedKeyResponse\x12\x0c\n\x04text\x18\x01 \x01(\t\"#\n\x14\x42\x61sicListIdsResponse\x12\x0b\n\x03ids\x18\x01 \x03(\x05\"%\n\x15\x42\x61sicListNameResponse\x12\x0c\n\x04name\x18\x01 \x03(\t\"e\n\x19\x42\x61sicMixParamListResponse\x12\x39\n\x07results\x18\x01 \x03(\x0b\x32(.myproject.fakeapp.BasicMixParamResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"*\n\x15\x42\x61sicMixParamResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\"b\n\'BasicMixParamWithSerializerListResponse\x12(\n\x07results\x18\x01 \x03(\x0b\x32\x17.google.protobuf.Struct\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"y\n#BasicParamWithSerializerListRequest\x12\x43\n\x07results\x18\x01 \x03(\x0b\x32\x32.myproject.fakeapp.BasicParamWithSerializerRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xbd\x01\n\x1f\x42\x61sicParamWithSerializerRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\ruser_password\x18\x03 \x01(\t\x12\x15\n\rbytes_example\x18\x04 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x05 \x03(\x0b\x32\x17.google.protobuf.Struct\"o\n\x1e\x42\x61sicProtoListChildListRequest\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.BasicProtoListChildRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"q\n\x1f\x42\x61sicProtoListChildListResponse\x12?\n\x07results\x18\x01 \x03(\x0b\x32..myproject.fakeapp.BasicProtoListChildResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"_\n\x1a\x42\x61sicProtoListChildRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"`\n\x1b\x42\x61sicProtoListChildResponse\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"c\n\x18\x42\x61sicServiceListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.BasicServiceResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb1\x01\n\x13\x42\x61sicServiceRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\ruser_password\x18\x03 \x01(\t\x12\x15\n\rbytes_example\x18\x04 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x05 \x03(\x0b\x32\x17.google.protobuf.Struct\"\x9b\x01\n\x14\x42\x61sicServiceResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\rbytes_example\x18\x03 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x04 \x03(\x0b\x32\x17.google.protobuf.Struct\"k\n\x1c\x43ustomMixParamForListRequest\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.CustomMixParamForRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"-\n\x18\x43ustomMixParamForRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\")\n\x14\x43ustomNameForRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\"*\n\x15\x43ustomNameForResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\"\xc0\x01\n0CustomRetrieveResponseSpecialFieldsModelResponse\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x14\x64\x65\x66\x61ult_method_field\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x34\n\x13\x63ustom_method_field\x18\x03 \x03(\x0b\x32\x17.google.protobuf.StructB\x07\n\x05_uuidB\x17\n\x15_default_method_field\"(\n\x1a\x44\x65\x66\x61ultValueDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x19\n\x17\x44\x65\x66\x61ultValueListRequest\"c\n\x18\x44\x65\x66\x61ultValueListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.DefaultValueResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb1\t\n DefaultValuePartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x33\n&string_required_but_serializer_default\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x30\n#int_required_but_serializer_default\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x34\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x32\n%string_default_but_serializer_default\x18\x05 \x01(\tH\x04\x88\x01\x01\x12;\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x07 \x03(\t\x12\x17\n\x0fstring_required\x18\x08 \x01(\t\x12\x19\n\x0cstring_blank\x18\t \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0fstring_nullable\x18\n \x01(\tH\x07\x88\x01\x01\x12\x1b\n\x0estring_default\x18\x0b \x01(\tH\x08\x88\x01\x01\x12%\n\x18string_default_and_blank\x18\x0c \x01(\tH\t\x88\x01\x01\x12*\n\x1dstring_null_default_and_blank\x18\r \x01(\tH\n\x88\x01\x01\x12\x14\n\x0cint_required\x18\x0e \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0f \x01(\x05H\x0b\x88\x01\x01\x12\x18\n\x0bint_default\x18\x10 \x01(\x05H\x0c\x88\x01\x01\x12\x18\n\x10\x62oolean_required\x18\x11 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x12 \x01(\x08H\r\x88\x01\x01\x12\"\n\x15\x62oolean_default_false\x18\x13 \x01(\x08H\x0e\x88\x01\x01\x12!\n\x14\x62oolean_default_true\x18\x14 \x01(\x08H\x0f\x88\x01\x01\x42\x05\n\x03_idB)\n\'_string_required_but_serializer_defaultB&\n$_int_required_but_serializer_defaultB*\n(_boolean_required_but_serializer_defaultB(\n&_string_default_but_serializer_defaultB1\n/_string_nullable_default_but_serializer_defaultB\x0f\n\r_string_blankB\x12\n\x10_string_nullableB\x11\n\x0f_string_defaultB\x1b\n\x19_string_default_and_blankB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x0e\n\x0c_int_defaultB\x13\n\x11_boolean_nullableB\x18\n\x16_boolean_default_falseB\x17\n\x15_boolean_default_true\"\x84\t\n\x13\x44\x65\x66\x61ultValueRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x33\n&string_required_but_serializer_default\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x30\n#int_required_but_serializer_default\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x34\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x32\n%string_default_but_serializer_default\x18\x05 \x01(\tH\x04\x88\x01\x01\x12;\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x17\n\x0fstring_required\x18\x07 \x01(\t\x12\x19\n\x0cstring_blank\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0fstring_nullable\x18\t \x01(\tH\x07\x88\x01\x01\x12\x1b\n\x0estring_default\x18\n \x01(\tH\x08\x88\x01\x01\x12%\n\x18string_default_and_blank\x18\x0b \x01(\tH\t\x88\x01\x01\x12*\n\x1dstring_null_default_and_blank\x18\x0c \x01(\tH\n\x88\x01\x01\x12\x14\n\x0cint_required\x18\r \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0e \x01(\x05H\x0b\x88\x01\x01\x12\x18\n\x0bint_default\x18\x0f \x01(\x05H\x0c\x88\x01\x01\x12\x18\n\x10\x62oolean_required\x18\x10 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x11 \x01(\x08H\r\x88\x01\x01\x12\"\n\x15\x62oolean_default_false\x18\x12 \x01(\x08H\x0e\x88\x01\x01\x12!\n\x14\x62oolean_default_true\x18\x13 \x01(\x08H\x0f\x88\x01\x01\x42\x05\n\x03_idB)\n\'_string_required_but_serializer_defaultB&\n$_int_required_but_serializer_defaultB*\n(_boolean_required_but_serializer_defaultB(\n&_string_default_but_serializer_defaultB1\n/_string_nullable_default_but_serializer_defaultB\x0f\n\r_string_blankB\x12\n\x10_string_nullableB\x11\n\x0f_string_defaultB\x1b\n\x19_string_default_and_blankB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x0e\n\x0c_int_defaultB\x13\n\x11_boolean_nullableB\x18\n\x16_boolean_default_falseB\x17\n\x15_boolean_default_true\"\x85\t\n\x14\x44\x65\x66\x61ultValueResponse\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x33\n&string_required_but_serializer_default\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x30\n#int_required_but_serializer_default\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x34\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x32\n%string_default_but_serializer_default\x18\x05 \x01(\tH\x04\x88\x01\x01\x12;\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x17\n\x0fstring_required\x18\x07 \x01(\t\x12\x19\n\x0cstring_blank\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0fstring_nullable\x18\t \x01(\tH\x07\x88\x01\x01\x12\x1b\n\x0estring_default\x18\n \x01(\tH\x08\x88\x01\x01\x12%\n\x18string_default_and_blank\x18\x0b \x01(\tH\t\x88\x01\x01\x12*\n\x1dstring_null_default_and_blank\x18\x0c \x01(\tH\n\x88\x01\x01\x12\x14\n\x0cint_required\x18\r \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0e \x01(\x05H\x0b\x88\x01\x01\x12\x18\n\x0bint_default\x18\x0f \x01(\x05H\x0c\x88\x01\x01\x12\x18\n\x10\x62oolean_required\x18\x10 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x11 \x01(\x08H\r\x88\x01\x01\x12\"\n\x15\x62oolean_default_false\x18\x12 \x01(\x08H\x0e\x88\x01\x01\x12!\n\x14\x62oolean_default_true\x18\x13 \x01(\x08H\x0f\x88\x01\x01\x42\x05\n\x03_idB)\n\'_string_required_but_serializer_defaultB&\n$_int_required_but_serializer_defaultB*\n(_boolean_required_but_serializer_defaultB(\n&_string_default_but_serializer_defaultB1\n/_string_nullable_default_but_serializer_defaultB\x0f\n\r_string_blankB\x12\n\x10_string_nullableB\x11\n\x0f_string_defaultB\x1b\n\x19_string_default_and_blankB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x0e\n\x0c_int_defaultB\x13\n\x11_boolean_nullableB\x18\n\x16_boolean_default_falseB\x17\n\x15_boolean_default_true\")\n\x1b\x44\x65\x66\x61ultValueRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"3\n%ExceptionStreamRaiseExceptionResponse\x12\n\n\x02id\x18\x01 \x01(\t\"\x19\n\x17\x46oreignModelListRequest\"c\n\x18\x46oreignModelListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.ForeignModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"@\n\x14\x46oreignModelResponse\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\tB\x07\n\x05_uuid\"R\n\"ForeignModelRetrieveCustomResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06\x63ustom\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_custom\"9\n)ForeignModelRetrieveCustomRetrieveRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"q\n#ImportStructEvenInArrayModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\rthis_is_crazy\x18\x02 \x03(\x0b\x32\x17.google.protobuf.StructB\x07\n\x05_uuid\"r\n$ImportStructEvenInArrayModelResponse\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\rthis_is_crazy\x18\x02 \x03(\x0b\x32\x17.google.protobuf.StructB\x07\n\x05_uuid\"c\n\x14ManyManyModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\t\x12!\n\x19test_write_only_on_nested\x18\x03 \x01(\tB\x07\n\x05_uuid\"A\n\x15ManyManyModelResponse\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\tB\x07\n\x05_uuid\"0\n RecursiveTestModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1f\n\x1dRecursiveTestModelListRequest\"o\n\x1eRecursiveTestModelListResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xf2\x01\n&RecursiveTestModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x41\n\x06parent\x18\x03 \x01(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestH\x01\x88\x01\x01\x12>\n\x08\x63hildren\x18\x04 \x03(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestB\x07\n\x05_uuidB\t\n\x07_parent\"\xc5\x01\n\x19RecursiveTestModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x41\n\x06parent\x18\x02 \x01(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestH\x01\x88\x01\x01\x12>\n\x08\x63hildren\x18\x03 \x03(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestB\x07\n\x05_uuidB\t\n\x07_parent\"\xc8\x01\n\x1aRecursiveTestModelResponse\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x42\n\x06parent\x18\x02 \x01(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponseH\x01\x88\x01\x01\x12?\n\x08\x63hildren\x18\x03 \x03(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponseB\x07\n\x05_uuidB\t\n\x07_parent\"1\n!RecursiveTestModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"/\n\x1fRelatedFieldModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1e\n\x1cRelatedFieldModelListRequest\"|\n\x1dRelatedFieldModelListResponse\x12L\n\x16list_custom_field_name\x18\x01 \x03(\x0b\x32,.myproject.fakeapp.RelatedFieldModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xd6\x01\n%RelatedFieldModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12:\n\tmany_many\x18\x02 \x03(\x0b\x32\'.myproject.fakeapp.ManyManyModelRequest\x12\x19\n\x11\x63ustom_field_name\x18\x03 \x01(\t\x12\x1e\n\x16_partial_update_fields\x18\x04 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x05 \x03(\tB\x07\n\x05_uuid\"\xa9\x01\n\x18RelatedFieldModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12:\n\tmany_many\x18\x02 \x03(\x0b\x32\'.myproject.fakeapp.ManyManyModelRequest\x12\x19\n\x11\x63ustom_field_name\x18\x03 \x01(\t\x12\x1a\n\x12many_many_foreigns\x18\x04 \x03(\tB\x07\n\x05_uuid\"\xa5\x03\n\x19RelatedFieldModelResponse\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12=\n\x07\x66oreign\x18\x02 \x01(\x0b\x32\'.myproject.fakeapp.ForeignModelResponseH\x01\x88\x01\x01\x12;\n\tmany_many\x18\x03 \x03(\x0b\x32(.myproject.fakeapp.ManyManyModelResponse\x12\x1c\n\x0fslug_test_model\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x1f\n\x17slug_reverse_test_model\x18\x05 \x03(\x08\x12\x16\n\x0eslug_many_many\x18\x06 \x03(\t\x12%\n\x18proto_slug_related_field\x18\x07 \x01(\tH\x03\x88\x01\x01\x12\x19\n\x11\x63ustom_field_name\x18\x08 \x01(\t\x12\x1a\n\x12many_many_foreigns\x18\t \x03(\tB\x07\n\x05_uuidB\n\n\x08_foreignB\x12\n\x10_slug_test_modelB\x1b\n\x19_proto_slug_related_field\"0\n RelatedFieldModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"5\n%SimpleRelatedFieldModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"$\n\"SimpleRelatedFieldModelListRequest\"y\n#SimpleRelatedFieldModelListResponse\x12\x43\n\x07results\x18\x01 \x03(\x0b\x32\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\x84\x02\n+SimpleRelatedFieldModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x14\n\x07\x66oreign\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x11\n\tmany_many\x18\x05 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x06 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x07 \x03(\tB\x07\n\x05_uuidB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"\xd7\x01\n\x1eSimpleRelatedFieldModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x66oreign\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\tmany_many\x18\x04 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x05 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x06 \x03(\tB\x07\n\x05_uuidB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"\xd8\x01\n\x1fSimpleRelatedFieldModelResponse\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x66oreign\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\tmany_many\x18\x04 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x05 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x06 \x03(\tB\x07\n\x05_uuidB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"6\n&SimpleRelatedFieldModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"0\n SpecialFieldsModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1f\n\x1dSpecialFieldsModelListRequest\"o\n\x1eSpecialFieldsModelListResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.SpecialFieldsModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb9\x01\n&SpecialFieldsModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x30\n\nmeta_datas\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x12\x12\n\nlist_datas\x18\x04 \x03(\x05\x42\x07\n\x05_uuidB\r\n\x0b_meta_datas\"\x8c\x01\n\x19SpecialFieldsModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x30\n\nmeta_datas\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x12\x12\n\nlist_datas\x18\x03 \x03(\x05\x42\x07\n\x05_uuidB\r\n\x0b_meta_datas\"\xad\x01\n\x1aSpecialFieldsModelResponse\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x30\n\nmeta_datas\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x12\x12\n\nlist_datas\x18\x03 \x03(\x05\x12\x13\n\x06\x62inary\x18\x04 \x01(\x0cH\x02\x88\x01\x01\x42\x07\n\x05_uuidB\r\n\x0b_meta_datasB\t\n\x07_binary\"1\n!SpecialFieldsModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"k\n\x1cStreamInStreamInListResponse\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.StreamInStreamInResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\'\n\x17StreamInStreamInRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\")\n\x18StreamInStreamInResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\"-\n\x1dStreamInStreamToStreamRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\".\n\x1eStreamInStreamToStreamResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\"=\n)SyncUnitTestModelListWithExtraArgsRequest\x12\x10\n\x08\x61rchived\x18\x01 \x01(\x08\")\n\x1bUnitTestModelDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x8e\x01\n\"UnitTestModelListExtraArgsResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\x12\x1e\n\x16query_fetched_datetime\x18\x02 \x01(\t\x12\x39\n\x07results\x18\x03 \x03(\x0b\x32(.myproject.fakeapp.UnitTestModelResponse\"\x1a\n\x18UnitTestModelListRequest\"e\n\x19UnitTestModelListResponse\x12\x39\n\x07results\x18\x01 \x03(\x0b\x32(.myproject.fakeapp.UnitTestModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"9\n%UnitTestModelListWithExtraArgsRequest\x12\x10\n\x08\x61rchived\x18\x01 \x01(\x08\"\x86\x01\n!UnitTestModelPartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x11\n\x04text\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"Y\n\x14UnitTestModelRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"Z\n\x15UnitTestModelResponse\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"*\n\x1cUnitTestModelRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x1c\n\x1aUnitTestModelStreamRequest\"9\n+UnitTestModelWithStructFilterDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\xb5\x01\n3UnitTestModelWithStructFilterEmptyWithFilterRequest\x12.\n\x08_filters\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x88\x01\x01\x12\x31\n\x0b_pagination\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x42\x0b\n\tX_filtersB\x0e\n\x0cX_pagination\"\xaa\x01\n(UnitTestModelWithStructFilterListRequest\x12.\n\x08_filters\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x88\x01\x01\x12\x31\n\x0b_pagination\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x42\x0b\n\tX_filtersB\x0e\n\x0cX_pagination\"\x85\x01\n)UnitTestModelWithStructFilterListResponse\x12I\n\x07results\x18\x01 \x03(\x0b\x32\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\x96\x01\n1UnitTestModelWithStructFilterPartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x11\n\x04text\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"i\n$UnitTestModelWithStructFilterRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"j\n%UnitTestModelWithStructFilterResponse\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\":\n,UnitTestModelWithStructFilterRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\",\n*UnitTestModelWithStructFilterStreamRequest2\xca\t\n\x0f\x42\x61sicController\x12t\n\tBasicList\x12\x31.myproject.fakeapp.BasicProtoListChildListRequest\x1a\x32.myproject.fakeapp.BasicProtoListChildListResponse\"\x00\x12[\n\x06\x43reate\x12&.myproject.fakeapp.BasicServiceRequest\x1a\'.myproject.fakeapp.BasicServiceResponse\"\x00\x12n\n\x10\x46\x65tchDataForUser\x12/.myproject.fakeapp.BasicFetchDataForUserRequest\x1a\'.myproject.fakeapp.BasicServiceResponse\"\x00\x12\x62\n\x12\x46\x65tchTranslatedKey\x12\x16.google.protobuf.Empty\x1a\x32.myproject.fakeapp.BasicFetchTranslatedKeyResponse\"\x00\x12T\n\x0bGetMultiple\x12\x16.google.protobuf.Empty\x1a+.myproject.fakeapp.BasicServiceListResponse\"\x00\x12L\n\x07ListIds\x12\x16.google.protobuf.Empty\x1a\'.myproject.fakeapp.BasicListIdsResponse\"\x00\x12N\n\x08ListName\x12\x16.google.protobuf.Empty\x1a(.myproject.fakeapp.BasicListNameResponse\"\x00\x12k\n\x08MixParam\x12/.myproject.fakeapp.CustomMixParamForListRequest\x1a,.myproject.fakeapp.BasicMixParamListResponse\"\x00\x12\x8e\x01\n\x16MixParamWithSerializer\x12\x36.myproject.fakeapp.BasicParamWithSerializerListRequest\x1a:.myproject.fakeapp.BasicMixParamWithSerializerListResponse\"\x00\x12_\n\x08MyMethod\x12\'.myproject.fakeapp.CustomNameForRequest\x1a(.myproject.fakeapp.CustomNameForResponse\"\x00\x12x\n\x17TestBaseProtoSerializer\x12*.myproject.fakeapp.BaseProtoExampleRequest\x1a/.myproject.fakeapp.BaseProtoExampleListResponse\"\x00\x12\x43\n\x0fTestEmptyMethod\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x32\xe1\x04\n\x16\x44\x65\x66\x61ultValueController\x12[\n\x06\x43reate\x12&.myproject.fakeapp.DefaultValueRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12R\n\x07\x44\x65stroy\x12-.myproject.fakeapp.DefaultValueDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x61\n\x04List\x12*.myproject.fakeapp.DefaultValueListRequest\x1a+.myproject.fakeapp.DefaultValueListResponse\"\x00\x12o\n\rPartialUpdate\x12\x33.myproject.fakeapp.DefaultValuePartialUpdateRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12\x65\n\x08Retrieve\x12..myproject.fakeapp.DefaultValueRetrieveRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12[\n\x06Update\x12&.myproject.fakeapp.DefaultValueRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x32\xd1\x02\n\x13\x45xceptionController\x12@\n\x0c\x41PIException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12\x41\n\rGRPCException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12l\n\x14StreamRaiseException\x12\x16.google.protobuf.Empty\x1a\x38.myproject.fakeapp.ExceptionStreamRaiseExceptionResponse\"\x00\x30\x01\x12G\n\x13UnaryRaiseException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x32\xff\x01\n\x16\x46oreignModelController\x12\x61\n\x04List\x12*.myproject.fakeapp.ForeignModelListRequest\x1a+.myproject.fakeapp.ForeignModelListResponse\"\x00\x12\x81\x01\n\x08Retrieve\x12<.myproject.fakeapp.ForeignModelRetrieveCustomRetrieveRequest\x1a\x35.myproject.fakeapp.ForeignModelRetrieveCustomResponse\"\x00\x32\xa5\x01\n&ImportStructEvenInArrayModelController\x12{\n\x06\x43reate\x12\x36.myproject.fakeapp.ImportStructEvenInArrayModelRequest\x1a\x37.myproject.fakeapp.ImportStructEvenInArrayModelResponse\"\x00\x32\xa9\x05\n\x1cRecursiveTestModelController\x12g\n\x06\x43reate\x12,.myproject.fakeapp.RecursiveTestModelRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12X\n\x07\x44\x65stroy\x12\x33.myproject.fakeapp.RecursiveTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12m\n\x04List\x12\x30.myproject.fakeapp.RecursiveTestModelListRequest\x1a\x31.myproject.fakeapp.RecursiveTestModelListResponse\"\x00\x12{\n\rPartialUpdate\x12\x39.myproject.fakeapp.RecursiveTestModelPartialUpdateRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12q\n\x08Retrieve\x12\x34.myproject.fakeapp.RecursiveTestModelRetrieveRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12g\n\x06Update\x12,.myproject.fakeapp.RecursiveTestModelRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x32\x9d\x05\n\x1bRelatedFieldModelController\x12\x65\n\x06\x43reate\x12+.myproject.fakeapp.RelatedFieldModelRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12W\n\x07\x44\x65stroy\x12\x32.myproject.fakeapp.RelatedFieldModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12k\n\x04List\x12/.myproject.fakeapp.RelatedFieldModelListRequest\x1a\x30.myproject.fakeapp.RelatedFieldModelListResponse\"\x00\x12y\n\rPartialUpdate\x12\x38.myproject.fakeapp.RelatedFieldModelPartialUpdateRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12o\n\x08Retrieve\x12\x33.myproject.fakeapp.RelatedFieldModelRetrieveRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12\x65\n\x06Update\x12+.myproject.fakeapp.RelatedFieldModelRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x32\xe6\x05\n!SimpleRelatedFieldModelController\x12q\n\x06\x43reate\x12\x31.myproject.fakeapp.SimpleRelatedFieldModelRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12]\n\x07\x44\x65stroy\x12\x38.myproject.fakeapp.SimpleRelatedFieldModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12w\n\x04List\x12\x35.myproject.fakeapp.SimpleRelatedFieldModelListRequest\x1a\x36.myproject.fakeapp.SimpleRelatedFieldModelListResponse\"\x00\x12\x85\x01\n\rPartialUpdate\x12>.myproject.fakeapp.SimpleRelatedFieldModelPartialUpdateRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12{\n\x08Retrieve\x12\x39.myproject.fakeapp.SimpleRelatedFieldModelRetrieveRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12q\n\x06Update\x12\x31.myproject.fakeapp.SimpleRelatedFieldModelRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x32\xc0\x05\n\x1cSpecialFieldsModelController\x12g\n\x06\x43reate\x12,.myproject.fakeapp.SpecialFieldsModelRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x12X\n\x07\x44\x65stroy\x12\x33.myproject.fakeapp.SpecialFieldsModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12m\n\x04List\x12\x30.myproject.fakeapp.SpecialFieldsModelListRequest\x1a\x31.myproject.fakeapp.SpecialFieldsModelListResponse\"\x00\x12{\n\rPartialUpdate\x12\x39.myproject.fakeapp.SpecialFieldsModelPartialUpdateRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x12\x87\x01\n\x08Retrieve\x12\x34.myproject.fakeapp.SpecialFieldsModelRetrieveRequest\x1a\x43.myproject.fakeapp.CustomRetrieveResponseSpecialFieldsModelResponse\"\x00\x12g\n\x06Update\x12,.myproject.fakeapp.SpecialFieldsModelRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x32\xfe\x01\n\x12StreamInController\x12k\n\x08StreamIn\x12*.myproject.fakeapp.StreamInStreamInRequest\x1a/.myproject.fakeapp.StreamInStreamInListResponse\"\x00(\x01\x12{\n\x0eStreamToStream\x12\x30.myproject.fakeapp.StreamInStreamToStreamRequest\x1a\x31.myproject.fakeapp.StreamInStreamToStreamResponse\"\x00(\x01\x30\x01\x32\xe5\x06\n\x1bSyncUnitTestModelController\x12]\n\x06\x43reate\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12S\n\x07\x44\x65stroy\x12..myproject.fakeapp.UnitTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x63\n\x04List\x12+.myproject.fakeapp.UnitTestModelListRequest\x1a,.myproject.fakeapp.UnitTestModelListResponse\"\x00\x12\x8a\x01\n\x11ListWithExtraArgs\x12<.myproject.fakeapp.SyncUnitTestModelListWithExtraArgsRequest\x1a\x35.myproject.fakeapp.UnitTestModelListExtraArgsResponse\"\x00\x12q\n\rPartialUpdate\x12\x34.myproject.fakeapp.UnitTestModelPartialUpdateRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12g\n\x08Retrieve\x12/.myproject.fakeapp.UnitTestModelRetrieveRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12\x65\n\x06Stream\x12-.myproject.fakeapp.UnitTestModelStreamRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x30\x01\x12]\n\x06Update\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x32\xdd\x06\n\x17UnitTestModelController\x12]\n\x06\x43reate\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12S\n\x07\x44\x65stroy\x12..myproject.fakeapp.UnitTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x63\n\x04List\x12+.myproject.fakeapp.UnitTestModelListRequest\x1a,.myproject.fakeapp.UnitTestModelListResponse\"\x00\x12\x86\x01\n\x11ListWithExtraArgs\x12\x38.myproject.fakeapp.UnitTestModelListWithExtraArgsRequest\x1a\x35.myproject.fakeapp.UnitTestModelListExtraArgsResponse\"\x00\x12q\n\rPartialUpdate\x12\x34.myproject.fakeapp.UnitTestModelPartialUpdateRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12g\n\x08Retrieve\x12/.myproject.fakeapp.UnitTestModelRetrieveRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12\x65\n\x06Stream\x12-.myproject.fakeapp.UnitTestModelStreamRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x30\x01\x12]\n\x06Update\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x32\xad\x08\n\'UnitTestModelWithStructFilterController\x12}\n\x06\x43reate\x12\x37.myproject.fakeapp.UnitTestModelWithStructFilterRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x63\n\x07\x44\x65stroy\x12>.myproject.fakeapp.UnitTestModelWithStructFilterDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12s\n\x0f\x45mptyWithFilter\x12\x46.myproject.fakeapp.UnitTestModelWithStructFilterEmptyWithFilterRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x83\x01\n\x04List\x12;.myproject.fakeapp.UnitTestModelWithStructFilterListRequest\x1a<.myproject.fakeapp.UnitTestModelWithStructFilterListResponse\"\x00\x12\x91\x01\n\rPartialUpdate\x12\x44.myproject.fakeapp.UnitTestModelWithStructFilterPartialUpdateRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x87\x01\n\x08Retrieve\x12?.myproject.fakeapp.UnitTestModelWithStructFilterRetrieveRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x85\x01\n\x06Stream\x12=.myproject.fakeapp.UnitTestModelWithStructFilterStreamRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x30\x01\x12}\n\x06Update\x12\x37.myproject.fakeapp.UnitTestModelWithStructFilterRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n2django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto\x12\x11myproject.fakeapp\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\"k\n\x1c\x42\x61seProtoExampleListResponse\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.BaseProtoExampleResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"X\n\x17\x42\x61seProtoExampleRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x05\x12\x13\n\x0bis_archived\x18\x03 \x01(\x08\"Y\n\x18\x42\x61seProtoExampleResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x05\x12\x13\n\x0bis_archived\x18\x03 \x01(\x08\"1\n\x1c\x42\x61sicFetchDataForUserRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\"/\n\x1f\x42\x61sicFetchTranslatedKeyResponse\x12\x0c\n\x04text\x18\x01 \x01(\t\"#\n\x14\x42\x61sicListIdsResponse\x12\x0b\n\x03ids\x18\x01 \x03(\x05\"%\n\x15\x42\x61sicListNameResponse\x12\x0c\n\x04name\x18\x01 \x03(\t\"e\n\x19\x42\x61sicMixParamListResponse\x12\x39\n\x07results\x18\x01 \x03(\x0b\x32(.myproject.fakeapp.BasicMixParamResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"*\n\x15\x42\x61sicMixParamResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\"b\n\'BasicMixParamWithSerializerListResponse\x12(\n\x07results\x18\x01 \x03(\x0b\x32\x17.google.protobuf.Struct\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"y\n#BasicParamWithSerializerListRequest\x12\x43\n\x07results\x18\x01 \x03(\x0b\x32\x32.myproject.fakeapp.BasicParamWithSerializerRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xbd\x01\n\x1f\x42\x61sicParamWithSerializerRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\ruser_password\x18\x03 \x01(\t\x12\x15\n\rbytes_example\x18\x04 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x05 \x03(\x0b\x32\x17.google.protobuf.Struct\"o\n\x1e\x42\x61sicProtoListChildListRequest\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.BasicProtoListChildRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"q\n\x1f\x42\x61sicProtoListChildListResponse\x12?\n\x07results\x18\x01 \x03(\x0b\x32..myproject.fakeapp.BasicProtoListChildResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"_\n\x1a\x42\x61sicProtoListChildRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"T\n\x1b\x42\x61sicProtoListChildResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_text\"c\n\x18\x42\x61sicServiceListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.BasicServiceResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb1\x01\n\x13\x42\x61sicServiceRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\ruser_password\x18\x03 \x01(\t\x12\x15\n\rbytes_example\x18\x04 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x05 \x03(\x0b\x32\x17.google.protobuf.Struct\"\x9b\x01\n\x14\x42\x61sicServiceResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\rbytes_example\x18\x03 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x04 \x03(\x0b\x32\x17.google.protobuf.Struct\"k\n\x1c\x43ustomMixParamForListRequest\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.CustomMixParamForRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"-\n\x18\x43ustomMixParamForRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\")\n\x14\x43ustomNameForRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\"*\n\x15\x43ustomNameForResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\"\x94\x01\n0CustomRetrieveResponseSpecialFieldsModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x1c\n\x14\x64\x65\x66\x61ult_method_field\x18\x02 \x01(\x05\x12\x34\n\x13\x63ustom_method_field\x18\x03 \x03(\x0b\x32\x17.google.protobuf.Struct\"(\n\x1a\x44\x65\x66\x61ultValueDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x19\n\x17\x44\x65\x66\x61ultValueListRequest\"c\n\x18\x44\x65\x66\x61ultValueListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.DefaultValueResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb1\t\n DefaultValuePartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x33\n&string_required_but_serializer_default\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x30\n#int_required_but_serializer_default\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x34\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x32\n%string_default_but_serializer_default\x18\x05 \x01(\tH\x04\x88\x01\x01\x12;\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x07 \x03(\t\x12\x17\n\x0fstring_required\x18\x08 \x01(\t\x12\x19\n\x0cstring_blank\x18\t \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0fstring_nullable\x18\n \x01(\tH\x07\x88\x01\x01\x12\x1b\n\x0estring_default\x18\x0b \x01(\tH\x08\x88\x01\x01\x12%\n\x18string_default_and_blank\x18\x0c \x01(\tH\t\x88\x01\x01\x12*\n\x1dstring_null_default_and_blank\x18\r \x01(\tH\n\x88\x01\x01\x12\x14\n\x0cint_required\x18\x0e \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0f \x01(\x05H\x0b\x88\x01\x01\x12\x18\n\x0bint_default\x18\x10 \x01(\x05H\x0c\x88\x01\x01\x12\x18\n\x10\x62oolean_required\x18\x11 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x12 \x01(\x08H\r\x88\x01\x01\x12\"\n\x15\x62oolean_default_false\x18\x13 \x01(\x08H\x0e\x88\x01\x01\x12!\n\x14\x62oolean_default_true\x18\x14 \x01(\x08H\x0f\x88\x01\x01\x42\x05\n\x03_idB)\n\'_string_required_but_serializer_defaultB&\n$_int_required_but_serializer_defaultB*\n(_boolean_required_but_serializer_defaultB(\n&_string_default_but_serializer_defaultB1\n/_string_nullable_default_but_serializer_defaultB\x0f\n\r_string_blankB\x12\n\x10_string_nullableB\x11\n\x0f_string_defaultB\x1b\n\x19_string_default_and_blankB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x0e\n\x0c_int_defaultB\x13\n\x11_boolean_nullableB\x18\n\x16_boolean_default_falseB\x17\n\x15_boolean_default_true\"\x84\t\n\x13\x44\x65\x66\x61ultValueRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x33\n&string_required_but_serializer_default\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x30\n#int_required_but_serializer_default\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x34\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x32\n%string_default_but_serializer_default\x18\x05 \x01(\tH\x04\x88\x01\x01\x12;\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x17\n\x0fstring_required\x18\x07 \x01(\t\x12\x19\n\x0cstring_blank\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0fstring_nullable\x18\t \x01(\tH\x07\x88\x01\x01\x12\x1b\n\x0estring_default\x18\n \x01(\tH\x08\x88\x01\x01\x12%\n\x18string_default_and_blank\x18\x0b \x01(\tH\t\x88\x01\x01\x12*\n\x1dstring_null_default_and_blank\x18\x0c \x01(\tH\n\x88\x01\x01\x12\x14\n\x0cint_required\x18\r \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0e \x01(\x05H\x0b\x88\x01\x01\x12\x18\n\x0bint_default\x18\x0f \x01(\x05H\x0c\x88\x01\x01\x12\x18\n\x10\x62oolean_required\x18\x10 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x11 \x01(\x08H\r\x88\x01\x01\x12\"\n\x15\x62oolean_default_false\x18\x12 \x01(\x08H\x0e\x88\x01\x01\x12!\n\x14\x62oolean_default_true\x18\x13 \x01(\x08H\x0f\x88\x01\x01\x42\x05\n\x03_idB)\n\'_string_required_but_serializer_defaultB&\n$_int_required_but_serializer_defaultB*\n(_boolean_required_but_serializer_defaultB(\n&_string_default_but_serializer_defaultB1\n/_string_nullable_default_but_serializer_defaultB\x0f\n\r_string_blankB\x12\n\x10_string_nullableB\x11\n\x0f_string_defaultB\x1b\n\x19_string_default_and_blankB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x0e\n\x0c_int_defaultB\x13\n\x11_boolean_nullableB\x18\n\x16_boolean_default_falseB\x17\n\x15_boolean_default_true\"\xd7\x07\n\x14\x44\x65\x66\x61ultValueResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x33\n&string_required_but_serializer_default\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x30\n#int_required_but_serializer_default\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x34\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x32\n%string_default_but_serializer_default\x18\x05 \x01(\tH\x03\x88\x01\x01\x12;\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0fstring_required\x18\x07 \x01(\t\x12\x14\n\x0cstring_blank\x18\x08 \x01(\t\x12\x1c\n\x0fstring_nullable\x18\t \x01(\tH\x05\x88\x01\x01\x12\x16\n\x0estring_default\x18\n \x01(\t\x12 \n\x18string_default_and_blank\x18\x0b \x01(\t\x12*\n\x1dstring_null_default_and_blank\x18\x0c \x01(\tH\x06\x88\x01\x01\x12\x14\n\x0cint_required\x18\r \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0e \x01(\x05H\x07\x88\x01\x01\x12\x13\n\x0bint_default\x18\x0f \x01(\x05\x12\x18\n\x10\x62oolean_required\x18\x10 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x11 \x01(\x08H\x08\x88\x01\x01\x12\x1d\n\x15\x62oolean_default_false\x18\x12 \x01(\x08\x12\x1c\n\x14\x62oolean_default_true\x18\x13 \x01(\x08\x42)\n\'_string_required_but_serializer_defaultB&\n$_int_required_but_serializer_defaultB*\n(_boolean_required_but_serializer_defaultB(\n&_string_default_but_serializer_defaultB1\n/_string_nullable_default_but_serializer_defaultB\x12\n\x10_string_nullableB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x13\n\x11_boolean_nullable\")\n\x1b\x44\x65\x66\x61ultValueRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"3\n%ExceptionStreamRaiseExceptionResponse\x12\n\n\x02id\x18\x01 \x01(\t\"\x19\n\x17\x46oreignModelListRequest\"c\n\x18\x46oreignModelListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.ForeignModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"2\n\x14\x46oreignModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"B\n\"ForeignModelRetrieveCustomResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06\x63ustom\x18\x02 \x01(\t\"9\n)ForeignModelRetrieveCustomRetrieveRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"q\n#ImportStructEvenInArrayModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\rthis_is_crazy\x18\x02 \x03(\x0b\x32\x17.google.protobuf.StructB\x07\n\x05_uuid\"d\n$ImportStructEvenInArrayModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12.\n\rthis_is_crazy\x18\x02 \x03(\x0b\x32\x17.google.protobuf.Struct\"c\n\x14ManyManyModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\t\x12!\n\x19test_write_only_on_nested\x18\x03 \x01(\tB\x07\n\x05_uuid\"3\n\x15ManyManyModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"0\n RecursiveTestModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1f\n\x1dRecursiveTestModelListRequest\"o\n\x1eRecursiveTestModelListResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xf2\x01\n&RecursiveTestModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x41\n\x06parent\x18\x03 \x01(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestH\x01\x88\x01\x01\x12>\n\x08\x63hildren\x18\x04 \x03(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestB\x07\n\x05_uuidB\t\n\x07_parent\"\xc5\x01\n\x19RecursiveTestModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x41\n\x06parent\x18\x02 \x01(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestH\x01\x88\x01\x01\x12>\n\x08\x63hildren\x18\x03 \x03(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestB\x07\n\x05_uuidB\t\n\x07_parent\"\xaa\x01\n\x1aRecursiveTestModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12=\n\x06parent\x18\x02 \x01(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponse\x12?\n\x08\x63hildren\x18\x03 \x03(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponse\"1\n!RecursiveTestModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"/\n\x1fRelatedFieldModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1e\n\x1cRelatedFieldModelListRequest\"|\n\x1dRelatedFieldModelListResponse\x12L\n\x16list_custom_field_name\x18\x01 \x03(\x0b\x32,.myproject.fakeapp.RelatedFieldModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xd6\x01\n%RelatedFieldModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12:\n\tmany_many\x18\x02 \x03(\x0b\x32\'.myproject.fakeapp.ManyManyModelRequest\x12\x19\n\x11\x63ustom_field_name\x18\x03 \x01(\t\x12\x1e\n\x16_partial_update_fields\x18\x04 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x05 \x03(\tB\x07\n\x05_uuid\"\xa9\x01\n\x18RelatedFieldModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12:\n\tmany_many\x18\x02 \x03(\x0b\x32\'.myproject.fakeapp.ManyManyModelRequest\x12\x19\n\x11\x63ustom_field_name\x18\x03 \x01(\t\x12\x1a\n\x12many_many_foreigns\x18\x04 \x03(\tB\x07\n\x05_uuid\"\xcb\x02\n\x19RelatedFieldModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x38\n\x07\x66oreign\x18\x02 \x01(\x0b\x32\'.myproject.fakeapp.ForeignModelResponse\x12;\n\tmany_many\x18\x03 \x03(\x0b\x32(.myproject.fakeapp.ManyManyModelResponse\x12\x17\n\x0fslug_test_model\x18\x04 \x01(\x05\x12\x1f\n\x17slug_reverse_test_model\x18\x05 \x03(\x08\x12\x16\n\x0eslug_many_many\x18\x06 \x03(\t\x12 \n\x18proto_slug_related_field\x18\x07 \x01(\t\x12\x19\n\x11\x63ustom_field_name\x18\x08 \x01(\t\x12\x1a\n\x12many_many_foreigns\x18\t \x03(\t\"0\n RelatedFieldModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"5\n%SimpleRelatedFieldModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"$\n\"SimpleRelatedFieldModelListRequest\"y\n#SimpleRelatedFieldModelListResponse\x12\x43\n\x07results\x18\x01 \x03(\x0b\x32\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\x84\x02\n+SimpleRelatedFieldModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x14\n\x07\x66oreign\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x11\n\tmany_many\x18\x05 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x06 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x07 \x03(\tB\x07\n\x05_uuidB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"\xd7\x01\n\x1eSimpleRelatedFieldModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x66oreign\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\tmany_many\x18\x04 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x05 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x06 \x03(\tB\x07\n\x05_uuidB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"\xca\x01\n\x1fSimpleRelatedFieldModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x14\n\x07\x66oreign\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x11\n\tmany_many\x18\x04 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x05 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x06 \x03(\tB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"6\n&SimpleRelatedFieldModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"0\n SpecialFieldsModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1f\n\x1dSpecialFieldsModelListRequest\"o\n\x1eSpecialFieldsModelListResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.SpecialFieldsModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb9\x01\n&SpecialFieldsModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x30\n\nmeta_datas\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x12\x12\n\nlist_datas\x18\x04 \x03(\x05\x42\x07\n\x05_uuidB\r\n\x0b_meta_datas\"\x8c\x01\n\x19SpecialFieldsModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x30\n\nmeta_datas\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x12\x12\n\nlist_datas\x18\x03 \x03(\x05\x42\x07\n\x05_uuidB\r\n\x0b_meta_datas\"{\n\x1aSpecialFieldsModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12+\n\nmeta_datas\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x12\n\nlist_datas\x18\x03 \x03(\x05\x12\x0e\n\x06\x62inary\x18\x04 \x01(\x0c\"1\n!SpecialFieldsModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"k\n\x1cStreamInStreamInListResponse\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.StreamInStreamInResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\'\n\x17StreamInStreamInRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\")\n\x18StreamInStreamInResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\"-\n\x1dStreamInStreamToStreamRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\".\n\x1eStreamInStreamToStreamResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\"=\n)SyncUnitTestModelListWithExtraArgsRequest\x12\x10\n\x08\x61rchived\x18\x01 \x01(\x08\")\n\x1bUnitTestModelDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x8e\x01\n\"UnitTestModelListExtraArgsResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\x12\x1e\n\x16query_fetched_datetime\x18\x02 \x01(\t\x12\x39\n\x07results\x18\x03 \x03(\x0b\x32(.myproject.fakeapp.UnitTestModelResponse\"\x1a\n\x18UnitTestModelListRequest\"e\n\x19UnitTestModelListResponse\x12\x39\n\x07results\x18\x01 \x03(\x0b\x32(.myproject.fakeapp.UnitTestModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"9\n%UnitTestModelListWithExtraArgsRequest\x12\x10\n\x08\x61rchived\x18\x01 \x01(\x08\"\x86\x01\n!UnitTestModelPartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x11\n\x04text\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"Y\n\x14UnitTestModelRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"N\n\x15UnitTestModelResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_text\"*\n\x1cUnitTestModelRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x1c\n\x1aUnitTestModelStreamRequest\"9\n+UnitTestModelWithStructFilterDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\xb5\x01\n3UnitTestModelWithStructFilterEmptyWithFilterRequest\x12.\n\x08_filters\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x88\x01\x01\x12\x31\n\x0b_pagination\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x42\x0b\n\tX_filtersB\x0e\n\x0cX_pagination\"\xaa\x01\n(UnitTestModelWithStructFilterListRequest\x12.\n\x08_filters\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x88\x01\x01\x12\x31\n\x0b_pagination\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x42\x0b\n\tX_filtersB\x0e\n\x0cX_pagination\"\x85\x01\n)UnitTestModelWithStructFilterListResponse\x12I\n\x07results\x18\x01 \x03(\x0b\x32\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\x96\x01\n1UnitTestModelWithStructFilterPartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x11\n\x04text\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"i\n$UnitTestModelWithStructFilterRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"^\n%UnitTestModelWithStructFilterResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_text\":\n,UnitTestModelWithStructFilterRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\",\n*UnitTestModelWithStructFilterStreamRequest2\xca\t\n\x0f\x42\x61sicController\x12t\n\tBasicList\x12\x31.myproject.fakeapp.BasicProtoListChildListRequest\x1a\x32.myproject.fakeapp.BasicProtoListChildListResponse\"\x00\x12[\n\x06\x43reate\x12&.myproject.fakeapp.BasicServiceRequest\x1a\'.myproject.fakeapp.BasicServiceResponse\"\x00\x12n\n\x10\x46\x65tchDataForUser\x12/.myproject.fakeapp.BasicFetchDataForUserRequest\x1a\'.myproject.fakeapp.BasicServiceResponse\"\x00\x12\x62\n\x12\x46\x65tchTranslatedKey\x12\x16.google.protobuf.Empty\x1a\x32.myproject.fakeapp.BasicFetchTranslatedKeyResponse\"\x00\x12T\n\x0bGetMultiple\x12\x16.google.protobuf.Empty\x1a+.myproject.fakeapp.BasicServiceListResponse\"\x00\x12L\n\x07ListIds\x12\x16.google.protobuf.Empty\x1a\'.myproject.fakeapp.BasicListIdsResponse\"\x00\x12N\n\x08ListName\x12\x16.google.protobuf.Empty\x1a(.myproject.fakeapp.BasicListNameResponse\"\x00\x12k\n\x08MixParam\x12/.myproject.fakeapp.CustomMixParamForListRequest\x1a,.myproject.fakeapp.BasicMixParamListResponse\"\x00\x12\x8e\x01\n\x16MixParamWithSerializer\x12\x36.myproject.fakeapp.BasicParamWithSerializerListRequest\x1a:.myproject.fakeapp.BasicMixParamWithSerializerListResponse\"\x00\x12_\n\x08MyMethod\x12\'.myproject.fakeapp.CustomNameForRequest\x1a(.myproject.fakeapp.CustomNameForResponse\"\x00\x12x\n\x17TestBaseProtoSerializer\x12*.myproject.fakeapp.BaseProtoExampleRequest\x1a/.myproject.fakeapp.BaseProtoExampleListResponse\"\x00\x12\x43\n\x0fTestEmptyMethod\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x32\xe1\x04\n\x16\x44\x65\x66\x61ultValueController\x12[\n\x06\x43reate\x12&.myproject.fakeapp.DefaultValueRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12R\n\x07\x44\x65stroy\x12-.myproject.fakeapp.DefaultValueDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x61\n\x04List\x12*.myproject.fakeapp.DefaultValueListRequest\x1a+.myproject.fakeapp.DefaultValueListResponse\"\x00\x12o\n\rPartialUpdate\x12\x33.myproject.fakeapp.DefaultValuePartialUpdateRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12\x65\n\x08Retrieve\x12..myproject.fakeapp.DefaultValueRetrieveRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12[\n\x06Update\x12&.myproject.fakeapp.DefaultValueRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x32\xd1\x02\n\x13\x45xceptionController\x12@\n\x0c\x41PIException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12\x41\n\rGRPCException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12l\n\x14StreamRaiseException\x12\x16.google.protobuf.Empty\x1a\x38.myproject.fakeapp.ExceptionStreamRaiseExceptionResponse\"\x00\x30\x01\x12G\n\x13UnaryRaiseException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x32\xff\x01\n\x16\x46oreignModelController\x12\x61\n\x04List\x12*.myproject.fakeapp.ForeignModelListRequest\x1a+.myproject.fakeapp.ForeignModelListResponse\"\x00\x12\x81\x01\n\x08Retrieve\x12<.myproject.fakeapp.ForeignModelRetrieveCustomRetrieveRequest\x1a\x35.myproject.fakeapp.ForeignModelRetrieveCustomResponse\"\x00\x32\xa5\x01\n&ImportStructEvenInArrayModelController\x12{\n\x06\x43reate\x12\x36.myproject.fakeapp.ImportStructEvenInArrayModelRequest\x1a\x37.myproject.fakeapp.ImportStructEvenInArrayModelResponse\"\x00\x32\xa9\x05\n\x1cRecursiveTestModelController\x12g\n\x06\x43reate\x12,.myproject.fakeapp.RecursiveTestModelRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12X\n\x07\x44\x65stroy\x12\x33.myproject.fakeapp.RecursiveTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12m\n\x04List\x12\x30.myproject.fakeapp.RecursiveTestModelListRequest\x1a\x31.myproject.fakeapp.RecursiveTestModelListResponse\"\x00\x12{\n\rPartialUpdate\x12\x39.myproject.fakeapp.RecursiveTestModelPartialUpdateRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12q\n\x08Retrieve\x12\x34.myproject.fakeapp.RecursiveTestModelRetrieveRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12g\n\x06Update\x12,.myproject.fakeapp.RecursiveTestModelRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x32\x9d\x05\n\x1bRelatedFieldModelController\x12\x65\n\x06\x43reate\x12+.myproject.fakeapp.RelatedFieldModelRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12W\n\x07\x44\x65stroy\x12\x32.myproject.fakeapp.RelatedFieldModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12k\n\x04List\x12/.myproject.fakeapp.RelatedFieldModelListRequest\x1a\x30.myproject.fakeapp.RelatedFieldModelListResponse\"\x00\x12y\n\rPartialUpdate\x12\x38.myproject.fakeapp.RelatedFieldModelPartialUpdateRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12o\n\x08Retrieve\x12\x33.myproject.fakeapp.RelatedFieldModelRetrieveRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12\x65\n\x06Update\x12+.myproject.fakeapp.RelatedFieldModelRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x32\xe6\x05\n!SimpleRelatedFieldModelController\x12q\n\x06\x43reate\x12\x31.myproject.fakeapp.SimpleRelatedFieldModelRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12]\n\x07\x44\x65stroy\x12\x38.myproject.fakeapp.SimpleRelatedFieldModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12w\n\x04List\x12\x35.myproject.fakeapp.SimpleRelatedFieldModelListRequest\x1a\x36.myproject.fakeapp.SimpleRelatedFieldModelListResponse\"\x00\x12\x85\x01\n\rPartialUpdate\x12>.myproject.fakeapp.SimpleRelatedFieldModelPartialUpdateRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12{\n\x08Retrieve\x12\x39.myproject.fakeapp.SimpleRelatedFieldModelRetrieveRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12q\n\x06Update\x12\x31.myproject.fakeapp.SimpleRelatedFieldModelRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x32\xc0\x05\n\x1cSpecialFieldsModelController\x12g\n\x06\x43reate\x12,.myproject.fakeapp.SpecialFieldsModelRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x12X\n\x07\x44\x65stroy\x12\x33.myproject.fakeapp.SpecialFieldsModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12m\n\x04List\x12\x30.myproject.fakeapp.SpecialFieldsModelListRequest\x1a\x31.myproject.fakeapp.SpecialFieldsModelListResponse\"\x00\x12{\n\rPartialUpdate\x12\x39.myproject.fakeapp.SpecialFieldsModelPartialUpdateRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x12\x87\x01\n\x08Retrieve\x12\x34.myproject.fakeapp.SpecialFieldsModelRetrieveRequest\x1a\x43.myproject.fakeapp.CustomRetrieveResponseSpecialFieldsModelResponse\"\x00\x12g\n\x06Update\x12,.myproject.fakeapp.SpecialFieldsModelRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x32\xfe\x01\n\x12StreamInController\x12k\n\x08StreamIn\x12*.myproject.fakeapp.StreamInStreamInRequest\x1a/.myproject.fakeapp.StreamInStreamInListResponse\"\x00(\x01\x12{\n\x0eStreamToStream\x12\x30.myproject.fakeapp.StreamInStreamToStreamRequest\x1a\x31.myproject.fakeapp.StreamInStreamToStreamResponse\"\x00(\x01\x30\x01\x32\xe5\x06\n\x1bSyncUnitTestModelController\x12]\n\x06\x43reate\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12S\n\x07\x44\x65stroy\x12..myproject.fakeapp.UnitTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x63\n\x04List\x12+.myproject.fakeapp.UnitTestModelListRequest\x1a,.myproject.fakeapp.UnitTestModelListResponse\"\x00\x12\x8a\x01\n\x11ListWithExtraArgs\x12<.myproject.fakeapp.SyncUnitTestModelListWithExtraArgsRequest\x1a\x35.myproject.fakeapp.UnitTestModelListExtraArgsResponse\"\x00\x12q\n\rPartialUpdate\x12\x34.myproject.fakeapp.UnitTestModelPartialUpdateRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12g\n\x08Retrieve\x12/.myproject.fakeapp.UnitTestModelRetrieveRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12\x65\n\x06Stream\x12-.myproject.fakeapp.UnitTestModelStreamRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x30\x01\x12]\n\x06Update\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x32\xdd\x06\n\x17UnitTestModelController\x12]\n\x06\x43reate\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12S\n\x07\x44\x65stroy\x12..myproject.fakeapp.UnitTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x63\n\x04List\x12+.myproject.fakeapp.UnitTestModelListRequest\x1a,.myproject.fakeapp.UnitTestModelListResponse\"\x00\x12\x86\x01\n\x11ListWithExtraArgs\x12\x38.myproject.fakeapp.UnitTestModelListWithExtraArgsRequest\x1a\x35.myproject.fakeapp.UnitTestModelListExtraArgsResponse\"\x00\x12q\n\rPartialUpdate\x12\x34.myproject.fakeapp.UnitTestModelPartialUpdateRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12g\n\x08Retrieve\x12/.myproject.fakeapp.UnitTestModelRetrieveRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12\x65\n\x06Stream\x12-.myproject.fakeapp.UnitTestModelStreamRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x30\x01\x12]\n\x06Update\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x32\xad\x08\n\'UnitTestModelWithStructFilterController\x12}\n\x06\x43reate\x12\x37.myproject.fakeapp.UnitTestModelWithStructFilterRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x63\n\x07\x44\x65stroy\x12>.myproject.fakeapp.UnitTestModelWithStructFilterDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12s\n\x0f\x45mptyWithFilter\x12\x46.myproject.fakeapp.UnitTestModelWithStructFilterEmptyWithFilterRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x83\x01\n\x04List\x12;.myproject.fakeapp.UnitTestModelWithStructFilterListRequest\x1a<.myproject.fakeapp.UnitTestModelWithStructFilterListResponse\"\x00\x12\x91\x01\n\rPartialUpdate\x12\x44.myproject.fakeapp.UnitTestModelWithStructFilterPartialUpdateRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x87\x01\n\x08Retrieve\x12?.myproject.fakeapp.UnitTestModelWithStructFilterRetrieveRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x85\x01\n\x06Stream\x12=.myproject.fakeapp.UnitTestModelWithStructFilterStreamRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x30\x01\x12}\n\x06Update\x12\x37.myproject.fakeapp.UnitTestModelWithStructFilterRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -54,187 +54,187 @@ _globals['_BASICPROTOLISTCHILDREQUEST']._serialized_start=1388 _globals['_BASICPROTOLISTCHILDREQUEST']._serialized_end=1483 _globals['_BASICPROTOLISTCHILDRESPONSE']._serialized_start=1485 - _globals['_BASICPROTOLISTCHILDRESPONSE']._serialized_end=1581 - _globals['_BASICSERVICELISTRESPONSE']._serialized_start=1583 - _globals['_BASICSERVICELISTRESPONSE']._serialized_end=1682 - _globals['_BASICSERVICEREQUEST']._serialized_start=1685 - _globals['_BASICSERVICEREQUEST']._serialized_end=1862 - _globals['_BASICSERVICERESPONSE']._serialized_start=1865 - _globals['_BASICSERVICERESPONSE']._serialized_end=2020 - _globals['_CUSTOMMIXPARAMFORLISTREQUEST']._serialized_start=2022 - _globals['_CUSTOMMIXPARAMFORLISTREQUEST']._serialized_end=2129 - _globals['_CUSTOMMIXPARAMFORREQUEST']._serialized_start=2131 - _globals['_CUSTOMMIXPARAMFORREQUEST']._serialized_end=2176 - _globals['_CUSTOMNAMEFORREQUEST']._serialized_start=2178 - _globals['_CUSTOMNAMEFORREQUEST']._serialized_end=2219 - _globals['_CUSTOMNAMEFORRESPONSE']._serialized_start=2221 - _globals['_CUSTOMNAMEFORRESPONSE']._serialized_end=2263 - _globals['_CUSTOMRETRIEVERESPONSESPECIALFIELDSMODELRESPONSE']._serialized_start=2266 - _globals['_CUSTOMRETRIEVERESPONSESPECIALFIELDSMODELRESPONSE']._serialized_end=2458 - _globals['_DEFAULTVALUEDESTROYREQUEST']._serialized_start=2460 - _globals['_DEFAULTVALUEDESTROYREQUEST']._serialized_end=2500 - _globals['_DEFAULTVALUELISTREQUEST']._serialized_start=2502 - _globals['_DEFAULTVALUELISTREQUEST']._serialized_end=2527 - _globals['_DEFAULTVALUELISTRESPONSE']._serialized_start=2529 - _globals['_DEFAULTVALUELISTRESPONSE']._serialized_end=2628 - _globals['_DEFAULTVALUEPARTIALUPDATEREQUEST']._serialized_start=2631 - _globals['_DEFAULTVALUEPARTIALUPDATEREQUEST']._serialized_end=3832 - _globals['_DEFAULTVALUEREQUEST']._serialized_start=3835 - _globals['_DEFAULTVALUEREQUEST']._serialized_end=4991 - _globals['_DEFAULTVALUERESPONSE']._serialized_start=4994 - _globals['_DEFAULTVALUERESPONSE']._serialized_end=6151 - _globals['_DEFAULTVALUERETRIEVEREQUEST']._serialized_start=6153 - _globals['_DEFAULTVALUERETRIEVEREQUEST']._serialized_end=6194 - _globals['_EXCEPTIONSTREAMRAISEEXCEPTIONRESPONSE']._serialized_start=6196 - _globals['_EXCEPTIONSTREAMRAISEEXCEPTIONRESPONSE']._serialized_end=6247 - _globals['_FOREIGNMODELLISTREQUEST']._serialized_start=6249 - _globals['_FOREIGNMODELLISTREQUEST']._serialized_end=6274 - _globals['_FOREIGNMODELLISTRESPONSE']._serialized_start=6276 - _globals['_FOREIGNMODELLISTRESPONSE']._serialized_end=6375 - _globals['_FOREIGNMODELRESPONSE']._serialized_start=6377 - _globals['_FOREIGNMODELRESPONSE']._serialized_end=6441 - _globals['_FOREIGNMODELRETRIEVECUSTOMRESPONSE']._serialized_start=6443 - _globals['_FOREIGNMODELRETRIEVECUSTOMRESPONSE']._serialized_end=6525 - _globals['_FOREIGNMODELRETRIEVECUSTOMRETRIEVEREQUEST']._serialized_start=6527 - _globals['_FOREIGNMODELRETRIEVECUSTOMRETRIEVEREQUEST']._serialized_end=6584 - _globals['_IMPORTSTRUCTEVENINARRAYMODELREQUEST']._serialized_start=6586 - _globals['_IMPORTSTRUCTEVENINARRAYMODELREQUEST']._serialized_end=6699 - _globals['_IMPORTSTRUCTEVENINARRAYMODELRESPONSE']._serialized_start=6701 - _globals['_IMPORTSTRUCTEVENINARRAYMODELRESPONSE']._serialized_end=6815 - _globals['_MANYMANYMODELREQUEST']._serialized_start=6817 - _globals['_MANYMANYMODELREQUEST']._serialized_end=6916 - _globals['_MANYMANYMODELRESPONSE']._serialized_start=6918 - _globals['_MANYMANYMODELRESPONSE']._serialized_end=6983 - _globals['_RECURSIVETESTMODELDESTROYREQUEST']._serialized_start=6985 - _globals['_RECURSIVETESTMODELDESTROYREQUEST']._serialized_end=7033 - _globals['_RECURSIVETESTMODELLISTREQUEST']._serialized_start=7035 - _globals['_RECURSIVETESTMODELLISTREQUEST']._serialized_end=7066 - _globals['_RECURSIVETESTMODELLISTRESPONSE']._serialized_start=7068 - _globals['_RECURSIVETESTMODELLISTRESPONSE']._serialized_end=7179 - _globals['_RECURSIVETESTMODELPARTIALUPDATEREQUEST']._serialized_start=7182 - _globals['_RECURSIVETESTMODELPARTIALUPDATEREQUEST']._serialized_end=7424 - _globals['_RECURSIVETESTMODELREQUEST']._serialized_start=7427 - _globals['_RECURSIVETESTMODELREQUEST']._serialized_end=7624 - _globals['_RECURSIVETESTMODELRESPONSE']._serialized_start=7627 - _globals['_RECURSIVETESTMODELRESPONSE']._serialized_end=7827 - _globals['_RECURSIVETESTMODELRETRIEVEREQUEST']._serialized_start=7829 - _globals['_RECURSIVETESTMODELRETRIEVEREQUEST']._serialized_end=7878 - _globals['_RELATEDFIELDMODELDESTROYREQUEST']._serialized_start=7880 - _globals['_RELATEDFIELDMODELDESTROYREQUEST']._serialized_end=7927 - _globals['_RELATEDFIELDMODELLISTREQUEST']._serialized_start=7929 - _globals['_RELATEDFIELDMODELLISTREQUEST']._serialized_end=7959 - _globals['_RELATEDFIELDMODELLISTRESPONSE']._serialized_start=7961 - _globals['_RELATEDFIELDMODELLISTRESPONSE']._serialized_end=8085 - _globals['_RELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_start=8088 - _globals['_RELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_end=8302 - _globals['_RELATEDFIELDMODELREQUEST']._serialized_start=8305 - _globals['_RELATEDFIELDMODELREQUEST']._serialized_end=8474 - _globals['_RELATEDFIELDMODELRESPONSE']._serialized_start=8477 - _globals['_RELATEDFIELDMODELRESPONSE']._serialized_end=8898 - _globals['_RELATEDFIELDMODELRETRIEVEREQUEST']._serialized_start=8900 - _globals['_RELATEDFIELDMODELRETRIEVEREQUEST']._serialized_end=8948 - _globals['_SIMPLERELATEDFIELDMODELDESTROYREQUEST']._serialized_start=8950 - _globals['_SIMPLERELATEDFIELDMODELDESTROYREQUEST']._serialized_end=9003 - _globals['_SIMPLERELATEDFIELDMODELLISTREQUEST']._serialized_start=9005 - _globals['_SIMPLERELATEDFIELDMODELLISTREQUEST']._serialized_end=9041 - _globals['_SIMPLERELATEDFIELDMODELLISTRESPONSE']._serialized_start=9043 - _globals['_SIMPLERELATEDFIELDMODELLISTRESPONSE']._serialized_end=9164 - _globals['_SIMPLERELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_start=9167 - _globals['_SIMPLERELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_end=9427 - _globals['_SIMPLERELATEDFIELDMODELREQUEST']._serialized_start=9430 - _globals['_SIMPLERELATEDFIELDMODELREQUEST']._serialized_end=9645 - _globals['_SIMPLERELATEDFIELDMODELRESPONSE']._serialized_start=9648 - _globals['_SIMPLERELATEDFIELDMODELRESPONSE']._serialized_end=9864 - _globals['_SIMPLERELATEDFIELDMODELRETRIEVEREQUEST']._serialized_start=9866 - _globals['_SIMPLERELATEDFIELDMODELRETRIEVEREQUEST']._serialized_end=9920 - _globals['_SPECIALFIELDSMODELDESTROYREQUEST']._serialized_start=9922 - _globals['_SPECIALFIELDSMODELDESTROYREQUEST']._serialized_end=9970 - _globals['_SPECIALFIELDSMODELLISTREQUEST']._serialized_start=9972 - _globals['_SPECIALFIELDSMODELLISTREQUEST']._serialized_end=10003 - _globals['_SPECIALFIELDSMODELLISTRESPONSE']._serialized_start=10005 - _globals['_SPECIALFIELDSMODELLISTRESPONSE']._serialized_end=10116 - _globals['_SPECIALFIELDSMODELPARTIALUPDATEREQUEST']._serialized_start=10119 - _globals['_SPECIALFIELDSMODELPARTIALUPDATEREQUEST']._serialized_end=10304 - _globals['_SPECIALFIELDSMODELREQUEST']._serialized_start=10307 - _globals['_SPECIALFIELDSMODELREQUEST']._serialized_end=10447 - _globals['_SPECIALFIELDSMODELRESPONSE']._serialized_start=10450 - _globals['_SPECIALFIELDSMODELRESPONSE']._serialized_end=10623 - _globals['_SPECIALFIELDSMODELRETRIEVEREQUEST']._serialized_start=10625 - _globals['_SPECIALFIELDSMODELRETRIEVEREQUEST']._serialized_end=10674 - _globals['_STREAMINSTREAMINLISTRESPONSE']._serialized_start=10676 - _globals['_STREAMINSTREAMINLISTRESPONSE']._serialized_end=10783 - _globals['_STREAMINSTREAMINREQUEST']._serialized_start=10785 - _globals['_STREAMINSTREAMINREQUEST']._serialized_end=10824 - _globals['_STREAMINSTREAMINRESPONSE']._serialized_start=10826 - _globals['_STREAMINSTREAMINRESPONSE']._serialized_end=10867 - _globals['_STREAMINSTREAMTOSTREAMREQUEST']._serialized_start=10869 - _globals['_STREAMINSTREAMTOSTREAMREQUEST']._serialized_end=10914 - _globals['_STREAMINSTREAMTOSTREAMRESPONSE']._serialized_start=10916 - _globals['_STREAMINSTREAMTOSTREAMRESPONSE']._serialized_end=10962 - _globals['_SYNCUNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_start=10964 - _globals['_SYNCUNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_end=11025 - _globals['_UNITTESTMODELDESTROYREQUEST']._serialized_start=11027 - _globals['_UNITTESTMODELDESTROYREQUEST']._serialized_end=11068 - _globals['_UNITTESTMODELLISTEXTRAARGSRESPONSE']._serialized_start=11071 - _globals['_UNITTESTMODELLISTEXTRAARGSRESPONSE']._serialized_end=11213 - _globals['_UNITTESTMODELLISTREQUEST']._serialized_start=11215 - _globals['_UNITTESTMODELLISTREQUEST']._serialized_end=11241 - _globals['_UNITTESTMODELLISTRESPONSE']._serialized_start=11243 - _globals['_UNITTESTMODELLISTRESPONSE']._serialized_end=11344 - _globals['_UNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_start=11346 - _globals['_UNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_end=11403 - _globals['_UNITTESTMODELPARTIALUPDATEREQUEST']._serialized_start=11406 - _globals['_UNITTESTMODELPARTIALUPDATEREQUEST']._serialized_end=11540 - _globals['_UNITTESTMODELREQUEST']._serialized_start=11542 - _globals['_UNITTESTMODELREQUEST']._serialized_end=11631 - _globals['_UNITTESTMODELRESPONSE']._serialized_start=11633 - _globals['_UNITTESTMODELRESPONSE']._serialized_end=11723 - _globals['_UNITTESTMODELRETRIEVEREQUEST']._serialized_start=11725 - _globals['_UNITTESTMODELRETRIEVEREQUEST']._serialized_end=11767 - _globals['_UNITTESTMODELSTREAMREQUEST']._serialized_start=11769 - _globals['_UNITTESTMODELSTREAMREQUEST']._serialized_end=11797 - _globals['_UNITTESTMODELWITHSTRUCTFILTERDESTROYREQUEST']._serialized_start=11799 - _globals['_UNITTESTMODELWITHSTRUCTFILTERDESTROYREQUEST']._serialized_end=11856 - _globals['_UNITTESTMODELWITHSTRUCTFILTEREMPTYWITHFILTERREQUEST']._serialized_start=11859 - _globals['_UNITTESTMODELWITHSTRUCTFILTEREMPTYWITHFILTERREQUEST']._serialized_end=12040 - _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTREQUEST']._serialized_start=12043 - _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTREQUEST']._serialized_end=12213 - _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTRESPONSE']._serialized_start=12216 - _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTRESPONSE']._serialized_end=12349 - _globals['_UNITTESTMODELWITHSTRUCTFILTERPARTIALUPDATEREQUEST']._serialized_start=12352 - _globals['_UNITTESTMODELWITHSTRUCTFILTERPARTIALUPDATEREQUEST']._serialized_end=12502 - _globals['_UNITTESTMODELWITHSTRUCTFILTERREQUEST']._serialized_start=12504 - _globals['_UNITTESTMODELWITHSTRUCTFILTERREQUEST']._serialized_end=12609 - _globals['_UNITTESTMODELWITHSTRUCTFILTERRESPONSE']._serialized_start=12611 - _globals['_UNITTESTMODELWITHSTRUCTFILTERRESPONSE']._serialized_end=12717 - _globals['_UNITTESTMODELWITHSTRUCTFILTERRETRIEVEREQUEST']._serialized_start=12719 - _globals['_UNITTESTMODELWITHSTRUCTFILTERRETRIEVEREQUEST']._serialized_end=12777 - _globals['_UNITTESTMODELWITHSTRUCTFILTERSTREAMREQUEST']._serialized_start=12779 - _globals['_UNITTESTMODELWITHSTRUCTFILTERSTREAMREQUEST']._serialized_end=12823 - _globals['_BASICCONTROLLER']._serialized_start=12826 - _globals['_BASICCONTROLLER']._serialized_end=14052 - _globals['_DEFAULTVALUECONTROLLER']._serialized_start=14055 - _globals['_DEFAULTVALUECONTROLLER']._serialized_end=14664 - _globals['_EXCEPTIONCONTROLLER']._serialized_start=14667 - _globals['_EXCEPTIONCONTROLLER']._serialized_end=15004 - _globals['_FOREIGNMODELCONTROLLER']._serialized_start=15007 - _globals['_FOREIGNMODELCONTROLLER']._serialized_end=15262 - _globals['_IMPORTSTRUCTEVENINARRAYMODELCONTROLLER']._serialized_start=15265 - _globals['_IMPORTSTRUCTEVENINARRAYMODELCONTROLLER']._serialized_end=15430 - _globals['_RECURSIVETESTMODELCONTROLLER']._serialized_start=15433 - _globals['_RECURSIVETESTMODELCONTROLLER']._serialized_end=16114 - _globals['_RELATEDFIELDMODELCONTROLLER']._serialized_start=16117 - _globals['_RELATEDFIELDMODELCONTROLLER']._serialized_end=16786 - _globals['_SIMPLERELATEDFIELDMODELCONTROLLER']._serialized_start=16789 - _globals['_SIMPLERELATEDFIELDMODELCONTROLLER']._serialized_end=17531 - _globals['_SPECIALFIELDSMODELCONTROLLER']._serialized_start=17534 - _globals['_SPECIALFIELDSMODELCONTROLLER']._serialized_end=18238 - _globals['_STREAMINCONTROLLER']._serialized_start=18241 - _globals['_STREAMINCONTROLLER']._serialized_end=18495 - _globals['_SYNCUNITTESTMODELCONTROLLER']._serialized_start=18498 - _globals['_SYNCUNITTESTMODELCONTROLLER']._serialized_end=19367 - _globals['_UNITTESTMODELCONTROLLER']._serialized_start=19370 - _globals['_UNITTESTMODELCONTROLLER']._serialized_end=20231 - _globals['_UNITTESTMODELWITHSTRUCTFILTERCONTROLLER']._serialized_start=20234 - _globals['_UNITTESTMODELWITHSTRUCTFILTERCONTROLLER']._serialized_end=21303 + _globals['_BASICPROTOLISTCHILDRESPONSE']._serialized_end=1569 + _globals['_BASICSERVICELISTRESPONSE']._serialized_start=1571 + _globals['_BASICSERVICELISTRESPONSE']._serialized_end=1670 + _globals['_BASICSERVICEREQUEST']._serialized_start=1673 + _globals['_BASICSERVICEREQUEST']._serialized_end=1850 + _globals['_BASICSERVICERESPONSE']._serialized_start=1853 + _globals['_BASICSERVICERESPONSE']._serialized_end=2008 + _globals['_CUSTOMMIXPARAMFORLISTREQUEST']._serialized_start=2010 + _globals['_CUSTOMMIXPARAMFORLISTREQUEST']._serialized_end=2117 + _globals['_CUSTOMMIXPARAMFORREQUEST']._serialized_start=2119 + _globals['_CUSTOMMIXPARAMFORREQUEST']._serialized_end=2164 + _globals['_CUSTOMNAMEFORREQUEST']._serialized_start=2166 + _globals['_CUSTOMNAMEFORREQUEST']._serialized_end=2207 + _globals['_CUSTOMNAMEFORRESPONSE']._serialized_start=2209 + _globals['_CUSTOMNAMEFORRESPONSE']._serialized_end=2251 + _globals['_CUSTOMRETRIEVERESPONSESPECIALFIELDSMODELRESPONSE']._serialized_start=2254 + _globals['_CUSTOMRETRIEVERESPONSESPECIALFIELDSMODELRESPONSE']._serialized_end=2402 + _globals['_DEFAULTVALUEDESTROYREQUEST']._serialized_start=2404 + _globals['_DEFAULTVALUEDESTROYREQUEST']._serialized_end=2444 + _globals['_DEFAULTVALUELISTREQUEST']._serialized_start=2446 + _globals['_DEFAULTVALUELISTREQUEST']._serialized_end=2471 + _globals['_DEFAULTVALUELISTRESPONSE']._serialized_start=2473 + _globals['_DEFAULTVALUELISTRESPONSE']._serialized_end=2572 + _globals['_DEFAULTVALUEPARTIALUPDATEREQUEST']._serialized_start=2575 + _globals['_DEFAULTVALUEPARTIALUPDATEREQUEST']._serialized_end=3776 + _globals['_DEFAULTVALUEREQUEST']._serialized_start=3779 + _globals['_DEFAULTVALUEREQUEST']._serialized_end=4935 + _globals['_DEFAULTVALUERESPONSE']._serialized_start=4938 + _globals['_DEFAULTVALUERESPONSE']._serialized_end=5921 + _globals['_DEFAULTVALUERETRIEVEREQUEST']._serialized_start=5923 + _globals['_DEFAULTVALUERETRIEVEREQUEST']._serialized_end=5964 + _globals['_EXCEPTIONSTREAMRAISEEXCEPTIONRESPONSE']._serialized_start=5966 + _globals['_EXCEPTIONSTREAMRAISEEXCEPTIONRESPONSE']._serialized_end=6017 + _globals['_FOREIGNMODELLISTREQUEST']._serialized_start=6019 + _globals['_FOREIGNMODELLISTREQUEST']._serialized_end=6044 + _globals['_FOREIGNMODELLISTRESPONSE']._serialized_start=6046 + _globals['_FOREIGNMODELLISTRESPONSE']._serialized_end=6145 + _globals['_FOREIGNMODELRESPONSE']._serialized_start=6147 + _globals['_FOREIGNMODELRESPONSE']._serialized_end=6197 + _globals['_FOREIGNMODELRETRIEVECUSTOMRESPONSE']._serialized_start=6199 + _globals['_FOREIGNMODELRETRIEVECUSTOMRESPONSE']._serialized_end=6265 + _globals['_FOREIGNMODELRETRIEVECUSTOMRETRIEVEREQUEST']._serialized_start=6267 + _globals['_FOREIGNMODELRETRIEVECUSTOMRETRIEVEREQUEST']._serialized_end=6324 + _globals['_IMPORTSTRUCTEVENINARRAYMODELREQUEST']._serialized_start=6326 + _globals['_IMPORTSTRUCTEVENINARRAYMODELREQUEST']._serialized_end=6439 + _globals['_IMPORTSTRUCTEVENINARRAYMODELRESPONSE']._serialized_start=6441 + _globals['_IMPORTSTRUCTEVENINARRAYMODELRESPONSE']._serialized_end=6541 + _globals['_MANYMANYMODELREQUEST']._serialized_start=6543 + _globals['_MANYMANYMODELREQUEST']._serialized_end=6642 + _globals['_MANYMANYMODELRESPONSE']._serialized_start=6644 + _globals['_MANYMANYMODELRESPONSE']._serialized_end=6695 + _globals['_RECURSIVETESTMODELDESTROYREQUEST']._serialized_start=6697 + _globals['_RECURSIVETESTMODELDESTROYREQUEST']._serialized_end=6745 + _globals['_RECURSIVETESTMODELLISTREQUEST']._serialized_start=6747 + _globals['_RECURSIVETESTMODELLISTREQUEST']._serialized_end=6778 + _globals['_RECURSIVETESTMODELLISTRESPONSE']._serialized_start=6780 + _globals['_RECURSIVETESTMODELLISTRESPONSE']._serialized_end=6891 + _globals['_RECURSIVETESTMODELPARTIALUPDATEREQUEST']._serialized_start=6894 + _globals['_RECURSIVETESTMODELPARTIALUPDATEREQUEST']._serialized_end=7136 + _globals['_RECURSIVETESTMODELREQUEST']._serialized_start=7139 + _globals['_RECURSIVETESTMODELREQUEST']._serialized_end=7336 + _globals['_RECURSIVETESTMODELRESPONSE']._serialized_start=7339 + _globals['_RECURSIVETESTMODELRESPONSE']._serialized_end=7509 + _globals['_RECURSIVETESTMODELRETRIEVEREQUEST']._serialized_start=7511 + _globals['_RECURSIVETESTMODELRETRIEVEREQUEST']._serialized_end=7560 + _globals['_RELATEDFIELDMODELDESTROYREQUEST']._serialized_start=7562 + _globals['_RELATEDFIELDMODELDESTROYREQUEST']._serialized_end=7609 + _globals['_RELATEDFIELDMODELLISTREQUEST']._serialized_start=7611 + _globals['_RELATEDFIELDMODELLISTREQUEST']._serialized_end=7641 + _globals['_RELATEDFIELDMODELLISTRESPONSE']._serialized_start=7643 + _globals['_RELATEDFIELDMODELLISTRESPONSE']._serialized_end=7767 + _globals['_RELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_start=7770 + _globals['_RELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_end=7984 + _globals['_RELATEDFIELDMODELREQUEST']._serialized_start=7987 + _globals['_RELATEDFIELDMODELREQUEST']._serialized_end=8156 + _globals['_RELATEDFIELDMODELRESPONSE']._serialized_start=8159 + _globals['_RELATEDFIELDMODELRESPONSE']._serialized_end=8490 + _globals['_RELATEDFIELDMODELRETRIEVEREQUEST']._serialized_start=8492 + _globals['_RELATEDFIELDMODELRETRIEVEREQUEST']._serialized_end=8540 + _globals['_SIMPLERELATEDFIELDMODELDESTROYREQUEST']._serialized_start=8542 + _globals['_SIMPLERELATEDFIELDMODELDESTROYREQUEST']._serialized_end=8595 + _globals['_SIMPLERELATEDFIELDMODELLISTREQUEST']._serialized_start=8597 + _globals['_SIMPLERELATEDFIELDMODELLISTREQUEST']._serialized_end=8633 + _globals['_SIMPLERELATEDFIELDMODELLISTRESPONSE']._serialized_start=8635 + _globals['_SIMPLERELATEDFIELDMODELLISTRESPONSE']._serialized_end=8756 + _globals['_SIMPLERELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_start=8759 + _globals['_SIMPLERELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_end=9019 + _globals['_SIMPLERELATEDFIELDMODELREQUEST']._serialized_start=9022 + _globals['_SIMPLERELATEDFIELDMODELREQUEST']._serialized_end=9237 + _globals['_SIMPLERELATEDFIELDMODELRESPONSE']._serialized_start=9240 + _globals['_SIMPLERELATEDFIELDMODELRESPONSE']._serialized_end=9442 + _globals['_SIMPLERELATEDFIELDMODELRETRIEVEREQUEST']._serialized_start=9444 + _globals['_SIMPLERELATEDFIELDMODELRETRIEVEREQUEST']._serialized_end=9498 + _globals['_SPECIALFIELDSMODELDESTROYREQUEST']._serialized_start=9500 + _globals['_SPECIALFIELDSMODELDESTROYREQUEST']._serialized_end=9548 + _globals['_SPECIALFIELDSMODELLISTREQUEST']._serialized_start=9550 + _globals['_SPECIALFIELDSMODELLISTREQUEST']._serialized_end=9581 + _globals['_SPECIALFIELDSMODELLISTRESPONSE']._serialized_start=9583 + _globals['_SPECIALFIELDSMODELLISTRESPONSE']._serialized_end=9694 + _globals['_SPECIALFIELDSMODELPARTIALUPDATEREQUEST']._serialized_start=9697 + _globals['_SPECIALFIELDSMODELPARTIALUPDATEREQUEST']._serialized_end=9882 + _globals['_SPECIALFIELDSMODELREQUEST']._serialized_start=9885 + _globals['_SPECIALFIELDSMODELREQUEST']._serialized_end=10025 + _globals['_SPECIALFIELDSMODELRESPONSE']._serialized_start=10027 + _globals['_SPECIALFIELDSMODELRESPONSE']._serialized_end=10150 + _globals['_SPECIALFIELDSMODELRETRIEVEREQUEST']._serialized_start=10152 + _globals['_SPECIALFIELDSMODELRETRIEVEREQUEST']._serialized_end=10201 + _globals['_STREAMINSTREAMINLISTRESPONSE']._serialized_start=10203 + _globals['_STREAMINSTREAMINLISTRESPONSE']._serialized_end=10310 + _globals['_STREAMINSTREAMINREQUEST']._serialized_start=10312 + _globals['_STREAMINSTREAMINREQUEST']._serialized_end=10351 + _globals['_STREAMINSTREAMINRESPONSE']._serialized_start=10353 + _globals['_STREAMINSTREAMINRESPONSE']._serialized_end=10394 + _globals['_STREAMINSTREAMTOSTREAMREQUEST']._serialized_start=10396 + _globals['_STREAMINSTREAMTOSTREAMREQUEST']._serialized_end=10441 + _globals['_STREAMINSTREAMTOSTREAMRESPONSE']._serialized_start=10443 + _globals['_STREAMINSTREAMTOSTREAMRESPONSE']._serialized_end=10489 + _globals['_SYNCUNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_start=10491 + _globals['_SYNCUNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_end=10552 + _globals['_UNITTESTMODELDESTROYREQUEST']._serialized_start=10554 + _globals['_UNITTESTMODELDESTROYREQUEST']._serialized_end=10595 + _globals['_UNITTESTMODELLISTEXTRAARGSRESPONSE']._serialized_start=10598 + _globals['_UNITTESTMODELLISTEXTRAARGSRESPONSE']._serialized_end=10740 + _globals['_UNITTESTMODELLISTREQUEST']._serialized_start=10742 + _globals['_UNITTESTMODELLISTREQUEST']._serialized_end=10768 + _globals['_UNITTESTMODELLISTRESPONSE']._serialized_start=10770 + _globals['_UNITTESTMODELLISTRESPONSE']._serialized_end=10871 + _globals['_UNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_start=10873 + _globals['_UNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_end=10930 + _globals['_UNITTESTMODELPARTIALUPDATEREQUEST']._serialized_start=10933 + _globals['_UNITTESTMODELPARTIALUPDATEREQUEST']._serialized_end=11067 + _globals['_UNITTESTMODELREQUEST']._serialized_start=11069 + _globals['_UNITTESTMODELREQUEST']._serialized_end=11158 + _globals['_UNITTESTMODELRESPONSE']._serialized_start=11160 + _globals['_UNITTESTMODELRESPONSE']._serialized_end=11238 + _globals['_UNITTESTMODELRETRIEVEREQUEST']._serialized_start=11240 + _globals['_UNITTESTMODELRETRIEVEREQUEST']._serialized_end=11282 + _globals['_UNITTESTMODELSTREAMREQUEST']._serialized_start=11284 + _globals['_UNITTESTMODELSTREAMREQUEST']._serialized_end=11312 + _globals['_UNITTESTMODELWITHSTRUCTFILTERDESTROYREQUEST']._serialized_start=11314 + _globals['_UNITTESTMODELWITHSTRUCTFILTERDESTROYREQUEST']._serialized_end=11371 + _globals['_UNITTESTMODELWITHSTRUCTFILTEREMPTYWITHFILTERREQUEST']._serialized_start=11374 + _globals['_UNITTESTMODELWITHSTRUCTFILTEREMPTYWITHFILTERREQUEST']._serialized_end=11555 + _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTREQUEST']._serialized_start=11558 + _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTREQUEST']._serialized_end=11728 + _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTRESPONSE']._serialized_start=11731 + _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTRESPONSE']._serialized_end=11864 + _globals['_UNITTESTMODELWITHSTRUCTFILTERPARTIALUPDATEREQUEST']._serialized_start=11867 + _globals['_UNITTESTMODELWITHSTRUCTFILTERPARTIALUPDATEREQUEST']._serialized_end=12017 + _globals['_UNITTESTMODELWITHSTRUCTFILTERREQUEST']._serialized_start=12019 + _globals['_UNITTESTMODELWITHSTRUCTFILTERREQUEST']._serialized_end=12124 + _globals['_UNITTESTMODELWITHSTRUCTFILTERRESPONSE']._serialized_start=12126 + _globals['_UNITTESTMODELWITHSTRUCTFILTERRESPONSE']._serialized_end=12220 + _globals['_UNITTESTMODELWITHSTRUCTFILTERRETRIEVEREQUEST']._serialized_start=12222 + _globals['_UNITTESTMODELWITHSTRUCTFILTERRETRIEVEREQUEST']._serialized_end=12280 + _globals['_UNITTESTMODELWITHSTRUCTFILTERSTREAMREQUEST']._serialized_start=12282 + _globals['_UNITTESTMODELWITHSTRUCTFILTERSTREAMREQUEST']._serialized_end=12326 + _globals['_BASICCONTROLLER']._serialized_start=12329 + _globals['_BASICCONTROLLER']._serialized_end=13555 + _globals['_DEFAULTVALUECONTROLLER']._serialized_start=13558 + _globals['_DEFAULTVALUECONTROLLER']._serialized_end=14167 + _globals['_EXCEPTIONCONTROLLER']._serialized_start=14170 + _globals['_EXCEPTIONCONTROLLER']._serialized_end=14507 + _globals['_FOREIGNMODELCONTROLLER']._serialized_start=14510 + _globals['_FOREIGNMODELCONTROLLER']._serialized_end=14765 + _globals['_IMPORTSTRUCTEVENINARRAYMODELCONTROLLER']._serialized_start=14768 + _globals['_IMPORTSTRUCTEVENINARRAYMODELCONTROLLER']._serialized_end=14933 + _globals['_RECURSIVETESTMODELCONTROLLER']._serialized_start=14936 + _globals['_RECURSIVETESTMODELCONTROLLER']._serialized_end=15617 + _globals['_RELATEDFIELDMODELCONTROLLER']._serialized_start=15620 + _globals['_RELATEDFIELDMODELCONTROLLER']._serialized_end=16289 + _globals['_SIMPLERELATEDFIELDMODELCONTROLLER']._serialized_start=16292 + _globals['_SIMPLERELATEDFIELDMODELCONTROLLER']._serialized_end=17034 + _globals['_SPECIALFIELDSMODELCONTROLLER']._serialized_start=17037 + _globals['_SPECIALFIELDSMODELCONTROLLER']._serialized_end=17741 + _globals['_STREAMINCONTROLLER']._serialized_start=17744 + _globals['_STREAMINCONTROLLER']._serialized_end=17998 + _globals['_SYNCUNITTESTMODELCONTROLLER']._serialized_start=18001 + _globals['_SYNCUNITTESTMODELCONTROLLER']._serialized_end=18870 + _globals['_UNITTESTMODELCONTROLLER']._serialized_start=18873 + _globals['_UNITTESTMODELCONTROLLER']._serialized_end=19734 + _globals['_UNITTESTMODELWITHSTRUCTFILTERCONTROLLER']._serialized_start=19737 + _globals['_UNITTESTMODELWITHSTRUCTFILTERCONTROLLER']._serialized_end=20806 # @@protoc_insertion_point(module_scope) diff --git a/django_socio_grpc/tests/protos/ALL_APP_GENERATED_NO_SEPARATE/fakeapp.proto b/django_socio_grpc/tests/protos/ALL_APP_GENERATED_NO_SEPARATE/fakeapp.proto index 648c296b..5042a3de 100644 --- a/django_socio_grpc/tests/protos/ALL_APP_GENERATED_NO_SEPARATE/fakeapp.proto +++ b/django_socio_grpc/tests/protos/ALL_APP_GENERATED_NO_SEPARATE/fakeapp.proto @@ -161,7 +161,7 @@ message BasicParamWithSerializerRequestList { } message BasicProtoListChild { - optional int32 id = 1; + int32 id = 1; string title = 2; optional string text = 3; } @@ -207,13 +207,13 @@ message CustomNameForResponse { // Test comment for whole message message CustomRetrieveResponseSpecialFieldsModel { - optional string uuid = 1; - optional int32 default_method_field = 2; + string uuid = 1; + int32 default_method_field = 2; repeated google.protobuf.Struct custom_method_field = 3; } message ForeignModel { - optional string uuid = 1; + string uuid = 1; string name = 2; } @@ -227,7 +227,7 @@ message ForeignModelListRequest { message ForeignModelRetrieveCustom { string name = 1; - optional string custom = 2; + string custom = 2; } message ForeignModelRetrieveCustomRetrieveRequest { @@ -235,19 +235,19 @@ message ForeignModelRetrieveCustomRetrieveRequest { } message ImportStructEvenInArrayModel { - optional string uuid = 1; + string uuid = 1; repeated google.protobuf.Struct this_is_crazy = 2; } message ManyManyModel { - optional string uuid = 1; + string uuid = 1; string name = 2; string test_write_only_on_nested = 3; } message RecursiveTestModel { - optional string uuid = 1; - optional RecursiveTestModel parent = 2; + string uuid = 1; + RecursiveTestModel parent = 2; repeated RecursiveTestModel children = 3; } @@ -264,9 +264,9 @@ message RecursiveTestModelListRequest { } message RecursiveTestModelPartialUpdateRequest { - optional string uuid = 1; + string uuid = 1; repeated string _partial_update_fields = 2; - optional RecursiveTestModel parent = 3; + RecursiveTestModel parent = 3; repeated RecursiveTestModel children = 4; } @@ -275,13 +275,13 @@ message RecursiveTestModelRetrieveRequest { } message RelatedFieldModel { - optional string uuid = 1; - optional ForeignModel foreign = 2; + string uuid = 1; + ForeignModel foreign = 2; repeated ManyManyModel many_many = 3; - optional int32 slug_test_model = 4; + int32 slug_test_model = 4; repeated bool slug_reverse_test_model = 5; repeated string slug_many_many = 6; - optional string proto_slug_related_field = 7; + string proto_slug_related_field = 7; string custom_field_name = 8; repeated string many_many_foreigns = 9; } @@ -299,13 +299,13 @@ message RelatedFieldModelListRequest { } message RelatedFieldModelPartialUpdateRequest { - optional string uuid = 1; - optional ForeignModel foreign = 2; + string uuid = 1; + ForeignModel foreign = 2; repeated ManyManyModel many_many = 3; - optional int32 slug_test_model = 4; + int32 slug_test_model = 4; repeated bool slug_reverse_test_model = 5; repeated string slug_many_many = 6; - optional string proto_slug_related_field = 7; + string proto_slug_related_field = 7; string custom_field_name = 8; repeated string _partial_update_fields = 9; repeated string many_many_foreigns = 10; @@ -316,7 +316,7 @@ message RelatedFieldModelRetrieveRequest { } message SimpleRelatedFieldModel { - optional string uuid = 1; + string uuid = 1; optional string foreign = 2; optional string slug_test_model = 3; repeated string many_many = 4; @@ -337,7 +337,7 @@ message SimpleRelatedFieldModelListRequest { } message SimpleRelatedFieldModelPartialUpdateRequest { - optional string uuid = 1; + string uuid = 1; repeated string _partial_update_fields = 2; optional string foreign = 3; optional string slug_test_model = 4; @@ -353,10 +353,10 @@ message SimpleRelatedFieldModelRetrieveRequest { // Special Fields Model // with two lines comment message SpecialFieldsModel { - optional string uuid = 1; - optional google.protobuf.Struct meta_datas = 2; + string uuid = 1; + google.protobuf.Struct meta_datas = 2; repeated int32 list_datas = 3; - optional bytes binary = 4; + bytes binary = 4; } message SpecialFieldsModelDestroyRequest { @@ -374,11 +374,11 @@ message SpecialFieldsModelListRequest { // Special Fields Model // with two lines comment message SpecialFieldsModelPartialUpdateRequest { - optional string uuid = 1; + string uuid = 1; repeated string _partial_update_fields = 2; - optional google.protobuf.Struct meta_datas = 3; + google.protobuf.Struct meta_datas = 3; repeated int32 list_datas = 4; - optional bytes binary = 5; + bytes binary = 5; } message SpecialFieldsModelRetrieve { @@ -403,7 +403,7 @@ message SyncUnitTestModelListWithExtraArgs { } message UnitTestModel { - optional int32 id = 1; + int32 id = 1; string title = 2; optional string text = 3; } @@ -431,7 +431,7 @@ message UnitTestModelListWithExtraArgs { } message UnitTestModelPartialUpdateRequest { - optional int32 id = 1; + int32 id = 1; repeated string _partial_update_fields = 2; string title = 3; optional string text = 4; @@ -445,7 +445,7 @@ message UnitTestModelStreamRequest { } message UnitTestModelWithStructFilter { - optional int32 id = 1; + int32 id = 1; string title = 2; optional string text = 3; } @@ -465,7 +465,7 @@ message UnitTestModelWithStructFilterList { } message UnitTestModelWithStructFilterPartialUpdateRequest { - optional int32 id = 1; + int32 id = 1; repeated string _partial_update_fields = 2; string title = 3; optional string text = 4; diff --git a/django_socio_grpc/tests/protos/ALL_APP_GENERATED_SEPARATE/fakeapp.proto b/django_socio_grpc/tests/protos/ALL_APP_GENERATED_SEPARATE/fakeapp.proto index 52c137d0..3858cb57 100644 --- a/django_socio_grpc/tests/protos/ALL_APP_GENERATED_SEPARATE/fakeapp.proto +++ b/django_socio_grpc/tests/protos/ALL_APP_GENERATED_SEPARATE/fakeapp.proto @@ -199,7 +199,7 @@ message BasicProtoListChildRequest { } message BasicProtoListChildResponse { - optional int32 id = 1; + int32 id = 1; string title = 2; optional string text = 3; } @@ -250,8 +250,8 @@ message CustomNameForResponse { // Test comment for whole message message CustomRetrieveResponseSpecialFieldsModelResponse { - optional string uuid = 1; - optional int32 default_method_field = 2; + string uuid = 1; + int32 default_method_field = 2; repeated google.protobuf.Struct custom_method_field = 3; } @@ -313,25 +313,25 @@ message DefaultValueRequest { } message DefaultValueResponse { - optional int32 id = 1; + int32 id = 1; optional string string_required_but_serializer_default = 2; optional int32 int_required_but_serializer_default = 3; optional bool boolean_required_but_serializer_default = 4; optional string string_default_but_serializer_default = 5; optional string string_nullable_default_but_serializer_default = 6; string string_required = 7; - optional string string_blank = 8; + string string_blank = 8; optional string string_nullable = 9; - optional string string_default = 10; - optional string string_default_and_blank = 11; + string string_default = 10; + string string_default_and_blank = 11; optional string string_null_default_and_blank = 12; int32 int_required = 13; optional int32 int_nullable = 14; - optional int32 int_default = 15; + int32 int_default = 15; bool boolean_required = 16; optional bool boolean_nullable = 17; - optional bool boolean_default_false = 18; - optional bool boolean_default_true = 19; + bool boolean_default_false = 18; + bool boolean_default_true = 19; } message DefaultValueRetrieveRequest { @@ -351,13 +351,13 @@ message ForeignModelListResponse { } message ForeignModelResponse { - optional string uuid = 1; + string uuid = 1; string name = 2; } message ForeignModelRetrieveCustomResponse { string name = 1; - optional string custom = 2; + string custom = 2; } message ForeignModelRetrieveCustomRetrieveRequest { @@ -370,7 +370,7 @@ message ImportStructEvenInArrayModelRequest { } message ImportStructEvenInArrayModelResponse { - optional string uuid = 1; + string uuid = 1; repeated google.protobuf.Struct this_is_crazy = 2; } @@ -381,7 +381,7 @@ message ManyManyModelRequest { } message ManyManyModelResponse { - optional string uuid = 1; + string uuid = 1; string name = 2; } @@ -411,8 +411,8 @@ message RecursiveTestModelRequest { } message RecursiveTestModelResponse { - optional string uuid = 1; - optional RecursiveTestModelResponse parent = 2; + string uuid = 1; + RecursiveTestModelResponse parent = 2; repeated RecursiveTestModelResponse children = 3; } @@ -448,13 +448,13 @@ message RelatedFieldModelRequest { } message RelatedFieldModelResponse { - optional string uuid = 1; - optional ForeignModelResponse foreign = 2; + string uuid = 1; + ForeignModelResponse foreign = 2; repeated ManyManyModelResponse many_many = 3; - optional int32 slug_test_model = 4; + int32 slug_test_model = 4; repeated bool slug_reverse_test_model = 5; repeated string slug_many_many = 6; - optional string proto_slug_related_field = 7; + string proto_slug_related_field = 7; string custom_field_name = 8; repeated string many_many_foreigns = 9; } @@ -495,7 +495,7 @@ message SimpleRelatedFieldModelRequest { } message SimpleRelatedFieldModelResponse { - optional string uuid = 1; + string uuid = 1; optional string foreign = 2; optional string slug_test_model = 3; repeated string many_many = 4; @@ -539,10 +539,10 @@ message SpecialFieldsModelRequest { // Special Fields Model // with two lines comment message SpecialFieldsModelResponse { - optional string uuid = 1; - optional google.protobuf.Struct meta_datas = 2; + string uuid = 1; + google.protobuf.Struct meta_datas = 2; repeated int32 list_datas = 3; - optional bytes binary = 4; + bytes binary = 4; } message SpecialFieldsModelRetrieveRequest { @@ -610,7 +610,7 @@ message UnitTestModelRequest { } message UnitTestModelResponse { - optional int32 id = 1; + int32 id = 1; string title = 2; optional string text = 3; } @@ -655,7 +655,7 @@ message UnitTestModelWithStructFilterRequest { } message UnitTestModelWithStructFilterResponse { - optional int32 id = 1; + int32 id = 1; string title = 2; optional string text = 3; } diff --git a/django_socio_grpc/tests/protos/CUSTOM_APP_MODEL_GENERATED/fakeapp.proto b/django_socio_grpc/tests/protos/CUSTOM_APP_MODEL_GENERATED/fakeapp.proto index e48c0042..26c09b6c 100644 --- a/django_socio_grpc/tests/protos/CUSTOM_APP_MODEL_GENERATED/fakeapp.proto +++ b/django_socio_grpc/tests/protos/CUSTOM_APP_MODEL_GENERATED/fakeapp.proto @@ -16,13 +16,13 @@ message ForeignModelListResponse { } message ForeignModelResponse { - optional string uuid = 1; + string uuid = 1; string name = 2; } message ForeignModelRetrieveCustomResponse { string name = 1; - optional string custom = 2; + string custom = 2; } message ForeignModelRetrieveCustomRetrieveRequest { diff --git a/django_socio_grpc/tests/protos/MODEL_WITH_KNOWN_METHOD_OVERRIDEN_GENERATED/fakeapp.proto b/django_socio_grpc/tests/protos/MODEL_WITH_KNOWN_METHOD_OVERRIDEN_GENERATED/fakeapp.proto index 3d094fc2..96a0c7a8 100644 --- a/django_socio_grpc/tests/protos/MODEL_WITH_KNOWN_METHOD_OVERRIDEN_GENERATED/fakeapp.proto +++ b/django_socio_grpc/tests/protos/MODEL_WITH_KNOWN_METHOD_OVERRIDEN_GENERATED/fakeapp.proto @@ -16,8 +16,8 @@ service SpecialFieldsModelController { // Test comment for whole message message CustomRetrieveResponseSpecialFieldsModelResponse { - optional string uuid = 1; - optional int32 default_method_field = 2; + string uuid = 1; + int32 default_method_field = 2; repeated google.protobuf.Struct custom_method_field = 3; } @@ -53,10 +53,10 @@ message SpecialFieldsModelRequest { // Special Fields Model // with two lines comment message SpecialFieldsModelResponse { - optional string uuid = 1; - optional google.protobuf.Struct meta_datas = 2; + string uuid = 1; + google.protobuf.Struct meta_datas = 2; repeated int32 list_datas = 3; - optional bytes binary = 4; + bytes binary = 4; } message SpecialFieldsModelRetrieveRequest { diff --git a/django_socio_grpc/tests/protos/MODEL_WITH_M2M_GENERATED/fakeapp.proto b/django_socio_grpc/tests/protos/MODEL_WITH_M2M_GENERATED/fakeapp.proto index c440748c..35ef31bf 100644 --- a/django_socio_grpc/tests/protos/MODEL_WITH_M2M_GENERATED/fakeapp.proto +++ b/django_socio_grpc/tests/protos/MODEL_WITH_M2M_GENERATED/fakeapp.proto @@ -14,7 +14,7 @@ service RelatedFieldModelController { } message ForeignModelResponse { - optional string uuid = 1; + string uuid = 1; string name = 2; } @@ -25,7 +25,7 @@ message ManyManyModelRequest { } message ManyManyModelResponse { - optional string uuid = 1; + string uuid = 1; string name = 2; } @@ -57,13 +57,13 @@ message RelatedFieldModelRequest { } message RelatedFieldModelResponse { - optional string uuid = 1; - optional ForeignModelResponse foreign = 2; + string uuid = 1; + ForeignModelResponse foreign = 2; repeated ManyManyModelResponse many_many = 3; - optional int32 slug_test_model = 4; + int32 slug_test_model = 4; repeated bool slug_reverse_test_model = 5; repeated string slug_many_many = 6; - optional string proto_slug_related_field = 7; + string proto_slug_related_field = 7; string custom_field_name = 8; repeated string many_many_foreigns = 9; } diff --git a/django_socio_grpc/tests/protos/MODEL_WITH_STRUCT_IMORT_IN_ARRAY/fakeapp.proto b/django_socio_grpc/tests/protos/MODEL_WITH_STRUCT_IMORT_IN_ARRAY/fakeapp.proto index 8ae6aecd..cff5251f 100644 --- a/django_socio_grpc/tests/protos/MODEL_WITH_STRUCT_IMORT_IN_ARRAY/fakeapp.proto +++ b/django_socio_grpc/tests/protos/MODEL_WITH_STRUCT_IMORT_IN_ARRAY/fakeapp.proto @@ -14,7 +14,7 @@ message ImportStructEvenInArrayModelRequest { } message ImportStructEvenInArrayModelResponse { - optional string uuid = 1; + string uuid = 1; repeated google.protobuf.Struct this_is_crazy = 2; } diff --git a/django_socio_grpc/tests/protos/NO_MODEL_GENERATED/fakeapp.proto b/django_socio_grpc/tests/protos/NO_MODEL_GENERATED/fakeapp.proto index 37fc3322..ed6d73e7 100644 --- a/django_socio_grpc/tests/protos/NO_MODEL_GENERATED/fakeapp.proto +++ b/django_socio_grpc/tests/protos/NO_MODEL_GENERATED/fakeapp.proto @@ -100,7 +100,7 @@ message BasicProtoListChildRequest { } message BasicProtoListChildResponse { - optional int32 id = 1; + int32 id = 1; string title = 2; optional string text = 3; } diff --git a/django_socio_grpc/tests/protos/RECURSIVE_MODEL_GENERATED/fakeapp.proto b/django_socio_grpc/tests/protos/RECURSIVE_MODEL_GENERATED/fakeapp.proto index 893609e1..ff9d7ff9 100644 --- a/django_socio_grpc/tests/protos/RECURSIVE_MODEL_GENERATED/fakeapp.proto +++ b/django_socio_grpc/tests/protos/RECURSIVE_MODEL_GENERATED/fakeapp.proto @@ -39,8 +39,8 @@ message RecursiveTestModelRequest { } message RecursiveTestModelResponse { - optional string uuid = 1; - optional RecursiveTestModelResponse parent = 2; + string uuid = 1; + RecursiveTestModelResponse parent = 2; repeated RecursiveTestModelResponse children = 3; } diff --git a/django_socio_grpc/tests/protos/SIMPLE_MODEL_GENERATED/fakeapp.proto b/django_socio_grpc/tests/protos/SIMPLE_MODEL_GENERATED/fakeapp.proto index 7fc26a02..9e0adff9 100644 --- a/django_socio_grpc/tests/protos/SIMPLE_MODEL_GENERATED/fakeapp.proto +++ b/django_socio_grpc/tests/protos/SIMPLE_MODEL_GENERATED/fakeapp.proto @@ -51,7 +51,7 @@ message UnitTestModelRequest { } message UnitTestModelResponse { - optional int32 id = 1; + int32 id = 1; string title = 2; optional string text = 3; } From 9b84d94fd5d23c1272d5ac35b71af6cd972f4998 Mon Sep 17 00:00:00 2001 From: AMontagu Date: Mon, 8 Apr 2024 19:13:16 +0200 Subject: [PATCH 2/3] improve condition --- django_socio_grpc/protobuf/proto_classes.py | 12 +- .../tests/fakeapp/grpc/fakeapp.proto | 10 +- .../tests/fakeapp/grpc/fakeapp_pb2.py | 312 +++++++++--------- .../ALL_APP_GENERATED_SEPARATE/fakeapp.proto | 10 +- 4 files changed, 171 insertions(+), 173 deletions(-) diff --git a/django_socio_grpc/protobuf/proto_classes.py b/django_socio_grpc/protobuf/proto_classes.py index 5df5ad88..de2027bf 100644 --- a/django_socio_grpc/protobuf/proto_classes.py +++ b/django_socio_grpc/protobuf/proto_classes.py @@ -94,16 +94,14 @@ def _get_cardinality( """ INFO - AM - 04/01/2023 If field can be null -> optional - if field is not required and there is no default or we are in a request message -> optional. Since DRF 3.0 When using model default, only required is set to False. The model default is not set into the field as just passing None will result in model default. https://github.com/encode/django-rest-framework/issues/2683 - if field.default is set (meaning not None or empty) and we are in a request message -> optional + if we are in a request message and field is not required -> optional. Since DRF 3.0 When using model default, only required is set to False. The model default is not set into the field as just passing None will result in model default. https://github.com/encode/django-rest-framework/issues/2683 + if we are in a request message and field.default is set (meaning not None or empty) -> optional Not dealing with field.allow_blank now as it doesn't seem to be related to OPTIONAl and more about validation and only exist for charfield """ - if ( - field.allow_null - or (not field.required or field.default not in [None, empty]) - and (in_request or field.default not in [None, empty]) - ): + if field.allow_null: + return FieldCardinality.OPTIONAL + if in_request and (not field.required or field.default not in [None, empty]): return FieldCardinality.OPTIONAL return FieldCardinality.NONE diff --git a/django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto b/django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto index 3858cb57..acd59d4b 100644 --- a/django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto +++ b/django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto @@ -314,11 +314,11 @@ message DefaultValueRequest { message DefaultValueResponse { int32 id = 1; - optional string string_required_but_serializer_default = 2; - optional int32 int_required_but_serializer_default = 3; - optional bool boolean_required_but_serializer_default = 4; - optional string string_default_but_serializer_default = 5; - optional string string_nullable_default_but_serializer_default = 6; + string string_required_but_serializer_default = 2; + int32 int_required_but_serializer_default = 3; + bool boolean_required_but_serializer_default = 4; + string string_default_but_serializer_default = 5; + string string_nullable_default_but_serializer_default = 6; string string_required = 7; string string_blank = 8; optional string string_nullable = 9; diff --git a/django_socio_grpc/tests/fakeapp/grpc/fakeapp_pb2.py b/django_socio_grpc/tests/fakeapp/grpc/fakeapp_pb2.py index 1b648b8e..da63ec41 100644 --- a/django_socio_grpc/tests/fakeapp/grpc/fakeapp_pb2.py +++ b/django_socio_grpc/tests/fakeapp/grpc/fakeapp_pb2.py @@ -16,7 +16,7 @@ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n2django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto\x12\x11myproject.fakeapp\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\"k\n\x1c\x42\x61seProtoExampleListResponse\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.BaseProtoExampleResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"X\n\x17\x42\x61seProtoExampleRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x05\x12\x13\n\x0bis_archived\x18\x03 \x01(\x08\"Y\n\x18\x42\x61seProtoExampleResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x05\x12\x13\n\x0bis_archived\x18\x03 \x01(\x08\"1\n\x1c\x42\x61sicFetchDataForUserRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\"/\n\x1f\x42\x61sicFetchTranslatedKeyResponse\x12\x0c\n\x04text\x18\x01 \x01(\t\"#\n\x14\x42\x61sicListIdsResponse\x12\x0b\n\x03ids\x18\x01 \x03(\x05\"%\n\x15\x42\x61sicListNameResponse\x12\x0c\n\x04name\x18\x01 \x03(\t\"e\n\x19\x42\x61sicMixParamListResponse\x12\x39\n\x07results\x18\x01 \x03(\x0b\x32(.myproject.fakeapp.BasicMixParamResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"*\n\x15\x42\x61sicMixParamResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\"b\n\'BasicMixParamWithSerializerListResponse\x12(\n\x07results\x18\x01 \x03(\x0b\x32\x17.google.protobuf.Struct\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"y\n#BasicParamWithSerializerListRequest\x12\x43\n\x07results\x18\x01 \x03(\x0b\x32\x32.myproject.fakeapp.BasicParamWithSerializerRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xbd\x01\n\x1f\x42\x61sicParamWithSerializerRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\ruser_password\x18\x03 \x01(\t\x12\x15\n\rbytes_example\x18\x04 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x05 \x03(\x0b\x32\x17.google.protobuf.Struct\"o\n\x1e\x42\x61sicProtoListChildListRequest\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.BasicProtoListChildRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"q\n\x1f\x42\x61sicProtoListChildListResponse\x12?\n\x07results\x18\x01 \x03(\x0b\x32..myproject.fakeapp.BasicProtoListChildResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"_\n\x1a\x42\x61sicProtoListChildRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"T\n\x1b\x42\x61sicProtoListChildResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_text\"c\n\x18\x42\x61sicServiceListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.BasicServiceResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb1\x01\n\x13\x42\x61sicServiceRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\ruser_password\x18\x03 \x01(\t\x12\x15\n\rbytes_example\x18\x04 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x05 \x03(\x0b\x32\x17.google.protobuf.Struct\"\x9b\x01\n\x14\x42\x61sicServiceResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\rbytes_example\x18\x03 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x04 \x03(\x0b\x32\x17.google.protobuf.Struct\"k\n\x1c\x43ustomMixParamForListRequest\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.CustomMixParamForRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"-\n\x18\x43ustomMixParamForRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\")\n\x14\x43ustomNameForRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\"*\n\x15\x43ustomNameForResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\"\x94\x01\n0CustomRetrieveResponseSpecialFieldsModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x1c\n\x14\x64\x65\x66\x61ult_method_field\x18\x02 \x01(\x05\x12\x34\n\x13\x63ustom_method_field\x18\x03 \x03(\x0b\x32\x17.google.protobuf.Struct\"(\n\x1a\x44\x65\x66\x61ultValueDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x19\n\x17\x44\x65\x66\x61ultValueListRequest\"c\n\x18\x44\x65\x66\x61ultValueListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.DefaultValueResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb1\t\n DefaultValuePartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x33\n&string_required_but_serializer_default\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x30\n#int_required_but_serializer_default\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x34\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x32\n%string_default_but_serializer_default\x18\x05 \x01(\tH\x04\x88\x01\x01\x12;\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x07 \x03(\t\x12\x17\n\x0fstring_required\x18\x08 \x01(\t\x12\x19\n\x0cstring_blank\x18\t \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0fstring_nullable\x18\n \x01(\tH\x07\x88\x01\x01\x12\x1b\n\x0estring_default\x18\x0b \x01(\tH\x08\x88\x01\x01\x12%\n\x18string_default_and_blank\x18\x0c \x01(\tH\t\x88\x01\x01\x12*\n\x1dstring_null_default_and_blank\x18\r \x01(\tH\n\x88\x01\x01\x12\x14\n\x0cint_required\x18\x0e \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0f \x01(\x05H\x0b\x88\x01\x01\x12\x18\n\x0bint_default\x18\x10 \x01(\x05H\x0c\x88\x01\x01\x12\x18\n\x10\x62oolean_required\x18\x11 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x12 \x01(\x08H\r\x88\x01\x01\x12\"\n\x15\x62oolean_default_false\x18\x13 \x01(\x08H\x0e\x88\x01\x01\x12!\n\x14\x62oolean_default_true\x18\x14 \x01(\x08H\x0f\x88\x01\x01\x42\x05\n\x03_idB)\n\'_string_required_but_serializer_defaultB&\n$_int_required_but_serializer_defaultB*\n(_boolean_required_but_serializer_defaultB(\n&_string_default_but_serializer_defaultB1\n/_string_nullable_default_but_serializer_defaultB\x0f\n\r_string_blankB\x12\n\x10_string_nullableB\x11\n\x0f_string_defaultB\x1b\n\x19_string_default_and_blankB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x0e\n\x0c_int_defaultB\x13\n\x11_boolean_nullableB\x18\n\x16_boolean_default_falseB\x17\n\x15_boolean_default_true\"\x84\t\n\x13\x44\x65\x66\x61ultValueRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x33\n&string_required_but_serializer_default\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x30\n#int_required_but_serializer_default\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x34\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x32\n%string_default_but_serializer_default\x18\x05 \x01(\tH\x04\x88\x01\x01\x12;\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x17\n\x0fstring_required\x18\x07 \x01(\t\x12\x19\n\x0cstring_blank\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0fstring_nullable\x18\t \x01(\tH\x07\x88\x01\x01\x12\x1b\n\x0estring_default\x18\n \x01(\tH\x08\x88\x01\x01\x12%\n\x18string_default_and_blank\x18\x0b \x01(\tH\t\x88\x01\x01\x12*\n\x1dstring_null_default_and_blank\x18\x0c \x01(\tH\n\x88\x01\x01\x12\x14\n\x0cint_required\x18\r \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0e \x01(\x05H\x0b\x88\x01\x01\x12\x18\n\x0bint_default\x18\x0f \x01(\x05H\x0c\x88\x01\x01\x12\x18\n\x10\x62oolean_required\x18\x10 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x11 \x01(\x08H\r\x88\x01\x01\x12\"\n\x15\x62oolean_default_false\x18\x12 \x01(\x08H\x0e\x88\x01\x01\x12!\n\x14\x62oolean_default_true\x18\x13 \x01(\x08H\x0f\x88\x01\x01\x42\x05\n\x03_idB)\n\'_string_required_but_serializer_defaultB&\n$_int_required_but_serializer_defaultB*\n(_boolean_required_but_serializer_defaultB(\n&_string_default_but_serializer_defaultB1\n/_string_nullable_default_but_serializer_defaultB\x0f\n\r_string_blankB\x12\n\x10_string_nullableB\x11\n\x0f_string_defaultB\x1b\n\x19_string_default_and_blankB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x0e\n\x0c_int_defaultB\x13\n\x11_boolean_nullableB\x18\n\x16_boolean_default_falseB\x17\n\x15_boolean_default_true\"\xd7\x07\n\x14\x44\x65\x66\x61ultValueResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x33\n&string_required_but_serializer_default\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x30\n#int_required_but_serializer_default\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x34\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x32\n%string_default_but_serializer_default\x18\x05 \x01(\tH\x03\x88\x01\x01\x12;\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0fstring_required\x18\x07 \x01(\t\x12\x14\n\x0cstring_blank\x18\x08 \x01(\t\x12\x1c\n\x0fstring_nullable\x18\t \x01(\tH\x05\x88\x01\x01\x12\x16\n\x0estring_default\x18\n \x01(\t\x12 \n\x18string_default_and_blank\x18\x0b \x01(\t\x12*\n\x1dstring_null_default_and_blank\x18\x0c \x01(\tH\x06\x88\x01\x01\x12\x14\n\x0cint_required\x18\r \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0e \x01(\x05H\x07\x88\x01\x01\x12\x13\n\x0bint_default\x18\x0f \x01(\x05\x12\x18\n\x10\x62oolean_required\x18\x10 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x11 \x01(\x08H\x08\x88\x01\x01\x12\x1d\n\x15\x62oolean_default_false\x18\x12 \x01(\x08\x12\x1c\n\x14\x62oolean_default_true\x18\x13 \x01(\x08\x42)\n\'_string_required_but_serializer_defaultB&\n$_int_required_but_serializer_defaultB*\n(_boolean_required_but_serializer_defaultB(\n&_string_default_but_serializer_defaultB1\n/_string_nullable_default_but_serializer_defaultB\x12\n\x10_string_nullableB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x13\n\x11_boolean_nullable\")\n\x1b\x44\x65\x66\x61ultValueRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"3\n%ExceptionStreamRaiseExceptionResponse\x12\n\n\x02id\x18\x01 \x01(\t\"\x19\n\x17\x46oreignModelListRequest\"c\n\x18\x46oreignModelListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.ForeignModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"2\n\x14\x46oreignModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"B\n\"ForeignModelRetrieveCustomResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06\x63ustom\x18\x02 \x01(\t\"9\n)ForeignModelRetrieveCustomRetrieveRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"q\n#ImportStructEvenInArrayModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\rthis_is_crazy\x18\x02 \x03(\x0b\x32\x17.google.protobuf.StructB\x07\n\x05_uuid\"d\n$ImportStructEvenInArrayModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12.\n\rthis_is_crazy\x18\x02 \x03(\x0b\x32\x17.google.protobuf.Struct\"c\n\x14ManyManyModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\t\x12!\n\x19test_write_only_on_nested\x18\x03 \x01(\tB\x07\n\x05_uuid\"3\n\x15ManyManyModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"0\n RecursiveTestModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1f\n\x1dRecursiveTestModelListRequest\"o\n\x1eRecursiveTestModelListResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xf2\x01\n&RecursiveTestModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x41\n\x06parent\x18\x03 \x01(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestH\x01\x88\x01\x01\x12>\n\x08\x63hildren\x18\x04 \x03(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestB\x07\n\x05_uuidB\t\n\x07_parent\"\xc5\x01\n\x19RecursiveTestModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x41\n\x06parent\x18\x02 \x01(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestH\x01\x88\x01\x01\x12>\n\x08\x63hildren\x18\x03 \x03(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestB\x07\n\x05_uuidB\t\n\x07_parent\"\xaa\x01\n\x1aRecursiveTestModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12=\n\x06parent\x18\x02 \x01(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponse\x12?\n\x08\x63hildren\x18\x03 \x03(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponse\"1\n!RecursiveTestModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"/\n\x1fRelatedFieldModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1e\n\x1cRelatedFieldModelListRequest\"|\n\x1dRelatedFieldModelListResponse\x12L\n\x16list_custom_field_name\x18\x01 \x03(\x0b\x32,.myproject.fakeapp.RelatedFieldModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xd6\x01\n%RelatedFieldModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12:\n\tmany_many\x18\x02 \x03(\x0b\x32\'.myproject.fakeapp.ManyManyModelRequest\x12\x19\n\x11\x63ustom_field_name\x18\x03 \x01(\t\x12\x1e\n\x16_partial_update_fields\x18\x04 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x05 \x03(\tB\x07\n\x05_uuid\"\xa9\x01\n\x18RelatedFieldModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12:\n\tmany_many\x18\x02 \x03(\x0b\x32\'.myproject.fakeapp.ManyManyModelRequest\x12\x19\n\x11\x63ustom_field_name\x18\x03 \x01(\t\x12\x1a\n\x12many_many_foreigns\x18\x04 \x03(\tB\x07\n\x05_uuid\"\xcb\x02\n\x19RelatedFieldModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x38\n\x07\x66oreign\x18\x02 \x01(\x0b\x32\'.myproject.fakeapp.ForeignModelResponse\x12;\n\tmany_many\x18\x03 \x03(\x0b\x32(.myproject.fakeapp.ManyManyModelResponse\x12\x17\n\x0fslug_test_model\x18\x04 \x01(\x05\x12\x1f\n\x17slug_reverse_test_model\x18\x05 \x03(\x08\x12\x16\n\x0eslug_many_many\x18\x06 \x03(\t\x12 \n\x18proto_slug_related_field\x18\x07 \x01(\t\x12\x19\n\x11\x63ustom_field_name\x18\x08 \x01(\t\x12\x1a\n\x12many_many_foreigns\x18\t \x03(\t\"0\n RelatedFieldModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"5\n%SimpleRelatedFieldModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"$\n\"SimpleRelatedFieldModelListRequest\"y\n#SimpleRelatedFieldModelListResponse\x12\x43\n\x07results\x18\x01 \x03(\x0b\x32\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\x84\x02\n+SimpleRelatedFieldModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x14\n\x07\x66oreign\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x11\n\tmany_many\x18\x05 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x06 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x07 \x03(\tB\x07\n\x05_uuidB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"\xd7\x01\n\x1eSimpleRelatedFieldModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x66oreign\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\tmany_many\x18\x04 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x05 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x06 \x03(\tB\x07\n\x05_uuidB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"\xca\x01\n\x1fSimpleRelatedFieldModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x14\n\x07\x66oreign\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x11\n\tmany_many\x18\x04 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x05 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x06 \x03(\tB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"6\n&SimpleRelatedFieldModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"0\n SpecialFieldsModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1f\n\x1dSpecialFieldsModelListRequest\"o\n\x1eSpecialFieldsModelListResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.SpecialFieldsModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb9\x01\n&SpecialFieldsModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x30\n\nmeta_datas\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x12\x12\n\nlist_datas\x18\x04 \x03(\x05\x42\x07\n\x05_uuidB\r\n\x0b_meta_datas\"\x8c\x01\n\x19SpecialFieldsModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x30\n\nmeta_datas\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x12\x12\n\nlist_datas\x18\x03 \x03(\x05\x42\x07\n\x05_uuidB\r\n\x0b_meta_datas\"{\n\x1aSpecialFieldsModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12+\n\nmeta_datas\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x12\n\nlist_datas\x18\x03 \x03(\x05\x12\x0e\n\x06\x62inary\x18\x04 \x01(\x0c\"1\n!SpecialFieldsModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"k\n\x1cStreamInStreamInListResponse\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.StreamInStreamInResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\'\n\x17StreamInStreamInRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\")\n\x18StreamInStreamInResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\"-\n\x1dStreamInStreamToStreamRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\".\n\x1eStreamInStreamToStreamResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\"=\n)SyncUnitTestModelListWithExtraArgsRequest\x12\x10\n\x08\x61rchived\x18\x01 \x01(\x08\")\n\x1bUnitTestModelDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x8e\x01\n\"UnitTestModelListExtraArgsResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\x12\x1e\n\x16query_fetched_datetime\x18\x02 \x01(\t\x12\x39\n\x07results\x18\x03 \x03(\x0b\x32(.myproject.fakeapp.UnitTestModelResponse\"\x1a\n\x18UnitTestModelListRequest\"e\n\x19UnitTestModelListResponse\x12\x39\n\x07results\x18\x01 \x03(\x0b\x32(.myproject.fakeapp.UnitTestModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"9\n%UnitTestModelListWithExtraArgsRequest\x12\x10\n\x08\x61rchived\x18\x01 \x01(\x08\"\x86\x01\n!UnitTestModelPartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x11\n\x04text\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"Y\n\x14UnitTestModelRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"N\n\x15UnitTestModelResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_text\"*\n\x1cUnitTestModelRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x1c\n\x1aUnitTestModelStreamRequest\"9\n+UnitTestModelWithStructFilterDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\xb5\x01\n3UnitTestModelWithStructFilterEmptyWithFilterRequest\x12.\n\x08_filters\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x88\x01\x01\x12\x31\n\x0b_pagination\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x42\x0b\n\tX_filtersB\x0e\n\x0cX_pagination\"\xaa\x01\n(UnitTestModelWithStructFilterListRequest\x12.\n\x08_filters\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x88\x01\x01\x12\x31\n\x0b_pagination\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x42\x0b\n\tX_filtersB\x0e\n\x0cX_pagination\"\x85\x01\n)UnitTestModelWithStructFilterListResponse\x12I\n\x07results\x18\x01 \x03(\x0b\x32\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\x96\x01\n1UnitTestModelWithStructFilterPartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x11\n\x04text\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"i\n$UnitTestModelWithStructFilterRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"^\n%UnitTestModelWithStructFilterResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_text\":\n,UnitTestModelWithStructFilterRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\",\n*UnitTestModelWithStructFilterStreamRequest2\xca\t\n\x0f\x42\x61sicController\x12t\n\tBasicList\x12\x31.myproject.fakeapp.BasicProtoListChildListRequest\x1a\x32.myproject.fakeapp.BasicProtoListChildListResponse\"\x00\x12[\n\x06\x43reate\x12&.myproject.fakeapp.BasicServiceRequest\x1a\'.myproject.fakeapp.BasicServiceResponse\"\x00\x12n\n\x10\x46\x65tchDataForUser\x12/.myproject.fakeapp.BasicFetchDataForUserRequest\x1a\'.myproject.fakeapp.BasicServiceResponse\"\x00\x12\x62\n\x12\x46\x65tchTranslatedKey\x12\x16.google.protobuf.Empty\x1a\x32.myproject.fakeapp.BasicFetchTranslatedKeyResponse\"\x00\x12T\n\x0bGetMultiple\x12\x16.google.protobuf.Empty\x1a+.myproject.fakeapp.BasicServiceListResponse\"\x00\x12L\n\x07ListIds\x12\x16.google.protobuf.Empty\x1a\'.myproject.fakeapp.BasicListIdsResponse\"\x00\x12N\n\x08ListName\x12\x16.google.protobuf.Empty\x1a(.myproject.fakeapp.BasicListNameResponse\"\x00\x12k\n\x08MixParam\x12/.myproject.fakeapp.CustomMixParamForListRequest\x1a,.myproject.fakeapp.BasicMixParamListResponse\"\x00\x12\x8e\x01\n\x16MixParamWithSerializer\x12\x36.myproject.fakeapp.BasicParamWithSerializerListRequest\x1a:.myproject.fakeapp.BasicMixParamWithSerializerListResponse\"\x00\x12_\n\x08MyMethod\x12\'.myproject.fakeapp.CustomNameForRequest\x1a(.myproject.fakeapp.CustomNameForResponse\"\x00\x12x\n\x17TestBaseProtoSerializer\x12*.myproject.fakeapp.BaseProtoExampleRequest\x1a/.myproject.fakeapp.BaseProtoExampleListResponse\"\x00\x12\x43\n\x0fTestEmptyMethod\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x32\xe1\x04\n\x16\x44\x65\x66\x61ultValueController\x12[\n\x06\x43reate\x12&.myproject.fakeapp.DefaultValueRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12R\n\x07\x44\x65stroy\x12-.myproject.fakeapp.DefaultValueDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x61\n\x04List\x12*.myproject.fakeapp.DefaultValueListRequest\x1a+.myproject.fakeapp.DefaultValueListResponse\"\x00\x12o\n\rPartialUpdate\x12\x33.myproject.fakeapp.DefaultValuePartialUpdateRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12\x65\n\x08Retrieve\x12..myproject.fakeapp.DefaultValueRetrieveRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12[\n\x06Update\x12&.myproject.fakeapp.DefaultValueRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x32\xd1\x02\n\x13\x45xceptionController\x12@\n\x0c\x41PIException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12\x41\n\rGRPCException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12l\n\x14StreamRaiseException\x12\x16.google.protobuf.Empty\x1a\x38.myproject.fakeapp.ExceptionStreamRaiseExceptionResponse\"\x00\x30\x01\x12G\n\x13UnaryRaiseException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x32\xff\x01\n\x16\x46oreignModelController\x12\x61\n\x04List\x12*.myproject.fakeapp.ForeignModelListRequest\x1a+.myproject.fakeapp.ForeignModelListResponse\"\x00\x12\x81\x01\n\x08Retrieve\x12<.myproject.fakeapp.ForeignModelRetrieveCustomRetrieveRequest\x1a\x35.myproject.fakeapp.ForeignModelRetrieveCustomResponse\"\x00\x32\xa5\x01\n&ImportStructEvenInArrayModelController\x12{\n\x06\x43reate\x12\x36.myproject.fakeapp.ImportStructEvenInArrayModelRequest\x1a\x37.myproject.fakeapp.ImportStructEvenInArrayModelResponse\"\x00\x32\xa9\x05\n\x1cRecursiveTestModelController\x12g\n\x06\x43reate\x12,.myproject.fakeapp.RecursiveTestModelRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12X\n\x07\x44\x65stroy\x12\x33.myproject.fakeapp.RecursiveTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12m\n\x04List\x12\x30.myproject.fakeapp.RecursiveTestModelListRequest\x1a\x31.myproject.fakeapp.RecursiveTestModelListResponse\"\x00\x12{\n\rPartialUpdate\x12\x39.myproject.fakeapp.RecursiveTestModelPartialUpdateRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12q\n\x08Retrieve\x12\x34.myproject.fakeapp.RecursiveTestModelRetrieveRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12g\n\x06Update\x12,.myproject.fakeapp.RecursiveTestModelRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x32\x9d\x05\n\x1bRelatedFieldModelController\x12\x65\n\x06\x43reate\x12+.myproject.fakeapp.RelatedFieldModelRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12W\n\x07\x44\x65stroy\x12\x32.myproject.fakeapp.RelatedFieldModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12k\n\x04List\x12/.myproject.fakeapp.RelatedFieldModelListRequest\x1a\x30.myproject.fakeapp.RelatedFieldModelListResponse\"\x00\x12y\n\rPartialUpdate\x12\x38.myproject.fakeapp.RelatedFieldModelPartialUpdateRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12o\n\x08Retrieve\x12\x33.myproject.fakeapp.RelatedFieldModelRetrieveRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12\x65\n\x06Update\x12+.myproject.fakeapp.RelatedFieldModelRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x32\xe6\x05\n!SimpleRelatedFieldModelController\x12q\n\x06\x43reate\x12\x31.myproject.fakeapp.SimpleRelatedFieldModelRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12]\n\x07\x44\x65stroy\x12\x38.myproject.fakeapp.SimpleRelatedFieldModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12w\n\x04List\x12\x35.myproject.fakeapp.SimpleRelatedFieldModelListRequest\x1a\x36.myproject.fakeapp.SimpleRelatedFieldModelListResponse\"\x00\x12\x85\x01\n\rPartialUpdate\x12>.myproject.fakeapp.SimpleRelatedFieldModelPartialUpdateRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12{\n\x08Retrieve\x12\x39.myproject.fakeapp.SimpleRelatedFieldModelRetrieveRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12q\n\x06Update\x12\x31.myproject.fakeapp.SimpleRelatedFieldModelRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x32\xc0\x05\n\x1cSpecialFieldsModelController\x12g\n\x06\x43reate\x12,.myproject.fakeapp.SpecialFieldsModelRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x12X\n\x07\x44\x65stroy\x12\x33.myproject.fakeapp.SpecialFieldsModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12m\n\x04List\x12\x30.myproject.fakeapp.SpecialFieldsModelListRequest\x1a\x31.myproject.fakeapp.SpecialFieldsModelListResponse\"\x00\x12{\n\rPartialUpdate\x12\x39.myproject.fakeapp.SpecialFieldsModelPartialUpdateRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x12\x87\x01\n\x08Retrieve\x12\x34.myproject.fakeapp.SpecialFieldsModelRetrieveRequest\x1a\x43.myproject.fakeapp.CustomRetrieveResponseSpecialFieldsModelResponse\"\x00\x12g\n\x06Update\x12,.myproject.fakeapp.SpecialFieldsModelRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x32\xfe\x01\n\x12StreamInController\x12k\n\x08StreamIn\x12*.myproject.fakeapp.StreamInStreamInRequest\x1a/.myproject.fakeapp.StreamInStreamInListResponse\"\x00(\x01\x12{\n\x0eStreamToStream\x12\x30.myproject.fakeapp.StreamInStreamToStreamRequest\x1a\x31.myproject.fakeapp.StreamInStreamToStreamResponse\"\x00(\x01\x30\x01\x32\xe5\x06\n\x1bSyncUnitTestModelController\x12]\n\x06\x43reate\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12S\n\x07\x44\x65stroy\x12..myproject.fakeapp.UnitTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x63\n\x04List\x12+.myproject.fakeapp.UnitTestModelListRequest\x1a,.myproject.fakeapp.UnitTestModelListResponse\"\x00\x12\x8a\x01\n\x11ListWithExtraArgs\x12<.myproject.fakeapp.SyncUnitTestModelListWithExtraArgsRequest\x1a\x35.myproject.fakeapp.UnitTestModelListExtraArgsResponse\"\x00\x12q\n\rPartialUpdate\x12\x34.myproject.fakeapp.UnitTestModelPartialUpdateRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12g\n\x08Retrieve\x12/.myproject.fakeapp.UnitTestModelRetrieveRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12\x65\n\x06Stream\x12-.myproject.fakeapp.UnitTestModelStreamRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x30\x01\x12]\n\x06Update\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x32\xdd\x06\n\x17UnitTestModelController\x12]\n\x06\x43reate\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12S\n\x07\x44\x65stroy\x12..myproject.fakeapp.UnitTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x63\n\x04List\x12+.myproject.fakeapp.UnitTestModelListRequest\x1a,.myproject.fakeapp.UnitTestModelListResponse\"\x00\x12\x86\x01\n\x11ListWithExtraArgs\x12\x38.myproject.fakeapp.UnitTestModelListWithExtraArgsRequest\x1a\x35.myproject.fakeapp.UnitTestModelListExtraArgsResponse\"\x00\x12q\n\rPartialUpdate\x12\x34.myproject.fakeapp.UnitTestModelPartialUpdateRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12g\n\x08Retrieve\x12/.myproject.fakeapp.UnitTestModelRetrieveRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12\x65\n\x06Stream\x12-.myproject.fakeapp.UnitTestModelStreamRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x30\x01\x12]\n\x06Update\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x32\xad\x08\n\'UnitTestModelWithStructFilterController\x12}\n\x06\x43reate\x12\x37.myproject.fakeapp.UnitTestModelWithStructFilterRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x63\n\x07\x44\x65stroy\x12>.myproject.fakeapp.UnitTestModelWithStructFilterDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12s\n\x0f\x45mptyWithFilter\x12\x46.myproject.fakeapp.UnitTestModelWithStructFilterEmptyWithFilterRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x83\x01\n\x04List\x12;.myproject.fakeapp.UnitTestModelWithStructFilterListRequest\x1a<.myproject.fakeapp.UnitTestModelWithStructFilterListResponse\"\x00\x12\x91\x01\n\rPartialUpdate\x12\x44.myproject.fakeapp.UnitTestModelWithStructFilterPartialUpdateRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x87\x01\n\x08Retrieve\x12?.myproject.fakeapp.UnitTestModelWithStructFilterRetrieveRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x85\x01\n\x06Stream\x12=.myproject.fakeapp.UnitTestModelWithStructFilterStreamRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x30\x01\x12}\n\x06Update\x12\x37.myproject.fakeapp.UnitTestModelWithStructFilterRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n2django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto\x12\x11myproject.fakeapp\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\"k\n\x1c\x42\x61seProtoExampleListResponse\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.BaseProtoExampleResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"X\n\x17\x42\x61seProtoExampleRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x05\x12\x13\n\x0bis_archived\x18\x03 \x01(\x08\"Y\n\x18\x42\x61seProtoExampleResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x05\x12\x13\n\x0bis_archived\x18\x03 \x01(\x08\"1\n\x1c\x42\x61sicFetchDataForUserRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\"/\n\x1f\x42\x61sicFetchTranslatedKeyResponse\x12\x0c\n\x04text\x18\x01 \x01(\t\"#\n\x14\x42\x61sicListIdsResponse\x12\x0b\n\x03ids\x18\x01 \x03(\x05\"%\n\x15\x42\x61sicListNameResponse\x12\x0c\n\x04name\x18\x01 \x03(\t\"e\n\x19\x42\x61sicMixParamListResponse\x12\x39\n\x07results\x18\x01 \x03(\x0b\x32(.myproject.fakeapp.BasicMixParamResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"*\n\x15\x42\x61sicMixParamResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\"b\n\'BasicMixParamWithSerializerListResponse\x12(\n\x07results\x18\x01 \x03(\x0b\x32\x17.google.protobuf.Struct\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"y\n#BasicParamWithSerializerListRequest\x12\x43\n\x07results\x18\x01 \x03(\x0b\x32\x32.myproject.fakeapp.BasicParamWithSerializerRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xbd\x01\n\x1f\x42\x61sicParamWithSerializerRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\ruser_password\x18\x03 \x01(\t\x12\x15\n\rbytes_example\x18\x04 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x05 \x03(\x0b\x32\x17.google.protobuf.Struct\"o\n\x1e\x42\x61sicProtoListChildListRequest\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.BasicProtoListChildRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"q\n\x1f\x42\x61sicProtoListChildListResponse\x12?\n\x07results\x18\x01 \x03(\x0b\x32..myproject.fakeapp.BasicProtoListChildResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"_\n\x1a\x42\x61sicProtoListChildRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"T\n\x1b\x42\x61sicProtoListChildResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_text\"c\n\x18\x42\x61sicServiceListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.BasicServiceResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb1\x01\n\x13\x42\x61sicServiceRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\ruser_password\x18\x03 \x01(\t\x12\x15\n\rbytes_example\x18\x04 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x05 \x03(\x0b\x32\x17.google.protobuf.Struct\"\x9b\x01\n\x14\x42\x61sicServiceResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\rbytes_example\x18\x03 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x04 \x03(\x0b\x32\x17.google.protobuf.Struct\"k\n\x1c\x43ustomMixParamForListRequest\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.CustomMixParamForRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"-\n\x18\x43ustomMixParamForRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\")\n\x14\x43ustomNameForRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\"*\n\x15\x43ustomNameForResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\"\x94\x01\n0CustomRetrieveResponseSpecialFieldsModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x1c\n\x14\x64\x65\x66\x61ult_method_field\x18\x02 \x01(\x05\x12\x34\n\x13\x63ustom_method_field\x18\x03 \x03(\x0b\x32\x17.google.protobuf.Struct\"(\n\x1a\x44\x65\x66\x61ultValueDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x19\n\x17\x44\x65\x66\x61ultValueListRequest\"c\n\x18\x44\x65\x66\x61ultValueListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.DefaultValueResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb1\t\n DefaultValuePartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x33\n&string_required_but_serializer_default\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x30\n#int_required_but_serializer_default\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x34\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x32\n%string_default_but_serializer_default\x18\x05 \x01(\tH\x04\x88\x01\x01\x12;\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x07 \x03(\t\x12\x17\n\x0fstring_required\x18\x08 \x01(\t\x12\x19\n\x0cstring_blank\x18\t \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0fstring_nullable\x18\n \x01(\tH\x07\x88\x01\x01\x12\x1b\n\x0estring_default\x18\x0b \x01(\tH\x08\x88\x01\x01\x12%\n\x18string_default_and_blank\x18\x0c \x01(\tH\t\x88\x01\x01\x12*\n\x1dstring_null_default_and_blank\x18\r \x01(\tH\n\x88\x01\x01\x12\x14\n\x0cint_required\x18\x0e \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0f \x01(\x05H\x0b\x88\x01\x01\x12\x18\n\x0bint_default\x18\x10 \x01(\x05H\x0c\x88\x01\x01\x12\x18\n\x10\x62oolean_required\x18\x11 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x12 \x01(\x08H\r\x88\x01\x01\x12\"\n\x15\x62oolean_default_false\x18\x13 \x01(\x08H\x0e\x88\x01\x01\x12!\n\x14\x62oolean_default_true\x18\x14 \x01(\x08H\x0f\x88\x01\x01\x42\x05\n\x03_idB)\n\'_string_required_but_serializer_defaultB&\n$_int_required_but_serializer_defaultB*\n(_boolean_required_but_serializer_defaultB(\n&_string_default_but_serializer_defaultB1\n/_string_nullable_default_but_serializer_defaultB\x0f\n\r_string_blankB\x12\n\x10_string_nullableB\x11\n\x0f_string_defaultB\x1b\n\x19_string_default_and_blankB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x0e\n\x0c_int_defaultB\x13\n\x11_boolean_nullableB\x18\n\x16_boolean_default_falseB\x17\n\x15_boolean_default_true\"\x84\t\n\x13\x44\x65\x66\x61ultValueRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x33\n&string_required_but_serializer_default\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x30\n#int_required_but_serializer_default\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x34\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x32\n%string_default_but_serializer_default\x18\x05 \x01(\tH\x04\x88\x01\x01\x12;\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x17\n\x0fstring_required\x18\x07 \x01(\t\x12\x19\n\x0cstring_blank\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0fstring_nullable\x18\t \x01(\tH\x07\x88\x01\x01\x12\x1b\n\x0estring_default\x18\n \x01(\tH\x08\x88\x01\x01\x12%\n\x18string_default_and_blank\x18\x0b \x01(\tH\t\x88\x01\x01\x12*\n\x1dstring_null_default_and_blank\x18\x0c \x01(\tH\n\x88\x01\x01\x12\x14\n\x0cint_required\x18\r \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0e \x01(\x05H\x0b\x88\x01\x01\x12\x18\n\x0bint_default\x18\x0f \x01(\x05H\x0c\x88\x01\x01\x12\x18\n\x10\x62oolean_required\x18\x10 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x11 \x01(\x08H\r\x88\x01\x01\x12\"\n\x15\x62oolean_default_false\x18\x12 \x01(\x08H\x0e\x88\x01\x01\x12!\n\x14\x62oolean_default_true\x18\x13 \x01(\x08H\x0f\x88\x01\x01\x42\x05\n\x03_idB)\n\'_string_required_but_serializer_defaultB&\n$_int_required_but_serializer_defaultB*\n(_boolean_required_but_serializer_defaultB(\n&_string_default_but_serializer_defaultB1\n/_string_nullable_default_but_serializer_defaultB\x0f\n\r_string_blankB\x12\n\x10_string_nullableB\x11\n\x0f_string_defaultB\x1b\n\x19_string_default_and_blankB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x0e\n\x0c_int_defaultB\x13\n\x11_boolean_nullableB\x18\n\x16_boolean_default_falseB\x17\n\x15_boolean_default_true\"\xe2\x05\n\x14\x44\x65\x66\x61ultValueResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12.\n&string_required_but_serializer_default\x18\x02 \x01(\t\x12+\n#int_required_but_serializer_default\x18\x03 \x01(\x05\x12/\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08\x12-\n%string_default_but_serializer_default\x18\x05 \x01(\t\x12\x36\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\t\x12\x17\n\x0fstring_required\x18\x07 \x01(\t\x12\x14\n\x0cstring_blank\x18\x08 \x01(\t\x12\x1c\n\x0fstring_nullable\x18\t \x01(\tH\x00\x88\x01\x01\x12\x16\n\x0estring_default\x18\n \x01(\t\x12 \n\x18string_default_and_blank\x18\x0b \x01(\t\x12*\n\x1dstring_null_default_and_blank\x18\x0c \x01(\tH\x01\x88\x01\x01\x12\x14\n\x0cint_required\x18\r \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0e \x01(\x05H\x02\x88\x01\x01\x12\x13\n\x0bint_default\x18\x0f \x01(\x05\x12\x18\n\x10\x62oolean_required\x18\x10 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x11 \x01(\x08H\x03\x88\x01\x01\x12\x1d\n\x15\x62oolean_default_false\x18\x12 \x01(\x08\x12\x1c\n\x14\x62oolean_default_true\x18\x13 \x01(\x08\x42\x12\n\x10_string_nullableB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x13\n\x11_boolean_nullable\")\n\x1b\x44\x65\x66\x61ultValueRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"3\n%ExceptionStreamRaiseExceptionResponse\x12\n\n\x02id\x18\x01 \x01(\t\"\x19\n\x17\x46oreignModelListRequest\"c\n\x18\x46oreignModelListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.ForeignModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"2\n\x14\x46oreignModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"B\n\"ForeignModelRetrieveCustomResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06\x63ustom\x18\x02 \x01(\t\"9\n)ForeignModelRetrieveCustomRetrieveRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"q\n#ImportStructEvenInArrayModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\rthis_is_crazy\x18\x02 \x03(\x0b\x32\x17.google.protobuf.StructB\x07\n\x05_uuid\"d\n$ImportStructEvenInArrayModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12.\n\rthis_is_crazy\x18\x02 \x03(\x0b\x32\x17.google.protobuf.Struct\"c\n\x14ManyManyModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\t\x12!\n\x19test_write_only_on_nested\x18\x03 \x01(\tB\x07\n\x05_uuid\"3\n\x15ManyManyModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"0\n RecursiveTestModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1f\n\x1dRecursiveTestModelListRequest\"o\n\x1eRecursiveTestModelListResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xf2\x01\n&RecursiveTestModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x41\n\x06parent\x18\x03 \x01(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestH\x01\x88\x01\x01\x12>\n\x08\x63hildren\x18\x04 \x03(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestB\x07\n\x05_uuidB\t\n\x07_parent\"\xc5\x01\n\x19RecursiveTestModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x41\n\x06parent\x18\x02 \x01(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestH\x01\x88\x01\x01\x12>\n\x08\x63hildren\x18\x03 \x03(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestB\x07\n\x05_uuidB\t\n\x07_parent\"\xaa\x01\n\x1aRecursiveTestModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12=\n\x06parent\x18\x02 \x01(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponse\x12?\n\x08\x63hildren\x18\x03 \x03(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponse\"1\n!RecursiveTestModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"/\n\x1fRelatedFieldModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1e\n\x1cRelatedFieldModelListRequest\"|\n\x1dRelatedFieldModelListResponse\x12L\n\x16list_custom_field_name\x18\x01 \x03(\x0b\x32,.myproject.fakeapp.RelatedFieldModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xd6\x01\n%RelatedFieldModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12:\n\tmany_many\x18\x02 \x03(\x0b\x32\'.myproject.fakeapp.ManyManyModelRequest\x12\x19\n\x11\x63ustom_field_name\x18\x03 \x01(\t\x12\x1e\n\x16_partial_update_fields\x18\x04 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x05 \x03(\tB\x07\n\x05_uuid\"\xa9\x01\n\x18RelatedFieldModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12:\n\tmany_many\x18\x02 \x03(\x0b\x32\'.myproject.fakeapp.ManyManyModelRequest\x12\x19\n\x11\x63ustom_field_name\x18\x03 \x01(\t\x12\x1a\n\x12many_many_foreigns\x18\x04 \x03(\tB\x07\n\x05_uuid\"\xcb\x02\n\x19RelatedFieldModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x38\n\x07\x66oreign\x18\x02 \x01(\x0b\x32\'.myproject.fakeapp.ForeignModelResponse\x12;\n\tmany_many\x18\x03 \x03(\x0b\x32(.myproject.fakeapp.ManyManyModelResponse\x12\x17\n\x0fslug_test_model\x18\x04 \x01(\x05\x12\x1f\n\x17slug_reverse_test_model\x18\x05 \x03(\x08\x12\x16\n\x0eslug_many_many\x18\x06 \x03(\t\x12 \n\x18proto_slug_related_field\x18\x07 \x01(\t\x12\x19\n\x11\x63ustom_field_name\x18\x08 \x01(\t\x12\x1a\n\x12many_many_foreigns\x18\t \x03(\t\"0\n RelatedFieldModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"5\n%SimpleRelatedFieldModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"$\n\"SimpleRelatedFieldModelListRequest\"y\n#SimpleRelatedFieldModelListResponse\x12\x43\n\x07results\x18\x01 \x03(\x0b\x32\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\x84\x02\n+SimpleRelatedFieldModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x14\n\x07\x66oreign\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x11\n\tmany_many\x18\x05 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x06 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x07 \x03(\tB\x07\n\x05_uuidB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"\xd7\x01\n\x1eSimpleRelatedFieldModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x66oreign\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\tmany_many\x18\x04 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x05 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x06 \x03(\tB\x07\n\x05_uuidB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"\xca\x01\n\x1fSimpleRelatedFieldModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x14\n\x07\x66oreign\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x11\n\tmany_many\x18\x04 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x05 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x06 \x03(\tB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"6\n&SimpleRelatedFieldModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"0\n SpecialFieldsModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1f\n\x1dSpecialFieldsModelListRequest\"o\n\x1eSpecialFieldsModelListResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.SpecialFieldsModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb9\x01\n&SpecialFieldsModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x30\n\nmeta_datas\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x12\x12\n\nlist_datas\x18\x04 \x03(\x05\x42\x07\n\x05_uuidB\r\n\x0b_meta_datas\"\x8c\x01\n\x19SpecialFieldsModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x30\n\nmeta_datas\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x12\x12\n\nlist_datas\x18\x03 \x03(\x05\x42\x07\n\x05_uuidB\r\n\x0b_meta_datas\"{\n\x1aSpecialFieldsModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12+\n\nmeta_datas\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x12\n\nlist_datas\x18\x03 \x03(\x05\x12\x0e\n\x06\x62inary\x18\x04 \x01(\x0c\"1\n!SpecialFieldsModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"k\n\x1cStreamInStreamInListResponse\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.StreamInStreamInResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\'\n\x17StreamInStreamInRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\")\n\x18StreamInStreamInResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\"-\n\x1dStreamInStreamToStreamRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\".\n\x1eStreamInStreamToStreamResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\"=\n)SyncUnitTestModelListWithExtraArgsRequest\x12\x10\n\x08\x61rchived\x18\x01 \x01(\x08\")\n\x1bUnitTestModelDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x8e\x01\n\"UnitTestModelListExtraArgsResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\x12\x1e\n\x16query_fetched_datetime\x18\x02 \x01(\t\x12\x39\n\x07results\x18\x03 \x03(\x0b\x32(.myproject.fakeapp.UnitTestModelResponse\"\x1a\n\x18UnitTestModelListRequest\"e\n\x19UnitTestModelListResponse\x12\x39\n\x07results\x18\x01 \x03(\x0b\x32(.myproject.fakeapp.UnitTestModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"9\n%UnitTestModelListWithExtraArgsRequest\x12\x10\n\x08\x61rchived\x18\x01 \x01(\x08\"\x86\x01\n!UnitTestModelPartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x11\n\x04text\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"Y\n\x14UnitTestModelRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"N\n\x15UnitTestModelResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_text\"*\n\x1cUnitTestModelRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x1c\n\x1aUnitTestModelStreamRequest\"9\n+UnitTestModelWithStructFilterDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\xb5\x01\n3UnitTestModelWithStructFilterEmptyWithFilterRequest\x12.\n\x08_filters\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x88\x01\x01\x12\x31\n\x0b_pagination\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x42\x0b\n\tX_filtersB\x0e\n\x0cX_pagination\"\xaa\x01\n(UnitTestModelWithStructFilterListRequest\x12.\n\x08_filters\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x88\x01\x01\x12\x31\n\x0b_pagination\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x42\x0b\n\tX_filtersB\x0e\n\x0cX_pagination\"\x85\x01\n)UnitTestModelWithStructFilterListResponse\x12I\n\x07results\x18\x01 \x03(\x0b\x32\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\x96\x01\n1UnitTestModelWithStructFilterPartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x11\n\x04text\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"i\n$UnitTestModelWithStructFilterRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"^\n%UnitTestModelWithStructFilterResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_text\":\n,UnitTestModelWithStructFilterRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\",\n*UnitTestModelWithStructFilterStreamRequest2\xca\t\n\x0f\x42\x61sicController\x12t\n\tBasicList\x12\x31.myproject.fakeapp.BasicProtoListChildListRequest\x1a\x32.myproject.fakeapp.BasicProtoListChildListResponse\"\x00\x12[\n\x06\x43reate\x12&.myproject.fakeapp.BasicServiceRequest\x1a\'.myproject.fakeapp.BasicServiceResponse\"\x00\x12n\n\x10\x46\x65tchDataForUser\x12/.myproject.fakeapp.BasicFetchDataForUserRequest\x1a\'.myproject.fakeapp.BasicServiceResponse\"\x00\x12\x62\n\x12\x46\x65tchTranslatedKey\x12\x16.google.protobuf.Empty\x1a\x32.myproject.fakeapp.BasicFetchTranslatedKeyResponse\"\x00\x12T\n\x0bGetMultiple\x12\x16.google.protobuf.Empty\x1a+.myproject.fakeapp.BasicServiceListResponse\"\x00\x12L\n\x07ListIds\x12\x16.google.protobuf.Empty\x1a\'.myproject.fakeapp.BasicListIdsResponse\"\x00\x12N\n\x08ListName\x12\x16.google.protobuf.Empty\x1a(.myproject.fakeapp.BasicListNameResponse\"\x00\x12k\n\x08MixParam\x12/.myproject.fakeapp.CustomMixParamForListRequest\x1a,.myproject.fakeapp.BasicMixParamListResponse\"\x00\x12\x8e\x01\n\x16MixParamWithSerializer\x12\x36.myproject.fakeapp.BasicParamWithSerializerListRequest\x1a:.myproject.fakeapp.BasicMixParamWithSerializerListResponse\"\x00\x12_\n\x08MyMethod\x12\'.myproject.fakeapp.CustomNameForRequest\x1a(.myproject.fakeapp.CustomNameForResponse\"\x00\x12x\n\x17TestBaseProtoSerializer\x12*.myproject.fakeapp.BaseProtoExampleRequest\x1a/.myproject.fakeapp.BaseProtoExampleListResponse\"\x00\x12\x43\n\x0fTestEmptyMethod\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x32\xe1\x04\n\x16\x44\x65\x66\x61ultValueController\x12[\n\x06\x43reate\x12&.myproject.fakeapp.DefaultValueRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12R\n\x07\x44\x65stroy\x12-.myproject.fakeapp.DefaultValueDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x61\n\x04List\x12*.myproject.fakeapp.DefaultValueListRequest\x1a+.myproject.fakeapp.DefaultValueListResponse\"\x00\x12o\n\rPartialUpdate\x12\x33.myproject.fakeapp.DefaultValuePartialUpdateRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12\x65\n\x08Retrieve\x12..myproject.fakeapp.DefaultValueRetrieveRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12[\n\x06Update\x12&.myproject.fakeapp.DefaultValueRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x32\xd1\x02\n\x13\x45xceptionController\x12@\n\x0c\x41PIException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12\x41\n\rGRPCException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12l\n\x14StreamRaiseException\x12\x16.google.protobuf.Empty\x1a\x38.myproject.fakeapp.ExceptionStreamRaiseExceptionResponse\"\x00\x30\x01\x12G\n\x13UnaryRaiseException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x32\xff\x01\n\x16\x46oreignModelController\x12\x61\n\x04List\x12*.myproject.fakeapp.ForeignModelListRequest\x1a+.myproject.fakeapp.ForeignModelListResponse\"\x00\x12\x81\x01\n\x08Retrieve\x12<.myproject.fakeapp.ForeignModelRetrieveCustomRetrieveRequest\x1a\x35.myproject.fakeapp.ForeignModelRetrieveCustomResponse\"\x00\x32\xa5\x01\n&ImportStructEvenInArrayModelController\x12{\n\x06\x43reate\x12\x36.myproject.fakeapp.ImportStructEvenInArrayModelRequest\x1a\x37.myproject.fakeapp.ImportStructEvenInArrayModelResponse\"\x00\x32\xa9\x05\n\x1cRecursiveTestModelController\x12g\n\x06\x43reate\x12,.myproject.fakeapp.RecursiveTestModelRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12X\n\x07\x44\x65stroy\x12\x33.myproject.fakeapp.RecursiveTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12m\n\x04List\x12\x30.myproject.fakeapp.RecursiveTestModelListRequest\x1a\x31.myproject.fakeapp.RecursiveTestModelListResponse\"\x00\x12{\n\rPartialUpdate\x12\x39.myproject.fakeapp.RecursiveTestModelPartialUpdateRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12q\n\x08Retrieve\x12\x34.myproject.fakeapp.RecursiveTestModelRetrieveRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12g\n\x06Update\x12,.myproject.fakeapp.RecursiveTestModelRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x32\x9d\x05\n\x1bRelatedFieldModelController\x12\x65\n\x06\x43reate\x12+.myproject.fakeapp.RelatedFieldModelRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12W\n\x07\x44\x65stroy\x12\x32.myproject.fakeapp.RelatedFieldModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12k\n\x04List\x12/.myproject.fakeapp.RelatedFieldModelListRequest\x1a\x30.myproject.fakeapp.RelatedFieldModelListResponse\"\x00\x12y\n\rPartialUpdate\x12\x38.myproject.fakeapp.RelatedFieldModelPartialUpdateRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12o\n\x08Retrieve\x12\x33.myproject.fakeapp.RelatedFieldModelRetrieveRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12\x65\n\x06Update\x12+.myproject.fakeapp.RelatedFieldModelRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x32\xe6\x05\n!SimpleRelatedFieldModelController\x12q\n\x06\x43reate\x12\x31.myproject.fakeapp.SimpleRelatedFieldModelRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12]\n\x07\x44\x65stroy\x12\x38.myproject.fakeapp.SimpleRelatedFieldModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12w\n\x04List\x12\x35.myproject.fakeapp.SimpleRelatedFieldModelListRequest\x1a\x36.myproject.fakeapp.SimpleRelatedFieldModelListResponse\"\x00\x12\x85\x01\n\rPartialUpdate\x12>.myproject.fakeapp.SimpleRelatedFieldModelPartialUpdateRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12{\n\x08Retrieve\x12\x39.myproject.fakeapp.SimpleRelatedFieldModelRetrieveRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12q\n\x06Update\x12\x31.myproject.fakeapp.SimpleRelatedFieldModelRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x32\xc0\x05\n\x1cSpecialFieldsModelController\x12g\n\x06\x43reate\x12,.myproject.fakeapp.SpecialFieldsModelRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x12X\n\x07\x44\x65stroy\x12\x33.myproject.fakeapp.SpecialFieldsModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12m\n\x04List\x12\x30.myproject.fakeapp.SpecialFieldsModelListRequest\x1a\x31.myproject.fakeapp.SpecialFieldsModelListResponse\"\x00\x12{\n\rPartialUpdate\x12\x39.myproject.fakeapp.SpecialFieldsModelPartialUpdateRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x12\x87\x01\n\x08Retrieve\x12\x34.myproject.fakeapp.SpecialFieldsModelRetrieveRequest\x1a\x43.myproject.fakeapp.CustomRetrieveResponseSpecialFieldsModelResponse\"\x00\x12g\n\x06Update\x12,.myproject.fakeapp.SpecialFieldsModelRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x32\xfe\x01\n\x12StreamInController\x12k\n\x08StreamIn\x12*.myproject.fakeapp.StreamInStreamInRequest\x1a/.myproject.fakeapp.StreamInStreamInListResponse\"\x00(\x01\x12{\n\x0eStreamToStream\x12\x30.myproject.fakeapp.StreamInStreamToStreamRequest\x1a\x31.myproject.fakeapp.StreamInStreamToStreamResponse\"\x00(\x01\x30\x01\x32\xe5\x06\n\x1bSyncUnitTestModelController\x12]\n\x06\x43reate\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12S\n\x07\x44\x65stroy\x12..myproject.fakeapp.UnitTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x63\n\x04List\x12+.myproject.fakeapp.UnitTestModelListRequest\x1a,.myproject.fakeapp.UnitTestModelListResponse\"\x00\x12\x8a\x01\n\x11ListWithExtraArgs\x12<.myproject.fakeapp.SyncUnitTestModelListWithExtraArgsRequest\x1a\x35.myproject.fakeapp.UnitTestModelListExtraArgsResponse\"\x00\x12q\n\rPartialUpdate\x12\x34.myproject.fakeapp.UnitTestModelPartialUpdateRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12g\n\x08Retrieve\x12/.myproject.fakeapp.UnitTestModelRetrieveRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12\x65\n\x06Stream\x12-.myproject.fakeapp.UnitTestModelStreamRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x30\x01\x12]\n\x06Update\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x32\xdd\x06\n\x17UnitTestModelController\x12]\n\x06\x43reate\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12S\n\x07\x44\x65stroy\x12..myproject.fakeapp.UnitTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x63\n\x04List\x12+.myproject.fakeapp.UnitTestModelListRequest\x1a,.myproject.fakeapp.UnitTestModelListResponse\"\x00\x12\x86\x01\n\x11ListWithExtraArgs\x12\x38.myproject.fakeapp.UnitTestModelListWithExtraArgsRequest\x1a\x35.myproject.fakeapp.UnitTestModelListExtraArgsResponse\"\x00\x12q\n\rPartialUpdate\x12\x34.myproject.fakeapp.UnitTestModelPartialUpdateRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12g\n\x08Retrieve\x12/.myproject.fakeapp.UnitTestModelRetrieveRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12\x65\n\x06Stream\x12-.myproject.fakeapp.UnitTestModelStreamRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x30\x01\x12]\n\x06Update\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x32\xad\x08\n\'UnitTestModelWithStructFilterController\x12}\n\x06\x43reate\x12\x37.myproject.fakeapp.UnitTestModelWithStructFilterRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x63\n\x07\x44\x65stroy\x12>.myproject.fakeapp.UnitTestModelWithStructFilterDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12s\n\x0f\x45mptyWithFilter\x12\x46.myproject.fakeapp.UnitTestModelWithStructFilterEmptyWithFilterRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x83\x01\n\x04List\x12;.myproject.fakeapp.UnitTestModelWithStructFilterListRequest\x1a<.myproject.fakeapp.UnitTestModelWithStructFilterListResponse\"\x00\x12\x91\x01\n\rPartialUpdate\x12\x44.myproject.fakeapp.UnitTestModelWithStructFilterPartialUpdateRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x87\x01\n\x08Retrieve\x12?.myproject.fakeapp.UnitTestModelWithStructFilterRetrieveRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x85\x01\n\x06Stream\x12=.myproject.fakeapp.UnitTestModelWithStructFilterStreamRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x30\x01\x12}\n\x06Update\x12\x37.myproject.fakeapp.UnitTestModelWithStructFilterRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -82,159 +82,159 @@ _globals['_DEFAULTVALUEREQUEST']._serialized_start=3779 _globals['_DEFAULTVALUEREQUEST']._serialized_end=4935 _globals['_DEFAULTVALUERESPONSE']._serialized_start=4938 - _globals['_DEFAULTVALUERESPONSE']._serialized_end=5921 - _globals['_DEFAULTVALUERETRIEVEREQUEST']._serialized_start=5923 - _globals['_DEFAULTVALUERETRIEVEREQUEST']._serialized_end=5964 - _globals['_EXCEPTIONSTREAMRAISEEXCEPTIONRESPONSE']._serialized_start=5966 - _globals['_EXCEPTIONSTREAMRAISEEXCEPTIONRESPONSE']._serialized_end=6017 - _globals['_FOREIGNMODELLISTREQUEST']._serialized_start=6019 - _globals['_FOREIGNMODELLISTREQUEST']._serialized_end=6044 - _globals['_FOREIGNMODELLISTRESPONSE']._serialized_start=6046 - _globals['_FOREIGNMODELLISTRESPONSE']._serialized_end=6145 - _globals['_FOREIGNMODELRESPONSE']._serialized_start=6147 - _globals['_FOREIGNMODELRESPONSE']._serialized_end=6197 - _globals['_FOREIGNMODELRETRIEVECUSTOMRESPONSE']._serialized_start=6199 - _globals['_FOREIGNMODELRETRIEVECUSTOMRESPONSE']._serialized_end=6265 - _globals['_FOREIGNMODELRETRIEVECUSTOMRETRIEVEREQUEST']._serialized_start=6267 - _globals['_FOREIGNMODELRETRIEVECUSTOMRETRIEVEREQUEST']._serialized_end=6324 - _globals['_IMPORTSTRUCTEVENINARRAYMODELREQUEST']._serialized_start=6326 - _globals['_IMPORTSTRUCTEVENINARRAYMODELREQUEST']._serialized_end=6439 - _globals['_IMPORTSTRUCTEVENINARRAYMODELRESPONSE']._serialized_start=6441 - _globals['_IMPORTSTRUCTEVENINARRAYMODELRESPONSE']._serialized_end=6541 - _globals['_MANYMANYMODELREQUEST']._serialized_start=6543 - _globals['_MANYMANYMODELREQUEST']._serialized_end=6642 - _globals['_MANYMANYMODELRESPONSE']._serialized_start=6644 - _globals['_MANYMANYMODELRESPONSE']._serialized_end=6695 - _globals['_RECURSIVETESTMODELDESTROYREQUEST']._serialized_start=6697 - _globals['_RECURSIVETESTMODELDESTROYREQUEST']._serialized_end=6745 - _globals['_RECURSIVETESTMODELLISTREQUEST']._serialized_start=6747 - _globals['_RECURSIVETESTMODELLISTREQUEST']._serialized_end=6778 - _globals['_RECURSIVETESTMODELLISTRESPONSE']._serialized_start=6780 - _globals['_RECURSIVETESTMODELLISTRESPONSE']._serialized_end=6891 - _globals['_RECURSIVETESTMODELPARTIALUPDATEREQUEST']._serialized_start=6894 - _globals['_RECURSIVETESTMODELPARTIALUPDATEREQUEST']._serialized_end=7136 - _globals['_RECURSIVETESTMODELREQUEST']._serialized_start=7139 - _globals['_RECURSIVETESTMODELREQUEST']._serialized_end=7336 - _globals['_RECURSIVETESTMODELRESPONSE']._serialized_start=7339 - _globals['_RECURSIVETESTMODELRESPONSE']._serialized_end=7509 - _globals['_RECURSIVETESTMODELRETRIEVEREQUEST']._serialized_start=7511 - _globals['_RECURSIVETESTMODELRETRIEVEREQUEST']._serialized_end=7560 - _globals['_RELATEDFIELDMODELDESTROYREQUEST']._serialized_start=7562 - _globals['_RELATEDFIELDMODELDESTROYREQUEST']._serialized_end=7609 - _globals['_RELATEDFIELDMODELLISTREQUEST']._serialized_start=7611 - _globals['_RELATEDFIELDMODELLISTREQUEST']._serialized_end=7641 - _globals['_RELATEDFIELDMODELLISTRESPONSE']._serialized_start=7643 - _globals['_RELATEDFIELDMODELLISTRESPONSE']._serialized_end=7767 - _globals['_RELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_start=7770 - _globals['_RELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_end=7984 - _globals['_RELATEDFIELDMODELREQUEST']._serialized_start=7987 - _globals['_RELATEDFIELDMODELREQUEST']._serialized_end=8156 - _globals['_RELATEDFIELDMODELRESPONSE']._serialized_start=8159 - _globals['_RELATEDFIELDMODELRESPONSE']._serialized_end=8490 - _globals['_RELATEDFIELDMODELRETRIEVEREQUEST']._serialized_start=8492 - _globals['_RELATEDFIELDMODELRETRIEVEREQUEST']._serialized_end=8540 - _globals['_SIMPLERELATEDFIELDMODELDESTROYREQUEST']._serialized_start=8542 - _globals['_SIMPLERELATEDFIELDMODELDESTROYREQUEST']._serialized_end=8595 - _globals['_SIMPLERELATEDFIELDMODELLISTREQUEST']._serialized_start=8597 - _globals['_SIMPLERELATEDFIELDMODELLISTREQUEST']._serialized_end=8633 - _globals['_SIMPLERELATEDFIELDMODELLISTRESPONSE']._serialized_start=8635 - _globals['_SIMPLERELATEDFIELDMODELLISTRESPONSE']._serialized_end=8756 - _globals['_SIMPLERELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_start=8759 - _globals['_SIMPLERELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_end=9019 - _globals['_SIMPLERELATEDFIELDMODELREQUEST']._serialized_start=9022 - _globals['_SIMPLERELATEDFIELDMODELREQUEST']._serialized_end=9237 - _globals['_SIMPLERELATEDFIELDMODELRESPONSE']._serialized_start=9240 - _globals['_SIMPLERELATEDFIELDMODELRESPONSE']._serialized_end=9442 - _globals['_SIMPLERELATEDFIELDMODELRETRIEVEREQUEST']._serialized_start=9444 - _globals['_SIMPLERELATEDFIELDMODELRETRIEVEREQUEST']._serialized_end=9498 - _globals['_SPECIALFIELDSMODELDESTROYREQUEST']._serialized_start=9500 - _globals['_SPECIALFIELDSMODELDESTROYREQUEST']._serialized_end=9548 - _globals['_SPECIALFIELDSMODELLISTREQUEST']._serialized_start=9550 - _globals['_SPECIALFIELDSMODELLISTREQUEST']._serialized_end=9581 - _globals['_SPECIALFIELDSMODELLISTRESPONSE']._serialized_start=9583 - _globals['_SPECIALFIELDSMODELLISTRESPONSE']._serialized_end=9694 - _globals['_SPECIALFIELDSMODELPARTIALUPDATEREQUEST']._serialized_start=9697 - _globals['_SPECIALFIELDSMODELPARTIALUPDATEREQUEST']._serialized_end=9882 - _globals['_SPECIALFIELDSMODELREQUEST']._serialized_start=9885 - _globals['_SPECIALFIELDSMODELREQUEST']._serialized_end=10025 - _globals['_SPECIALFIELDSMODELRESPONSE']._serialized_start=10027 - _globals['_SPECIALFIELDSMODELRESPONSE']._serialized_end=10150 - _globals['_SPECIALFIELDSMODELRETRIEVEREQUEST']._serialized_start=10152 - _globals['_SPECIALFIELDSMODELRETRIEVEREQUEST']._serialized_end=10201 - _globals['_STREAMINSTREAMINLISTRESPONSE']._serialized_start=10203 - _globals['_STREAMINSTREAMINLISTRESPONSE']._serialized_end=10310 - _globals['_STREAMINSTREAMINREQUEST']._serialized_start=10312 - _globals['_STREAMINSTREAMINREQUEST']._serialized_end=10351 - _globals['_STREAMINSTREAMINRESPONSE']._serialized_start=10353 - _globals['_STREAMINSTREAMINRESPONSE']._serialized_end=10394 - _globals['_STREAMINSTREAMTOSTREAMREQUEST']._serialized_start=10396 - _globals['_STREAMINSTREAMTOSTREAMREQUEST']._serialized_end=10441 - _globals['_STREAMINSTREAMTOSTREAMRESPONSE']._serialized_start=10443 - _globals['_STREAMINSTREAMTOSTREAMRESPONSE']._serialized_end=10489 - _globals['_SYNCUNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_start=10491 - _globals['_SYNCUNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_end=10552 - _globals['_UNITTESTMODELDESTROYREQUEST']._serialized_start=10554 - _globals['_UNITTESTMODELDESTROYREQUEST']._serialized_end=10595 - _globals['_UNITTESTMODELLISTEXTRAARGSRESPONSE']._serialized_start=10598 - _globals['_UNITTESTMODELLISTEXTRAARGSRESPONSE']._serialized_end=10740 - _globals['_UNITTESTMODELLISTREQUEST']._serialized_start=10742 - _globals['_UNITTESTMODELLISTREQUEST']._serialized_end=10768 - _globals['_UNITTESTMODELLISTRESPONSE']._serialized_start=10770 - _globals['_UNITTESTMODELLISTRESPONSE']._serialized_end=10871 - _globals['_UNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_start=10873 - _globals['_UNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_end=10930 - _globals['_UNITTESTMODELPARTIALUPDATEREQUEST']._serialized_start=10933 - _globals['_UNITTESTMODELPARTIALUPDATEREQUEST']._serialized_end=11067 - _globals['_UNITTESTMODELREQUEST']._serialized_start=11069 - _globals['_UNITTESTMODELREQUEST']._serialized_end=11158 - _globals['_UNITTESTMODELRESPONSE']._serialized_start=11160 - _globals['_UNITTESTMODELRESPONSE']._serialized_end=11238 - _globals['_UNITTESTMODELRETRIEVEREQUEST']._serialized_start=11240 - _globals['_UNITTESTMODELRETRIEVEREQUEST']._serialized_end=11282 - _globals['_UNITTESTMODELSTREAMREQUEST']._serialized_start=11284 - _globals['_UNITTESTMODELSTREAMREQUEST']._serialized_end=11312 - _globals['_UNITTESTMODELWITHSTRUCTFILTERDESTROYREQUEST']._serialized_start=11314 - _globals['_UNITTESTMODELWITHSTRUCTFILTERDESTROYREQUEST']._serialized_end=11371 - _globals['_UNITTESTMODELWITHSTRUCTFILTEREMPTYWITHFILTERREQUEST']._serialized_start=11374 - _globals['_UNITTESTMODELWITHSTRUCTFILTEREMPTYWITHFILTERREQUEST']._serialized_end=11555 - _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTREQUEST']._serialized_start=11558 - _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTREQUEST']._serialized_end=11728 - _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTRESPONSE']._serialized_start=11731 - _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTRESPONSE']._serialized_end=11864 - _globals['_UNITTESTMODELWITHSTRUCTFILTERPARTIALUPDATEREQUEST']._serialized_start=11867 - _globals['_UNITTESTMODELWITHSTRUCTFILTERPARTIALUPDATEREQUEST']._serialized_end=12017 - _globals['_UNITTESTMODELWITHSTRUCTFILTERREQUEST']._serialized_start=12019 - _globals['_UNITTESTMODELWITHSTRUCTFILTERREQUEST']._serialized_end=12124 - _globals['_UNITTESTMODELWITHSTRUCTFILTERRESPONSE']._serialized_start=12126 - _globals['_UNITTESTMODELWITHSTRUCTFILTERRESPONSE']._serialized_end=12220 - _globals['_UNITTESTMODELWITHSTRUCTFILTERRETRIEVEREQUEST']._serialized_start=12222 - _globals['_UNITTESTMODELWITHSTRUCTFILTERRETRIEVEREQUEST']._serialized_end=12280 - _globals['_UNITTESTMODELWITHSTRUCTFILTERSTREAMREQUEST']._serialized_start=12282 - _globals['_UNITTESTMODELWITHSTRUCTFILTERSTREAMREQUEST']._serialized_end=12326 - _globals['_BASICCONTROLLER']._serialized_start=12329 - _globals['_BASICCONTROLLER']._serialized_end=13555 - _globals['_DEFAULTVALUECONTROLLER']._serialized_start=13558 - _globals['_DEFAULTVALUECONTROLLER']._serialized_end=14167 - _globals['_EXCEPTIONCONTROLLER']._serialized_start=14170 - _globals['_EXCEPTIONCONTROLLER']._serialized_end=14507 - _globals['_FOREIGNMODELCONTROLLER']._serialized_start=14510 - _globals['_FOREIGNMODELCONTROLLER']._serialized_end=14765 - _globals['_IMPORTSTRUCTEVENINARRAYMODELCONTROLLER']._serialized_start=14768 - _globals['_IMPORTSTRUCTEVENINARRAYMODELCONTROLLER']._serialized_end=14933 - _globals['_RECURSIVETESTMODELCONTROLLER']._serialized_start=14936 - _globals['_RECURSIVETESTMODELCONTROLLER']._serialized_end=15617 - _globals['_RELATEDFIELDMODELCONTROLLER']._serialized_start=15620 - _globals['_RELATEDFIELDMODELCONTROLLER']._serialized_end=16289 - _globals['_SIMPLERELATEDFIELDMODELCONTROLLER']._serialized_start=16292 - _globals['_SIMPLERELATEDFIELDMODELCONTROLLER']._serialized_end=17034 - _globals['_SPECIALFIELDSMODELCONTROLLER']._serialized_start=17037 - _globals['_SPECIALFIELDSMODELCONTROLLER']._serialized_end=17741 - _globals['_STREAMINCONTROLLER']._serialized_start=17744 - _globals['_STREAMINCONTROLLER']._serialized_end=17998 - _globals['_SYNCUNITTESTMODELCONTROLLER']._serialized_start=18001 - _globals['_SYNCUNITTESTMODELCONTROLLER']._serialized_end=18870 - _globals['_UNITTESTMODELCONTROLLER']._serialized_start=18873 - _globals['_UNITTESTMODELCONTROLLER']._serialized_end=19734 - _globals['_UNITTESTMODELWITHSTRUCTFILTERCONTROLLER']._serialized_start=19737 - _globals['_UNITTESTMODELWITHSTRUCTFILTERCONTROLLER']._serialized_end=20806 + _globals['_DEFAULTVALUERESPONSE']._serialized_end=5676 + _globals['_DEFAULTVALUERETRIEVEREQUEST']._serialized_start=5678 + _globals['_DEFAULTVALUERETRIEVEREQUEST']._serialized_end=5719 + _globals['_EXCEPTIONSTREAMRAISEEXCEPTIONRESPONSE']._serialized_start=5721 + _globals['_EXCEPTIONSTREAMRAISEEXCEPTIONRESPONSE']._serialized_end=5772 + _globals['_FOREIGNMODELLISTREQUEST']._serialized_start=5774 + _globals['_FOREIGNMODELLISTREQUEST']._serialized_end=5799 + _globals['_FOREIGNMODELLISTRESPONSE']._serialized_start=5801 + _globals['_FOREIGNMODELLISTRESPONSE']._serialized_end=5900 + _globals['_FOREIGNMODELRESPONSE']._serialized_start=5902 + _globals['_FOREIGNMODELRESPONSE']._serialized_end=5952 + _globals['_FOREIGNMODELRETRIEVECUSTOMRESPONSE']._serialized_start=5954 + _globals['_FOREIGNMODELRETRIEVECUSTOMRESPONSE']._serialized_end=6020 + _globals['_FOREIGNMODELRETRIEVECUSTOMRETRIEVEREQUEST']._serialized_start=6022 + _globals['_FOREIGNMODELRETRIEVECUSTOMRETRIEVEREQUEST']._serialized_end=6079 + _globals['_IMPORTSTRUCTEVENINARRAYMODELREQUEST']._serialized_start=6081 + _globals['_IMPORTSTRUCTEVENINARRAYMODELREQUEST']._serialized_end=6194 + _globals['_IMPORTSTRUCTEVENINARRAYMODELRESPONSE']._serialized_start=6196 + _globals['_IMPORTSTRUCTEVENINARRAYMODELRESPONSE']._serialized_end=6296 + _globals['_MANYMANYMODELREQUEST']._serialized_start=6298 + _globals['_MANYMANYMODELREQUEST']._serialized_end=6397 + _globals['_MANYMANYMODELRESPONSE']._serialized_start=6399 + _globals['_MANYMANYMODELRESPONSE']._serialized_end=6450 + _globals['_RECURSIVETESTMODELDESTROYREQUEST']._serialized_start=6452 + _globals['_RECURSIVETESTMODELDESTROYREQUEST']._serialized_end=6500 + _globals['_RECURSIVETESTMODELLISTREQUEST']._serialized_start=6502 + _globals['_RECURSIVETESTMODELLISTREQUEST']._serialized_end=6533 + _globals['_RECURSIVETESTMODELLISTRESPONSE']._serialized_start=6535 + _globals['_RECURSIVETESTMODELLISTRESPONSE']._serialized_end=6646 + _globals['_RECURSIVETESTMODELPARTIALUPDATEREQUEST']._serialized_start=6649 + _globals['_RECURSIVETESTMODELPARTIALUPDATEREQUEST']._serialized_end=6891 + _globals['_RECURSIVETESTMODELREQUEST']._serialized_start=6894 + _globals['_RECURSIVETESTMODELREQUEST']._serialized_end=7091 + _globals['_RECURSIVETESTMODELRESPONSE']._serialized_start=7094 + _globals['_RECURSIVETESTMODELRESPONSE']._serialized_end=7264 + _globals['_RECURSIVETESTMODELRETRIEVEREQUEST']._serialized_start=7266 + _globals['_RECURSIVETESTMODELRETRIEVEREQUEST']._serialized_end=7315 + _globals['_RELATEDFIELDMODELDESTROYREQUEST']._serialized_start=7317 + _globals['_RELATEDFIELDMODELDESTROYREQUEST']._serialized_end=7364 + _globals['_RELATEDFIELDMODELLISTREQUEST']._serialized_start=7366 + _globals['_RELATEDFIELDMODELLISTREQUEST']._serialized_end=7396 + _globals['_RELATEDFIELDMODELLISTRESPONSE']._serialized_start=7398 + _globals['_RELATEDFIELDMODELLISTRESPONSE']._serialized_end=7522 + _globals['_RELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_start=7525 + _globals['_RELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_end=7739 + _globals['_RELATEDFIELDMODELREQUEST']._serialized_start=7742 + _globals['_RELATEDFIELDMODELREQUEST']._serialized_end=7911 + _globals['_RELATEDFIELDMODELRESPONSE']._serialized_start=7914 + _globals['_RELATEDFIELDMODELRESPONSE']._serialized_end=8245 + _globals['_RELATEDFIELDMODELRETRIEVEREQUEST']._serialized_start=8247 + _globals['_RELATEDFIELDMODELRETRIEVEREQUEST']._serialized_end=8295 + _globals['_SIMPLERELATEDFIELDMODELDESTROYREQUEST']._serialized_start=8297 + _globals['_SIMPLERELATEDFIELDMODELDESTROYREQUEST']._serialized_end=8350 + _globals['_SIMPLERELATEDFIELDMODELLISTREQUEST']._serialized_start=8352 + _globals['_SIMPLERELATEDFIELDMODELLISTREQUEST']._serialized_end=8388 + _globals['_SIMPLERELATEDFIELDMODELLISTRESPONSE']._serialized_start=8390 + _globals['_SIMPLERELATEDFIELDMODELLISTRESPONSE']._serialized_end=8511 + _globals['_SIMPLERELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_start=8514 + _globals['_SIMPLERELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_end=8774 + _globals['_SIMPLERELATEDFIELDMODELREQUEST']._serialized_start=8777 + _globals['_SIMPLERELATEDFIELDMODELREQUEST']._serialized_end=8992 + _globals['_SIMPLERELATEDFIELDMODELRESPONSE']._serialized_start=8995 + _globals['_SIMPLERELATEDFIELDMODELRESPONSE']._serialized_end=9197 + _globals['_SIMPLERELATEDFIELDMODELRETRIEVEREQUEST']._serialized_start=9199 + _globals['_SIMPLERELATEDFIELDMODELRETRIEVEREQUEST']._serialized_end=9253 + _globals['_SPECIALFIELDSMODELDESTROYREQUEST']._serialized_start=9255 + _globals['_SPECIALFIELDSMODELDESTROYREQUEST']._serialized_end=9303 + _globals['_SPECIALFIELDSMODELLISTREQUEST']._serialized_start=9305 + _globals['_SPECIALFIELDSMODELLISTREQUEST']._serialized_end=9336 + _globals['_SPECIALFIELDSMODELLISTRESPONSE']._serialized_start=9338 + _globals['_SPECIALFIELDSMODELLISTRESPONSE']._serialized_end=9449 + _globals['_SPECIALFIELDSMODELPARTIALUPDATEREQUEST']._serialized_start=9452 + _globals['_SPECIALFIELDSMODELPARTIALUPDATEREQUEST']._serialized_end=9637 + _globals['_SPECIALFIELDSMODELREQUEST']._serialized_start=9640 + _globals['_SPECIALFIELDSMODELREQUEST']._serialized_end=9780 + _globals['_SPECIALFIELDSMODELRESPONSE']._serialized_start=9782 + _globals['_SPECIALFIELDSMODELRESPONSE']._serialized_end=9905 + _globals['_SPECIALFIELDSMODELRETRIEVEREQUEST']._serialized_start=9907 + _globals['_SPECIALFIELDSMODELRETRIEVEREQUEST']._serialized_end=9956 + _globals['_STREAMINSTREAMINLISTRESPONSE']._serialized_start=9958 + _globals['_STREAMINSTREAMINLISTRESPONSE']._serialized_end=10065 + _globals['_STREAMINSTREAMINREQUEST']._serialized_start=10067 + _globals['_STREAMINSTREAMINREQUEST']._serialized_end=10106 + _globals['_STREAMINSTREAMINRESPONSE']._serialized_start=10108 + _globals['_STREAMINSTREAMINRESPONSE']._serialized_end=10149 + _globals['_STREAMINSTREAMTOSTREAMREQUEST']._serialized_start=10151 + _globals['_STREAMINSTREAMTOSTREAMREQUEST']._serialized_end=10196 + _globals['_STREAMINSTREAMTOSTREAMRESPONSE']._serialized_start=10198 + _globals['_STREAMINSTREAMTOSTREAMRESPONSE']._serialized_end=10244 + _globals['_SYNCUNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_start=10246 + _globals['_SYNCUNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_end=10307 + _globals['_UNITTESTMODELDESTROYREQUEST']._serialized_start=10309 + _globals['_UNITTESTMODELDESTROYREQUEST']._serialized_end=10350 + _globals['_UNITTESTMODELLISTEXTRAARGSRESPONSE']._serialized_start=10353 + _globals['_UNITTESTMODELLISTEXTRAARGSRESPONSE']._serialized_end=10495 + _globals['_UNITTESTMODELLISTREQUEST']._serialized_start=10497 + _globals['_UNITTESTMODELLISTREQUEST']._serialized_end=10523 + _globals['_UNITTESTMODELLISTRESPONSE']._serialized_start=10525 + _globals['_UNITTESTMODELLISTRESPONSE']._serialized_end=10626 + _globals['_UNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_start=10628 + _globals['_UNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_end=10685 + _globals['_UNITTESTMODELPARTIALUPDATEREQUEST']._serialized_start=10688 + _globals['_UNITTESTMODELPARTIALUPDATEREQUEST']._serialized_end=10822 + _globals['_UNITTESTMODELREQUEST']._serialized_start=10824 + _globals['_UNITTESTMODELREQUEST']._serialized_end=10913 + _globals['_UNITTESTMODELRESPONSE']._serialized_start=10915 + _globals['_UNITTESTMODELRESPONSE']._serialized_end=10993 + _globals['_UNITTESTMODELRETRIEVEREQUEST']._serialized_start=10995 + _globals['_UNITTESTMODELRETRIEVEREQUEST']._serialized_end=11037 + _globals['_UNITTESTMODELSTREAMREQUEST']._serialized_start=11039 + _globals['_UNITTESTMODELSTREAMREQUEST']._serialized_end=11067 + _globals['_UNITTESTMODELWITHSTRUCTFILTERDESTROYREQUEST']._serialized_start=11069 + _globals['_UNITTESTMODELWITHSTRUCTFILTERDESTROYREQUEST']._serialized_end=11126 + _globals['_UNITTESTMODELWITHSTRUCTFILTEREMPTYWITHFILTERREQUEST']._serialized_start=11129 + _globals['_UNITTESTMODELWITHSTRUCTFILTEREMPTYWITHFILTERREQUEST']._serialized_end=11310 + _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTREQUEST']._serialized_start=11313 + _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTREQUEST']._serialized_end=11483 + _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTRESPONSE']._serialized_start=11486 + _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTRESPONSE']._serialized_end=11619 + _globals['_UNITTESTMODELWITHSTRUCTFILTERPARTIALUPDATEREQUEST']._serialized_start=11622 + _globals['_UNITTESTMODELWITHSTRUCTFILTERPARTIALUPDATEREQUEST']._serialized_end=11772 + _globals['_UNITTESTMODELWITHSTRUCTFILTERREQUEST']._serialized_start=11774 + _globals['_UNITTESTMODELWITHSTRUCTFILTERREQUEST']._serialized_end=11879 + _globals['_UNITTESTMODELWITHSTRUCTFILTERRESPONSE']._serialized_start=11881 + _globals['_UNITTESTMODELWITHSTRUCTFILTERRESPONSE']._serialized_end=11975 + _globals['_UNITTESTMODELWITHSTRUCTFILTERRETRIEVEREQUEST']._serialized_start=11977 + _globals['_UNITTESTMODELWITHSTRUCTFILTERRETRIEVEREQUEST']._serialized_end=12035 + _globals['_UNITTESTMODELWITHSTRUCTFILTERSTREAMREQUEST']._serialized_start=12037 + _globals['_UNITTESTMODELWITHSTRUCTFILTERSTREAMREQUEST']._serialized_end=12081 + _globals['_BASICCONTROLLER']._serialized_start=12084 + _globals['_BASICCONTROLLER']._serialized_end=13310 + _globals['_DEFAULTVALUECONTROLLER']._serialized_start=13313 + _globals['_DEFAULTVALUECONTROLLER']._serialized_end=13922 + _globals['_EXCEPTIONCONTROLLER']._serialized_start=13925 + _globals['_EXCEPTIONCONTROLLER']._serialized_end=14262 + _globals['_FOREIGNMODELCONTROLLER']._serialized_start=14265 + _globals['_FOREIGNMODELCONTROLLER']._serialized_end=14520 + _globals['_IMPORTSTRUCTEVENINARRAYMODELCONTROLLER']._serialized_start=14523 + _globals['_IMPORTSTRUCTEVENINARRAYMODELCONTROLLER']._serialized_end=14688 + _globals['_RECURSIVETESTMODELCONTROLLER']._serialized_start=14691 + _globals['_RECURSIVETESTMODELCONTROLLER']._serialized_end=15372 + _globals['_RELATEDFIELDMODELCONTROLLER']._serialized_start=15375 + _globals['_RELATEDFIELDMODELCONTROLLER']._serialized_end=16044 + _globals['_SIMPLERELATEDFIELDMODELCONTROLLER']._serialized_start=16047 + _globals['_SIMPLERELATEDFIELDMODELCONTROLLER']._serialized_end=16789 + _globals['_SPECIALFIELDSMODELCONTROLLER']._serialized_start=16792 + _globals['_SPECIALFIELDSMODELCONTROLLER']._serialized_end=17496 + _globals['_STREAMINCONTROLLER']._serialized_start=17499 + _globals['_STREAMINCONTROLLER']._serialized_end=17753 + _globals['_SYNCUNITTESTMODELCONTROLLER']._serialized_start=17756 + _globals['_SYNCUNITTESTMODELCONTROLLER']._serialized_end=18625 + _globals['_UNITTESTMODELCONTROLLER']._serialized_start=18628 + _globals['_UNITTESTMODELCONTROLLER']._serialized_end=19489 + _globals['_UNITTESTMODELWITHSTRUCTFILTERCONTROLLER']._serialized_start=19492 + _globals['_UNITTESTMODELWITHSTRUCTFILTERCONTROLLER']._serialized_end=20561 # @@protoc_insertion_point(module_scope) diff --git a/django_socio_grpc/tests/protos/ALL_APP_GENERATED_SEPARATE/fakeapp.proto b/django_socio_grpc/tests/protos/ALL_APP_GENERATED_SEPARATE/fakeapp.proto index 3858cb57..acd59d4b 100644 --- a/django_socio_grpc/tests/protos/ALL_APP_GENERATED_SEPARATE/fakeapp.proto +++ b/django_socio_grpc/tests/protos/ALL_APP_GENERATED_SEPARATE/fakeapp.proto @@ -314,11 +314,11 @@ message DefaultValueRequest { message DefaultValueResponse { int32 id = 1; - optional string string_required_but_serializer_default = 2; - optional int32 int_required_but_serializer_default = 3; - optional bool boolean_required_but_serializer_default = 4; - optional string string_default_but_serializer_default = 5; - optional string string_nullable_default_but_serializer_default = 6; + string string_required_but_serializer_default = 2; + int32 int_required_but_serializer_default = 3; + bool boolean_required_but_serializer_default = 4; + string string_default_but_serializer_default = 5; + string string_nullable_default_but_serializer_default = 6; string string_required = 7; string string_blank = 8; optional string string_nullable = 9; From 30b59e3941421c5a3ef58603d816e3c05b9059e2 Mon Sep 17 00:00:00 2001 From: AMontagu Date: Tue, 9 Apr 2024 12:23:02 +0200 Subject: [PATCH 3/3] fix tests --- .../tests/fakeapp/grpc/fakeapp.proto | 2 +- .../tests/fakeapp/grpc/fakeapp_pb2.py | 216 ++++++++-------- .../tests/fakeapp/serializers.py | 4 +- .../fakeapp.proto | 4 +- .../ALL_APP_GENERATED_SEPARATE/fakeapp.proto | 2 +- .../MODEL_WITH_M2M_GENERATED/fakeapp.proto | 2 +- .../fakeapp.proto | 2 +- django_socio_grpc/tests/test_default_value.py | 241 +++++++++++++++--- .../tests/test_protobuf_registration.py | 43 +++- 9 files changed, 353 insertions(+), 163 deletions(-) diff --git a/django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto b/django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto index acd59d4b..6486229a 100644 --- a/django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto +++ b/django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto @@ -451,7 +451,7 @@ message RelatedFieldModelResponse { string uuid = 1; ForeignModelResponse foreign = 2; repeated ManyManyModelResponse many_many = 3; - int32 slug_test_model = 4; + optional int32 slug_test_model = 4; repeated bool slug_reverse_test_model = 5; repeated string slug_many_many = 6; string proto_slug_related_field = 7; diff --git a/django_socio_grpc/tests/fakeapp/grpc/fakeapp_pb2.py b/django_socio_grpc/tests/fakeapp/grpc/fakeapp_pb2.py index da63ec41..d45efdd2 100644 --- a/django_socio_grpc/tests/fakeapp/grpc/fakeapp_pb2.py +++ b/django_socio_grpc/tests/fakeapp/grpc/fakeapp_pb2.py @@ -16,7 +16,7 @@ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n2django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto\x12\x11myproject.fakeapp\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\"k\n\x1c\x42\x61seProtoExampleListResponse\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.BaseProtoExampleResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"X\n\x17\x42\x61seProtoExampleRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x05\x12\x13\n\x0bis_archived\x18\x03 \x01(\x08\"Y\n\x18\x42\x61seProtoExampleResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x05\x12\x13\n\x0bis_archived\x18\x03 \x01(\x08\"1\n\x1c\x42\x61sicFetchDataForUserRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\"/\n\x1f\x42\x61sicFetchTranslatedKeyResponse\x12\x0c\n\x04text\x18\x01 \x01(\t\"#\n\x14\x42\x61sicListIdsResponse\x12\x0b\n\x03ids\x18\x01 \x03(\x05\"%\n\x15\x42\x61sicListNameResponse\x12\x0c\n\x04name\x18\x01 \x03(\t\"e\n\x19\x42\x61sicMixParamListResponse\x12\x39\n\x07results\x18\x01 \x03(\x0b\x32(.myproject.fakeapp.BasicMixParamResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"*\n\x15\x42\x61sicMixParamResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\"b\n\'BasicMixParamWithSerializerListResponse\x12(\n\x07results\x18\x01 \x03(\x0b\x32\x17.google.protobuf.Struct\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"y\n#BasicParamWithSerializerListRequest\x12\x43\n\x07results\x18\x01 \x03(\x0b\x32\x32.myproject.fakeapp.BasicParamWithSerializerRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xbd\x01\n\x1f\x42\x61sicParamWithSerializerRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\ruser_password\x18\x03 \x01(\t\x12\x15\n\rbytes_example\x18\x04 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x05 \x03(\x0b\x32\x17.google.protobuf.Struct\"o\n\x1e\x42\x61sicProtoListChildListRequest\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.BasicProtoListChildRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"q\n\x1f\x42\x61sicProtoListChildListResponse\x12?\n\x07results\x18\x01 \x03(\x0b\x32..myproject.fakeapp.BasicProtoListChildResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"_\n\x1a\x42\x61sicProtoListChildRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"T\n\x1b\x42\x61sicProtoListChildResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_text\"c\n\x18\x42\x61sicServiceListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.BasicServiceResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb1\x01\n\x13\x42\x61sicServiceRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\ruser_password\x18\x03 \x01(\t\x12\x15\n\rbytes_example\x18\x04 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x05 \x03(\x0b\x32\x17.google.protobuf.Struct\"\x9b\x01\n\x14\x42\x61sicServiceResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\rbytes_example\x18\x03 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x04 \x03(\x0b\x32\x17.google.protobuf.Struct\"k\n\x1c\x43ustomMixParamForListRequest\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.CustomMixParamForRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"-\n\x18\x43ustomMixParamForRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\")\n\x14\x43ustomNameForRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\"*\n\x15\x43ustomNameForResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\"\x94\x01\n0CustomRetrieveResponseSpecialFieldsModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x1c\n\x14\x64\x65\x66\x61ult_method_field\x18\x02 \x01(\x05\x12\x34\n\x13\x63ustom_method_field\x18\x03 \x03(\x0b\x32\x17.google.protobuf.Struct\"(\n\x1a\x44\x65\x66\x61ultValueDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x19\n\x17\x44\x65\x66\x61ultValueListRequest\"c\n\x18\x44\x65\x66\x61ultValueListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.DefaultValueResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb1\t\n DefaultValuePartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x33\n&string_required_but_serializer_default\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x30\n#int_required_but_serializer_default\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x34\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x32\n%string_default_but_serializer_default\x18\x05 \x01(\tH\x04\x88\x01\x01\x12;\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x07 \x03(\t\x12\x17\n\x0fstring_required\x18\x08 \x01(\t\x12\x19\n\x0cstring_blank\x18\t \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0fstring_nullable\x18\n \x01(\tH\x07\x88\x01\x01\x12\x1b\n\x0estring_default\x18\x0b \x01(\tH\x08\x88\x01\x01\x12%\n\x18string_default_and_blank\x18\x0c \x01(\tH\t\x88\x01\x01\x12*\n\x1dstring_null_default_and_blank\x18\r \x01(\tH\n\x88\x01\x01\x12\x14\n\x0cint_required\x18\x0e \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0f \x01(\x05H\x0b\x88\x01\x01\x12\x18\n\x0bint_default\x18\x10 \x01(\x05H\x0c\x88\x01\x01\x12\x18\n\x10\x62oolean_required\x18\x11 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x12 \x01(\x08H\r\x88\x01\x01\x12\"\n\x15\x62oolean_default_false\x18\x13 \x01(\x08H\x0e\x88\x01\x01\x12!\n\x14\x62oolean_default_true\x18\x14 \x01(\x08H\x0f\x88\x01\x01\x42\x05\n\x03_idB)\n\'_string_required_but_serializer_defaultB&\n$_int_required_but_serializer_defaultB*\n(_boolean_required_but_serializer_defaultB(\n&_string_default_but_serializer_defaultB1\n/_string_nullable_default_but_serializer_defaultB\x0f\n\r_string_blankB\x12\n\x10_string_nullableB\x11\n\x0f_string_defaultB\x1b\n\x19_string_default_and_blankB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x0e\n\x0c_int_defaultB\x13\n\x11_boolean_nullableB\x18\n\x16_boolean_default_falseB\x17\n\x15_boolean_default_true\"\x84\t\n\x13\x44\x65\x66\x61ultValueRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x33\n&string_required_but_serializer_default\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x30\n#int_required_but_serializer_default\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x34\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x32\n%string_default_but_serializer_default\x18\x05 \x01(\tH\x04\x88\x01\x01\x12;\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x17\n\x0fstring_required\x18\x07 \x01(\t\x12\x19\n\x0cstring_blank\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0fstring_nullable\x18\t \x01(\tH\x07\x88\x01\x01\x12\x1b\n\x0estring_default\x18\n \x01(\tH\x08\x88\x01\x01\x12%\n\x18string_default_and_blank\x18\x0b \x01(\tH\t\x88\x01\x01\x12*\n\x1dstring_null_default_and_blank\x18\x0c \x01(\tH\n\x88\x01\x01\x12\x14\n\x0cint_required\x18\r \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0e \x01(\x05H\x0b\x88\x01\x01\x12\x18\n\x0bint_default\x18\x0f \x01(\x05H\x0c\x88\x01\x01\x12\x18\n\x10\x62oolean_required\x18\x10 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x11 \x01(\x08H\r\x88\x01\x01\x12\"\n\x15\x62oolean_default_false\x18\x12 \x01(\x08H\x0e\x88\x01\x01\x12!\n\x14\x62oolean_default_true\x18\x13 \x01(\x08H\x0f\x88\x01\x01\x42\x05\n\x03_idB)\n\'_string_required_but_serializer_defaultB&\n$_int_required_but_serializer_defaultB*\n(_boolean_required_but_serializer_defaultB(\n&_string_default_but_serializer_defaultB1\n/_string_nullable_default_but_serializer_defaultB\x0f\n\r_string_blankB\x12\n\x10_string_nullableB\x11\n\x0f_string_defaultB\x1b\n\x19_string_default_and_blankB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x0e\n\x0c_int_defaultB\x13\n\x11_boolean_nullableB\x18\n\x16_boolean_default_falseB\x17\n\x15_boolean_default_true\"\xe2\x05\n\x14\x44\x65\x66\x61ultValueResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12.\n&string_required_but_serializer_default\x18\x02 \x01(\t\x12+\n#int_required_but_serializer_default\x18\x03 \x01(\x05\x12/\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08\x12-\n%string_default_but_serializer_default\x18\x05 \x01(\t\x12\x36\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\t\x12\x17\n\x0fstring_required\x18\x07 \x01(\t\x12\x14\n\x0cstring_blank\x18\x08 \x01(\t\x12\x1c\n\x0fstring_nullable\x18\t \x01(\tH\x00\x88\x01\x01\x12\x16\n\x0estring_default\x18\n \x01(\t\x12 \n\x18string_default_and_blank\x18\x0b \x01(\t\x12*\n\x1dstring_null_default_and_blank\x18\x0c \x01(\tH\x01\x88\x01\x01\x12\x14\n\x0cint_required\x18\r \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0e \x01(\x05H\x02\x88\x01\x01\x12\x13\n\x0bint_default\x18\x0f \x01(\x05\x12\x18\n\x10\x62oolean_required\x18\x10 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x11 \x01(\x08H\x03\x88\x01\x01\x12\x1d\n\x15\x62oolean_default_false\x18\x12 \x01(\x08\x12\x1c\n\x14\x62oolean_default_true\x18\x13 \x01(\x08\x42\x12\n\x10_string_nullableB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x13\n\x11_boolean_nullable\")\n\x1b\x44\x65\x66\x61ultValueRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"3\n%ExceptionStreamRaiseExceptionResponse\x12\n\n\x02id\x18\x01 \x01(\t\"\x19\n\x17\x46oreignModelListRequest\"c\n\x18\x46oreignModelListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.ForeignModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"2\n\x14\x46oreignModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"B\n\"ForeignModelRetrieveCustomResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06\x63ustom\x18\x02 \x01(\t\"9\n)ForeignModelRetrieveCustomRetrieveRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"q\n#ImportStructEvenInArrayModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\rthis_is_crazy\x18\x02 \x03(\x0b\x32\x17.google.protobuf.StructB\x07\n\x05_uuid\"d\n$ImportStructEvenInArrayModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12.\n\rthis_is_crazy\x18\x02 \x03(\x0b\x32\x17.google.protobuf.Struct\"c\n\x14ManyManyModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\t\x12!\n\x19test_write_only_on_nested\x18\x03 \x01(\tB\x07\n\x05_uuid\"3\n\x15ManyManyModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"0\n RecursiveTestModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1f\n\x1dRecursiveTestModelListRequest\"o\n\x1eRecursiveTestModelListResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xf2\x01\n&RecursiveTestModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x41\n\x06parent\x18\x03 \x01(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestH\x01\x88\x01\x01\x12>\n\x08\x63hildren\x18\x04 \x03(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestB\x07\n\x05_uuidB\t\n\x07_parent\"\xc5\x01\n\x19RecursiveTestModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x41\n\x06parent\x18\x02 \x01(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestH\x01\x88\x01\x01\x12>\n\x08\x63hildren\x18\x03 \x03(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestB\x07\n\x05_uuidB\t\n\x07_parent\"\xaa\x01\n\x1aRecursiveTestModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12=\n\x06parent\x18\x02 \x01(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponse\x12?\n\x08\x63hildren\x18\x03 \x03(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponse\"1\n!RecursiveTestModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"/\n\x1fRelatedFieldModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1e\n\x1cRelatedFieldModelListRequest\"|\n\x1dRelatedFieldModelListResponse\x12L\n\x16list_custom_field_name\x18\x01 \x03(\x0b\x32,.myproject.fakeapp.RelatedFieldModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xd6\x01\n%RelatedFieldModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12:\n\tmany_many\x18\x02 \x03(\x0b\x32\'.myproject.fakeapp.ManyManyModelRequest\x12\x19\n\x11\x63ustom_field_name\x18\x03 \x01(\t\x12\x1e\n\x16_partial_update_fields\x18\x04 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x05 \x03(\tB\x07\n\x05_uuid\"\xa9\x01\n\x18RelatedFieldModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12:\n\tmany_many\x18\x02 \x03(\x0b\x32\'.myproject.fakeapp.ManyManyModelRequest\x12\x19\n\x11\x63ustom_field_name\x18\x03 \x01(\t\x12\x1a\n\x12many_many_foreigns\x18\x04 \x03(\tB\x07\n\x05_uuid\"\xcb\x02\n\x19RelatedFieldModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x38\n\x07\x66oreign\x18\x02 \x01(\x0b\x32\'.myproject.fakeapp.ForeignModelResponse\x12;\n\tmany_many\x18\x03 \x03(\x0b\x32(.myproject.fakeapp.ManyManyModelResponse\x12\x17\n\x0fslug_test_model\x18\x04 \x01(\x05\x12\x1f\n\x17slug_reverse_test_model\x18\x05 \x03(\x08\x12\x16\n\x0eslug_many_many\x18\x06 \x03(\t\x12 \n\x18proto_slug_related_field\x18\x07 \x01(\t\x12\x19\n\x11\x63ustom_field_name\x18\x08 \x01(\t\x12\x1a\n\x12many_many_foreigns\x18\t \x03(\t\"0\n RelatedFieldModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"5\n%SimpleRelatedFieldModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"$\n\"SimpleRelatedFieldModelListRequest\"y\n#SimpleRelatedFieldModelListResponse\x12\x43\n\x07results\x18\x01 \x03(\x0b\x32\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\x84\x02\n+SimpleRelatedFieldModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x14\n\x07\x66oreign\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x11\n\tmany_many\x18\x05 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x06 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x07 \x03(\tB\x07\n\x05_uuidB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"\xd7\x01\n\x1eSimpleRelatedFieldModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x66oreign\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\tmany_many\x18\x04 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x05 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x06 \x03(\tB\x07\n\x05_uuidB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"\xca\x01\n\x1fSimpleRelatedFieldModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x14\n\x07\x66oreign\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x11\n\tmany_many\x18\x04 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x05 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x06 \x03(\tB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"6\n&SimpleRelatedFieldModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"0\n SpecialFieldsModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1f\n\x1dSpecialFieldsModelListRequest\"o\n\x1eSpecialFieldsModelListResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.SpecialFieldsModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb9\x01\n&SpecialFieldsModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x30\n\nmeta_datas\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x12\x12\n\nlist_datas\x18\x04 \x03(\x05\x42\x07\n\x05_uuidB\r\n\x0b_meta_datas\"\x8c\x01\n\x19SpecialFieldsModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x30\n\nmeta_datas\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x12\x12\n\nlist_datas\x18\x03 \x03(\x05\x42\x07\n\x05_uuidB\r\n\x0b_meta_datas\"{\n\x1aSpecialFieldsModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12+\n\nmeta_datas\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x12\n\nlist_datas\x18\x03 \x03(\x05\x12\x0e\n\x06\x62inary\x18\x04 \x01(\x0c\"1\n!SpecialFieldsModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"k\n\x1cStreamInStreamInListResponse\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.StreamInStreamInResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\'\n\x17StreamInStreamInRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\")\n\x18StreamInStreamInResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\"-\n\x1dStreamInStreamToStreamRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\".\n\x1eStreamInStreamToStreamResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\"=\n)SyncUnitTestModelListWithExtraArgsRequest\x12\x10\n\x08\x61rchived\x18\x01 \x01(\x08\")\n\x1bUnitTestModelDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x8e\x01\n\"UnitTestModelListExtraArgsResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\x12\x1e\n\x16query_fetched_datetime\x18\x02 \x01(\t\x12\x39\n\x07results\x18\x03 \x03(\x0b\x32(.myproject.fakeapp.UnitTestModelResponse\"\x1a\n\x18UnitTestModelListRequest\"e\n\x19UnitTestModelListResponse\x12\x39\n\x07results\x18\x01 \x03(\x0b\x32(.myproject.fakeapp.UnitTestModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"9\n%UnitTestModelListWithExtraArgsRequest\x12\x10\n\x08\x61rchived\x18\x01 \x01(\x08\"\x86\x01\n!UnitTestModelPartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x11\n\x04text\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"Y\n\x14UnitTestModelRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"N\n\x15UnitTestModelResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_text\"*\n\x1cUnitTestModelRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x1c\n\x1aUnitTestModelStreamRequest\"9\n+UnitTestModelWithStructFilterDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\xb5\x01\n3UnitTestModelWithStructFilterEmptyWithFilterRequest\x12.\n\x08_filters\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x88\x01\x01\x12\x31\n\x0b_pagination\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x42\x0b\n\tX_filtersB\x0e\n\x0cX_pagination\"\xaa\x01\n(UnitTestModelWithStructFilterListRequest\x12.\n\x08_filters\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x88\x01\x01\x12\x31\n\x0b_pagination\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x42\x0b\n\tX_filtersB\x0e\n\x0cX_pagination\"\x85\x01\n)UnitTestModelWithStructFilterListResponse\x12I\n\x07results\x18\x01 \x03(\x0b\x32\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\x96\x01\n1UnitTestModelWithStructFilterPartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x11\n\x04text\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"i\n$UnitTestModelWithStructFilterRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"^\n%UnitTestModelWithStructFilterResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_text\":\n,UnitTestModelWithStructFilterRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\",\n*UnitTestModelWithStructFilterStreamRequest2\xca\t\n\x0f\x42\x61sicController\x12t\n\tBasicList\x12\x31.myproject.fakeapp.BasicProtoListChildListRequest\x1a\x32.myproject.fakeapp.BasicProtoListChildListResponse\"\x00\x12[\n\x06\x43reate\x12&.myproject.fakeapp.BasicServiceRequest\x1a\'.myproject.fakeapp.BasicServiceResponse\"\x00\x12n\n\x10\x46\x65tchDataForUser\x12/.myproject.fakeapp.BasicFetchDataForUserRequest\x1a\'.myproject.fakeapp.BasicServiceResponse\"\x00\x12\x62\n\x12\x46\x65tchTranslatedKey\x12\x16.google.protobuf.Empty\x1a\x32.myproject.fakeapp.BasicFetchTranslatedKeyResponse\"\x00\x12T\n\x0bGetMultiple\x12\x16.google.protobuf.Empty\x1a+.myproject.fakeapp.BasicServiceListResponse\"\x00\x12L\n\x07ListIds\x12\x16.google.protobuf.Empty\x1a\'.myproject.fakeapp.BasicListIdsResponse\"\x00\x12N\n\x08ListName\x12\x16.google.protobuf.Empty\x1a(.myproject.fakeapp.BasicListNameResponse\"\x00\x12k\n\x08MixParam\x12/.myproject.fakeapp.CustomMixParamForListRequest\x1a,.myproject.fakeapp.BasicMixParamListResponse\"\x00\x12\x8e\x01\n\x16MixParamWithSerializer\x12\x36.myproject.fakeapp.BasicParamWithSerializerListRequest\x1a:.myproject.fakeapp.BasicMixParamWithSerializerListResponse\"\x00\x12_\n\x08MyMethod\x12\'.myproject.fakeapp.CustomNameForRequest\x1a(.myproject.fakeapp.CustomNameForResponse\"\x00\x12x\n\x17TestBaseProtoSerializer\x12*.myproject.fakeapp.BaseProtoExampleRequest\x1a/.myproject.fakeapp.BaseProtoExampleListResponse\"\x00\x12\x43\n\x0fTestEmptyMethod\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x32\xe1\x04\n\x16\x44\x65\x66\x61ultValueController\x12[\n\x06\x43reate\x12&.myproject.fakeapp.DefaultValueRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12R\n\x07\x44\x65stroy\x12-.myproject.fakeapp.DefaultValueDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x61\n\x04List\x12*.myproject.fakeapp.DefaultValueListRequest\x1a+.myproject.fakeapp.DefaultValueListResponse\"\x00\x12o\n\rPartialUpdate\x12\x33.myproject.fakeapp.DefaultValuePartialUpdateRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12\x65\n\x08Retrieve\x12..myproject.fakeapp.DefaultValueRetrieveRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12[\n\x06Update\x12&.myproject.fakeapp.DefaultValueRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x32\xd1\x02\n\x13\x45xceptionController\x12@\n\x0c\x41PIException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12\x41\n\rGRPCException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12l\n\x14StreamRaiseException\x12\x16.google.protobuf.Empty\x1a\x38.myproject.fakeapp.ExceptionStreamRaiseExceptionResponse\"\x00\x30\x01\x12G\n\x13UnaryRaiseException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x32\xff\x01\n\x16\x46oreignModelController\x12\x61\n\x04List\x12*.myproject.fakeapp.ForeignModelListRequest\x1a+.myproject.fakeapp.ForeignModelListResponse\"\x00\x12\x81\x01\n\x08Retrieve\x12<.myproject.fakeapp.ForeignModelRetrieveCustomRetrieveRequest\x1a\x35.myproject.fakeapp.ForeignModelRetrieveCustomResponse\"\x00\x32\xa5\x01\n&ImportStructEvenInArrayModelController\x12{\n\x06\x43reate\x12\x36.myproject.fakeapp.ImportStructEvenInArrayModelRequest\x1a\x37.myproject.fakeapp.ImportStructEvenInArrayModelResponse\"\x00\x32\xa9\x05\n\x1cRecursiveTestModelController\x12g\n\x06\x43reate\x12,.myproject.fakeapp.RecursiveTestModelRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12X\n\x07\x44\x65stroy\x12\x33.myproject.fakeapp.RecursiveTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12m\n\x04List\x12\x30.myproject.fakeapp.RecursiveTestModelListRequest\x1a\x31.myproject.fakeapp.RecursiveTestModelListResponse\"\x00\x12{\n\rPartialUpdate\x12\x39.myproject.fakeapp.RecursiveTestModelPartialUpdateRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12q\n\x08Retrieve\x12\x34.myproject.fakeapp.RecursiveTestModelRetrieveRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12g\n\x06Update\x12,.myproject.fakeapp.RecursiveTestModelRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x32\x9d\x05\n\x1bRelatedFieldModelController\x12\x65\n\x06\x43reate\x12+.myproject.fakeapp.RelatedFieldModelRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12W\n\x07\x44\x65stroy\x12\x32.myproject.fakeapp.RelatedFieldModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12k\n\x04List\x12/.myproject.fakeapp.RelatedFieldModelListRequest\x1a\x30.myproject.fakeapp.RelatedFieldModelListResponse\"\x00\x12y\n\rPartialUpdate\x12\x38.myproject.fakeapp.RelatedFieldModelPartialUpdateRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12o\n\x08Retrieve\x12\x33.myproject.fakeapp.RelatedFieldModelRetrieveRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12\x65\n\x06Update\x12+.myproject.fakeapp.RelatedFieldModelRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x32\xe6\x05\n!SimpleRelatedFieldModelController\x12q\n\x06\x43reate\x12\x31.myproject.fakeapp.SimpleRelatedFieldModelRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12]\n\x07\x44\x65stroy\x12\x38.myproject.fakeapp.SimpleRelatedFieldModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12w\n\x04List\x12\x35.myproject.fakeapp.SimpleRelatedFieldModelListRequest\x1a\x36.myproject.fakeapp.SimpleRelatedFieldModelListResponse\"\x00\x12\x85\x01\n\rPartialUpdate\x12>.myproject.fakeapp.SimpleRelatedFieldModelPartialUpdateRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12{\n\x08Retrieve\x12\x39.myproject.fakeapp.SimpleRelatedFieldModelRetrieveRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12q\n\x06Update\x12\x31.myproject.fakeapp.SimpleRelatedFieldModelRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x32\xc0\x05\n\x1cSpecialFieldsModelController\x12g\n\x06\x43reate\x12,.myproject.fakeapp.SpecialFieldsModelRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x12X\n\x07\x44\x65stroy\x12\x33.myproject.fakeapp.SpecialFieldsModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12m\n\x04List\x12\x30.myproject.fakeapp.SpecialFieldsModelListRequest\x1a\x31.myproject.fakeapp.SpecialFieldsModelListResponse\"\x00\x12{\n\rPartialUpdate\x12\x39.myproject.fakeapp.SpecialFieldsModelPartialUpdateRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x12\x87\x01\n\x08Retrieve\x12\x34.myproject.fakeapp.SpecialFieldsModelRetrieveRequest\x1a\x43.myproject.fakeapp.CustomRetrieveResponseSpecialFieldsModelResponse\"\x00\x12g\n\x06Update\x12,.myproject.fakeapp.SpecialFieldsModelRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x32\xfe\x01\n\x12StreamInController\x12k\n\x08StreamIn\x12*.myproject.fakeapp.StreamInStreamInRequest\x1a/.myproject.fakeapp.StreamInStreamInListResponse\"\x00(\x01\x12{\n\x0eStreamToStream\x12\x30.myproject.fakeapp.StreamInStreamToStreamRequest\x1a\x31.myproject.fakeapp.StreamInStreamToStreamResponse\"\x00(\x01\x30\x01\x32\xe5\x06\n\x1bSyncUnitTestModelController\x12]\n\x06\x43reate\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12S\n\x07\x44\x65stroy\x12..myproject.fakeapp.UnitTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x63\n\x04List\x12+.myproject.fakeapp.UnitTestModelListRequest\x1a,.myproject.fakeapp.UnitTestModelListResponse\"\x00\x12\x8a\x01\n\x11ListWithExtraArgs\x12<.myproject.fakeapp.SyncUnitTestModelListWithExtraArgsRequest\x1a\x35.myproject.fakeapp.UnitTestModelListExtraArgsResponse\"\x00\x12q\n\rPartialUpdate\x12\x34.myproject.fakeapp.UnitTestModelPartialUpdateRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12g\n\x08Retrieve\x12/.myproject.fakeapp.UnitTestModelRetrieveRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12\x65\n\x06Stream\x12-.myproject.fakeapp.UnitTestModelStreamRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x30\x01\x12]\n\x06Update\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x32\xdd\x06\n\x17UnitTestModelController\x12]\n\x06\x43reate\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12S\n\x07\x44\x65stroy\x12..myproject.fakeapp.UnitTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x63\n\x04List\x12+.myproject.fakeapp.UnitTestModelListRequest\x1a,.myproject.fakeapp.UnitTestModelListResponse\"\x00\x12\x86\x01\n\x11ListWithExtraArgs\x12\x38.myproject.fakeapp.UnitTestModelListWithExtraArgsRequest\x1a\x35.myproject.fakeapp.UnitTestModelListExtraArgsResponse\"\x00\x12q\n\rPartialUpdate\x12\x34.myproject.fakeapp.UnitTestModelPartialUpdateRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12g\n\x08Retrieve\x12/.myproject.fakeapp.UnitTestModelRetrieveRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12\x65\n\x06Stream\x12-.myproject.fakeapp.UnitTestModelStreamRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x30\x01\x12]\n\x06Update\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x32\xad\x08\n\'UnitTestModelWithStructFilterController\x12}\n\x06\x43reate\x12\x37.myproject.fakeapp.UnitTestModelWithStructFilterRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x63\n\x07\x44\x65stroy\x12>.myproject.fakeapp.UnitTestModelWithStructFilterDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12s\n\x0f\x45mptyWithFilter\x12\x46.myproject.fakeapp.UnitTestModelWithStructFilterEmptyWithFilterRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x83\x01\n\x04List\x12;.myproject.fakeapp.UnitTestModelWithStructFilterListRequest\x1a<.myproject.fakeapp.UnitTestModelWithStructFilterListResponse\"\x00\x12\x91\x01\n\rPartialUpdate\x12\x44.myproject.fakeapp.UnitTestModelWithStructFilterPartialUpdateRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x87\x01\n\x08Retrieve\x12?.myproject.fakeapp.UnitTestModelWithStructFilterRetrieveRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x85\x01\n\x06Stream\x12=.myproject.fakeapp.UnitTestModelWithStructFilterStreamRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x30\x01\x12}\n\x06Update\x12\x37.myproject.fakeapp.UnitTestModelWithStructFilterRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n2django_socio_grpc/tests/fakeapp/grpc/fakeapp.proto\x12\x11myproject.fakeapp\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\"k\n\x1c\x42\x61seProtoExampleListResponse\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.BaseProtoExampleResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"X\n\x17\x42\x61seProtoExampleRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x05\x12\x13\n\x0bis_archived\x18\x03 \x01(\x08\"Y\n\x18\x42\x61seProtoExampleResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x05\x12\x13\n\x0bis_archived\x18\x03 \x01(\x08\"1\n\x1c\x42\x61sicFetchDataForUserRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\"/\n\x1f\x42\x61sicFetchTranslatedKeyResponse\x12\x0c\n\x04text\x18\x01 \x01(\t\"#\n\x14\x42\x61sicListIdsResponse\x12\x0b\n\x03ids\x18\x01 \x03(\x05\"%\n\x15\x42\x61sicListNameResponse\x12\x0c\n\x04name\x18\x01 \x03(\t\"e\n\x19\x42\x61sicMixParamListResponse\x12\x39\n\x07results\x18\x01 \x03(\x0b\x32(.myproject.fakeapp.BasicMixParamResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"*\n\x15\x42\x61sicMixParamResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\"b\n\'BasicMixParamWithSerializerListResponse\x12(\n\x07results\x18\x01 \x03(\x0b\x32\x17.google.protobuf.Struct\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"y\n#BasicParamWithSerializerListRequest\x12\x43\n\x07results\x18\x01 \x03(\x0b\x32\x32.myproject.fakeapp.BasicParamWithSerializerRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xbd\x01\n\x1f\x42\x61sicParamWithSerializerRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\ruser_password\x18\x03 \x01(\t\x12\x15\n\rbytes_example\x18\x04 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x05 \x03(\x0b\x32\x17.google.protobuf.Struct\"o\n\x1e\x42\x61sicProtoListChildListRequest\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.BasicProtoListChildRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"q\n\x1f\x42\x61sicProtoListChildListResponse\x12?\n\x07results\x18\x01 \x03(\x0b\x32..myproject.fakeapp.BasicProtoListChildResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"_\n\x1a\x42\x61sicProtoListChildRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"T\n\x1b\x42\x61sicProtoListChildResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_text\"c\n\x18\x42\x61sicServiceListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.BasicServiceResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb1\x01\n\x13\x42\x61sicServiceRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\ruser_password\x18\x03 \x01(\t\x12\x15\n\rbytes_example\x18\x04 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x05 \x03(\x0b\x32\x17.google.protobuf.Struct\"\x9b\x01\n\x14\x42\x61sicServiceResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\x12*\n\tuser_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x15\n\rbytes_example\x18\x03 \x01(\x0c\x12-\n\x0clist_of_dict\x18\x04 \x03(\x0b\x32\x17.google.protobuf.Struct\"k\n\x1c\x43ustomMixParamForListRequest\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.CustomMixParamForRequest\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"-\n\x18\x43ustomMixParamForRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\")\n\x14\x43ustomNameForRequest\x12\x11\n\tuser_name\x18\x01 \x01(\t\"*\n\x15\x43ustomNameForResponse\x12\x11\n\tuser_name\x18\x01 \x01(\t\"\x94\x01\n0CustomRetrieveResponseSpecialFieldsModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x1c\n\x14\x64\x65\x66\x61ult_method_field\x18\x02 \x01(\x05\x12\x34\n\x13\x63ustom_method_field\x18\x03 \x03(\x0b\x32\x17.google.protobuf.Struct\"(\n\x1a\x44\x65\x66\x61ultValueDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x19\n\x17\x44\x65\x66\x61ultValueListRequest\"c\n\x18\x44\x65\x66\x61ultValueListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.DefaultValueResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb1\t\n DefaultValuePartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x33\n&string_required_but_serializer_default\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x30\n#int_required_but_serializer_default\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x34\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x32\n%string_default_but_serializer_default\x18\x05 \x01(\tH\x04\x88\x01\x01\x12;\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x07 \x03(\t\x12\x17\n\x0fstring_required\x18\x08 \x01(\t\x12\x19\n\x0cstring_blank\x18\t \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0fstring_nullable\x18\n \x01(\tH\x07\x88\x01\x01\x12\x1b\n\x0estring_default\x18\x0b \x01(\tH\x08\x88\x01\x01\x12%\n\x18string_default_and_blank\x18\x0c \x01(\tH\t\x88\x01\x01\x12*\n\x1dstring_null_default_and_blank\x18\r \x01(\tH\n\x88\x01\x01\x12\x14\n\x0cint_required\x18\x0e \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0f \x01(\x05H\x0b\x88\x01\x01\x12\x18\n\x0bint_default\x18\x10 \x01(\x05H\x0c\x88\x01\x01\x12\x18\n\x10\x62oolean_required\x18\x11 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x12 \x01(\x08H\r\x88\x01\x01\x12\"\n\x15\x62oolean_default_false\x18\x13 \x01(\x08H\x0e\x88\x01\x01\x12!\n\x14\x62oolean_default_true\x18\x14 \x01(\x08H\x0f\x88\x01\x01\x42\x05\n\x03_idB)\n\'_string_required_but_serializer_defaultB&\n$_int_required_but_serializer_defaultB*\n(_boolean_required_but_serializer_defaultB(\n&_string_default_but_serializer_defaultB1\n/_string_nullable_default_but_serializer_defaultB\x0f\n\r_string_blankB\x12\n\x10_string_nullableB\x11\n\x0f_string_defaultB\x1b\n\x19_string_default_and_blankB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x0e\n\x0c_int_defaultB\x13\n\x11_boolean_nullableB\x18\n\x16_boolean_default_falseB\x17\n\x15_boolean_default_true\"\x84\t\n\x13\x44\x65\x66\x61ultValueRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x33\n&string_required_but_serializer_default\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x30\n#int_required_but_serializer_default\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x34\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x32\n%string_default_but_serializer_default\x18\x05 \x01(\tH\x04\x88\x01\x01\x12;\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x17\n\x0fstring_required\x18\x07 \x01(\t\x12\x19\n\x0cstring_blank\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0fstring_nullable\x18\t \x01(\tH\x07\x88\x01\x01\x12\x1b\n\x0estring_default\x18\n \x01(\tH\x08\x88\x01\x01\x12%\n\x18string_default_and_blank\x18\x0b \x01(\tH\t\x88\x01\x01\x12*\n\x1dstring_null_default_and_blank\x18\x0c \x01(\tH\n\x88\x01\x01\x12\x14\n\x0cint_required\x18\r \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0e \x01(\x05H\x0b\x88\x01\x01\x12\x18\n\x0bint_default\x18\x0f \x01(\x05H\x0c\x88\x01\x01\x12\x18\n\x10\x62oolean_required\x18\x10 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x11 \x01(\x08H\r\x88\x01\x01\x12\"\n\x15\x62oolean_default_false\x18\x12 \x01(\x08H\x0e\x88\x01\x01\x12!\n\x14\x62oolean_default_true\x18\x13 \x01(\x08H\x0f\x88\x01\x01\x42\x05\n\x03_idB)\n\'_string_required_but_serializer_defaultB&\n$_int_required_but_serializer_defaultB*\n(_boolean_required_but_serializer_defaultB(\n&_string_default_but_serializer_defaultB1\n/_string_nullable_default_but_serializer_defaultB\x0f\n\r_string_blankB\x12\n\x10_string_nullableB\x11\n\x0f_string_defaultB\x1b\n\x19_string_default_and_blankB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x0e\n\x0c_int_defaultB\x13\n\x11_boolean_nullableB\x18\n\x16_boolean_default_falseB\x17\n\x15_boolean_default_true\"\xe2\x05\n\x14\x44\x65\x66\x61ultValueResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12.\n&string_required_but_serializer_default\x18\x02 \x01(\t\x12+\n#int_required_but_serializer_default\x18\x03 \x01(\x05\x12/\n\'boolean_required_but_serializer_default\x18\x04 \x01(\x08\x12-\n%string_default_but_serializer_default\x18\x05 \x01(\t\x12\x36\n.string_nullable_default_but_serializer_default\x18\x06 \x01(\t\x12\x17\n\x0fstring_required\x18\x07 \x01(\t\x12\x14\n\x0cstring_blank\x18\x08 \x01(\t\x12\x1c\n\x0fstring_nullable\x18\t \x01(\tH\x00\x88\x01\x01\x12\x16\n\x0estring_default\x18\n \x01(\t\x12 \n\x18string_default_and_blank\x18\x0b \x01(\t\x12*\n\x1dstring_null_default_and_blank\x18\x0c \x01(\tH\x01\x88\x01\x01\x12\x14\n\x0cint_required\x18\r \x01(\x05\x12\x19\n\x0cint_nullable\x18\x0e \x01(\x05H\x02\x88\x01\x01\x12\x13\n\x0bint_default\x18\x0f \x01(\x05\x12\x18\n\x10\x62oolean_required\x18\x10 \x01(\x08\x12\x1d\n\x10\x62oolean_nullable\x18\x11 \x01(\x08H\x03\x88\x01\x01\x12\x1d\n\x15\x62oolean_default_false\x18\x12 \x01(\x08\x12\x1c\n\x14\x62oolean_default_true\x18\x13 \x01(\x08\x42\x12\n\x10_string_nullableB \n\x1e_string_null_default_and_blankB\x0f\n\r_int_nullableB\x13\n\x11_boolean_nullable\")\n\x1b\x44\x65\x66\x61ultValueRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"3\n%ExceptionStreamRaiseExceptionResponse\x12\n\n\x02id\x18\x01 \x01(\t\"\x19\n\x17\x46oreignModelListRequest\"c\n\x18\x46oreignModelListResponse\x12\x38\n\x07results\x18\x01 \x03(\x0b\x32\'.myproject.fakeapp.ForeignModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"2\n\x14\x46oreignModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"B\n\"ForeignModelRetrieveCustomResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06\x63ustom\x18\x02 \x01(\t\"9\n)ForeignModelRetrieveCustomRetrieveRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"q\n#ImportStructEvenInArrayModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\rthis_is_crazy\x18\x02 \x03(\x0b\x32\x17.google.protobuf.StructB\x07\n\x05_uuid\"d\n$ImportStructEvenInArrayModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12.\n\rthis_is_crazy\x18\x02 \x03(\x0b\x32\x17.google.protobuf.Struct\"c\n\x14ManyManyModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\t\x12!\n\x19test_write_only_on_nested\x18\x03 \x01(\tB\x07\n\x05_uuid\"3\n\x15ManyManyModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"0\n RecursiveTestModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1f\n\x1dRecursiveTestModelListRequest\"o\n\x1eRecursiveTestModelListResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xf2\x01\n&RecursiveTestModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x41\n\x06parent\x18\x03 \x01(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestH\x01\x88\x01\x01\x12>\n\x08\x63hildren\x18\x04 \x03(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestB\x07\n\x05_uuidB\t\n\x07_parent\"\xc5\x01\n\x19RecursiveTestModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x41\n\x06parent\x18\x02 \x01(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestH\x01\x88\x01\x01\x12>\n\x08\x63hildren\x18\x03 \x03(\x0b\x32,.myproject.fakeapp.RecursiveTestModelRequestB\x07\n\x05_uuidB\t\n\x07_parent\"\xaa\x01\n\x1aRecursiveTestModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12=\n\x06parent\x18\x02 \x01(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponse\x12?\n\x08\x63hildren\x18\x03 \x03(\x0b\x32-.myproject.fakeapp.RecursiveTestModelResponse\"1\n!RecursiveTestModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"/\n\x1fRelatedFieldModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1e\n\x1cRelatedFieldModelListRequest\"|\n\x1dRelatedFieldModelListResponse\x12L\n\x16list_custom_field_name\x18\x01 \x03(\x0b\x32,.myproject.fakeapp.RelatedFieldModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xd6\x01\n%RelatedFieldModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12:\n\tmany_many\x18\x02 \x03(\x0b\x32\'.myproject.fakeapp.ManyManyModelRequest\x12\x19\n\x11\x63ustom_field_name\x18\x03 \x01(\t\x12\x1e\n\x16_partial_update_fields\x18\x04 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x05 \x03(\tB\x07\n\x05_uuid\"\xa9\x01\n\x18RelatedFieldModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12:\n\tmany_many\x18\x02 \x03(\x0b\x32\'.myproject.fakeapp.ManyManyModelRequest\x12\x19\n\x11\x63ustom_field_name\x18\x03 \x01(\t\x12\x1a\n\x12many_many_foreigns\x18\x04 \x03(\tB\x07\n\x05_uuid\"\xe4\x02\n\x19RelatedFieldModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x38\n\x07\x66oreign\x18\x02 \x01(\x0b\x32\'.myproject.fakeapp.ForeignModelResponse\x12;\n\tmany_many\x18\x03 \x03(\x0b\x32(.myproject.fakeapp.ManyManyModelResponse\x12\x1c\n\x0fslug_test_model\x18\x04 \x01(\x05H\x00\x88\x01\x01\x12\x1f\n\x17slug_reverse_test_model\x18\x05 \x03(\x08\x12\x16\n\x0eslug_many_many\x18\x06 \x03(\t\x12 \n\x18proto_slug_related_field\x18\x07 \x01(\t\x12\x19\n\x11\x63ustom_field_name\x18\x08 \x01(\t\x12\x1a\n\x12many_many_foreigns\x18\t \x03(\tB\x12\n\x10_slug_test_model\"0\n RelatedFieldModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"5\n%SimpleRelatedFieldModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"$\n\"SimpleRelatedFieldModelListRequest\"y\n#SimpleRelatedFieldModelListResponse\x12\x43\n\x07results\x18\x01 \x03(\x0b\x32\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\x84\x02\n+SimpleRelatedFieldModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x14\n\x07\x66oreign\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x11\n\tmany_many\x18\x05 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x06 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x07 \x03(\tB\x07\n\x05_uuidB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"\xd7\x01\n\x1eSimpleRelatedFieldModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x66oreign\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\tmany_many\x18\x04 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x05 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x06 \x03(\tB\x07\n\x05_uuidB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"\xca\x01\n\x1fSimpleRelatedFieldModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x14\n\x07\x66oreign\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0fslug_test_model\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x11\n\tmany_many\x18\x04 \x03(\t\x12\x16\n\x0eslug_many_many\x18\x05 \x03(\t\x12\x1a\n\x12many_many_foreigns\x18\x06 \x03(\tB\n\n\x08_foreignB\x12\n\x10_slug_test_model\"6\n&SimpleRelatedFieldModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"0\n SpecialFieldsModelDestroyRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"\x1f\n\x1dSpecialFieldsModelListRequest\"o\n\x1eSpecialFieldsModelListResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.myproject.fakeapp.SpecialFieldsModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\xb9\x01\n&SpecialFieldsModelPartialUpdateRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\x30\n\nmeta_datas\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x12\x12\n\nlist_datas\x18\x04 \x03(\x05\x42\x07\n\x05_uuidB\r\n\x0b_meta_datas\"\x8c\x01\n\x19SpecialFieldsModelRequest\x12\x11\n\x04uuid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x30\n\nmeta_datas\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x12\x12\n\nlist_datas\x18\x03 \x03(\x05\x42\x07\n\x05_uuidB\r\n\x0b_meta_datas\"{\n\x1aSpecialFieldsModelResponse\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12+\n\nmeta_datas\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x12\n\nlist_datas\x18\x03 \x03(\x05\x12\x0e\n\x06\x62inary\x18\x04 \x01(\x0c\"1\n!SpecialFieldsModelRetrieveRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"k\n\x1cStreamInStreamInListResponse\x12<\n\x07results\x18\x01 \x03(\x0b\x32+.myproject.fakeapp.StreamInStreamInResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\'\n\x17StreamInStreamInRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\")\n\x18StreamInStreamInResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\"-\n\x1dStreamInStreamToStreamRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\".\n\x1eStreamInStreamToStreamResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\"=\n)SyncUnitTestModelListWithExtraArgsRequest\x12\x10\n\x08\x61rchived\x18\x01 \x01(\x08\")\n\x1bUnitTestModelDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x8e\x01\n\"UnitTestModelListExtraArgsResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\x12\x1e\n\x16query_fetched_datetime\x18\x02 \x01(\t\x12\x39\n\x07results\x18\x03 \x03(\x0b\x32(.myproject.fakeapp.UnitTestModelResponse\"\x1a\n\x18UnitTestModelListRequest\"e\n\x19UnitTestModelListResponse\x12\x39\n\x07results\x18\x01 \x03(\x0b\x32(.myproject.fakeapp.UnitTestModelResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"9\n%UnitTestModelListWithExtraArgsRequest\x12\x10\n\x08\x61rchived\x18\x01 \x01(\x08\"\x86\x01\n!UnitTestModelPartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x11\n\x04text\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"Y\n\x14UnitTestModelRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"N\n\x15UnitTestModelResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_text\"*\n\x1cUnitTestModelRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\x1c\n\x1aUnitTestModelStreamRequest\"9\n+UnitTestModelWithStructFilterDestroyRequest\x12\n\n\x02id\x18\x01 \x01(\x05\"\xb5\x01\n3UnitTestModelWithStructFilterEmptyWithFilterRequest\x12.\n\x08_filters\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x88\x01\x01\x12\x31\n\x0b_pagination\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x42\x0b\n\tX_filtersB\x0e\n\x0cX_pagination\"\xaa\x01\n(UnitTestModelWithStructFilterListRequest\x12.\n\x08_filters\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x88\x01\x01\x12\x31\n\x0b_pagination\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructH\x01\x88\x01\x01\x42\x0b\n\tX_filtersB\x0e\n\x0cX_pagination\"\x85\x01\n)UnitTestModelWithStructFilterListResponse\x12I\n\x07results\x18\x01 \x03(\x0b\x32\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"\x96\x01\n1UnitTestModelWithStructFilterPartialUpdateRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\x16_partial_update_fields\x18\x02 \x03(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\x11\n\x04text\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"i\n$UnitTestModelWithStructFilterRequest\x12\x0f\n\x02id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_text\"^\n%UnitTestModelWithStructFilterResponse\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05title\x18\x02 \x01(\t\x12\x11\n\x04text\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_text\":\n,UnitTestModelWithStructFilterRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\",\n*UnitTestModelWithStructFilterStreamRequest2\xca\t\n\x0f\x42\x61sicController\x12t\n\tBasicList\x12\x31.myproject.fakeapp.BasicProtoListChildListRequest\x1a\x32.myproject.fakeapp.BasicProtoListChildListResponse\"\x00\x12[\n\x06\x43reate\x12&.myproject.fakeapp.BasicServiceRequest\x1a\'.myproject.fakeapp.BasicServiceResponse\"\x00\x12n\n\x10\x46\x65tchDataForUser\x12/.myproject.fakeapp.BasicFetchDataForUserRequest\x1a\'.myproject.fakeapp.BasicServiceResponse\"\x00\x12\x62\n\x12\x46\x65tchTranslatedKey\x12\x16.google.protobuf.Empty\x1a\x32.myproject.fakeapp.BasicFetchTranslatedKeyResponse\"\x00\x12T\n\x0bGetMultiple\x12\x16.google.protobuf.Empty\x1a+.myproject.fakeapp.BasicServiceListResponse\"\x00\x12L\n\x07ListIds\x12\x16.google.protobuf.Empty\x1a\'.myproject.fakeapp.BasicListIdsResponse\"\x00\x12N\n\x08ListName\x12\x16.google.protobuf.Empty\x1a(.myproject.fakeapp.BasicListNameResponse\"\x00\x12k\n\x08MixParam\x12/.myproject.fakeapp.CustomMixParamForListRequest\x1a,.myproject.fakeapp.BasicMixParamListResponse\"\x00\x12\x8e\x01\n\x16MixParamWithSerializer\x12\x36.myproject.fakeapp.BasicParamWithSerializerListRequest\x1a:.myproject.fakeapp.BasicMixParamWithSerializerListResponse\"\x00\x12_\n\x08MyMethod\x12\'.myproject.fakeapp.CustomNameForRequest\x1a(.myproject.fakeapp.CustomNameForResponse\"\x00\x12x\n\x17TestBaseProtoSerializer\x12*.myproject.fakeapp.BaseProtoExampleRequest\x1a/.myproject.fakeapp.BaseProtoExampleListResponse\"\x00\x12\x43\n\x0fTestEmptyMethod\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x32\xe1\x04\n\x16\x44\x65\x66\x61ultValueController\x12[\n\x06\x43reate\x12&.myproject.fakeapp.DefaultValueRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12R\n\x07\x44\x65stroy\x12-.myproject.fakeapp.DefaultValueDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x61\n\x04List\x12*.myproject.fakeapp.DefaultValueListRequest\x1a+.myproject.fakeapp.DefaultValueListResponse\"\x00\x12o\n\rPartialUpdate\x12\x33.myproject.fakeapp.DefaultValuePartialUpdateRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12\x65\n\x08Retrieve\x12..myproject.fakeapp.DefaultValueRetrieveRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x12[\n\x06Update\x12&.myproject.fakeapp.DefaultValueRequest\x1a\'.myproject.fakeapp.DefaultValueResponse\"\x00\x32\xd1\x02\n\x13\x45xceptionController\x12@\n\x0c\x41PIException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12\x41\n\rGRPCException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12l\n\x14StreamRaiseException\x12\x16.google.protobuf.Empty\x1a\x38.myproject.fakeapp.ExceptionStreamRaiseExceptionResponse\"\x00\x30\x01\x12G\n\x13UnaryRaiseException\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x32\xff\x01\n\x16\x46oreignModelController\x12\x61\n\x04List\x12*.myproject.fakeapp.ForeignModelListRequest\x1a+.myproject.fakeapp.ForeignModelListResponse\"\x00\x12\x81\x01\n\x08Retrieve\x12<.myproject.fakeapp.ForeignModelRetrieveCustomRetrieveRequest\x1a\x35.myproject.fakeapp.ForeignModelRetrieveCustomResponse\"\x00\x32\xa5\x01\n&ImportStructEvenInArrayModelController\x12{\n\x06\x43reate\x12\x36.myproject.fakeapp.ImportStructEvenInArrayModelRequest\x1a\x37.myproject.fakeapp.ImportStructEvenInArrayModelResponse\"\x00\x32\xa9\x05\n\x1cRecursiveTestModelController\x12g\n\x06\x43reate\x12,.myproject.fakeapp.RecursiveTestModelRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12X\n\x07\x44\x65stroy\x12\x33.myproject.fakeapp.RecursiveTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12m\n\x04List\x12\x30.myproject.fakeapp.RecursiveTestModelListRequest\x1a\x31.myproject.fakeapp.RecursiveTestModelListResponse\"\x00\x12{\n\rPartialUpdate\x12\x39.myproject.fakeapp.RecursiveTestModelPartialUpdateRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12q\n\x08Retrieve\x12\x34.myproject.fakeapp.RecursiveTestModelRetrieveRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x12g\n\x06Update\x12,.myproject.fakeapp.RecursiveTestModelRequest\x1a-.myproject.fakeapp.RecursiveTestModelResponse\"\x00\x32\x9d\x05\n\x1bRelatedFieldModelController\x12\x65\n\x06\x43reate\x12+.myproject.fakeapp.RelatedFieldModelRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12W\n\x07\x44\x65stroy\x12\x32.myproject.fakeapp.RelatedFieldModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12k\n\x04List\x12/.myproject.fakeapp.RelatedFieldModelListRequest\x1a\x30.myproject.fakeapp.RelatedFieldModelListResponse\"\x00\x12y\n\rPartialUpdate\x12\x38.myproject.fakeapp.RelatedFieldModelPartialUpdateRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12o\n\x08Retrieve\x12\x33.myproject.fakeapp.RelatedFieldModelRetrieveRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x12\x65\n\x06Update\x12+.myproject.fakeapp.RelatedFieldModelRequest\x1a,.myproject.fakeapp.RelatedFieldModelResponse\"\x00\x32\xe6\x05\n!SimpleRelatedFieldModelController\x12q\n\x06\x43reate\x12\x31.myproject.fakeapp.SimpleRelatedFieldModelRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12]\n\x07\x44\x65stroy\x12\x38.myproject.fakeapp.SimpleRelatedFieldModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12w\n\x04List\x12\x35.myproject.fakeapp.SimpleRelatedFieldModelListRequest\x1a\x36.myproject.fakeapp.SimpleRelatedFieldModelListResponse\"\x00\x12\x85\x01\n\rPartialUpdate\x12>.myproject.fakeapp.SimpleRelatedFieldModelPartialUpdateRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12{\n\x08Retrieve\x12\x39.myproject.fakeapp.SimpleRelatedFieldModelRetrieveRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x12q\n\x06Update\x12\x31.myproject.fakeapp.SimpleRelatedFieldModelRequest\x1a\x32.myproject.fakeapp.SimpleRelatedFieldModelResponse\"\x00\x32\xc0\x05\n\x1cSpecialFieldsModelController\x12g\n\x06\x43reate\x12,.myproject.fakeapp.SpecialFieldsModelRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x12X\n\x07\x44\x65stroy\x12\x33.myproject.fakeapp.SpecialFieldsModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12m\n\x04List\x12\x30.myproject.fakeapp.SpecialFieldsModelListRequest\x1a\x31.myproject.fakeapp.SpecialFieldsModelListResponse\"\x00\x12{\n\rPartialUpdate\x12\x39.myproject.fakeapp.SpecialFieldsModelPartialUpdateRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x12\x87\x01\n\x08Retrieve\x12\x34.myproject.fakeapp.SpecialFieldsModelRetrieveRequest\x1a\x43.myproject.fakeapp.CustomRetrieveResponseSpecialFieldsModelResponse\"\x00\x12g\n\x06Update\x12,.myproject.fakeapp.SpecialFieldsModelRequest\x1a-.myproject.fakeapp.SpecialFieldsModelResponse\"\x00\x32\xfe\x01\n\x12StreamInController\x12k\n\x08StreamIn\x12*.myproject.fakeapp.StreamInStreamInRequest\x1a/.myproject.fakeapp.StreamInStreamInListResponse\"\x00(\x01\x12{\n\x0eStreamToStream\x12\x30.myproject.fakeapp.StreamInStreamToStreamRequest\x1a\x31.myproject.fakeapp.StreamInStreamToStreamResponse\"\x00(\x01\x30\x01\x32\xe5\x06\n\x1bSyncUnitTestModelController\x12]\n\x06\x43reate\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12S\n\x07\x44\x65stroy\x12..myproject.fakeapp.UnitTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x63\n\x04List\x12+.myproject.fakeapp.UnitTestModelListRequest\x1a,.myproject.fakeapp.UnitTestModelListResponse\"\x00\x12\x8a\x01\n\x11ListWithExtraArgs\x12<.myproject.fakeapp.SyncUnitTestModelListWithExtraArgsRequest\x1a\x35.myproject.fakeapp.UnitTestModelListExtraArgsResponse\"\x00\x12q\n\rPartialUpdate\x12\x34.myproject.fakeapp.UnitTestModelPartialUpdateRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12g\n\x08Retrieve\x12/.myproject.fakeapp.UnitTestModelRetrieveRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12\x65\n\x06Stream\x12-.myproject.fakeapp.UnitTestModelStreamRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x30\x01\x12]\n\x06Update\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x32\xdd\x06\n\x17UnitTestModelController\x12]\n\x06\x43reate\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12S\n\x07\x44\x65stroy\x12..myproject.fakeapp.UnitTestModelDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x63\n\x04List\x12+.myproject.fakeapp.UnitTestModelListRequest\x1a,.myproject.fakeapp.UnitTestModelListResponse\"\x00\x12\x86\x01\n\x11ListWithExtraArgs\x12\x38.myproject.fakeapp.UnitTestModelListWithExtraArgsRequest\x1a\x35.myproject.fakeapp.UnitTestModelListExtraArgsResponse\"\x00\x12q\n\rPartialUpdate\x12\x34.myproject.fakeapp.UnitTestModelPartialUpdateRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12g\n\x08Retrieve\x12/.myproject.fakeapp.UnitTestModelRetrieveRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x12\x65\n\x06Stream\x12-.myproject.fakeapp.UnitTestModelStreamRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x30\x01\x12]\n\x06Update\x12\'.myproject.fakeapp.UnitTestModelRequest\x1a(.myproject.fakeapp.UnitTestModelResponse\"\x00\x32\xad\x08\n\'UnitTestModelWithStructFilterController\x12}\n\x06\x43reate\x12\x37.myproject.fakeapp.UnitTestModelWithStructFilterRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x63\n\x07\x44\x65stroy\x12>.myproject.fakeapp.UnitTestModelWithStructFilterDestroyRequest\x1a\x16.google.protobuf.Empty\"\x00\x12s\n\x0f\x45mptyWithFilter\x12\x46.myproject.fakeapp.UnitTestModelWithStructFilterEmptyWithFilterRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x83\x01\n\x04List\x12;.myproject.fakeapp.UnitTestModelWithStructFilterListRequest\x1a<.myproject.fakeapp.UnitTestModelWithStructFilterListResponse\"\x00\x12\x91\x01\n\rPartialUpdate\x12\x44.myproject.fakeapp.UnitTestModelWithStructFilterPartialUpdateRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x87\x01\n\x08Retrieve\x12?.myproject.fakeapp.UnitTestModelWithStructFilterRetrieveRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x12\x85\x01\n\x06Stream\x12=.myproject.fakeapp.UnitTestModelWithStructFilterStreamRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x30\x01\x12}\n\x06Update\x12\x37.myproject.fakeapp.UnitTestModelWithStructFilterRequest\x1a\x38.myproject.fakeapp.UnitTestModelWithStructFilterResponse\"\x00\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -130,111 +130,111 @@ _globals['_RELATEDFIELDMODELREQUEST']._serialized_start=7742 _globals['_RELATEDFIELDMODELREQUEST']._serialized_end=7911 _globals['_RELATEDFIELDMODELRESPONSE']._serialized_start=7914 - _globals['_RELATEDFIELDMODELRESPONSE']._serialized_end=8245 - _globals['_RELATEDFIELDMODELRETRIEVEREQUEST']._serialized_start=8247 - _globals['_RELATEDFIELDMODELRETRIEVEREQUEST']._serialized_end=8295 - _globals['_SIMPLERELATEDFIELDMODELDESTROYREQUEST']._serialized_start=8297 - _globals['_SIMPLERELATEDFIELDMODELDESTROYREQUEST']._serialized_end=8350 - _globals['_SIMPLERELATEDFIELDMODELLISTREQUEST']._serialized_start=8352 - _globals['_SIMPLERELATEDFIELDMODELLISTREQUEST']._serialized_end=8388 - _globals['_SIMPLERELATEDFIELDMODELLISTRESPONSE']._serialized_start=8390 - _globals['_SIMPLERELATEDFIELDMODELLISTRESPONSE']._serialized_end=8511 - _globals['_SIMPLERELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_start=8514 - _globals['_SIMPLERELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_end=8774 - _globals['_SIMPLERELATEDFIELDMODELREQUEST']._serialized_start=8777 - _globals['_SIMPLERELATEDFIELDMODELREQUEST']._serialized_end=8992 - _globals['_SIMPLERELATEDFIELDMODELRESPONSE']._serialized_start=8995 - _globals['_SIMPLERELATEDFIELDMODELRESPONSE']._serialized_end=9197 - _globals['_SIMPLERELATEDFIELDMODELRETRIEVEREQUEST']._serialized_start=9199 - _globals['_SIMPLERELATEDFIELDMODELRETRIEVEREQUEST']._serialized_end=9253 - _globals['_SPECIALFIELDSMODELDESTROYREQUEST']._serialized_start=9255 - _globals['_SPECIALFIELDSMODELDESTROYREQUEST']._serialized_end=9303 - _globals['_SPECIALFIELDSMODELLISTREQUEST']._serialized_start=9305 - _globals['_SPECIALFIELDSMODELLISTREQUEST']._serialized_end=9336 - _globals['_SPECIALFIELDSMODELLISTRESPONSE']._serialized_start=9338 - _globals['_SPECIALFIELDSMODELLISTRESPONSE']._serialized_end=9449 - _globals['_SPECIALFIELDSMODELPARTIALUPDATEREQUEST']._serialized_start=9452 - _globals['_SPECIALFIELDSMODELPARTIALUPDATEREQUEST']._serialized_end=9637 - _globals['_SPECIALFIELDSMODELREQUEST']._serialized_start=9640 - _globals['_SPECIALFIELDSMODELREQUEST']._serialized_end=9780 - _globals['_SPECIALFIELDSMODELRESPONSE']._serialized_start=9782 - _globals['_SPECIALFIELDSMODELRESPONSE']._serialized_end=9905 - _globals['_SPECIALFIELDSMODELRETRIEVEREQUEST']._serialized_start=9907 - _globals['_SPECIALFIELDSMODELRETRIEVEREQUEST']._serialized_end=9956 - _globals['_STREAMINSTREAMINLISTRESPONSE']._serialized_start=9958 - _globals['_STREAMINSTREAMINLISTRESPONSE']._serialized_end=10065 - _globals['_STREAMINSTREAMINREQUEST']._serialized_start=10067 - _globals['_STREAMINSTREAMINREQUEST']._serialized_end=10106 - _globals['_STREAMINSTREAMINRESPONSE']._serialized_start=10108 - _globals['_STREAMINSTREAMINRESPONSE']._serialized_end=10149 - _globals['_STREAMINSTREAMTOSTREAMREQUEST']._serialized_start=10151 - _globals['_STREAMINSTREAMTOSTREAMREQUEST']._serialized_end=10196 - _globals['_STREAMINSTREAMTOSTREAMRESPONSE']._serialized_start=10198 - _globals['_STREAMINSTREAMTOSTREAMRESPONSE']._serialized_end=10244 - _globals['_SYNCUNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_start=10246 - _globals['_SYNCUNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_end=10307 - _globals['_UNITTESTMODELDESTROYREQUEST']._serialized_start=10309 - _globals['_UNITTESTMODELDESTROYREQUEST']._serialized_end=10350 - _globals['_UNITTESTMODELLISTEXTRAARGSRESPONSE']._serialized_start=10353 - _globals['_UNITTESTMODELLISTEXTRAARGSRESPONSE']._serialized_end=10495 - _globals['_UNITTESTMODELLISTREQUEST']._serialized_start=10497 - _globals['_UNITTESTMODELLISTREQUEST']._serialized_end=10523 - _globals['_UNITTESTMODELLISTRESPONSE']._serialized_start=10525 - _globals['_UNITTESTMODELLISTRESPONSE']._serialized_end=10626 - _globals['_UNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_start=10628 - _globals['_UNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_end=10685 - _globals['_UNITTESTMODELPARTIALUPDATEREQUEST']._serialized_start=10688 - _globals['_UNITTESTMODELPARTIALUPDATEREQUEST']._serialized_end=10822 - _globals['_UNITTESTMODELREQUEST']._serialized_start=10824 - _globals['_UNITTESTMODELREQUEST']._serialized_end=10913 - _globals['_UNITTESTMODELRESPONSE']._serialized_start=10915 - _globals['_UNITTESTMODELRESPONSE']._serialized_end=10993 - _globals['_UNITTESTMODELRETRIEVEREQUEST']._serialized_start=10995 - _globals['_UNITTESTMODELRETRIEVEREQUEST']._serialized_end=11037 - _globals['_UNITTESTMODELSTREAMREQUEST']._serialized_start=11039 - _globals['_UNITTESTMODELSTREAMREQUEST']._serialized_end=11067 - _globals['_UNITTESTMODELWITHSTRUCTFILTERDESTROYREQUEST']._serialized_start=11069 - _globals['_UNITTESTMODELWITHSTRUCTFILTERDESTROYREQUEST']._serialized_end=11126 - _globals['_UNITTESTMODELWITHSTRUCTFILTEREMPTYWITHFILTERREQUEST']._serialized_start=11129 - _globals['_UNITTESTMODELWITHSTRUCTFILTEREMPTYWITHFILTERREQUEST']._serialized_end=11310 - _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTREQUEST']._serialized_start=11313 - _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTREQUEST']._serialized_end=11483 - _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTRESPONSE']._serialized_start=11486 - _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTRESPONSE']._serialized_end=11619 - _globals['_UNITTESTMODELWITHSTRUCTFILTERPARTIALUPDATEREQUEST']._serialized_start=11622 - _globals['_UNITTESTMODELWITHSTRUCTFILTERPARTIALUPDATEREQUEST']._serialized_end=11772 - _globals['_UNITTESTMODELWITHSTRUCTFILTERREQUEST']._serialized_start=11774 - _globals['_UNITTESTMODELWITHSTRUCTFILTERREQUEST']._serialized_end=11879 - _globals['_UNITTESTMODELWITHSTRUCTFILTERRESPONSE']._serialized_start=11881 - _globals['_UNITTESTMODELWITHSTRUCTFILTERRESPONSE']._serialized_end=11975 - _globals['_UNITTESTMODELWITHSTRUCTFILTERRETRIEVEREQUEST']._serialized_start=11977 - _globals['_UNITTESTMODELWITHSTRUCTFILTERRETRIEVEREQUEST']._serialized_end=12035 - _globals['_UNITTESTMODELWITHSTRUCTFILTERSTREAMREQUEST']._serialized_start=12037 - _globals['_UNITTESTMODELWITHSTRUCTFILTERSTREAMREQUEST']._serialized_end=12081 - _globals['_BASICCONTROLLER']._serialized_start=12084 - _globals['_BASICCONTROLLER']._serialized_end=13310 - _globals['_DEFAULTVALUECONTROLLER']._serialized_start=13313 - _globals['_DEFAULTVALUECONTROLLER']._serialized_end=13922 - _globals['_EXCEPTIONCONTROLLER']._serialized_start=13925 - _globals['_EXCEPTIONCONTROLLER']._serialized_end=14262 - _globals['_FOREIGNMODELCONTROLLER']._serialized_start=14265 - _globals['_FOREIGNMODELCONTROLLER']._serialized_end=14520 - _globals['_IMPORTSTRUCTEVENINARRAYMODELCONTROLLER']._serialized_start=14523 - _globals['_IMPORTSTRUCTEVENINARRAYMODELCONTROLLER']._serialized_end=14688 - _globals['_RECURSIVETESTMODELCONTROLLER']._serialized_start=14691 - _globals['_RECURSIVETESTMODELCONTROLLER']._serialized_end=15372 - _globals['_RELATEDFIELDMODELCONTROLLER']._serialized_start=15375 - _globals['_RELATEDFIELDMODELCONTROLLER']._serialized_end=16044 - _globals['_SIMPLERELATEDFIELDMODELCONTROLLER']._serialized_start=16047 - _globals['_SIMPLERELATEDFIELDMODELCONTROLLER']._serialized_end=16789 - _globals['_SPECIALFIELDSMODELCONTROLLER']._serialized_start=16792 - _globals['_SPECIALFIELDSMODELCONTROLLER']._serialized_end=17496 - _globals['_STREAMINCONTROLLER']._serialized_start=17499 - _globals['_STREAMINCONTROLLER']._serialized_end=17753 - _globals['_SYNCUNITTESTMODELCONTROLLER']._serialized_start=17756 - _globals['_SYNCUNITTESTMODELCONTROLLER']._serialized_end=18625 - _globals['_UNITTESTMODELCONTROLLER']._serialized_start=18628 - _globals['_UNITTESTMODELCONTROLLER']._serialized_end=19489 - _globals['_UNITTESTMODELWITHSTRUCTFILTERCONTROLLER']._serialized_start=19492 - _globals['_UNITTESTMODELWITHSTRUCTFILTERCONTROLLER']._serialized_end=20561 + _globals['_RELATEDFIELDMODELRESPONSE']._serialized_end=8270 + _globals['_RELATEDFIELDMODELRETRIEVEREQUEST']._serialized_start=8272 + _globals['_RELATEDFIELDMODELRETRIEVEREQUEST']._serialized_end=8320 + _globals['_SIMPLERELATEDFIELDMODELDESTROYREQUEST']._serialized_start=8322 + _globals['_SIMPLERELATEDFIELDMODELDESTROYREQUEST']._serialized_end=8375 + _globals['_SIMPLERELATEDFIELDMODELLISTREQUEST']._serialized_start=8377 + _globals['_SIMPLERELATEDFIELDMODELLISTREQUEST']._serialized_end=8413 + _globals['_SIMPLERELATEDFIELDMODELLISTRESPONSE']._serialized_start=8415 + _globals['_SIMPLERELATEDFIELDMODELLISTRESPONSE']._serialized_end=8536 + _globals['_SIMPLERELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_start=8539 + _globals['_SIMPLERELATEDFIELDMODELPARTIALUPDATEREQUEST']._serialized_end=8799 + _globals['_SIMPLERELATEDFIELDMODELREQUEST']._serialized_start=8802 + _globals['_SIMPLERELATEDFIELDMODELREQUEST']._serialized_end=9017 + _globals['_SIMPLERELATEDFIELDMODELRESPONSE']._serialized_start=9020 + _globals['_SIMPLERELATEDFIELDMODELRESPONSE']._serialized_end=9222 + _globals['_SIMPLERELATEDFIELDMODELRETRIEVEREQUEST']._serialized_start=9224 + _globals['_SIMPLERELATEDFIELDMODELRETRIEVEREQUEST']._serialized_end=9278 + _globals['_SPECIALFIELDSMODELDESTROYREQUEST']._serialized_start=9280 + _globals['_SPECIALFIELDSMODELDESTROYREQUEST']._serialized_end=9328 + _globals['_SPECIALFIELDSMODELLISTREQUEST']._serialized_start=9330 + _globals['_SPECIALFIELDSMODELLISTREQUEST']._serialized_end=9361 + _globals['_SPECIALFIELDSMODELLISTRESPONSE']._serialized_start=9363 + _globals['_SPECIALFIELDSMODELLISTRESPONSE']._serialized_end=9474 + _globals['_SPECIALFIELDSMODELPARTIALUPDATEREQUEST']._serialized_start=9477 + _globals['_SPECIALFIELDSMODELPARTIALUPDATEREQUEST']._serialized_end=9662 + _globals['_SPECIALFIELDSMODELREQUEST']._serialized_start=9665 + _globals['_SPECIALFIELDSMODELREQUEST']._serialized_end=9805 + _globals['_SPECIALFIELDSMODELRESPONSE']._serialized_start=9807 + _globals['_SPECIALFIELDSMODELRESPONSE']._serialized_end=9930 + _globals['_SPECIALFIELDSMODELRETRIEVEREQUEST']._serialized_start=9932 + _globals['_SPECIALFIELDSMODELRETRIEVEREQUEST']._serialized_end=9981 + _globals['_STREAMINSTREAMINLISTRESPONSE']._serialized_start=9983 + _globals['_STREAMINSTREAMINLISTRESPONSE']._serialized_end=10090 + _globals['_STREAMINSTREAMINREQUEST']._serialized_start=10092 + _globals['_STREAMINSTREAMINREQUEST']._serialized_end=10131 + _globals['_STREAMINSTREAMINRESPONSE']._serialized_start=10133 + _globals['_STREAMINSTREAMINRESPONSE']._serialized_end=10174 + _globals['_STREAMINSTREAMTOSTREAMREQUEST']._serialized_start=10176 + _globals['_STREAMINSTREAMTOSTREAMREQUEST']._serialized_end=10221 + _globals['_STREAMINSTREAMTOSTREAMRESPONSE']._serialized_start=10223 + _globals['_STREAMINSTREAMTOSTREAMRESPONSE']._serialized_end=10269 + _globals['_SYNCUNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_start=10271 + _globals['_SYNCUNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_end=10332 + _globals['_UNITTESTMODELDESTROYREQUEST']._serialized_start=10334 + _globals['_UNITTESTMODELDESTROYREQUEST']._serialized_end=10375 + _globals['_UNITTESTMODELLISTEXTRAARGSRESPONSE']._serialized_start=10378 + _globals['_UNITTESTMODELLISTEXTRAARGSRESPONSE']._serialized_end=10520 + _globals['_UNITTESTMODELLISTREQUEST']._serialized_start=10522 + _globals['_UNITTESTMODELLISTREQUEST']._serialized_end=10548 + _globals['_UNITTESTMODELLISTRESPONSE']._serialized_start=10550 + _globals['_UNITTESTMODELLISTRESPONSE']._serialized_end=10651 + _globals['_UNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_start=10653 + _globals['_UNITTESTMODELLISTWITHEXTRAARGSREQUEST']._serialized_end=10710 + _globals['_UNITTESTMODELPARTIALUPDATEREQUEST']._serialized_start=10713 + _globals['_UNITTESTMODELPARTIALUPDATEREQUEST']._serialized_end=10847 + _globals['_UNITTESTMODELREQUEST']._serialized_start=10849 + _globals['_UNITTESTMODELREQUEST']._serialized_end=10938 + _globals['_UNITTESTMODELRESPONSE']._serialized_start=10940 + _globals['_UNITTESTMODELRESPONSE']._serialized_end=11018 + _globals['_UNITTESTMODELRETRIEVEREQUEST']._serialized_start=11020 + _globals['_UNITTESTMODELRETRIEVEREQUEST']._serialized_end=11062 + _globals['_UNITTESTMODELSTREAMREQUEST']._serialized_start=11064 + _globals['_UNITTESTMODELSTREAMREQUEST']._serialized_end=11092 + _globals['_UNITTESTMODELWITHSTRUCTFILTERDESTROYREQUEST']._serialized_start=11094 + _globals['_UNITTESTMODELWITHSTRUCTFILTERDESTROYREQUEST']._serialized_end=11151 + _globals['_UNITTESTMODELWITHSTRUCTFILTEREMPTYWITHFILTERREQUEST']._serialized_start=11154 + _globals['_UNITTESTMODELWITHSTRUCTFILTEREMPTYWITHFILTERREQUEST']._serialized_end=11335 + _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTREQUEST']._serialized_start=11338 + _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTREQUEST']._serialized_end=11508 + _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTRESPONSE']._serialized_start=11511 + _globals['_UNITTESTMODELWITHSTRUCTFILTERLISTRESPONSE']._serialized_end=11644 + _globals['_UNITTESTMODELWITHSTRUCTFILTERPARTIALUPDATEREQUEST']._serialized_start=11647 + _globals['_UNITTESTMODELWITHSTRUCTFILTERPARTIALUPDATEREQUEST']._serialized_end=11797 + _globals['_UNITTESTMODELWITHSTRUCTFILTERREQUEST']._serialized_start=11799 + _globals['_UNITTESTMODELWITHSTRUCTFILTERREQUEST']._serialized_end=11904 + _globals['_UNITTESTMODELWITHSTRUCTFILTERRESPONSE']._serialized_start=11906 + _globals['_UNITTESTMODELWITHSTRUCTFILTERRESPONSE']._serialized_end=12000 + _globals['_UNITTESTMODELWITHSTRUCTFILTERRETRIEVEREQUEST']._serialized_start=12002 + _globals['_UNITTESTMODELWITHSTRUCTFILTERRETRIEVEREQUEST']._serialized_end=12060 + _globals['_UNITTESTMODELWITHSTRUCTFILTERSTREAMREQUEST']._serialized_start=12062 + _globals['_UNITTESTMODELWITHSTRUCTFILTERSTREAMREQUEST']._serialized_end=12106 + _globals['_BASICCONTROLLER']._serialized_start=12109 + _globals['_BASICCONTROLLER']._serialized_end=13335 + _globals['_DEFAULTVALUECONTROLLER']._serialized_start=13338 + _globals['_DEFAULTVALUECONTROLLER']._serialized_end=13947 + _globals['_EXCEPTIONCONTROLLER']._serialized_start=13950 + _globals['_EXCEPTIONCONTROLLER']._serialized_end=14287 + _globals['_FOREIGNMODELCONTROLLER']._serialized_start=14290 + _globals['_FOREIGNMODELCONTROLLER']._serialized_end=14545 + _globals['_IMPORTSTRUCTEVENINARRAYMODELCONTROLLER']._serialized_start=14548 + _globals['_IMPORTSTRUCTEVENINARRAYMODELCONTROLLER']._serialized_end=14713 + _globals['_RECURSIVETESTMODELCONTROLLER']._serialized_start=14716 + _globals['_RECURSIVETESTMODELCONTROLLER']._serialized_end=15397 + _globals['_RELATEDFIELDMODELCONTROLLER']._serialized_start=15400 + _globals['_RELATEDFIELDMODELCONTROLLER']._serialized_end=16069 + _globals['_SIMPLERELATEDFIELDMODELCONTROLLER']._serialized_start=16072 + _globals['_SIMPLERELATEDFIELDMODELCONTROLLER']._serialized_end=16814 + _globals['_SPECIALFIELDSMODELCONTROLLER']._serialized_start=16817 + _globals['_SPECIALFIELDSMODELCONTROLLER']._serialized_end=17521 + _globals['_STREAMINCONTROLLER']._serialized_start=17524 + _globals['_STREAMINCONTROLLER']._serialized_end=17778 + _globals['_SYNCUNITTESTMODELCONTROLLER']._serialized_start=17781 + _globals['_SYNCUNITTESTMODELCONTROLLER']._serialized_end=18650 + _globals['_UNITTESTMODELCONTROLLER']._serialized_start=18653 + _globals['_UNITTESTMODELCONTROLLER']._serialized_end=19514 + _globals['_UNITTESTMODELWITHSTRUCTFILTERCONTROLLER']._serialized_start=19517 + _globals['_UNITTESTMODELWITHSTRUCTFILTERCONTROLLER']._serialized_end=20586 # @@protoc_insertion_point(module_scope) diff --git a/django_socio_grpc/tests/fakeapp/serializers.py b/django_socio_grpc/tests/fakeapp/serializers.py index 4240c064..a9210cc7 100644 --- a/django_socio_grpc/tests/fakeapp/serializers.py +++ b/django_socio_grpc/tests/fakeapp/serializers.py @@ -73,7 +73,9 @@ class RelatedFieldModelSerializer(proto_serializers.ModelProtoSerializer): foreign = ForeignModelSerializer(read_only=True) many_many = ManyManyModelSerializer(many=True) - slug_test_model = serializers.SlugRelatedField(slug_field="special_number", read_only=True) + slug_test_model = serializers.SlugRelatedField( + slug_field="special_number", read_only=True, allow_null=True + ) slug_reverse_test_model = serializers.SlugRelatedField( slug_field="is_active", read_only=True, many=True ) diff --git a/django_socio_grpc/tests/protos/ALL_APP_GENERATED_NO_SEPARATE/fakeapp.proto b/django_socio_grpc/tests/protos/ALL_APP_GENERATED_NO_SEPARATE/fakeapp.proto index 5042a3de..d304a328 100644 --- a/django_socio_grpc/tests/protos/ALL_APP_GENERATED_NO_SEPARATE/fakeapp.proto +++ b/django_socio_grpc/tests/protos/ALL_APP_GENERATED_NO_SEPARATE/fakeapp.proto @@ -278,7 +278,7 @@ message RelatedFieldModel { string uuid = 1; ForeignModel foreign = 2; repeated ManyManyModel many_many = 3; - int32 slug_test_model = 4; + optional int32 slug_test_model = 4; repeated bool slug_reverse_test_model = 5; repeated string slug_many_many = 6; string proto_slug_related_field = 7; @@ -302,7 +302,7 @@ message RelatedFieldModelPartialUpdateRequest { string uuid = 1; ForeignModel foreign = 2; repeated ManyManyModel many_many = 3; - int32 slug_test_model = 4; + optional int32 slug_test_model = 4; repeated bool slug_reverse_test_model = 5; repeated string slug_many_many = 6; string proto_slug_related_field = 7; diff --git a/django_socio_grpc/tests/protos/ALL_APP_GENERATED_SEPARATE/fakeapp.proto b/django_socio_grpc/tests/protos/ALL_APP_GENERATED_SEPARATE/fakeapp.proto index acd59d4b..6486229a 100644 --- a/django_socio_grpc/tests/protos/ALL_APP_GENERATED_SEPARATE/fakeapp.proto +++ b/django_socio_grpc/tests/protos/ALL_APP_GENERATED_SEPARATE/fakeapp.proto @@ -451,7 +451,7 @@ message RelatedFieldModelResponse { string uuid = 1; ForeignModelResponse foreign = 2; repeated ManyManyModelResponse many_many = 3; - int32 slug_test_model = 4; + optional int32 slug_test_model = 4; repeated bool slug_reverse_test_model = 5; repeated string slug_many_many = 6; string proto_slug_related_field = 7; diff --git a/django_socio_grpc/tests/protos/MODEL_WITH_M2M_GENERATED/fakeapp.proto b/django_socio_grpc/tests/protos/MODEL_WITH_M2M_GENERATED/fakeapp.proto index 35ef31bf..6e9ead56 100644 --- a/django_socio_grpc/tests/protos/MODEL_WITH_M2M_GENERATED/fakeapp.proto +++ b/django_socio_grpc/tests/protos/MODEL_WITH_M2M_GENERATED/fakeapp.proto @@ -60,7 +60,7 @@ message RelatedFieldModelResponse { string uuid = 1; ForeignModelResponse foreign = 2; repeated ManyManyModelResponse many_many = 3; - int32 slug_test_model = 4; + optional int32 slug_test_model = 4; repeated bool slug_reverse_test_model = 5; repeated string slug_many_many = 6; string proto_slug_related_field = 7; diff --git a/django_socio_grpc/tests/protos/SIMPLE_APP_MODEL_GENERATED_FROM_OLD_ORDER/fakeapp.proto b/django_socio_grpc/tests/protos/SIMPLE_APP_MODEL_GENERATED_FROM_OLD_ORDER/fakeapp.proto index 9d2d782a..00fa590c 100644 --- a/django_socio_grpc/tests/protos/SIMPLE_APP_MODEL_GENERATED_FROM_OLD_ORDER/fakeapp.proto +++ b/django_socio_grpc/tests/protos/SIMPLE_APP_MODEL_GENERATED_FROM_OLD_ORDER/fakeapp.proto @@ -51,7 +51,7 @@ message UnitTestModelRequest { } message UnitTestModelResponse { - optional int32 id = 1; + int32 id = 1; optional string text = 2; string title = 3; } diff --git a/django_socio_grpc/tests/test_default_value.py b/django_socio_grpc/tests/test_default_value.py index 4ddc7d66..8fa8f81a 100644 --- a/django_socio_grpc/tests/test_default_value.py +++ b/django_socio_grpc/tests/test_default_value.py @@ -17,11 +17,15 @@ class TestDefaultValueField: # FROM_FIELD - def test_from_field_string(self): + def test_from_field_string_in_request(self): + in_request = True + + # --------------------------------- + ser = DefaultValueSerializer() field = ser.fields["string_required"] - proto_field = ProtoField.from_field(field) + proto_field = ProtoField.from_field(field, in_request=in_request) assert proto_field.name == "string_required" assert proto_field.field_type == "string" @@ -32,7 +36,7 @@ def test_from_field_string(self): ser = DefaultValueSerializer() field = ser.fields["string_blank"] - proto_field = ProtoField.from_field(field) + proto_field = ProtoField.from_field(field, in_request=in_request) assert proto_field.name == "string_blank" assert proto_field.field_type == "string" @@ -43,7 +47,7 @@ def test_from_field_string(self): ser = DefaultValueSerializer() field = ser.fields["string_nullable"] - proto_field = ProtoField.from_field(field) + proto_field = ProtoField.from_field(field, in_request=in_request) assert proto_field.name == "string_nullable" assert proto_field.field_type == "string" @@ -54,7 +58,7 @@ def test_from_field_string(self): ser = DefaultValueSerializer() field = ser.fields["string_default"] - proto_field = ProtoField.from_field(field) + proto_field = ProtoField.from_field(field, in_request=in_request) assert proto_field.name == "string_default" assert proto_field.field_type == "string" @@ -65,17 +69,79 @@ def test_from_field_string(self): ser = DefaultValueSerializer() field = ser.fields["string_required_but_serializer_default"] - proto_field = ProtoField.from_field(field) + proto_field = ProtoField.from_field(field, in_request=in_request) assert proto_field.name == "string_required_but_serializer_default" assert proto_field.field_type == "string" assert proto_field.cardinality == FieldCardinality.OPTIONAL - def test_from_field_integer(self): + def test_from_field_string_in_response(self): + in_request = False + + # --------------------------------- + + ser = DefaultValueSerializer() + field = ser.fields["string_required"] + + proto_field = ProtoField.from_field(field, in_request=in_request) + + assert proto_field.name == "string_required" + assert proto_field.field_type == "string" + assert proto_field.cardinality == FieldCardinality.NONE + + # --------------------------------- + + ser = DefaultValueSerializer() + field = ser.fields["string_blank"] + + proto_field = ProtoField.from_field(field, in_request=in_request) + + assert proto_field.name == "string_blank" + assert proto_field.field_type == "string" + assert proto_field.cardinality == FieldCardinality.NONE + + # --------------------------------- + + ser = DefaultValueSerializer() + field = ser.fields["string_nullable"] + + proto_field = ProtoField.from_field(field, in_request=in_request) + + assert proto_field.name == "string_nullable" + assert proto_field.field_type == "string" + assert proto_field.cardinality == FieldCardinality.OPTIONAL + + # --------------------------------- + + ser = DefaultValueSerializer() + field = ser.fields["string_default"] + + proto_field = ProtoField.from_field(field, in_request=in_request) + + assert proto_field.name == "string_default" + assert proto_field.field_type == "string" + assert proto_field.cardinality == FieldCardinality.NONE + + # --------------------------------- + + ser = DefaultValueSerializer() + field = ser.fields["string_required_but_serializer_default"] + + proto_field = ProtoField.from_field(field, in_request=in_request) + + assert proto_field.name == "string_required_but_serializer_default" + assert proto_field.field_type == "string" + assert proto_field.cardinality == FieldCardinality.NONE + + def test_from_field_integer_in_request(self): + in_request = True + + # --------------------------------- + ser = DefaultValueSerializer() field = ser.fields["int_required"] - proto_field = ProtoField.from_field(field) + proto_field = ProtoField.from_field(field, in_request=in_request) assert proto_field.name == "int_required" assert proto_field.field_type == "int32" @@ -86,7 +152,7 @@ def test_from_field_integer(self): ser = DefaultValueSerializer() field = ser.fields["int_nullable"] - proto_field = ProtoField.from_field(field) + proto_field = ProtoField.from_field(field, in_request=in_request) assert proto_field.name == "int_nullable" assert proto_field.field_type == "int32" @@ -97,7 +163,7 @@ def test_from_field_integer(self): ser = DefaultValueSerializer() field = ser.fields["int_default"] - proto_field = ProtoField.from_field(field) + proto_field = ProtoField.from_field(field, in_request=in_request) assert proto_field.name == "int_default" assert proto_field.field_type == "int32" @@ -108,17 +174,68 @@ def test_from_field_integer(self): ser = DefaultValueSerializer() field = ser.fields["int_required_but_serializer_default"] - proto_field = ProtoField.from_field(field) + proto_field = ProtoField.from_field(field, in_request=in_request) assert proto_field.name == "int_required_but_serializer_default" assert proto_field.field_type == "int32" assert proto_field.cardinality == FieldCardinality.OPTIONAL - def test_from_field_boolean(self): + def test_from_field_integer_in_response(self): + in_request = False + + # --------------------------------- + + ser = DefaultValueSerializer() + field = ser.fields["int_required"] + + proto_field = ProtoField.from_field(field, in_request=in_request) + + assert proto_field.name == "int_required" + assert proto_field.field_type == "int32" + assert proto_field.cardinality == FieldCardinality.NONE + + # --------------------------------- + + ser = DefaultValueSerializer() + field = ser.fields["int_nullable"] + + proto_field = ProtoField.from_field(field, in_request=in_request) + + assert proto_field.name == "int_nullable" + assert proto_field.field_type == "int32" + assert proto_field.cardinality == FieldCardinality.OPTIONAL + + # --------------------------------- + + ser = DefaultValueSerializer() + field = ser.fields["int_default"] + + proto_field = ProtoField.from_field(field, in_request=in_request) + + assert proto_field.name == "int_default" + assert proto_field.field_type == "int32" + assert proto_field.cardinality == FieldCardinality.NONE + + # --------------------------------- + + ser = DefaultValueSerializer() + field = ser.fields["int_required_but_serializer_default"] + + proto_field = ProtoField.from_field(field, in_request=in_request) + + assert proto_field.name == "int_required_but_serializer_default" + assert proto_field.field_type == "int32" + assert proto_field.cardinality == FieldCardinality.NONE + + def test_from_field_boolean_in_request(self): + in_request = True + + # --------------------------------- + ser = DefaultValueSerializer() field = ser.fields["boolean_required"] - proto_field = ProtoField.from_field(field) + proto_field = ProtoField.from_field(field, in_request=in_request) assert proto_field.name == "boolean_required" assert proto_field.field_type == "bool" @@ -129,7 +246,7 @@ def test_from_field_boolean(self): ser = DefaultValueSerializer() field = ser.fields["boolean_nullable"] - proto_field = ProtoField.from_field(field) + proto_field = ProtoField.from_field(field, in_request=in_request) assert proto_field.name == "boolean_nullable" assert proto_field.field_type == "bool" @@ -140,7 +257,7 @@ def test_from_field_boolean(self): ser = DefaultValueSerializer() field = ser.fields["boolean_default_true"] - proto_field = ProtoField.from_field(field) + proto_field = ProtoField.from_field(field, in_request=in_request) assert proto_field.name == "boolean_default_true" assert proto_field.field_type == "bool" @@ -151,7 +268,7 @@ def test_from_field_boolean(self): ser = DefaultValueSerializer() field = ser.fields["boolean_default_false"] - proto_field = ProtoField.from_field(field) + proto_field = ProtoField.from_field(field, in_request=in_request) assert proto_field.name == "boolean_default_false" assert proto_field.field_type == "bool" @@ -162,12 +279,70 @@ def test_from_field_boolean(self): ser = DefaultValueSerializer() field = ser.fields["boolean_required_but_serializer_default"] - proto_field = ProtoField.from_field(field) + proto_field = ProtoField.from_field(field, in_request=in_request) assert proto_field.name == "boolean_required_but_serializer_default" assert proto_field.field_type == "bool" assert proto_field.cardinality == FieldCardinality.OPTIONAL + def test_from_field_boolean_in_response(self): + in_request = False + + # --------------------------------- + + ser = DefaultValueSerializer() + field = ser.fields["boolean_required"] + + proto_field = ProtoField.from_field(field, in_request=in_request) + + assert proto_field.name == "boolean_required" + assert proto_field.field_type == "bool" + assert proto_field.cardinality == FieldCardinality.NONE + + # --------------------------------- + + ser = DefaultValueSerializer() + field = ser.fields["boolean_nullable"] + + proto_field = ProtoField.from_field(field, in_request=in_request) + + assert proto_field.name == "boolean_nullable" + assert proto_field.field_type == "bool" + assert proto_field.cardinality == FieldCardinality.OPTIONAL + + # --------------------------------- + + ser = DefaultValueSerializer() + field = ser.fields["boolean_default_true"] + + proto_field = ProtoField.from_field(field, in_request=in_request) + + assert proto_field.name == "boolean_default_true" + assert proto_field.field_type == "bool" + assert proto_field.cardinality == FieldCardinality.NONE + + # --------------------------------- + + ser = DefaultValueSerializer() + field = ser.fields["boolean_default_false"] + + proto_field = ProtoField.from_field(field, in_request=in_request) + + assert proto_field.name == "boolean_default_false" + assert proto_field.field_type == "bool" + assert proto_field.cardinality == FieldCardinality.NONE + + # --------------------------------- + + ser = DefaultValueSerializer() + field = ser.fields["boolean_required_but_serializer_default"] + + proto_field = ProtoField.from_field(field, in_request=in_request) + + assert proto_field.name == "boolean_required_but_serializer_default" + assert proto_field.field_type == "bool" + assert proto_field.cardinality == FieldCardinality.NONE + @override_settings(GRPC_FRAMEWORK={"GRPC_ASYNC": True}) class TestDefaultValueService(TestCase): @@ -192,10 +367,8 @@ async def test_retrieve_all_default_value(self): # STRING ################## - # INFO - AM - 12/01/2024 - check presence / not presence depending if element is None or empty - self.assertTrue(response.HasField("string_blank")) + # INFO - AM - 12/01/2024 - check presence / not presence depending if element is None or empty (only for optional in response field) self.assertFalse(response.HasField("string_nullable")) - self.assertTrue(response.HasField("string_default_and_blank")) self.assertTrue(response.HasField("string_null_default_and_blank")) # INFO - AM - 12/01/2024 - check value event if grpc default because we check presence before @@ -229,10 +402,8 @@ async def test_retrieve_all_default_value(self): # BOOLEAN ################## - # INFO - AM - 12/01/2024 - check presence / not presence depending if element is None or empty + # INFO - AM - 12/01/2024 - check presence / not presence depending if element is None or empty (only for optional in response field) self.assertFalse(response.HasField("boolean_nullable")) - self.assertTrue(response.HasField("boolean_default_false")) - self.assertTrue(response.HasField("boolean_default_true")) # INFO - AM - 12/01/2024 - check value event if grpc default because we check presence before self.assertEqual(response.boolean_required, True) @@ -252,10 +423,8 @@ async def test_create_all_default_value(self): # STRING ################## - # INFO - AM - 12/01/2024 - check presence / not presence depending if element is None or empty - self.assertTrue(response.HasField("string_blank")) + # INFO - AM - 12/01/2024 - check presence / not presence depending if element is None or empty (only for optional in response field) self.assertFalse(response.HasField("string_nullable")) - self.assertTrue(response.HasField("string_default_and_blank")) self.assertTrue(response.HasField("string_null_default_and_blank")) # INFO - AM - 12/01/2024 - check value event if grpc default because we check presence before @@ -287,10 +456,8 @@ async def test_create_all_default_value(self): # BOOLEAN ################## - # INFO - AM - 12/01/2024 - check presence / not presence depending if element is None or empty + # INFO - AM - 12/01/2024 - check presence / not presence depending if element is None or empty (only for optional in response field) self.assertFalse(response.HasField("boolean_nullable")) - self.assertTrue(response.HasField("boolean_default_false")) - self.assertTrue(response.HasField("boolean_default_true")) # INFO - AM - 12/01/2024 - check value event if grpc default because we check presence before self.assertEqual(response.boolean_required, True) @@ -334,10 +501,8 @@ async def test_update_all_default_value(self): # STRING ################## - # INFO - AM - 12/01/2024 - check presence / not presence depending if element is None or empty - self.assertTrue(response.HasField("string_blank")) + # INFO - AM - 12/01/2024 - check presence / not presence depending if element is None or empty (only for optional in response field) self.assertFalse(response.HasField("string_nullable")) - self.assertTrue(response.HasField("string_default_and_blank")) self.assertFalse(response.HasField("string_null_default_and_blank")) # INFO - AM - 12/01/2024 - check value event if grpc default because we check presence before @@ -381,10 +546,8 @@ async def test_update_all_default_value(self): # BOOLEAN ################## - # INFO - AM - 12/01/2024 - check presence / not presence depending if element is None or empty + # INFO - AM - 12/01/2024 - check presence / not presence depending if element is None or empty (only for optional in response field) self.assertFalse(response.HasField("boolean_nullable")) - self.assertTrue(response.HasField("boolean_default_false")) - self.assertTrue(response.HasField("boolean_default_true")) # INFO - AM - 12/01/2024 - check value event if grpc default because we check presence before self.assertEqual(response.boolean_required, False) @@ -469,10 +632,8 @@ async def test_partial_update_specifying_optional_but_not_set_them(self): # STRING ################## - # INFO - AM - 12/01/2024 - check presence / not presence depending if element is None or empty - self.assertTrue(response.HasField("string_blank")) + # INFO - AM - 12/01/2024 - check presence / not presence depending if element is None or empty (only for optional in response field) self.assertFalse(response.HasField("string_nullable")) - self.assertTrue(response.HasField("string_default_and_blank")) self.assertFalse(response.HasField("string_null_default_and_blank")) # INFO - AM - 12/01/2024 - check value event if grpc default because we check presence before @@ -517,10 +678,8 @@ async def test_partial_update_specifying_optional_but_not_set_them(self): # BOOLEAN ################## - # INFO - AM - 12/01/2024 - check presence / not presence depending if element is None or empty + # INFO - AM - 12/01/2024 - check presence / not presence depending if element is None or empty (only for optional in response field) self.assertFalse(response.HasField("boolean_nullable")) - self.assertTrue(response.HasField("boolean_default_false")) - self.assertTrue(response.HasField("boolean_default_true")) # INFO - AM - 12/01/2024 - check value event if grpc default because we check presence before self.assertEqual( diff --git a/django_socio_grpc/tests/test_protobuf_registration.py b/django_socio_grpc/tests/test_protobuf_registration.py index 18c787c8..e038e47e 100644 --- a/django_socio_grpc/tests/test_protobuf_registration.py +++ b/django_socio_grpc/tests/test_protobuf_registration.py @@ -74,7 +74,7 @@ class Meta: class MyIntField(serializers.IntegerField): ... -class MyOtherSerializer(proto_serializers.ProtoSerializer): +class SimpleSerializer(proto_serializers.ProtoSerializer): uuid = serializers.UUIDField() name = serializers.CharField() @@ -85,7 +85,7 @@ class MySerializer(proto_serializers.ProtoSerializer): optional_field = serializers.CharField(allow_null=True) default_char = serializers.CharField(default="value") list_field = serializers.ListField(child=serializers.CharField()) - list_field_with_serializer = serializers.ListField(child=MyOtherSerializer()) + list_field_with_serializer = serializers.ListField(child=SimpleSerializer()) smf = serializers.SerializerMethodField() smf_with_serializer = serializers.SerializerMethodField() @@ -108,6 +108,7 @@ class MyOtherSerializer(proto_serializers.ModelProtoSerializer): pk_related_source_field = serializers.PrimaryKeyRelatedField( read_only=True, + allow_null=True, source="foreign.uuid", pk_field=serializers.UUIDField(format="hex_verbose"), ) @@ -125,6 +126,7 @@ class Meta: "serializer_list", "pk_related_source_field", "many_related_field", + "foreign", ) @@ -178,7 +180,7 @@ def test_from_field_slug_related_field(self): ser = RelatedFieldModelSerializer() field = ser.fields["slug_test_model"] - proto_field = ProtoField.from_field(field) + proto_field = ProtoField.from_field(field, in_request=False) assert proto_field.name == "slug_test_model" assert proto_field.field_type == "int32" @@ -186,6 +188,20 @@ def test_from_field_slug_related_field(self): assert proto_field.cardinality == FieldCardinality.OPTIONAL assert proto_field.comments is None + def test_from_field_related_field(self): + """ + Test that if PrimarykeyRelatedField is not redefined then allow_null is true and cardinality is optional + """ + ser = MyOtherSerializer() + field = ser.fields["foreign"] + proto_field = ProtoField.from_field(field, in_request=False) + + assert proto_field.name == "foreign" + assert proto_field.field_type == "string" + # INFO - AM - 04/01/2024 - OPTIONAL because foreign can be null in RelatedFieldModel + assert proto_field.cardinality == FieldCardinality.OPTIONAL + assert proto_field.comments is None + def test_from_field_related_field_source(self): ser = MyOtherSerializer() field = ser.fields["pk_related_source_field"] @@ -248,30 +264,43 @@ def test_from_field_serializer_method_field_with_list_serializer_child_serialize ) assert proto_field.name == "list_field_with_serializer" - assert proto_field.field_type.name == "MyOther" + assert proto_field.field_type.name == "Simple" assert proto_field.cardinality == FieldCardinality.REPEATED def test_from_field_serializer_choice_field(self): ser = MyIntSerializer() field = ser.fields["choice_field"] - proto_field = ProtoField.from_field(field) + proto_field = ProtoField.from_field(field, in_request=True) assert proto_field.name == "choice_field" assert proto_field.field_type == "int32" # INFO - AM - 04/01/2024 - OPTIONAL because a default is specified in the model assert proto_field.cardinality == FieldCardinality.OPTIONAL + proto_field = ProtoField.from_field(field, in_request=False) + + assert proto_field.name == "choice_field" + assert proto_field.field_type == "int32" + # INFO - AM - 04/01/2024 - None because in response + assert proto_field.cardinality == FieldCardinality.NONE + def test_from_field_default(self): ser = MySerializer() field_char = ser.fields["default_char"] - proto_field_char = ProtoField.from_field(field_char) + proto_field_char = ProtoField.from_field(field_char, in_request=True) assert proto_field_char.name == "default_char" assert proto_field_char.field_type == "string" assert proto_field_char.cardinality == FieldCardinality.OPTIONAL + proto_field_char = ProtoField.from_field(field_char, in_request=False) + + assert proto_field_char.name == "default_char" + assert proto_field_char.field_type == "string" + assert proto_field_char.cardinality == FieldCardinality.NONE + # FROM_SERIALIZER def test_from_serializer(self): @@ -433,7 +462,7 @@ def test_from_serializer_nested(self): ) assert proto_message.name == "MyOtherResponse" - assert len(proto_message.fields) == 4 + assert len(proto_message.fields) == 5 assert proto_message.comments == ["serializer comment"] assert proto_message.fields[0].name == "serializer"