diff --git a/Readme.md b/Readme.md index b337b79..a8ee124 100644 --- a/Readme.md +++ b/Readme.md @@ -78,6 +78,26 @@ const call = communityGames.getPlayground(request, metadata, }); ``` +## python +for python you can use the 'sonora' package to do grpc-web +```py +import sonora.aio +import sys +from proto import communitygames_pb2, communitygames_pb2_grpc + +async def main(): + async with sonora.aio.insecure_web_channel( + f"https://kingston-prod-wgw-envoy.ops.dice.se" + ) as channel: + stub = communitygames_pb2_grpc.CommunityGamesStub(channel) + response: communitygames_pb2.PlaygroundInfoResponse = await stub.getPlayground(communitygames_pb2.GetPlaygroundRequest(playgroundId="10992a10-461a-11ec-8de0-d9f491f92236"), metadata=( + ('x-dice-tenancy', 'prod_default-prod_default-kingston-common'), + ('x-gateway-session-id', 'web-c6b312c9-2520-4fde-958d-60ae71840a65'), + ('x-grpc-web', '1'), + ('x-user-agent', 'grpc-web-javascript/0.1') + )) +``` + ### current build method from proto to javascript via python needs proto-compile, which can be installed with: `pip3 install proto-compile` @@ -85,9 +105,16 @@ needs proto-compile, which can be installed with: and build with: `proto-compile --clear-output-dirs --verbosity=1 ./proto ./src/proto grpc-web --grpc_web_out_options="import_style=typescript,mode=grpcweb"` +building for python requires grpcio-tools, which can be installed with: +`pip3 install grpcio-tools` + +and build with: +`python3 -m grpc_tools.protoc -I. --python_out=./grpc-python --grpc_python_out=./grpc-python ./proto/communitygames.proto ./proto/localization.proto ./proto/authentication.proto ./proto/reporting.proto` + python package used: https://github.com/romnn/proto-compile ### Pushing your changes -package versions can be made with `npm run build` and `npm version patch` `git push --tags origin main` to release +package versions can be made with `npm run build` and `npm version patch` `git push --tags origin main` to release. + example library used: https://github.com/tomchen/example-typescript-package diff --git a/bfportal_grpc_python/__init__.py b/bfportal_grpc_python/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/bfportal_grpc_python/access_token.py b/bfportal_grpc_python/access_token.py new file mode 100644 index 0000000..089db05 --- /dev/null +++ b/bfportal_grpc_python/access_token.py @@ -0,0 +1,22 @@ +import asyncio +import aiohttp +import urllib.parse + +class Cookie: + sid: str + remid: str + +async def getBf2042GatewaySession(cookie: Cookie): + async with aiohttp.ClientSession() as session: + url = "https://accounts.ea.com/connect/auth?client_id=KINGSTON_COMP_APP&locale=en_US&redirect_uri=https%3A%2F%2Fportal.battlefield.com%2F&response_type=code" + headers = { + "Cookie": f"sid={cookie.sid}; remid={cookie.remid};" + } + async with session.get(url=url, headers=headers, allow_redirects=False) as r: + redirect = r.headers["Location"] + access_code = urllib.parse.urlparse( + redirect).query.split("=")[1] + return access_code + +if __name__ == "__main__": + asyncio.run(getBf2042GatewaySession()) \ No newline at end of file diff --git a/bfportal_grpc_python/proto/authentication_pb2.py b/bfportal_grpc_python/proto/authentication_pb2.py new file mode 100644 index 0000000..0cbf787 --- /dev/null +++ b/bfportal_grpc_python/proto/authentication_pb2.py @@ -0,0 +1,126 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: proto/authentication.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1aproto/authentication.proto\x12\x12web.authentication\"F\n\nPlayerInfo\x12\x11\n\tnucleusId\x18\x01 \x01(\x03\x12\x11\n\tpersonaId\x18\x02 \x01(\x03\x12\x12\n\nplatformId\x18\x03 \x01(\x05\"\x8b\x01\n\x0b\x41uthRequest\x12\x10\n\x08\x61uthCode\x18\x01 \x01(\t\x12\x13\n\x0bredirectUri\x18\x02 \x01(\t\x12\x0f\n\x07product\x18\x03 \x01(\t\x12\x14\n\x0c\x66irstPartyId\x18\x04 \x01(\t\x12.\n\x08platform\x18\x05 \x01(\x0e\x32\x1c.web.authentication.Platform\"*\n\x08\x44uration\x12\x0f\n\x07seconds\x18\x01 \x01(\x03\x12\r\n\x05nanos\x18\x02 \x01(\x05\":\n\nTimeTravel\x12,\n\x06offset\x18\x01 \x01(\x0b\x32\x1c.web.authentication.Duration\"k\n\x17ProtocolVersionOverride\x12\x10\n\x08original\x18\x01 \x01(\t\x12\x12\n\noverridden\x18\x02 \x01(\t\x12*\n\x06reason\x18\x03 \x01(\x0e\x32\x1a.web.authentication.Reason\"\x07\n\x05\x45mpty\"\x83\x02\n\x0c\x41uthResponse\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12.\n\x06player\x18\x03 \x01(\x0b\x32\x1e.web.authentication.PlayerInfo\x12.\n\x08userBits\x18\x04 \x03(\x0e\x32\x1c.web.authentication.UserBits\x12\x32\n\ntimeTravel\x18\x05 \x01(\x0b\x32\x1e.web.authentication.TimeTravel\x12L\n\x17protocolVersionOverride\x18\x06 \x01(\x0b\x32+.web.authentication.ProtocolVersionOverride*T\n\x08Platform\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x06\n\x02PC\x10\x01\x12\x07\n\x03PS4\x10\x02\x12\x0b\n\x07XBOXONE\x10\x03\x12\x07\n\x03PS5\x10\x04\x12\x08\n\x04XBSX\x10\x05\x12\n\n\x06\x43OMMON\x10\x06*(\n\x06Reason\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06PLAYER\x10\x01\x12\x08\n\x04SYNC\x10\x02*\xcc\x01\n\x08UserBits\x12\x18\n\x14USER_BIT_UNSPECIFIED\x10\x00\x12\x19\n\x15USER_BIT_ACCEPTED_TOS\x10\x01\x12\x1f\n\x1bUSER_BIT_ENABLE_USERSHARING\x10\x02\x12 \n\x1cUSER_BIT_ENABLE_CRASHREPORTS\x10\x03\x12\x1f\n\x1bUSER_BIT_COMPLETED_TUTORIAL\x10\x04\x12\'\n#USER_BIT_CLIENT_ENABLE_USAGESHARING\x10\x05\x32\xac\x01\n\x14\x43lientAuthentication\x12R\n\x0bviaAuthCode\x12\x1f.web.authentication.AuthRequest\x1a .web.authentication.AuthResponse\"\x00\x12@\n\x06logout\x12\x19.web.authentication.Empty\x1a\x19.web.authentication.Empty\"\x00\x62\x06proto3') + +_PLATFORM = DESCRIPTOR.enum_types_by_name['Platform'] +Platform = enum_type_wrapper.EnumTypeWrapper(_PLATFORM) +_REASON = DESCRIPTOR.enum_types_by_name['Reason'] +Reason = enum_type_wrapper.EnumTypeWrapper(_REASON) +_USERBITS = DESCRIPTOR.enum_types_by_name['UserBits'] +UserBits = enum_type_wrapper.EnumTypeWrapper(_USERBITS) +UNKNOWN = 0 +PC = 1 +PS4 = 2 +XBOXONE = 3 +PS5 = 4 +XBSX = 5 +COMMON = 6 +NONE = 0 +PLAYER = 1 +SYNC = 2 +USER_BIT_UNSPECIFIED = 0 +USER_BIT_ACCEPTED_TOS = 1 +USER_BIT_ENABLE_USERSHARING = 2 +USER_BIT_ENABLE_CRASHREPORTS = 3 +USER_BIT_COMPLETED_TUTORIAL = 4 +USER_BIT_CLIENT_ENABLE_USAGESHARING = 5 + + +_PLAYERINFO = DESCRIPTOR.message_types_by_name['PlayerInfo'] +_AUTHREQUEST = DESCRIPTOR.message_types_by_name['AuthRequest'] +_DURATION = DESCRIPTOR.message_types_by_name['Duration'] +_TIMETRAVEL = DESCRIPTOR.message_types_by_name['TimeTravel'] +_PROTOCOLVERSIONOVERRIDE = DESCRIPTOR.message_types_by_name['ProtocolVersionOverride'] +_EMPTY = DESCRIPTOR.message_types_by_name['Empty'] +_AUTHRESPONSE = DESCRIPTOR.message_types_by_name['AuthResponse'] +PlayerInfo = _reflection.GeneratedProtocolMessageType('PlayerInfo', (_message.Message,), { + 'DESCRIPTOR' : _PLAYERINFO, + '__module__' : 'proto.authentication_pb2' + # @@protoc_insertion_point(class_scope:web.authentication.PlayerInfo) + }) +_sym_db.RegisterMessage(PlayerInfo) + +AuthRequest = _reflection.GeneratedProtocolMessageType('AuthRequest', (_message.Message,), { + 'DESCRIPTOR' : _AUTHREQUEST, + '__module__' : 'proto.authentication_pb2' + # @@protoc_insertion_point(class_scope:web.authentication.AuthRequest) + }) +_sym_db.RegisterMessage(AuthRequest) + +Duration = _reflection.GeneratedProtocolMessageType('Duration', (_message.Message,), { + 'DESCRIPTOR' : _DURATION, + '__module__' : 'proto.authentication_pb2' + # @@protoc_insertion_point(class_scope:web.authentication.Duration) + }) +_sym_db.RegisterMessage(Duration) + +TimeTravel = _reflection.GeneratedProtocolMessageType('TimeTravel', (_message.Message,), { + 'DESCRIPTOR' : _TIMETRAVEL, + '__module__' : 'proto.authentication_pb2' + # @@protoc_insertion_point(class_scope:web.authentication.TimeTravel) + }) +_sym_db.RegisterMessage(TimeTravel) + +ProtocolVersionOverride = _reflection.GeneratedProtocolMessageType('ProtocolVersionOverride', (_message.Message,), { + 'DESCRIPTOR' : _PROTOCOLVERSIONOVERRIDE, + '__module__' : 'proto.authentication_pb2' + # @@protoc_insertion_point(class_scope:web.authentication.ProtocolVersionOverride) + }) +_sym_db.RegisterMessage(ProtocolVersionOverride) + +Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), { + 'DESCRIPTOR' : _EMPTY, + '__module__' : 'proto.authentication_pb2' + # @@protoc_insertion_point(class_scope:web.authentication.Empty) + }) +_sym_db.RegisterMessage(Empty) + +AuthResponse = _reflection.GeneratedProtocolMessageType('AuthResponse', (_message.Message,), { + 'DESCRIPTOR' : _AUTHRESPONSE, + '__module__' : 'proto.authentication_pb2' + # @@protoc_insertion_point(class_scope:web.authentication.AuthResponse) + }) +_sym_db.RegisterMessage(AuthResponse) + +_CLIENTAUTHENTICATION = DESCRIPTOR.services_by_name['ClientAuthentication'] +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _PLATFORM._serialized_start=748 + _PLATFORM._serialized_end=832 + _REASON._serialized_start=834 + _REASON._serialized_end=874 + _USERBITS._serialized_start=877 + _USERBITS._serialized_end=1081 + _PLAYERINFO._serialized_start=50 + _PLAYERINFO._serialized_end=120 + _AUTHREQUEST._serialized_start=123 + _AUTHREQUEST._serialized_end=262 + _DURATION._serialized_start=264 + _DURATION._serialized_end=306 + _TIMETRAVEL._serialized_start=308 + _TIMETRAVEL._serialized_end=366 + _PROTOCOLVERSIONOVERRIDE._serialized_start=368 + _PROTOCOLVERSIONOVERRIDE._serialized_end=475 + _EMPTY._serialized_start=477 + _EMPTY._serialized_end=484 + _AUTHRESPONSE._serialized_start=487 + _AUTHRESPONSE._serialized_end=746 + _CLIENTAUTHENTICATION._serialized_start=1084 + _CLIENTAUTHENTICATION._serialized_end=1256 +# @@protoc_insertion_point(module_scope) diff --git a/bfportal_grpc_python/proto/authentication_pb2_grpc.py b/bfportal_grpc_python/proto/authentication_pb2_grpc.py new file mode 100644 index 0000000..5147e3e --- /dev/null +++ b/bfportal_grpc_python/proto/authentication_pb2_grpc.py @@ -0,0 +1,99 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from proto import authentication_pb2 as proto_dot_authentication__pb2 + + +class ClientAuthenticationStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.viaAuthCode = channel.unary_unary( + '/web.authentication.ClientAuthentication/viaAuthCode', + request_serializer=proto_dot_authentication__pb2.AuthRequest.SerializeToString, + response_deserializer=proto_dot_authentication__pb2.AuthResponse.FromString, + ) + self.logout = channel.unary_unary( + '/web.authentication.ClientAuthentication/logout', + request_serializer=proto_dot_authentication__pb2.Empty.SerializeToString, + response_deserializer=proto_dot_authentication__pb2.Empty.FromString, + ) + + +class ClientAuthenticationServicer(object): + """Missing associated documentation comment in .proto file.""" + + def viaAuthCode(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def logout(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ClientAuthenticationServicer_to_server(servicer, server): + rpc_method_handlers = { + 'viaAuthCode': grpc.unary_unary_rpc_method_handler( + servicer.viaAuthCode, + request_deserializer=proto_dot_authentication__pb2.AuthRequest.FromString, + response_serializer=proto_dot_authentication__pb2.AuthResponse.SerializeToString, + ), + 'logout': grpc.unary_unary_rpc_method_handler( + servicer.logout, + request_deserializer=proto_dot_authentication__pb2.Empty.FromString, + response_serializer=proto_dot_authentication__pb2.Empty.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'web.authentication.ClientAuthentication', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ClientAuthentication(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def viaAuthCode(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/web.authentication.ClientAuthentication/viaAuthCode', + proto_dot_authentication__pb2.AuthRequest.SerializeToString, + proto_dot_authentication__pb2.AuthResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def logout(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/web.authentication.ClientAuthentication/logout', + proto_dot_authentication__pb2.Empty.SerializeToString, + proto_dot_authentication__pb2.Empty.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/bfportal_grpc_python/proto/communitygames_pb2.py b/bfportal_grpc_python/proto/communitygames_pb2.py new file mode 100644 index 0000000..d1d9f12 --- /dev/null +++ b/bfportal_grpc_python/proto/communitygames_pb2.py @@ -0,0 +1,987 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: proto/communitygames.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1aproto/communitygames.proto\x12\x12web.communitygames\"_\n\x10ProgressionEntry\x12\x17\n\x0fprogressionMode\x18\x01 \x01(\t\x12\x32\n\rprogressibles\x18\x02 \x03(\x0b\x32\x1b.web.communitygames.Mutator\":\n\x13TranslationMetadata\x12\x0c\n\x04kind\x18\x01 \x01(\t\x12\x15\n\rtranslationId\x18\x02 \x01(\t\",\n\x10ResourceLocation\x12\x0b\n\x03ref\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\"P\n\x08Resource\x12\x36\n\x08location\x18\x01 \x01(\x0b\x32$.web.communitygames.ResourceLocation\x12\x0c\n\x04kind\x18\x02 \x01(\t\"z\n\x08Metadata\x12=\n\x0ctranslations\x18\x01 \x03(\x0b\x32\'.web.communitygames.TranslationMetadata\x12/\n\tresources\x18\x02 \x03(\x0b\x32\x1c.web.communitygames.Resource\"T\n\x03Tag\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tsortOrder\x18\x02 \x01(\x05\x12.\n\x08metadata\x18\x03 \x01(\x0b\x32\x1c.web.communitygames.Metadata\" \n\x0fProgressionMode\x12\r\n\x05value\x18\x01 \x01(\t\"\xf1\x01\n\x12PlaygroundResponse\x12:\n\x12originalPlayground\x18\x01 \x01(\x0b\x32\x1e.web.communitygames.Playground\x12;\n\x13validatedPlayground\x18\x02 \x01(\x0b\x32\x1e.web.communitygames.Playground\x12$\n\x03tag\x18\x03 \x03(\x0b\x32\x17.web.communitygames.Tag\x12<\n\x0fprogressionMode\x18\x04 \x01(\x0b\x32#.web.communitygames.ProgressionMode\"\xd0\x01\n\x07MapInfo\x12\x0f\n\x07mapname\x18\x01 \x01(\t\x12\x0c\n\x04mode\x18\x02 \x01(\t\x12\x10\n\x08gameSize\x18\x03 \x01(\r\x12\x0e\n\x06rounds\x18\x04 \x01(\r\x12-\n\x08mutators\x18\x05 \x01(\x0b\x32\x1b.web.communitygames.Mutator\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x14\n\x0cpreRoundSize\x18\x07 \x01(\r\x12\x12\n\nwarmUpSize\x18\x08 \x01(\r\x12\x19\n\x11\x61llowedSpectators\x18\t \x01(\r\"\xb2\x01\n\x0bMapRotation\x12)\n\x04maps\x18\x01 \x03(\x0b\x32\x1b.web.communitygames.MapInfo\x12>\n\x10rotationBehavior\x18\x02 \x01(\x0e\x32$.web.communitygames.RotationBehavior\x12\x38\n\rroundBehavior\x18\x03 \x01(\x0e\x32!.web.communitygames.RoundBehavior\"1\n\rTeamStructure\x12\x0e\n\x06teamId\x18\x01 \x01(\x05\x12\x10\n\x08\x63\x61pacity\x18\x02 \x01(\x05\"q\n\x15InternalTeamStructure\x12\x0e\n\x06teamId\x18\x01 \x01(\x05\x12\x10\n\x08\x63\x61pacity\x18\x02 \x01(\x05\x12\x36\n\x0c\x63\x61pacityType\x18\x03 \x01(\x0e\x32 .web.communitygames.CapacityType\"7\n\x17MutatorSparseFloatEntry\x12\r\n\x05index\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x02\"{\n\x12MutatorSparseFloat\x12\x14\n\x0c\x64\x65\x66\x61ultValue\x18\x01 \x01(\x02\x12\x0c\n\x04size\x18\x02 \x01(\r\x12\x41\n\x0csparseValues\x18\x03 \x03(\x0b\x32+.web.communitygames.MutatorSparseFloatEntry\"\x1d\n\x0cMutatorFloat\x12\r\n\x05value\x18\x01 \x01(\x02\"#\n\x0eMutatorBoolean\x12\x11\n\tboolValue\x18\x01 \x01(\x08\"$\n\rMutatorString\x12\x13\n\x0bstringValue\x18\x01 \x01(\t\"\x1b\n\nMutatorInt\x12\r\n\x05value\x18\x01 \x01(\x05\"9\n\x19MutatorSparseBooleanEntry\x12\r\n\x05index\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x08\"\x7f\n\x14MutatorSparseBoolean\x12\x14\n\x0c\x64\x65\x66\x61ultValue\x18\x01 \x01(\x08\x12\x0c\n\x04size\x18\x02 \x01(\r\x12\x43\n\x0csparseValues\x18\x03 \x03(\x0b\x32-.web.communitygames.MutatorSparseBooleanEntry\"!\n\x0fSparseIntEntity\x12\x0e\n\x06values\x18\x01 \x03(\x05\"5\n\x15MutatorSparseIntEntry\x12\r\n\x05index\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x05\"w\n\x10MutatorSparseInt\x12\x14\n\x0c\x64\x65\x66\x61ultValue\x18\x01 \x01(\x05\x12\x0c\n\x04size\x18\x02 \x01(\r\x12?\n\x0csparseValues\x18\x03 \x01(\x0b\x32).web.communitygames.MutatorSparseIntEntry\"\xbb\x03\n\x0bMutatorKind\x12:\n\x0emutatorBoolean\x18\x01 \x01(\x0b\x32\".web.communitygames.MutatorBoolean\x12\x38\n\rmutatorString\x18\x04 \x01(\x0b\x32!.web.communitygames.MutatorString\x12\x36\n\x0cmutatorFloat\x18\x05 \x01(\x0b\x32 .web.communitygames.MutatorFloat\x12\x32\n\nmutatorInt\x18\x06 \x01(\x0b\x32\x1e.web.communitygames.MutatorInt\x12\x46\n\x14mutatorSparseBoolean\x18\x07 \x01(\x0b\x32(.web.communitygames.MutatorSparseBoolean\x12>\n\x10mutatorSparseInt\x18\x08 \x01(\x0b\x32$.web.communitygames.MutatorSparseInt\x12\x42\n\x12mutatorSparseFloat\x18\t \x01(\x0b\x32&.web.communitygames.MutatorSparseFloat\"\xc3\x01\n\x0fTeamComposition\x12\x30\n\x05teams\x18\x01 \x01(\x0b\x32!.web.communitygames.TeamStructure\x12@\n\rinternalTeams\x18\x02 \x03(\x0b\x32).web.communitygames.InternalTeamStructure\x12<\n\x0f\x62\x61lancingMethod\x18\x03 \x01(\x0e\x32#.web.communitygames.BalancingMethod\"d\n\x07Mutator\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08\x63\x61tegory\x18\x02 \x01(\t\x12-\n\x04kind\x18\x03 \x01(\x0b\x32\x1f.web.communitygames.MutatorKind\x12\n\n\x02id\x18\x04 \x01(\t\"/\n\tTimestamp\x12\x13\n\x07seconds\x18\x01 \x01(\x03\x42\x02\x30\x01\x12\r\n\x05nanos\x18\x02 \x01(\x05\"\x1c\n\x0bStringValue\x12\r\n\x05value\x18\x01 \x01(\t\"/\n\x11GameServerMessage\x12\x0c\n\x04kind\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\"\xcb\x02\n\x12GameServerSettings\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0b\x64\x65scription\x18\x02 \x01(\x0b\x32\x1f.web.communitygames.StringValue\x12@\n\x11gameServerMessage\x18\x03 \x03(\x0b\x32%.web.communitygames.GameServerMessage\x12\x33\n\nconfigName\x18\x04 \x01(\x0b\x32\x1f.web.communitygames.StringValue\x12:\n\x11\x43onfigDescription\x18\x05 \x01(\x0b\x32\x1f.web.communitygames.StringValue\x12>\n\x10phantomGameState\x18\x06 \x01(\x0e\x32$.web.communitygames.PhantomGameState\"l\n\nPlayerInfo\x12\x15\n\tnucleusId\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x15\n\tpersonaId\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x30\n\nplatformId\x18\x03 \x01(\x0e\x32\x1c.web.communitygames.Platform\"G\n\x14PlatformRestrictions\x12/\n\tplatforms\x18\x01 \x03(\x0e\x32\x1c.web.communitygames.Platform\"P\n\x16InputMethodResrictions\x12\x36\n\x0cinputMethods\x18\x01 \x03(\x0e\x32 .web.communitygames.InputMethods\"\xa4\x01\n\x0cRestrictions\x12\x46\n\x14platformRestrictions\x18\x01 \x01(\x0b\x32(.web.communitygames.PlatformRestrictions\x12L\n\x18inputMethodResctrictions\x18\x02 \x01(\x0b\x32*.web.communitygames.InputMethodResrictions\"R\n\nCompressed\x12\x18\n\x10\x63ompiledModRules\x18\x01 \x01(\x0c\x12\x14\n\x0crulesVersion\x18\x02 \x01(\x05\x12\x14\n\x0cinflatedSize\x18\x03 \x01(\x05\">\n\x0cUncompressed\x12\x18\n\x10\x63ompiledModRules\x18\x01 \x01(\x0c\x12\x14\n\x0crulesVersion\x18\x02 \x01(\x05\"{\n\rCompiledRules\x12\x36\n\x0cuncompressed\x18\x01 \x01(\x0b\x32 .web.communitygames.Uncompressed\x12\x32\n\ncompressed\x18\x02 \x01(\x0b\x32\x1e.web.communitygames.Compressed\"n\n\x12\x43ompatibleModRules\x12\r\n\x05rules\x18\x01 \x01(\x0c\x12\x14\n\x0crulesVersion\x18\x03 \x01(\x05\x12\x33\n\x08\x63ompiled\x18\x04 \x01(\x0b\x32!.web.communitygames.CompiledRules\"Z\n\x14InCompatibleModRules\x12\r\n\x05rules\x18\x01 \x01(\x0c\x12\x14\n\x0crulesVersion\x18\x02 \x01(\x05\x12\x1d\n\x15\x62lueprintRulesVersion\x18\x03 \x01(\x05\"\x98\x01\n\x10OriginalModRules\x12?\n\x0f\x63ompatibleRules\x18\x01 \x01(\x0b\x32&.web.communitygames.CompatibleModRules\x12\x43\n\x11incompatibleRules\x18\x02 \x01(\x0b\x32(.web.communitygames.InCompatibleModRules\"K\n\x1f\x41ssetCategoryTagBooleanOverride\x12\x19\n\x11\x61ssetCategoryTags\x18\x01 \x03(\t\x12\r\n\x05value\x18\x02 \x01(\x08\"_\n#AssetCategoryTagBooleanTeamOverride\x12\x19\n\x11\x61ssetCategoryTags\x18\x01 \x03(\t\x12\r\n\x05value\x18\x02 \x01(\x08\x12\x0e\n\x06teamId\x18\x03 \x01(\r\"\xc4\x01\n\x14\x41ssetCategoryBoolean\x12\x14\n\x0c\x64\x65\x66\x61ultValue\x18\x01 \x01(\x08\x12\x46\n\toverrides\x18\x02 \x01(\x0b\x32\x33.web.communitygames.AssetCategoryTagBooleanOverride\x12N\n\rteamOverrides\x18\x03 \x03(\x0b\x32\x37.web.communitygames.AssetCategoryTagBooleanTeamOverride\"Y\n\rAssetCategory\x12\r\n\x05tagId\x18\x01 \x01(\t\x12\x39\n\x07\x62oolean\x18\x02 \x01(\x0b\x32(.web.communitygames.AssetCategoryBoolean\"\xca\x05\n\nPlayground\x12\x14\n\x0cplaygroundId\x18\x01 \x01(\t\x12\x15\n\rblueprintType\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12-\n\x08mutators\x18\x06 \x03(\x0b\x32\x1b.web.communitygames.Mutator\x12\x34\n\x0bmapRotation\x18\x07 \x01(\x0b\x32\x1f.web.communitygames.MapRotation\x12(\n\x05state\x18\x08 \x01(\x0e\x32\x19.web.communitygames.State\x12\x10\n\x08\x63hecksum\x18\t \x01(\t\x12\x0e\n\x06secret\x18\n \x01(\t\x12\x30\n\tcreatedAt\x18\x0b \x01(\x0b\x32\x1d.web.communitygames.Timestamp\x12\x30\n\tupdatedAt\x18\x0c \x01(\x0b\x32\x1d.web.communitygames.Timestamp\x12>\n\x0eserverSettings\x18\r \x01(\x0b\x32&.web.communitygames.GameServerSettings\x12-\n\x05owner\x18\x0e \x01(\x0b\x32\x1e.web.communitygames.PlayerInfo\x12\x36\n\x0crestrictions\x18\x0f \x01(\x0b\x32 .web.communitygames.Restrictions\x12\x36\n\x08modRules\x18\x10 \x01(\x0b\x32$.web.communitygames.OriginalModRules\x12:\n\x0f\x61ssetCategories\x18\x11 \x03(\x0b\x32!.web.communitygames.AssetCategory\x12<\n\x0fteamComposition\x18\x12 \x01(\x0b\x32#.web.communitygames.TeamComposition\"O\n\x1dListPlaygroundsByOwnerRequest\x12\x15\n\rblueprintType\x18\x01 \x01(\t\x12\x17\n\x0fprotocolVersion\x18\x02 \x01(\t\"\x17\n\x15GetConstraintsRequest\"j\n\x18GetBlueprintsByIdRequest\x12\x14\n\x0c\x62lueprintIds\x18\x01 \x03(\t\x12\x38\n\rincludeFields\x18\x02 \x03(\x0e\x32!.web.communitygames.IncludeFields\"w\n\x11GlobalConstraints\x12\x1f\n\x17maxPlaygroundsPerPlayer\x18\x01 \x01(\x05\x12\x1f\n\x17maxGameServersPerPlayer\x18\x02 \x01(\x05\x12 \n\x18maxFollowedHostsListSize\x18\x03 \x01(\x05\".\n\x08IntRange\x12\x10\n\x08minValue\x18\x01 \x01(\x05\x12\x10\n\x08maxValue\x18\x02 \x01(\x05\"|\n\x12\x41vailableIntValues\x12+\n\x05range\x18\x01 \x01(\x0b\x32\x1c.web.communitygames.IntRange\x12\x39\n\x0csparseValues\x18\x02 \x01(\x0b\x32#.web.communitygames.SparseIntEntity\"j\n\x11\x41vailableIntValue\x12\x14\n\x0c\x64\x65\x66\x61ultValue\x18\x01 \x01(\x05\x12?\n\x0f\x61vailableValues\x18\x02 \x01(\x0b\x32&.web.communitygames.AvailableIntValues\"#\n\x11SparseFloatValues\x12\x0e\n\x06values\x18\x01 \x03(\x02\"0\n\nFloatRange\x12\x10\n\x08minValue\x18\x01 \x01(\x02\x12\x10\n\x08maxValue\x18\x02 \x01(\x02\"\x82\x01\n\x14\x41vailableFloatValues\x12-\n\x05range\x18\x01 \x01(\x0b\x32\x1e.web.communitygames.FloatRange\x12;\n\x0csparseValues\x18\x02 \x01(\x0b\x32%.web.communitygames.SparseFloatValues\"\x93\x01\n\x1b\x41vailableMutatorFloatValues\x12\x31\n\x07mutator\x18\x01 \x01(\x0b\x32 .web.communitygames.MutatorFloat\x12\x41\n\x0f\x61vailableValues\x18\x02 \x01(\x0b\x32(.web.communitygames.AvailableFloatValues\"\x8d\x01\n\x19\x41vailableMutatorIntValues\x12/\n\x07mutator\x18\x01 \x01(\x0b\x32\x1e.web.communitygames.MutatorInt\x12?\n\x0f\x61vailableValues\x18\x02 \x01(\x0b\x32&.web.communitygames.AvailableIntValues\"\x99\x01\n\x1f\x41vailableMutatorSparseIntValues\x12\x35\n\x07mutator\x18\x01 \x01(\x0b\x32$.web.communitygames.MutatorSparseInt\x12?\n\x0f\x61vailableValues\x18\x02 \x01(\x0b\x32&.web.communitygames.AvailableIntValues\"\x9f\x01\n!AvailableMutatorSparseFloatValues\x12\x37\n\x07mutator\x18\x01 \x01(\x0b\x32&.web.communitygames.MutatorSparseFloat\x12\x41\n\x0f\x61vailableValues\x18\x02 \x01(\x0b\x32(.web.communitygames.AvailableFloatValues\"\x98\x04\n\x14\x41vailableMutatorKind\x12:\n\x0emutatorBoolean\x18\x01 \x01(\x0b\x32\".web.communitygames.MutatorBoolean\x12\x38\n\rmutatorString\x18\x04 \x01(\x0b\x32!.web.communitygames.MutatorString\x12K\n\x12mutatorFloatValues\x18\x07 \x01(\x0b\x32/.web.communitygames.AvailableMutatorFloatValues\x12G\n\x10mutatorIntValues\x18\x08 \x01(\x0b\x32-.web.communitygames.AvailableMutatorIntValues\x12\x46\n\x14mutatorSparseBoolean\x18\t \x01(\x0b\x32(.web.communitygames.MutatorSparseBoolean\x12S\n\x16mutatorSparseIntValues\x18\n \x01(\x0b\x32\x33.web.communitygames.AvailableMutatorSparseIntValues\x12W\n\x18mutatorSparseFloatValues\x18\x0b \x01(\x0b\x32\x35.web.communitygames.AvailableMutatorSparseFloatValues\"\xa6\x01\n\x10\x41vailableMutator\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08\x63\x61tegory\x18\x02 \x01(\t\x12\x36\n\x04kind\x18\x03 \x01(\x0b\x32(.web.communitygames.AvailableMutatorKind\x12.\n\x08metadata\x18\x04 \x01(\x0b\x32\x1c.web.communitygames.Metadata\x12\n\n\x02id\x18\x05 \x01(\t\"\xe1\x03\n\x11\x41vailableMapEntry\x12\x11\n\tlevelName\x18\x01 \x01(\t\x12\x10\n\x08gameMode\x18\x02 \x01(\t\x12\x15\n\rlevelLocation\x18\x03 \x01(\t\x12\x37\n\x08gameSize\x18\x04 \x01(\x0b\x32%.web.communitygames.AvailableIntValue\x12\x35\n\x06rounds\x18\x05 \x01(\x0b\x32%.web.communitygames.AvailableIntValue\x12;\n\x0cpreRoundSize\x18\x06 \x01(\x0b\x32%.web.communitygames.AvailableIntValue\x12\x39\n\nwarmUpSize\x18\x07 \x01(\x0b\x32%.web.communitygames.AvailableIntValue\x12@\n\x11\x61llowedSpectators\x18\x08 \x01(\x0b\x32%.web.communitygames.AvailableIntValue\x12\x36\n\x08mutators\x18\t \x03(\x0b\x32$.web.communitygames.AvailableMutator\x12.\n\x08metadata\x18\n \x03(\x0b\x32\x1c.web.communitygames.Metadata\"z\n\x0c\x41vailableTag\x12\n\n\x02id\x18\x01 \x01(\t\x12.\n\x08metadata\x18\x02 \x01(\x0b\x32\x1c.web.communitygames.Metadata\x12.\n\x08\x63\x61tegory\x18\x03 \x01(\x0e\x32\x1c.web.communitygames.Category\"~\n\x19\x41vailableAssetCategoryTag\x12\r\n\x05tagId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x14\n\x0c\x63hildrenTags\x18\x03 \x03(\t\x12.\n\x08metadata\x18\x04 \x01(\x0b\x32\x1c.web.communitygames.Metadata\"\x98\x01\n\x18\x41vailableAssetCategories\x12?\n\x08rootTags\x18\x01 \x03(\x0b\x32-.web.communitygames.AvailableAssetCategoryTag\x12;\n\x04tags\x18\x02 \x03(\x0b\x32-.web.communitygames.AvailableAssetCategoryTag\"\xcc\x01\n\x15PlaygroundConstraints\x12\x13\n\x0bmaxNameSize\x18\x01 \x01(\x05\x12\x1a\n\x12maxDescriptionSize\x18\x02 \x01(\x05\x12\x15\n\rmaxSecretSize\x18\x03 \x01(\x05\x12\x19\n\x11maxMapsInRotation\x18\x04 \x01(\x05\x12\x13\n\x0bmaxMutators\x18\x05 \x01(\x05\x12\x19\n\x11maxConfigNameSize\x18\x06 \x01(\x05\x12 \n\x18maxConfigDescriptionSize\x18\x07 \x01(\x05\">\n\x12ModRulesDefinition\x12\x14\n\x0crulesVersion\x18\x01 \x01(\x05\x12\x12\n\nmodBuilder\x18\x02 \x01(\x0c\"\x81\x02\n\x11\x41vailableGameData\x12\x36\n\x08mutators\x18\x01 \x03(\x0b\x32$.web.communitygames.AvailableMutator\x12\x33\n\x04maps\x18\x02 \x03(\x0b\x32%.web.communitygames.AvailableMapEntry\x12\x38\n\x08modRules\x18\x04 \x01(\x0b\x32&.web.communitygames.ModRulesDefinition\x12\x45\n\x0f\x61ssetCategories\x18\x05 \x01(\x0b\x32,.web.communitygames.AvailableAssetCategories\"\xb9\x02\n\tBlueprint\x12\x15\n\rblueprintType\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12@\n\x11\x61vailableGameData\x18\x03 \x01(\x0b\x32%.web.communitygames.AvailableGameData\x12.\n\x08metadata\x18\x04 \x01(\x0b\x32\x1c.web.communitygames.Metadata\x12\x12\n\ncustomData\x18\x05 \x01(\x0c\x12H\n\x15playgroundConstraints\x18\x06 \x01(\x0b\x32).web.communitygames.PlaygroundConstraints\x12\x37\n\ravailableTags\x18\x07 \x03(\x0b\x32 .web.communitygames.AvailableTag\"\x19\n\tShortCode\x12\x0c\n\x04\x63ode\x18\x01 \x01(\t\"\x1c\n\x1aGetProgressionTypesRequest\";\n\rBlueprintInfo\x12\x15\n\rblueprintType\x18\x01 \x01(\t\x12\x13\n\x0b\x62lueprintId\x18\x02 \x01(\t\"T\n\x1bGetProgressionTypesResponse\x12\x35\n\x07\x65ntries\x18\x01 \x03(\x0b\x32$.web.communitygames.ProgressionEntry\"8\n\x1dGetScheduledBlueprintsRequest\x12\x17\n\x0fprotocolVersion\x18\x01 \x01(\t\"W\n\x1eGetScheduledBlueprintsResponse\x12\x35\n\nblueprints\x18\x01 \x01(\x0b\x32!.web.communitygames.BlueprintInfo\"M\n\x19GetBlueprintsByIdResponse\x12\x30\n\tblueprint\x18\x01 \x03(\x0b\x32\x1d.web.communitygames.Blueprint\"Z\n\x16GetConstraintsResponse\x12@\n\x11globalConstraints\x18\x01 \x01(\x0b\x32%.web.communitygames.GlobalConstraints\"e\n\x1eListPlaygroundsByOwnerResponse\x12\x43\n\x13playgroundResponses\x18\x02 \x03(\x0b\x32&.web.communitygames.PlaygroundResponse\"\x96\x04\n\x17\x43reatePlaygroundRequest\x12\x15\n\rblueprintType\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x34\n\x0b\x64\x65scription\x18\x04 \x01(\x0b\x32\x1f.web.communitygames.StringValue\x12-\n\x08mutators\x18\x05 \x03(\x0b\x32\x1b.web.communitygames.Mutator\x12\x34\n\x0bmapRotation\x18\x06 \x01(\x0b\x32\x1f.web.communitygames.MapRotation\x12/\n\x06secret\x18\x07 \x01(\x0b\x32\x1f.web.communitygames.StringValue\x12>\n\x0eserverSettings\x18\x08 \x01(\x0b\x32&.web.communitygames.GameServerSettings\x12\x36\n\x0crestrictions\x18\t \x01(\x0b\x32 .web.communitygames.Restrictions\x12\x18\n\x10originalModRules\x18\n \x01(\x0c\x12:\n\x0f\x61ssetCategories\x18\x0b \x03(\x0b\x32!.web.communitygames.AssetCategory\x12<\n\x0fteamComposition\x18\x0c \x01(\x0b\x32#.web.communitygames.TeamComposition\"P\n\x17UpdatePlaygroundRequest\x12\x35\n\rnewPlayground\x18\x02 \x01(\x0b\x32\x1e.web.communitygames.Playground\"/\n\x17\x44\x65letePlaygroundRequest\x12\x14\n\x0cplaygroundId\x18\x01 \x01(\t\",\n\x14GetPlaygroundRequest\x12\x14\n\x0cplaygroundId\x18\x02 \x01(\t\".\n\x16SharePlaygroundRequest\x12\x14\n\x0cplaygroundId\x18\x01 \x01(\t\"K\n\x17SharePlaygroundResponse\x12\x30\n\tshortCode\x18\x01 \x01(\x0b\x32\x1d.web.communitygames.ShortCode\"^\n\x18\x43reatePlaygroundResponse\x12\x42\n\x12playgroundResponse\x18\x02 \x01(\x0b\x32&.web.communitygames.PlaygroundResponse\"^\n\x18UpdatePlaygroundResponse\x12\x42\n\x12playgroundResponse\x18\x02 \x01(\x0b\x32&.web.communitygames.PlaygroundResponse\"\x1a\n\x18\x44\x65letePlaygroundResponse\"T\n\x16PlaygroundInfoResponse\x12:\n\nplayground\x18\x01 \x01(\x0b\x32&.web.communitygames.PlaygroundResponse*T\n\x08Platform\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x06\n\x02PC\x10\x01\x12\x07\n\x03PS4\x10\x02\x12\x0b\n\x07XBOXONE\x10\x03\x12\x07\n\x03PS5\x10\x04\x12\x08\n\x04XBSX\x10\x05\x12\n\n\x06\x43OMMON\x10\x06*@\n\x0cInputMethods\x12\x07\n\x03\x41LL\x10\x00\x12\x12\n\x0eKEYBOARD_MOUSE\x10\x01\x12\x13\n\x0fGAME_CONTROLLER\x10\x03*l\n\rIncludeFields\x12\x17\n\x13\x41VAILABLE_GAME_DATA\x10\x00\x12\x0c\n\x08METADATA\x10\x01\x12\x0f\n\x0b\x43USTOM_DATA\x10\x02\x12\x0f\n\x0b\x43ONSTRAINTS\x10\x03\x12\x12\n\x0e\x41VAILABLE_TAGS\x10\x04*!\n\x05State\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x41RCHIVED\x10\x01*_\n\x08\x43\x61tegory\x12\x14\n\x10\x43\x41TEGORY_UNKNOWN\x10\x00\x12\x11\n\rCATEGORY_MODE\x10\x01\x12\x14\n\x10\x43\x41TEGORY_PACKAGE\x10\x02\x12\x14\n\x10\x43\x41TEGORY_GENERAL\x10\x03*-\n\x10PhantomGameState\x12\x0b\n\x07\x45NABLED\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01*.\n\x0c\x43\x61pacityType\x12\x0f\n\x0b\x41I_BACKFILL\x10\x00\x12\r\n\tAI_STATIC\x10\x01*8\n\x10RotationBehavior\x12\x08\n\x04LOOP\x10\x00\x12\r\n\tMATCHMAKE\x10\x01\x12\x0b\n\x07ONE_MAP\x10\x02*\x1d\n\rRoundBehavior\x12\x0c\n\x08\x43ONTINUE\x10\x00*a\n\x0f\x42\x61lancingMethod\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x10\n\x0c\x45VEN_NUMBERS\x10\x01\x12\x13\n\x0f\x45VEN_PERCENTAGE\x10\x02\x12\x16\n\x12\x46ILL_IN_TEAM_ORDER\x10\x03\x32\x9b\t\n\x0e\x43ommunityGames\x12o\n\x10\x63reatePlayground\x12+.web.communitygames.CreatePlaygroundRequest\x1a,.web.communitygames.CreatePlaygroundResponse\"\x00\x12o\n\x10updatePlayground\x12+.web.communitygames.UpdatePlaygroundRequest\x1a,.web.communitygames.UpdatePlaygroundResponse\"\x00\x12o\n\x10\x64\x65letePlayground\x12+.web.communitygames.DeletePlaygroundRequest\x1a,.web.communitygames.DeletePlaygroundResponse\"\x00\x12g\n\rgetPlayground\x12(.web.communitygames.GetPlaygroundRequest\x1a*.web.communitygames.PlaygroundInfoResponse\"\x00\x12\x81\x01\n\x16listPlaygroundsByOwner\x12\x31.web.communitygames.ListPlaygroundsByOwnerRequest\x1a\x32.web.communitygames.ListPlaygroundsByOwnerResponse\"\x00\x12r\n\x11getBlueprintsById\x12,.web.communitygames.GetBlueprintsByIdRequest\x1a-.web.communitygames.GetBlueprintsByIdResponse\"\x00\x12\x81\x01\n\x16getScheduledBlueprints\x12\x31.web.communitygames.GetScheduledBlueprintsRequest\x1a\x32.web.communitygames.GetScheduledBlueprintsResponse\"\x00\x12i\n\x0egetConstraints\x12).web.communitygames.GetConstraintsRequest\x1a*.web.communitygames.GetConstraintsResponse\"\x00\x12l\n\x0fsharePlayground\x12*.web.communitygames.SharePlaygroundRequest\x1a+.web.communitygames.SharePlaygroundResponse\"\x00\x12x\n\x13getProgressionTypes\x12..web.communitygames.GetProgressionTypesRequest\x1a/.web.communitygames.GetProgressionTypesResponse\"\x00\x62\x06proto3') + +_PLATFORM = DESCRIPTOR.enum_types_by_name['Platform'] +Platform = enum_type_wrapper.EnumTypeWrapper(_PLATFORM) +_INPUTMETHODS = DESCRIPTOR.enum_types_by_name['InputMethods'] +InputMethods = enum_type_wrapper.EnumTypeWrapper(_INPUTMETHODS) +_INCLUDEFIELDS = DESCRIPTOR.enum_types_by_name['IncludeFields'] +IncludeFields = enum_type_wrapper.EnumTypeWrapper(_INCLUDEFIELDS) +_STATE = DESCRIPTOR.enum_types_by_name['State'] +State = enum_type_wrapper.EnumTypeWrapper(_STATE) +_CATEGORY = DESCRIPTOR.enum_types_by_name['Category'] +Category = enum_type_wrapper.EnumTypeWrapper(_CATEGORY) +_PHANTOMGAMESTATE = DESCRIPTOR.enum_types_by_name['PhantomGameState'] +PhantomGameState = enum_type_wrapper.EnumTypeWrapper(_PHANTOMGAMESTATE) +_CAPACITYTYPE = DESCRIPTOR.enum_types_by_name['CapacityType'] +CapacityType = enum_type_wrapper.EnumTypeWrapper(_CAPACITYTYPE) +_ROTATIONBEHAVIOR = DESCRIPTOR.enum_types_by_name['RotationBehavior'] +RotationBehavior = enum_type_wrapper.EnumTypeWrapper(_ROTATIONBEHAVIOR) +_ROUNDBEHAVIOR = DESCRIPTOR.enum_types_by_name['RoundBehavior'] +RoundBehavior = enum_type_wrapper.EnumTypeWrapper(_ROUNDBEHAVIOR) +_BALANCINGMETHOD = DESCRIPTOR.enum_types_by_name['BalancingMethod'] +BalancingMethod = enum_type_wrapper.EnumTypeWrapper(_BALANCINGMETHOD) +UNKNOWN = 0 +PC = 1 +PS4 = 2 +XBOXONE = 3 +PS5 = 4 +XBSX = 5 +COMMON = 6 +ALL = 0 +KEYBOARD_MOUSE = 1 +GAME_CONTROLLER = 3 +AVAILABLE_GAME_DATA = 0 +METADATA = 1 +CUSTOM_DATA = 2 +CONSTRAINTS = 3 +AVAILABLE_TAGS = 4 +ACTIVE = 0 +ARCHIVED = 1 +CATEGORY_UNKNOWN = 0 +CATEGORY_MODE = 1 +CATEGORY_PACKAGE = 2 +CATEGORY_GENERAL = 3 +ENABLED = 0 +DISABLED = 1 +AI_BACKFILL = 0 +AI_STATIC = 1 +LOOP = 0 +MATCHMAKE = 1 +ONE_MAP = 2 +CONTINUE = 0 +UNSPECIFIED = 0 +EVEN_NUMBERS = 1 +EVEN_PERCENTAGE = 2 +FILL_IN_TEAM_ORDER = 3 + + +_PROGRESSIONENTRY = DESCRIPTOR.message_types_by_name['ProgressionEntry'] +_TRANSLATIONMETADATA = DESCRIPTOR.message_types_by_name['TranslationMetadata'] +_RESOURCELOCATION = DESCRIPTOR.message_types_by_name['ResourceLocation'] +_RESOURCE = DESCRIPTOR.message_types_by_name['Resource'] +_METADATA = DESCRIPTOR.message_types_by_name['Metadata'] +_TAG = DESCRIPTOR.message_types_by_name['Tag'] +_PROGRESSIONMODE = DESCRIPTOR.message_types_by_name['ProgressionMode'] +_PLAYGROUNDRESPONSE = DESCRIPTOR.message_types_by_name['PlaygroundResponse'] +_MAPINFO = DESCRIPTOR.message_types_by_name['MapInfo'] +_MAPROTATION = DESCRIPTOR.message_types_by_name['MapRotation'] +_TEAMSTRUCTURE = DESCRIPTOR.message_types_by_name['TeamStructure'] +_INTERNALTEAMSTRUCTURE = DESCRIPTOR.message_types_by_name['InternalTeamStructure'] +_MUTATORSPARSEFLOATENTRY = DESCRIPTOR.message_types_by_name['MutatorSparseFloatEntry'] +_MUTATORSPARSEFLOAT = DESCRIPTOR.message_types_by_name['MutatorSparseFloat'] +_MUTATORFLOAT = DESCRIPTOR.message_types_by_name['MutatorFloat'] +_MUTATORBOOLEAN = DESCRIPTOR.message_types_by_name['MutatorBoolean'] +_MUTATORSTRING = DESCRIPTOR.message_types_by_name['MutatorString'] +_MUTATORINT = DESCRIPTOR.message_types_by_name['MutatorInt'] +_MUTATORSPARSEBOOLEANENTRY = DESCRIPTOR.message_types_by_name['MutatorSparseBooleanEntry'] +_MUTATORSPARSEBOOLEAN = DESCRIPTOR.message_types_by_name['MutatorSparseBoolean'] +_SPARSEINTENTITY = DESCRIPTOR.message_types_by_name['SparseIntEntity'] +_MUTATORSPARSEINTENTRY = DESCRIPTOR.message_types_by_name['MutatorSparseIntEntry'] +_MUTATORSPARSEINT = DESCRIPTOR.message_types_by_name['MutatorSparseInt'] +_MUTATORKIND = DESCRIPTOR.message_types_by_name['MutatorKind'] +_TEAMCOMPOSITION = DESCRIPTOR.message_types_by_name['TeamComposition'] +_MUTATOR = DESCRIPTOR.message_types_by_name['Mutator'] +_TIMESTAMP = DESCRIPTOR.message_types_by_name['Timestamp'] +_STRINGVALUE = DESCRIPTOR.message_types_by_name['StringValue'] +_GAMESERVERMESSAGE = DESCRIPTOR.message_types_by_name['GameServerMessage'] +_GAMESERVERSETTINGS = DESCRIPTOR.message_types_by_name['GameServerSettings'] +_PLAYERINFO = DESCRIPTOR.message_types_by_name['PlayerInfo'] +_PLATFORMRESTRICTIONS = DESCRIPTOR.message_types_by_name['PlatformRestrictions'] +_INPUTMETHODRESRICTIONS = DESCRIPTOR.message_types_by_name['InputMethodResrictions'] +_RESTRICTIONS = DESCRIPTOR.message_types_by_name['Restrictions'] +_COMPRESSED = DESCRIPTOR.message_types_by_name['Compressed'] +_UNCOMPRESSED = DESCRIPTOR.message_types_by_name['Uncompressed'] +_COMPILEDRULES = DESCRIPTOR.message_types_by_name['CompiledRules'] +_COMPATIBLEMODRULES = DESCRIPTOR.message_types_by_name['CompatibleModRules'] +_INCOMPATIBLEMODRULES = DESCRIPTOR.message_types_by_name['InCompatibleModRules'] +_ORIGINALMODRULES = DESCRIPTOR.message_types_by_name['OriginalModRules'] +_ASSETCATEGORYTAGBOOLEANOVERRIDE = DESCRIPTOR.message_types_by_name['AssetCategoryTagBooleanOverride'] +_ASSETCATEGORYTAGBOOLEANTEAMOVERRIDE = DESCRIPTOR.message_types_by_name['AssetCategoryTagBooleanTeamOverride'] +_ASSETCATEGORYBOOLEAN = DESCRIPTOR.message_types_by_name['AssetCategoryBoolean'] +_ASSETCATEGORY = DESCRIPTOR.message_types_by_name['AssetCategory'] +_PLAYGROUND = DESCRIPTOR.message_types_by_name['Playground'] +_LISTPLAYGROUNDSBYOWNERREQUEST = DESCRIPTOR.message_types_by_name['ListPlaygroundsByOwnerRequest'] +_GETCONSTRAINTSREQUEST = DESCRIPTOR.message_types_by_name['GetConstraintsRequest'] +_GETBLUEPRINTSBYIDREQUEST = DESCRIPTOR.message_types_by_name['GetBlueprintsByIdRequest'] +_GLOBALCONSTRAINTS = DESCRIPTOR.message_types_by_name['GlobalConstraints'] +_INTRANGE = DESCRIPTOR.message_types_by_name['IntRange'] +_AVAILABLEINTVALUES = DESCRIPTOR.message_types_by_name['AvailableIntValues'] +_AVAILABLEINTVALUE = DESCRIPTOR.message_types_by_name['AvailableIntValue'] +_SPARSEFLOATVALUES = DESCRIPTOR.message_types_by_name['SparseFloatValues'] +_FLOATRANGE = DESCRIPTOR.message_types_by_name['FloatRange'] +_AVAILABLEFLOATVALUES = DESCRIPTOR.message_types_by_name['AvailableFloatValues'] +_AVAILABLEMUTATORFLOATVALUES = DESCRIPTOR.message_types_by_name['AvailableMutatorFloatValues'] +_AVAILABLEMUTATORINTVALUES = DESCRIPTOR.message_types_by_name['AvailableMutatorIntValues'] +_AVAILABLEMUTATORSPARSEINTVALUES = DESCRIPTOR.message_types_by_name['AvailableMutatorSparseIntValues'] +_AVAILABLEMUTATORSPARSEFLOATVALUES = DESCRIPTOR.message_types_by_name['AvailableMutatorSparseFloatValues'] +_AVAILABLEMUTATORKIND = DESCRIPTOR.message_types_by_name['AvailableMutatorKind'] +_AVAILABLEMUTATOR = DESCRIPTOR.message_types_by_name['AvailableMutator'] +_AVAILABLEMAPENTRY = DESCRIPTOR.message_types_by_name['AvailableMapEntry'] +_AVAILABLETAG = DESCRIPTOR.message_types_by_name['AvailableTag'] +_AVAILABLEASSETCATEGORYTAG = DESCRIPTOR.message_types_by_name['AvailableAssetCategoryTag'] +_AVAILABLEASSETCATEGORIES = DESCRIPTOR.message_types_by_name['AvailableAssetCategories'] +_PLAYGROUNDCONSTRAINTS = DESCRIPTOR.message_types_by_name['PlaygroundConstraints'] +_MODRULESDEFINITION = DESCRIPTOR.message_types_by_name['ModRulesDefinition'] +_AVAILABLEGAMEDATA = DESCRIPTOR.message_types_by_name['AvailableGameData'] +_BLUEPRINT = DESCRIPTOR.message_types_by_name['Blueprint'] +_SHORTCODE = DESCRIPTOR.message_types_by_name['ShortCode'] +_GETPROGRESSIONTYPESREQUEST = DESCRIPTOR.message_types_by_name['GetProgressionTypesRequest'] +_BLUEPRINTINFO = DESCRIPTOR.message_types_by_name['BlueprintInfo'] +_GETPROGRESSIONTYPESRESPONSE = DESCRIPTOR.message_types_by_name['GetProgressionTypesResponse'] +_GETSCHEDULEDBLUEPRINTSREQUEST = DESCRIPTOR.message_types_by_name['GetScheduledBlueprintsRequest'] +_GETSCHEDULEDBLUEPRINTSRESPONSE = DESCRIPTOR.message_types_by_name['GetScheduledBlueprintsResponse'] +_GETBLUEPRINTSBYIDRESPONSE = DESCRIPTOR.message_types_by_name['GetBlueprintsByIdResponse'] +_GETCONSTRAINTSRESPONSE = DESCRIPTOR.message_types_by_name['GetConstraintsResponse'] +_LISTPLAYGROUNDSBYOWNERRESPONSE = DESCRIPTOR.message_types_by_name['ListPlaygroundsByOwnerResponse'] +_CREATEPLAYGROUNDREQUEST = DESCRIPTOR.message_types_by_name['CreatePlaygroundRequest'] +_UPDATEPLAYGROUNDREQUEST = DESCRIPTOR.message_types_by_name['UpdatePlaygroundRequest'] +_DELETEPLAYGROUNDREQUEST = DESCRIPTOR.message_types_by_name['DeletePlaygroundRequest'] +_GETPLAYGROUNDREQUEST = DESCRIPTOR.message_types_by_name['GetPlaygroundRequest'] +_SHAREPLAYGROUNDREQUEST = DESCRIPTOR.message_types_by_name['SharePlaygroundRequest'] +_SHAREPLAYGROUNDRESPONSE = DESCRIPTOR.message_types_by_name['SharePlaygroundResponse'] +_CREATEPLAYGROUNDRESPONSE = DESCRIPTOR.message_types_by_name['CreatePlaygroundResponse'] +_UPDATEPLAYGROUNDRESPONSE = DESCRIPTOR.message_types_by_name['UpdatePlaygroundResponse'] +_DELETEPLAYGROUNDRESPONSE = DESCRIPTOR.message_types_by_name['DeletePlaygroundResponse'] +_PLAYGROUNDINFORESPONSE = DESCRIPTOR.message_types_by_name['PlaygroundInfoResponse'] +ProgressionEntry = _reflection.GeneratedProtocolMessageType('ProgressionEntry', (_message.Message,), { + 'DESCRIPTOR' : _PROGRESSIONENTRY, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.ProgressionEntry) + }) +_sym_db.RegisterMessage(ProgressionEntry) + +TranslationMetadata = _reflection.GeneratedProtocolMessageType('TranslationMetadata', (_message.Message,), { + 'DESCRIPTOR' : _TRANSLATIONMETADATA, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.TranslationMetadata) + }) +_sym_db.RegisterMessage(TranslationMetadata) + +ResourceLocation = _reflection.GeneratedProtocolMessageType('ResourceLocation', (_message.Message,), { + 'DESCRIPTOR' : _RESOURCELOCATION, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.ResourceLocation) + }) +_sym_db.RegisterMessage(ResourceLocation) + +Resource = _reflection.GeneratedProtocolMessageType('Resource', (_message.Message,), { + 'DESCRIPTOR' : _RESOURCE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.Resource) + }) +_sym_db.RegisterMessage(Resource) + +Metadata = _reflection.GeneratedProtocolMessageType('Metadata', (_message.Message,), { + 'DESCRIPTOR' : _METADATA, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.Metadata) + }) +_sym_db.RegisterMessage(Metadata) + +Tag = _reflection.GeneratedProtocolMessageType('Tag', (_message.Message,), { + 'DESCRIPTOR' : _TAG, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.Tag) + }) +_sym_db.RegisterMessage(Tag) + +ProgressionMode = _reflection.GeneratedProtocolMessageType('ProgressionMode', (_message.Message,), { + 'DESCRIPTOR' : _PROGRESSIONMODE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.ProgressionMode) + }) +_sym_db.RegisterMessage(ProgressionMode) + +PlaygroundResponse = _reflection.GeneratedProtocolMessageType('PlaygroundResponse', (_message.Message,), { + 'DESCRIPTOR' : _PLAYGROUNDRESPONSE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.PlaygroundResponse) + }) +_sym_db.RegisterMessage(PlaygroundResponse) + +MapInfo = _reflection.GeneratedProtocolMessageType('MapInfo', (_message.Message,), { + 'DESCRIPTOR' : _MAPINFO, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.MapInfo) + }) +_sym_db.RegisterMessage(MapInfo) + +MapRotation = _reflection.GeneratedProtocolMessageType('MapRotation', (_message.Message,), { + 'DESCRIPTOR' : _MAPROTATION, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.MapRotation) + }) +_sym_db.RegisterMessage(MapRotation) + +TeamStructure = _reflection.GeneratedProtocolMessageType('TeamStructure', (_message.Message,), { + 'DESCRIPTOR' : _TEAMSTRUCTURE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.TeamStructure) + }) +_sym_db.RegisterMessage(TeamStructure) + +InternalTeamStructure = _reflection.GeneratedProtocolMessageType('InternalTeamStructure', (_message.Message,), { + 'DESCRIPTOR' : _INTERNALTEAMSTRUCTURE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.InternalTeamStructure) + }) +_sym_db.RegisterMessage(InternalTeamStructure) + +MutatorSparseFloatEntry = _reflection.GeneratedProtocolMessageType('MutatorSparseFloatEntry', (_message.Message,), { + 'DESCRIPTOR' : _MUTATORSPARSEFLOATENTRY, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.MutatorSparseFloatEntry) + }) +_sym_db.RegisterMessage(MutatorSparseFloatEntry) + +MutatorSparseFloat = _reflection.GeneratedProtocolMessageType('MutatorSparseFloat', (_message.Message,), { + 'DESCRIPTOR' : _MUTATORSPARSEFLOAT, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.MutatorSparseFloat) + }) +_sym_db.RegisterMessage(MutatorSparseFloat) + +MutatorFloat = _reflection.GeneratedProtocolMessageType('MutatorFloat', (_message.Message,), { + 'DESCRIPTOR' : _MUTATORFLOAT, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.MutatorFloat) + }) +_sym_db.RegisterMessage(MutatorFloat) + +MutatorBoolean = _reflection.GeneratedProtocolMessageType('MutatorBoolean', (_message.Message,), { + 'DESCRIPTOR' : _MUTATORBOOLEAN, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.MutatorBoolean) + }) +_sym_db.RegisterMessage(MutatorBoolean) + +MutatorString = _reflection.GeneratedProtocolMessageType('MutatorString', (_message.Message,), { + 'DESCRIPTOR' : _MUTATORSTRING, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.MutatorString) + }) +_sym_db.RegisterMessage(MutatorString) + +MutatorInt = _reflection.GeneratedProtocolMessageType('MutatorInt', (_message.Message,), { + 'DESCRIPTOR' : _MUTATORINT, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.MutatorInt) + }) +_sym_db.RegisterMessage(MutatorInt) + +MutatorSparseBooleanEntry = _reflection.GeneratedProtocolMessageType('MutatorSparseBooleanEntry', (_message.Message,), { + 'DESCRIPTOR' : _MUTATORSPARSEBOOLEANENTRY, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.MutatorSparseBooleanEntry) + }) +_sym_db.RegisterMessage(MutatorSparseBooleanEntry) + +MutatorSparseBoolean = _reflection.GeneratedProtocolMessageType('MutatorSparseBoolean', (_message.Message,), { + 'DESCRIPTOR' : _MUTATORSPARSEBOOLEAN, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.MutatorSparseBoolean) + }) +_sym_db.RegisterMessage(MutatorSparseBoolean) + +SparseIntEntity = _reflection.GeneratedProtocolMessageType('SparseIntEntity', (_message.Message,), { + 'DESCRIPTOR' : _SPARSEINTENTITY, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.SparseIntEntity) + }) +_sym_db.RegisterMessage(SparseIntEntity) + +MutatorSparseIntEntry = _reflection.GeneratedProtocolMessageType('MutatorSparseIntEntry', (_message.Message,), { + 'DESCRIPTOR' : _MUTATORSPARSEINTENTRY, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.MutatorSparseIntEntry) + }) +_sym_db.RegisterMessage(MutatorSparseIntEntry) + +MutatorSparseInt = _reflection.GeneratedProtocolMessageType('MutatorSparseInt', (_message.Message,), { + 'DESCRIPTOR' : _MUTATORSPARSEINT, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.MutatorSparseInt) + }) +_sym_db.RegisterMessage(MutatorSparseInt) + +MutatorKind = _reflection.GeneratedProtocolMessageType('MutatorKind', (_message.Message,), { + 'DESCRIPTOR' : _MUTATORKIND, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.MutatorKind) + }) +_sym_db.RegisterMessage(MutatorKind) + +TeamComposition = _reflection.GeneratedProtocolMessageType('TeamComposition', (_message.Message,), { + 'DESCRIPTOR' : _TEAMCOMPOSITION, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.TeamComposition) + }) +_sym_db.RegisterMessage(TeamComposition) + +Mutator = _reflection.GeneratedProtocolMessageType('Mutator', (_message.Message,), { + 'DESCRIPTOR' : _MUTATOR, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.Mutator) + }) +_sym_db.RegisterMessage(Mutator) + +Timestamp = _reflection.GeneratedProtocolMessageType('Timestamp', (_message.Message,), { + 'DESCRIPTOR' : _TIMESTAMP, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.Timestamp) + }) +_sym_db.RegisterMessage(Timestamp) + +StringValue = _reflection.GeneratedProtocolMessageType('StringValue', (_message.Message,), { + 'DESCRIPTOR' : _STRINGVALUE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.StringValue) + }) +_sym_db.RegisterMessage(StringValue) + +GameServerMessage = _reflection.GeneratedProtocolMessageType('GameServerMessage', (_message.Message,), { + 'DESCRIPTOR' : _GAMESERVERMESSAGE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.GameServerMessage) + }) +_sym_db.RegisterMessage(GameServerMessage) + +GameServerSettings = _reflection.GeneratedProtocolMessageType('GameServerSettings', (_message.Message,), { + 'DESCRIPTOR' : _GAMESERVERSETTINGS, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.GameServerSettings) + }) +_sym_db.RegisterMessage(GameServerSettings) + +PlayerInfo = _reflection.GeneratedProtocolMessageType('PlayerInfo', (_message.Message,), { + 'DESCRIPTOR' : _PLAYERINFO, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.PlayerInfo) + }) +_sym_db.RegisterMessage(PlayerInfo) + +PlatformRestrictions = _reflection.GeneratedProtocolMessageType('PlatformRestrictions', (_message.Message,), { + 'DESCRIPTOR' : _PLATFORMRESTRICTIONS, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.PlatformRestrictions) + }) +_sym_db.RegisterMessage(PlatformRestrictions) + +InputMethodResrictions = _reflection.GeneratedProtocolMessageType('InputMethodResrictions', (_message.Message,), { + 'DESCRIPTOR' : _INPUTMETHODRESRICTIONS, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.InputMethodResrictions) + }) +_sym_db.RegisterMessage(InputMethodResrictions) + +Restrictions = _reflection.GeneratedProtocolMessageType('Restrictions', (_message.Message,), { + 'DESCRIPTOR' : _RESTRICTIONS, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.Restrictions) + }) +_sym_db.RegisterMessage(Restrictions) + +Compressed = _reflection.GeneratedProtocolMessageType('Compressed', (_message.Message,), { + 'DESCRIPTOR' : _COMPRESSED, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.Compressed) + }) +_sym_db.RegisterMessage(Compressed) + +Uncompressed = _reflection.GeneratedProtocolMessageType('Uncompressed', (_message.Message,), { + 'DESCRIPTOR' : _UNCOMPRESSED, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.Uncompressed) + }) +_sym_db.RegisterMessage(Uncompressed) + +CompiledRules = _reflection.GeneratedProtocolMessageType('CompiledRules', (_message.Message,), { + 'DESCRIPTOR' : _COMPILEDRULES, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.CompiledRules) + }) +_sym_db.RegisterMessage(CompiledRules) + +CompatibleModRules = _reflection.GeneratedProtocolMessageType('CompatibleModRules', (_message.Message,), { + 'DESCRIPTOR' : _COMPATIBLEMODRULES, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.CompatibleModRules) + }) +_sym_db.RegisterMessage(CompatibleModRules) + +InCompatibleModRules = _reflection.GeneratedProtocolMessageType('InCompatibleModRules', (_message.Message,), { + 'DESCRIPTOR' : _INCOMPATIBLEMODRULES, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.InCompatibleModRules) + }) +_sym_db.RegisterMessage(InCompatibleModRules) + +OriginalModRules = _reflection.GeneratedProtocolMessageType('OriginalModRules', (_message.Message,), { + 'DESCRIPTOR' : _ORIGINALMODRULES, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.OriginalModRules) + }) +_sym_db.RegisterMessage(OriginalModRules) + +AssetCategoryTagBooleanOverride = _reflection.GeneratedProtocolMessageType('AssetCategoryTagBooleanOverride', (_message.Message,), { + 'DESCRIPTOR' : _ASSETCATEGORYTAGBOOLEANOVERRIDE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AssetCategoryTagBooleanOverride) + }) +_sym_db.RegisterMessage(AssetCategoryTagBooleanOverride) + +AssetCategoryTagBooleanTeamOverride = _reflection.GeneratedProtocolMessageType('AssetCategoryTagBooleanTeamOverride', (_message.Message,), { + 'DESCRIPTOR' : _ASSETCATEGORYTAGBOOLEANTEAMOVERRIDE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AssetCategoryTagBooleanTeamOverride) + }) +_sym_db.RegisterMessage(AssetCategoryTagBooleanTeamOverride) + +AssetCategoryBoolean = _reflection.GeneratedProtocolMessageType('AssetCategoryBoolean', (_message.Message,), { + 'DESCRIPTOR' : _ASSETCATEGORYBOOLEAN, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AssetCategoryBoolean) + }) +_sym_db.RegisterMessage(AssetCategoryBoolean) + +AssetCategory = _reflection.GeneratedProtocolMessageType('AssetCategory', (_message.Message,), { + 'DESCRIPTOR' : _ASSETCATEGORY, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AssetCategory) + }) +_sym_db.RegisterMessage(AssetCategory) + +Playground = _reflection.GeneratedProtocolMessageType('Playground', (_message.Message,), { + 'DESCRIPTOR' : _PLAYGROUND, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.Playground) + }) +_sym_db.RegisterMessage(Playground) + +ListPlaygroundsByOwnerRequest = _reflection.GeneratedProtocolMessageType('ListPlaygroundsByOwnerRequest', (_message.Message,), { + 'DESCRIPTOR' : _LISTPLAYGROUNDSBYOWNERREQUEST, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.ListPlaygroundsByOwnerRequest) + }) +_sym_db.RegisterMessage(ListPlaygroundsByOwnerRequest) + +GetConstraintsRequest = _reflection.GeneratedProtocolMessageType('GetConstraintsRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCONSTRAINTSREQUEST, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.GetConstraintsRequest) + }) +_sym_db.RegisterMessage(GetConstraintsRequest) + +GetBlueprintsByIdRequest = _reflection.GeneratedProtocolMessageType('GetBlueprintsByIdRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETBLUEPRINTSBYIDREQUEST, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.GetBlueprintsByIdRequest) + }) +_sym_db.RegisterMessage(GetBlueprintsByIdRequest) + +GlobalConstraints = _reflection.GeneratedProtocolMessageType('GlobalConstraints', (_message.Message,), { + 'DESCRIPTOR' : _GLOBALCONSTRAINTS, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.GlobalConstraints) + }) +_sym_db.RegisterMessage(GlobalConstraints) + +IntRange = _reflection.GeneratedProtocolMessageType('IntRange', (_message.Message,), { + 'DESCRIPTOR' : _INTRANGE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.IntRange) + }) +_sym_db.RegisterMessage(IntRange) + +AvailableIntValues = _reflection.GeneratedProtocolMessageType('AvailableIntValues', (_message.Message,), { + 'DESCRIPTOR' : _AVAILABLEINTVALUES, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AvailableIntValues) + }) +_sym_db.RegisterMessage(AvailableIntValues) + +AvailableIntValue = _reflection.GeneratedProtocolMessageType('AvailableIntValue', (_message.Message,), { + 'DESCRIPTOR' : _AVAILABLEINTVALUE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AvailableIntValue) + }) +_sym_db.RegisterMessage(AvailableIntValue) + +SparseFloatValues = _reflection.GeneratedProtocolMessageType('SparseFloatValues', (_message.Message,), { + 'DESCRIPTOR' : _SPARSEFLOATVALUES, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.SparseFloatValues) + }) +_sym_db.RegisterMessage(SparseFloatValues) + +FloatRange = _reflection.GeneratedProtocolMessageType('FloatRange', (_message.Message,), { + 'DESCRIPTOR' : _FLOATRANGE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.FloatRange) + }) +_sym_db.RegisterMessage(FloatRange) + +AvailableFloatValues = _reflection.GeneratedProtocolMessageType('AvailableFloatValues', (_message.Message,), { + 'DESCRIPTOR' : _AVAILABLEFLOATVALUES, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AvailableFloatValues) + }) +_sym_db.RegisterMessage(AvailableFloatValues) + +AvailableMutatorFloatValues = _reflection.GeneratedProtocolMessageType('AvailableMutatorFloatValues', (_message.Message,), { + 'DESCRIPTOR' : _AVAILABLEMUTATORFLOATVALUES, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AvailableMutatorFloatValues) + }) +_sym_db.RegisterMessage(AvailableMutatorFloatValues) + +AvailableMutatorIntValues = _reflection.GeneratedProtocolMessageType('AvailableMutatorIntValues', (_message.Message,), { + 'DESCRIPTOR' : _AVAILABLEMUTATORINTVALUES, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AvailableMutatorIntValues) + }) +_sym_db.RegisterMessage(AvailableMutatorIntValues) + +AvailableMutatorSparseIntValues = _reflection.GeneratedProtocolMessageType('AvailableMutatorSparseIntValues', (_message.Message,), { + 'DESCRIPTOR' : _AVAILABLEMUTATORSPARSEINTVALUES, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AvailableMutatorSparseIntValues) + }) +_sym_db.RegisterMessage(AvailableMutatorSparseIntValues) + +AvailableMutatorSparseFloatValues = _reflection.GeneratedProtocolMessageType('AvailableMutatorSparseFloatValues', (_message.Message,), { + 'DESCRIPTOR' : _AVAILABLEMUTATORSPARSEFLOATVALUES, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AvailableMutatorSparseFloatValues) + }) +_sym_db.RegisterMessage(AvailableMutatorSparseFloatValues) + +AvailableMutatorKind = _reflection.GeneratedProtocolMessageType('AvailableMutatorKind', (_message.Message,), { + 'DESCRIPTOR' : _AVAILABLEMUTATORKIND, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AvailableMutatorKind) + }) +_sym_db.RegisterMessage(AvailableMutatorKind) + +AvailableMutator = _reflection.GeneratedProtocolMessageType('AvailableMutator', (_message.Message,), { + 'DESCRIPTOR' : _AVAILABLEMUTATOR, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AvailableMutator) + }) +_sym_db.RegisterMessage(AvailableMutator) + +AvailableMapEntry = _reflection.GeneratedProtocolMessageType('AvailableMapEntry', (_message.Message,), { + 'DESCRIPTOR' : _AVAILABLEMAPENTRY, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AvailableMapEntry) + }) +_sym_db.RegisterMessage(AvailableMapEntry) + +AvailableTag = _reflection.GeneratedProtocolMessageType('AvailableTag', (_message.Message,), { + 'DESCRIPTOR' : _AVAILABLETAG, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AvailableTag) + }) +_sym_db.RegisterMessage(AvailableTag) + +AvailableAssetCategoryTag = _reflection.GeneratedProtocolMessageType('AvailableAssetCategoryTag', (_message.Message,), { + 'DESCRIPTOR' : _AVAILABLEASSETCATEGORYTAG, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AvailableAssetCategoryTag) + }) +_sym_db.RegisterMessage(AvailableAssetCategoryTag) + +AvailableAssetCategories = _reflection.GeneratedProtocolMessageType('AvailableAssetCategories', (_message.Message,), { + 'DESCRIPTOR' : _AVAILABLEASSETCATEGORIES, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AvailableAssetCategories) + }) +_sym_db.RegisterMessage(AvailableAssetCategories) + +PlaygroundConstraints = _reflection.GeneratedProtocolMessageType('PlaygroundConstraints', (_message.Message,), { + 'DESCRIPTOR' : _PLAYGROUNDCONSTRAINTS, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.PlaygroundConstraints) + }) +_sym_db.RegisterMessage(PlaygroundConstraints) + +ModRulesDefinition = _reflection.GeneratedProtocolMessageType('ModRulesDefinition', (_message.Message,), { + 'DESCRIPTOR' : _MODRULESDEFINITION, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.ModRulesDefinition) + }) +_sym_db.RegisterMessage(ModRulesDefinition) + +AvailableGameData = _reflection.GeneratedProtocolMessageType('AvailableGameData', (_message.Message,), { + 'DESCRIPTOR' : _AVAILABLEGAMEDATA, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.AvailableGameData) + }) +_sym_db.RegisterMessage(AvailableGameData) + +Blueprint = _reflection.GeneratedProtocolMessageType('Blueprint', (_message.Message,), { + 'DESCRIPTOR' : _BLUEPRINT, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.Blueprint) + }) +_sym_db.RegisterMessage(Blueprint) + +ShortCode = _reflection.GeneratedProtocolMessageType('ShortCode', (_message.Message,), { + 'DESCRIPTOR' : _SHORTCODE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.ShortCode) + }) +_sym_db.RegisterMessage(ShortCode) + +GetProgressionTypesRequest = _reflection.GeneratedProtocolMessageType('GetProgressionTypesRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETPROGRESSIONTYPESREQUEST, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.GetProgressionTypesRequest) + }) +_sym_db.RegisterMessage(GetProgressionTypesRequest) + +BlueprintInfo = _reflection.GeneratedProtocolMessageType('BlueprintInfo', (_message.Message,), { + 'DESCRIPTOR' : _BLUEPRINTINFO, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.BlueprintInfo) + }) +_sym_db.RegisterMessage(BlueprintInfo) + +GetProgressionTypesResponse = _reflection.GeneratedProtocolMessageType('GetProgressionTypesResponse', (_message.Message,), { + 'DESCRIPTOR' : _GETPROGRESSIONTYPESRESPONSE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.GetProgressionTypesResponse) + }) +_sym_db.RegisterMessage(GetProgressionTypesResponse) + +GetScheduledBlueprintsRequest = _reflection.GeneratedProtocolMessageType('GetScheduledBlueprintsRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETSCHEDULEDBLUEPRINTSREQUEST, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.GetScheduledBlueprintsRequest) + }) +_sym_db.RegisterMessage(GetScheduledBlueprintsRequest) + +GetScheduledBlueprintsResponse = _reflection.GeneratedProtocolMessageType('GetScheduledBlueprintsResponse', (_message.Message,), { + 'DESCRIPTOR' : _GETSCHEDULEDBLUEPRINTSRESPONSE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.GetScheduledBlueprintsResponse) + }) +_sym_db.RegisterMessage(GetScheduledBlueprintsResponse) + +GetBlueprintsByIdResponse = _reflection.GeneratedProtocolMessageType('GetBlueprintsByIdResponse', (_message.Message,), { + 'DESCRIPTOR' : _GETBLUEPRINTSBYIDRESPONSE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.GetBlueprintsByIdResponse) + }) +_sym_db.RegisterMessage(GetBlueprintsByIdResponse) + +GetConstraintsResponse = _reflection.GeneratedProtocolMessageType('GetConstraintsResponse', (_message.Message,), { + 'DESCRIPTOR' : _GETCONSTRAINTSRESPONSE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.GetConstraintsResponse) + }) +_sym_db.RegisterMessage(GetConstraintsResponse) + +ListPlaygroundsByOwnerResponse = _reflection.GeneratedProtocolMessageType('ListPlaygroundsByOwnerResponse', (_message.Message,), { + 'DESCRIPTOR' : _LISTPLAYGROUNDSBYOWNERRESPONSE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.ListPlaygroundsByOwnerResponse) + }) +_sym_db.RegisterMessage(ListPlaygroundsByOwnerResponse) + +CreatePlaygroundRequest = _reflection.GeneratedProtocolMessageType('CreatePlaygroundRequest', (_message.Message,), { + 'DESCRIPTOR' : _CREATEPLAYGROUNDREQUEST, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.CreatePlaygroundRequest) + }) +_sym_db.RegisterMessage(CreatePlaygroundRequest) + +UpdatePlaygroundRequest = _reflection.GeneratedProtocolMessageType('UpdatePlaygroundRequest', (_message.Message,), { + 'DESCRIPTOR' : _UPDATEPLAYGROUNDREQUEST, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.UpdatePlaygroundRequest) + }) +_sym_db.RegisterMessage(UpdatePlaygroundRequest) + +DeletePlaygroundRequest = _reflection.GeneratedProtocolMessageType('DeletePlaygroundRequest', (_message.Message,), { + 'DESCRIPTOR' : _DELETEPLAYGROUNDREQUEST, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.DeletePlaygroundRequest) + }) +_sym_db.RegisterMessage(DeletePlaygroundRequest) + +GetPlaygroundRequest = _reflection.GeneratedProtocolMessageType('GetPlaygroundRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETPLAYGROUNDREQUEST, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.GetPlaygroundRequest) + }) +_sym_db.RegisterMessage(GetPlaygroundRequest) + +SharePlaygroundRequest = _reflection.GeneratedProtocolMessageType('SharePlaygroundRequest', (_message.Message,), { + 'DESCRIPTOR' : _SHAREPLAYGROUNDREQUEST, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.SharePlaygroundRequest) + }) +_sym_db.RegisterMessage(SharePlaygroundRequest) + +SharePlaygroundResponse = _reflection.GeneratedProtocolMessageType('SharePlaygroundResponse', (_message.Message,), { + 'DESCRIPTOR' : _SHAREPLAYGROUNDRESPONSE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.SharePlaygroundResponse) + }) +_sym_db.RegisterMessage(SharePlaygroundResponse) + +CreatePlaygroundResponse = _reflection.GeneratedProtocolMessageType('CreatePlaygroundResponse', (_message.Message,), { + 'DESCRIPTOR' : _CREATEPLAYGROUNDRESPONSE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.CreatePlaygroundResponse) + }) +_sym_db.RegisterMessage(CreatePlaygroundResponse) + +UpdatePlaygroundResponse = _reflection.GeneratedProtocolMessageType('UpdatePlaygroundResponse', (_message.Message,), { + 'DESCRIPTOR' : _UPDATEPLAYGROUNDRESPONSE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.UpdatePlaygroundResponse) + }) +_sym_db.RegisterMessage(UpdatePlaygroundResponse) + +DeletePlaygroundResponse = _reflection.GeneratedProtocolMessageType('DeletePlaygroundResponse', (_message.Message,), { + 'DESCRIPTOR' : _DELETEPLAYGROUNDRESPONSE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.DeletePlaygroundResponse) + }) +_sym_db.RegisterMessage(DeletePlaygroundResponse) + +PlaygroundInfoResponse = _reflection.GeneratedProtocolMessageType('PlaygroundInfoResponse', (_message.Message,), { + 'DESCRIPTOR' : _PLAYGROUNDINFORESPONSE, + '__module__' : 'proto.communitygames_pb2' + # @@protoc_insertion_point(class_scope:web.communitygames.PlaygroundInfoResponse) + }) +_sym_db.RegisterMessage(PlaygroundInfoResponse) + +_COMMUNITYGAMES = DESCRIPTOR.services_by_name['CommunityGames'] +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _TIMESTAMP.fields_by_name['seconds']._options = None + _TIMESTAMP.fields_by_name['seconds']._serialized_options = b'0\001' + _PLAYERINFO.fields_by_name['nucleusId']._options = None + _PLAYERINFO.fields_by_name['nucleusId']._serialized_options = b'0\001' + _PLAYERINFO.fields_by_name['personaId']._options = None + _PLAYERINFO.fields_by_name['personaId']._serialized_options = b'0\001' + _PLATFORM._serialized_start=11215 + _PLATFORM._serialized_end=11299 + _INPUTMETHODS._serialized_start=11301 + _INPUTMETHODS._serialized_end=11365 + _INCLUDEFIELDS._serialized_start=11367 + _INCLUDEFIELDS._serialized_end=11475 + _STATE._serialized_start=11477 + _STATE._serialized_end=11510 + _CATEGORY._serialized_start=11512 + _CATEGORY._serialized_end=11607 + _PHANTOMGAMESTATE._serialized_start=11609 + _PHANTOMGAMESTATE._serialized_end=11654 + _CAPACITYTYPE._serialized_start=11656 + _CAPACITYTYPE._serialized_end=11702 + _ROTATIONBEHAVIOR._serialized_start=11704 + _ROTATIONBEHAVIOR._serialized_end=11760 + _ROUNDBEHAVIOR._serialized_start=11762 + _ROUNDBEHAVIOR._serialized_end=11791 + _BALANCINGMETHOD._serialized_start=11793 + _BALANCINGMETHOD._serialized_end=11890 + _PROGRESSIONENTRY._serialized_start=50 + _PROGRESSIONENTRY._serialized_end=145 + _TRANSLATIONMETADATA._serialized_start=147 + _TRANSLATIONMETADATA._serialized_end=205 + _RESOURCELOCATION._serialized_start=207 + _RESOURCELOCATION._serialized_end=251 + _RESOURCE._serialized_start=253 + _RESOURCE._serialized_end=333 + _METADATA._serialized_start=335 + _METADATA._serialized_end=457 + _TAG._serialized_start=459 + _TAG._serialized_end=543 + _PROGRESSIONMODE._serialized_start=545 + _PROGRESSIONMODE._serialized_end=577 + _PLAYGROUNDRESPONSE._serialized_start=580 + _PLAYGROUNDRESPONSE._serialized_end=821 + _MAPINFO._serialized_start=824 + _MAPINFO._serialized_end=1032 + _MAPROTATION._serialized_start=1035 + _MAPROTATION._serialized_end=1213 + _TEAMSTRUCTURE._serialized_start=1215 + _TEAMSTRUCTURE._serialized_end=1264 + _INTERNALTEAMSTRUCTURE._serialized_start=1266 + _INTERNALTEAMSTRUCTURE._serialized_end=1379 + _MUTATORSPARSEFLOATENTRY._serialized_start=1381 + _MUTATORSPARSEFLOATENTRY._serialized_end=1436 + _MUTATORSPARSEFLOAT._serialized_start=1438 + _MUTATORSPARSEFLOAT._serialized_end=1561 + _MUTATORFLOAT._serialized_start=1563 + _MUTATORFLOAT._serialized_end=1592 + _MUTATORBOOLEAN._serialized_start=1594 + _MUTATORBOOLEAN._serialized_end=1629 + _MUTATORSTRING._serialized_start=1631 + _MUTATORSTRING._serialized_end=1667 + _MUTATORINT._serialized_start=1669 + _MUTATORINT._serialized_end=1696 + _MUTATORSPARSEBOOLEANENTRY._serialized_start=1698 + _MUTATORSPARSEBOOLEANENTRY._serialized_end=1755 + _MUTATORSPARSEBOOLEAN._serialized_start=1757 + _MUTATORSPARSEBOOLEAN._serialized_end=1884 + _SPARSEINTENTITY._serialized_start=1886 + _SPARSEINTENTITY._serialized_end=1919 + _MUTATORSPARSEINTENTRY._serialized_start=1921 + _MUTATORSPARSEINTENTRY._serialized_end=1974 + _MUTATORSPARSEINT._serialized_start=1976 + _MUTATORSPARSEINT._serialized_end=2095 + _MUTATORKIND._serialized_start=2098 + _MUTATORKIND._serialized_end=2541 + _TEAMCOMPOSITION._serialized_start=2544 + _TEAMCOMPOSITION._serialized_end=2739 + _MUTATOR._serialized_start=2741 + _MUTATOR._serialized_end=2841 + _TIMESTAMP._serialized_start=2843 + _TIMESTAMP._serialized_end=2890 + _STRINGVALUE._serialized_start=2892 + _STRINGVALUE._serialized_end=2920 + _GAMESERVERMESSAGE._serialized_start=2922 + _GAMESERVERMESSAGE._serialized_end=2969 + _GAMESERVERSETTINGS._serialized_start=2972 + _GAMESERVERSETTINGS._serialized_end=3303 + _PLAYERINFO._serialized_start=3305 + _PLAYERINFO._serialized_end=3413 + _PLATFORMRESTRICTIONS._serialized_start=3415 + _PLATFORMRESTRICTIONS._serialized_end=3486 + _INPUTMETHODRESRICTIONS._serialized_start=3488 + _INPUTMETHODRESRICTIONS._serialized_end=3568 + _RESTRICTIONS._serialized_start=3571 + _RESTRICTIONS._serialized_end=3735 + _COMPRESSED._serialized_start=3737 + _COMPRESSED._serialized_end=3819 + _UNCOMPRESSED._serialized_start=3821 + _UNCOMPRESSED._serialized_end=3883 + _COMPILEDRULES._serialized_start=3885 + _COMPILEDRULES._serialized_end=4008 + _COMPATIBLEMODRULES._serialized_start=4010 + _COMPATIBLEMODRULES._serialized_end=4120 + _INCOMPATIBLEMODRULES._serialized_start=4122 + _INCOMPATIBLEMODRULES._serialized_end=4212 + _ORIGINALMODRULES._serialized_start=4215 + _ORIGINALMODRULES._serialized_end=4367 + _ASSETCATEGORYTAGBOOLEANOVERRIDE._serialized_start=4369 + _ASSETCATEGORYTAGBOOLEANOVERRIDE._serialized_end=4444 + _ASSETCATEGORYTAGBOOLEANTEAMOVERRIDE._serialized_start=4446 + _ASSETCATEGORYTAGBOOLEANTEAMOVERRIDE._serialized_end=4541 + _ASSETCATEGORYBOOLEAN._serialized_start=4544 + _ASSETCATEGORYBOOLEAN._serialized_end=4740 + _ASSETCATEGORY._serialized_start=4742 + _ASSETCATEGORY._serialized_end=4831 + _PLAYGROUND._serialized_start=4834 + _PLAYGROUND._serialized_end=5548 + _LISTPLAYGROUNDSBYOWNERREQUEST._serialized_start=5550 + _LISTPLAYGROUNDSBYOWNERREQUEST._serialized_end=5629 + _GETCONSTRAINTSREQUEST._serialized_start=5631 + _GETCONSTRAINTSREQUEST._serialized_end=5654 + _GETBLUEPRINTSBYIDREQUEST._serialized_start=5656 + _GETBLUEPRINTSBYIDREQUEST._serialized_end=5762 + _GLOBALCONSTRAINTS._serialized_start=5764 + _GLOBALCONSTRAINTS._serialized_end=5883 + _INTRANGE._serialized_start=5885 + _INTRANGE._serialized_end=5931 + _AVAILABLEINTVALUES._serialized_start=5933 + _AVAILABLEINTVALUES._serialized_end=6057 + _AVAILABLEINTVALUE._serialized_start=6059 + _AVAILABLEINTVALUE._serialized_end=6165 + _SPARSEFLOATVALUES._serialized_start=6167 + _SPARSEFLOATVALUES._serialized_end=6202 + _FLOATRANGE._serialized_start=6204 + _FLOATRANGE._serialized_end=6252 + _AVAILABLEFLOATVALUES._serialized_start=6255 + _AVAILABLEFLOATVALUES._serialized_end=6385 + _AVAILABLEMUTATORFLOATVALUES._serialized_start=6388 + _AVAILABLEMUTATORFLOATVALUES._serialized_end=6535 + _AVAILABLEMUTATORINTVALUES._serialized_start=6538 + _AVAILABLEMUTATORINTVALUES._serialized_end=6679 + _AVAILABLEMUTATORSPARSEINTVALUES._serialized_start=6682 + _AVAILABLEMUTATORSPARSEINTVALUES._serialized_end=6835 + _AVAILABLEMUTATORSPARSEFLOATVALUES._serialized_start=6838 + _AVAILABLEMUTATORSPARSEFLOATVALUES._serialized_end=6997 + _AVAILABLEMUTATORKIND._serialized_start=7000 + _AVAILABLEMUTATORKIND._serialized_end=7536 + _AVAILABLEMUTATOR._serialized_start=7539 + _AVAILABLEMUTATOR._serialized_end=7705 + _AVAILABLEMAPENTRY._serialized_start=7708 + _AVAILABLEMAPENTRY._serialized_end=8189 + _AVAILABLETAG._serialized_start=8191 + _AVAILABLETAG._serialized_end=8313 + _AVAILABLEASSETCATEGORYTAG._serialized_start=8315 + _AVAILABLEASSETCATEGORYTAG._serialized_end=8441 + _AVAILABLEASSETCATEGORIES._serialized_start=8444 + _AVAILABLEASSETCATEGORIES._serialized_end=8596 + _PLAYGROUNDCONSTRAINTS._serialized_start=8599 + _PLAYGROUNDCONSTRAINTS._serialized_end=8803 + _MODRULESDEFINITION._serialized_start=8805 + _MODRULESDEFINITION._serialized_end=8867 + _AVAILABLEGAMEDATA._serialized_start=8870 + _AVAILABLEGAMEDATA._serialized_end=9127 + _BLUEPRINT._serialized_start=9130 + _BLUEPRINT._serialized_end=9443 + _SHORTCODE._serialized_start=9445 + _SHORTCODE._serialized_end=9470 + _GETPROGRESSIONTYPESREQUEST._serialized_start=9472 + _GETPROGRESSIONTYPESREQUEST._serialized_end=9500 + _BLUEPRINTINFO._serialized_start=9502 + _BLUEPRINTINFO._serialized_end=9561 + _GETPROGRESSIONTYPESRESPONSE._serialized_start=9563 + _GETPROGRESSIONTYPESRESPONSE._serialized_end=9647 + _GETSCHEDULEDBLUEPRINTSREQUEST._serialized_start=9649 + _GETSCHEDULEDBLUEPRINTSREQUEST._serialized_end=9705 + _GETSCHEDULEDBLUEPRINTSRESPONSE._serialized_start=9707 + _GETSCHEDULEDBLUEPRINTSRESPONSE._serialized_end=9794 + _GETBLUEPRINTSBYIDRESPONSE._serialized_start=9796 + _GETBLUEPRINTSBYIDRESPONSE._serialized_end=9873 + _GETCONSTRAINTSRESPONSE._serialized_start=9875 + _GETCONSTRAINTSRESPONSE._serialized_end=9965 + _LISTPLAYGROUNDSBYOWNERRESPONSE._serialized_start=9967 + _LISTPLAYGROUNDSBYOWNERRESPONSE._serialized_end=10068 + _CREATEPLAYGROUNDREQUEST._serialized_start=10071 + _CREATEPLAYGROUNDREQUEST._serialized_end=10605 + _UPDATEPLAYGROUNDREQUEST._serialized_start=10607 + _UPDATEPLAYGROUNDREQUEST._serialized_end=10687 + _DELETEPLAYGROUNDREQUEST._serialized_start=10689 + _DELETEPLAYGROUNDREQUEST._serialized_end=10736 + _GETPLAYGROUNDREQUEST._serialized_start=10738 + _GETPLAYGROUNDREQUEST._serialized_end=10782 + _SHAREPLAYGROUNDREQUEST._serialized_start=10784 + _SHAREPLAYGROUNDREQUEST._serialized_end=10830 + _SHAREPLAYGROUNDRESPONSE._serialized_start=10832 + _SHAREPLAYGROUNDRESPONSE._serialized_end=10907 + _CREATEPLAYGROUNDRESPONSE._serialized_start=10909 + _CREATEPLAYGROUNDRESPONSE._serialized_end=11003 + _UPDATEPLAYGROUNDRESPONSE._serialized_start=11005 + _UPDATEPLAYGROUNDRESPONSE._serialized_end=11099 + _DELETEPLAYGROUNDRESPONSE._serialized_start=11101 + _DELETEPLAYGROUNDRESPONSE._serialized_end=11127 + _PLAYGROUNDINFORESPONSE._serialized_start=11129 + _PLAYGROUNDINFORESPONSE._serialized_end=11213 + _COMMUNITYGAMES._serialized_start=11893 + _COMMUNITYGAMES._serialized_end=13072 +# @@protoc_insertion_point(module_scope) diff --git a/bfportal_grpc_python/proto/communitygames_pb2_grpc.py b/bfportal_grpc_python/proto/communitygames_pb2_grpc.py new file mode 100644 index 0000000..457ff75 --- /dev/null +++ b/bfportal_grpc_python/proto/communitygames_pb2_grpc.py @@ -0,0 +1,363 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from proto import communitygames_pb2 as proto_dot_communitygames__pb2 + + +class CommunityGamesStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.createPlayground = channel.unary_unary( + '/web.communitygames.CommunityGames/createPlayground', + request_serializer=proto_dot_communitygames__pb2.CreatePlaygroundRequest.SerializeToString, + response_deserializer=proto_dot_communitygames__pb2.CreatePlaygroundResponse.FromString, + ) + self.updatePlayground = channel.unary_unary( + '/web.communitygames.CommunityGames/updatePlayground', + request_serializer=proto_dot_communitygames__pb2.UpdatePlaygroundRequest.SerializeToString, + response_deserializer=proto_dot_communitygames__pb2.UpdatePlaygroundResponse.FromString, + ) + self.deletePlayground = channel.unary_unary( + '/web.communitygames.CommunityGames/deletePlayground', + request_serializer=proto_dot_communitygames__pb2.DeletePlaygroundRequest.SerializeToString, + response_deserializer=proto_dot_communitygames__pb2.DeletePlaygroundResponse.FromString, + ) + self.getPlayground = channel.unary_unary( + '/web.communitygames.CommunityGames/getPlayground', + request_serializer=proto_dot_communitygames__pb2.GetPlaygroundRequest.SerializeToString, + response_deserializer=proto_dot_communitygames__pb2.PlaygroundInfoResponse.FromString, + ) + self.listPlaygroundsByOwner = channel.unary_unary( + '/web.communitygames.CommunityGames/listPlaygroundsByOwner', + request_serializer=proto_dot_communitygames__pb2.ListPlaygroundsByOwnerRequest.SerializeToString, + response_deserializer=proto_dot_communitygames__pb2.ListPlaygroundsByOwnerResponse.FromString, + ) + self.getBlueprintsById = channel.unary_unary( + '/web.communitygames.CommunityGames/getBlueprintsById', + request_serializer=proto_dot_communitygames__pb2.GetBlueprintsByIdRequest.SerializeToString, + response_deserializer=proto_dot_communitygames__pb2.GetBlueprintsByIdResponse.FromString, + ) + self.getScheduledBlueprints = channel.unary_unary( + '/web.communitygames.CommunityGames/getScheduledBlueprints', + request_serializer=proto_dot_communitygames__pb2.GetScheduledBlueprintsRequest.SerializeToString, + response_deserializer=proto_dot_communitygames__pb2.GetScheduledBlueprintsResponse.FromString, + ) + self.getConstraints = channel.unary_unary( + '/web.communitygames.CommunityGames/getConstraints', + request_serializer=proto_dot_communitygames__pb2.GetConstraintsRequest.SerializeToString, + response_deserializer=proto_dot_communitygames__pb2.GetConstraintsResponse.FromString, + ) + self.sharePlayground = channel.unary_unary( + '/web.communitygames.CommunityGames/sharePlayground', + request_serializer=proto_dot_communitygames__pb2.SharePlaygroundRequest.SerializeToString, + response_deserializer=proto_dot_communitygames__pb2.SharePlaygroundResponse.FromString, + ) + self.getProgressionTypes = channel.unary_unary( + '/web.communitygames.CommunityGames/getProgressionTypes', + request_serializer=proto_dot_communitygames__pb2.GetProgressionTypesRequest.SerializeToString, + response_deserializer=proto_dot_communitygames__pb2.GetProgressionTypesResponse.FromString, + ) + + +class CommunityGamesServicer(object): + """Missing associated documentation comment in .proto file.""" + + def createPlayground(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def updatePlayground(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def deletePlayground(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def getPlayground(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def listPlaygroundsByOwner(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def getBlueprintsById(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def getScheduledBlueprints(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def getConstraints(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def sharePlayground(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def getProgressionTypes(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CommunityGamesServicer_to_server(servicer, server): + rpc_method_handlers = { + 'createPlayground': grpc.unary_unary_rpc_method_handler( + servicer.createPlayground, + request_deserializer=proto_dot_communitygames__pb2.CreatePlaygroundRequest.FromString, + response_serializer=proto_dot_communitygames__pb2.CreatePlaygroundResponse.SerializeToString, + ), + 'updatePlayground': grpc.unary_unary_rpc_method_handler( + servicer.updatePlayground, + request_deserializer=proto_dot_communitygames__pb2.UpdatePlaygroundRequest.FromString, + response_serializer=proto_dot_communitygames__pb2.UpdatePlaygroundResponse.SerializeToString, + ), + 'deletePlayground': grpc.unary_unary_rpc_method_handler( + servicer.deletePlayground, + request_deserializer=proto_dot_communitygames__pb2.DeletePlaygroundRequest.FromString, + response_serializer=proto_dot_communitygames__pb2.DeletePlaygroundResponse.SerializeToString, + ), + 'getPlayground': grpc.unary_unary_rpc_method_handler( + servicer.getPlayground, + request_deserializer=proto_dot_communitygames__pb2.GetPlaygroundRequest.FromString, + response_serializer=proto_dot_communitygames__pb2.PlaygroundInfoResponse.SerializeToString, + ), + 'listPlaygroundsByOwner': grpc.unary_unary_rpc_method_handler( + servicer.listPlaygroundsByOwner, + request_deserializer=proto_dot_communitygames__pb2.ListPlaygroundsByOwnerRequest.FromString, + response_serializer=proto_dot_communitygames__pb2.ListPlaygroundsByOwnerResponse.SerializeToString, + ), + 'getBlueprintsById': grpc.unary_unary_rpc_method_handler( + servicer.getBlueprintsById, + request_deserializer=proto_dot_communitygames__pb2.GetBlueprintsByIdRequest.FromString, + response_serializer=proto_dot_communitygames__pb2.GetBlueprintsByIdResponse.SerializeToString, + ), + 'getScheduledBlueprints': grpc.unary_unary_rpc_method_handler( + servicer.getScheduledBlueprints, + request_deserializer=proto_dot_communitygames__pb2.GetScheduledBlueprintsRequest.FromString, + response_serializer=proto_dot_communitygames__pb2.GetScheduledBlueprintsResponse.SerializeToString, + ), + 'getConstraints': grpc.unary_unary_rpc_method_handler( + servicer.getConstraints, + request_deserializer=proto_dot_communitygames__pb2.GetConstraintsRequest.FromString, + response_serializer=proto_dot_communitygames__pb2.GetConstraintsResponse.SerializeToString, + ), + 'sharePlayground': grpc.unary_unary_rpc_method_handler( + servicer.sharePlayground, + request_deserializer=proto_dot_communitygames__pb2.SharePlaygroundRequest.FromString, + response_serializer=proto_dot_communitygames__pb2.SharePlaygroundResponse.SerializeToString, + ), + 'getProgressionTypes': grpc.unary_unary_rpc_method_handler( + servicer.getProgressionTypes, + request_deserializer=proto_dot_communitygames__pb2.GetProgressionTypesRequest.FromString, + response_serializer=proto_dot_communitygames__pb2.GetProgressionTypesResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'web.communitygames.CommunityGames', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CommunityGames(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def createPlayground(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/web.communitygames.CommunityGames/createPlayground', + proto_dot_communitygames__pb2.CreatePlaygroundRequest.SerializeToString, + proto_dot_communitygames__pb2.CreatePlaygroundResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def updatePlayground(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/web.communitygames.CommunityGames/updatePlayground', + proto_dot_communitygames__pb2.UpdatePlaygroundRequest.SerializeToString, + proto_dot_communitygames__pb2.UpdatePlaygroundResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def deletePlayground(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/web.communitygames.CommunityGames/deletePlayground', + proto_dot_communitygames__pb2.DeletePlaygroundRequest.SerializeToString, + proto_dot_communitygames__pb2.DeletePlaygroundResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def getPlayground(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/web.communitygames.CommunityGames/getPlayground', + proto_dot_communitygames__pb2.GetPlaygroundRequest.SerializeToString, + proto_dot_communitygames__pb2.PlaygroundInfoResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def listPlaygroundsByOwner(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/web.communitygames.CommunityGames/listPlaygroundsByOwner', + proto_dot_communitygames__pb2.ListPlaygroundsByOwnerRequest.SerializeToString, + proto_dot_communitygames__pb2.ListPlaygroundsByOwnerResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def getBlueprintsById(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/web.communitygames.CommunityGames/getBlueprintsById', + proto_dot_communitygames__pb2.GetBlueprintsByIdRequest.SerializeToString, + proto_dot_communitygames__pb2.GetBlueprintsByIdResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def getScheduledBlueprints(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/web.communitygames.CommunityGames/getScheduledBlueprints', + proto_dot_communitygames__pb2.GetScheduledBlueprintsRequest.SerializeToString, + proto_dot_communitygames__pb2.GetScheduledBlueprintsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def getConstraints(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/web.communitygames.CommunityGames/getConstraints', + proto_dot_communitygames__pb2.GetConstraintsRequest.SerializeToString, + proto_dot_communitygames__pb2.GetConstraintsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def sharePlayground(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/web.communitygames.CommunityGames/sharePlayground', + proto_dot_communitygames__pb2.SharePlaygroundRequest.SerializeToString, + proto_dot_communitygames__pb2.SharePlaygroundResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def getProgressionTypes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/web.communitygames.CommunityGames/getProgressionTypes', + proto_dot_communitygames__pb2.GetProgressionTypesRequest.SerializeToString, + proto_dot_communitygames__pb2.GetProgressionTypesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/bfportal_grpc_python/proto/localization_pb2.py b/bfportal_grpc_python/proto/localization_pb2.py new file mode 100644 index 0000000..454a1a7 --- /dev/null +++ b/bfportal_grpc_python/proto/localization_pb2.py @@ -0,0 +1,109 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: proto/localization.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18proto/localization.proto\x12\x10web.localization\"\x17\n\x07SidList\x12\x0c\n\x04sids\x18\x01 \x03(\t\"\x1d\n\x0e\x43\x61tegoryIdList\x12\x0b\n\x03ids\x18\x01 \x03(\x05\" \n\x11SubCategoryIdList\x12\x0b\n\x03ids\x18\x01 \x03(\x05\"\xb9\x01\n\x11TranslationsQuery\x12*\n\x07sidList\x18\x01 \x01(\x0b\x32\x19.web.localization.SidList\x12\x38\n\x0e\x63\x61tegoryIdList\x18\x02 \x01(\x0b\x32 .web.localization.CategoryIdList\x12>\n\x11subCategoryIdList\x18\x03 \x01(\x0b\x32#.web.localization.SubCategoryIdList\"G\n\rLocalizedText\x12\x0b\n\x03sid\x18\x01 \x01(\t\x12\x15\n\rlocalizedText\x18\x02 \x01(\t\x12\x12\n\ncategoryId\x18\x03 \x01(\x05\"/\n\tTimestamp\x12\x13\n\x07seconds\x18\x01 \x01(\x03\x42\x02\x30\x01\x12\r\n\x05nanos\x18\x02 \x01(\x05\"\x98\x01\n\x16GetTranslationsRequest\x12>\n\x11translationsQuery\x18\x01 \x01(\x0b\x32#.web.localization.TranslationsQuery\x12\x0e\n\x06locale\x18\x04 \x01(\t\x12.\n\tfetchFrom\x18\x05 \x01(\x0b\x32\x1b.web.localization.Timestamp\"\x85\x01\n\x17GetTranslationsResponse\x12\x37\n\x0elocalizedTexts\x18\x03 \x03(\x0b\x32\x1f.web.localization.LocalizedText\x12\x31\n\x0c\x66\x65tchedUntil\x18\x04 \x01(\x0b\x32\x1b.web.localization.Timestamp2~\n\x12\x43lientLocalization\x12h\n\x0fgetTranslations\x12(.web.localization.GetTranslationsRequest\x1a).web.localization.GetTranslationsResponse\"\x00\x62\x06proto3') + + + +_SIDLIST = DESCRIPTOR.message_types_by_name['SidList'] +_CATEGORYIDLIST = DESCRIPTOR.message_types_by_name['CategoryIdList'] +_SUBCATEGORYIDLIST = DESCRIPTOR.message_types_by_name['SubCategoryIdList'] +_TRANSLATIONSQUERY = DESCRIPTOR.message_types_by_name['TranslationsQuery'] +_LOCALIZEDTEXT = DESCRIPTOR.message_types_by_name['LocalizedText'] +_TIMESTAMP = DESCRIPTOR.message_types_by_name['Timestamp'] +_GETTRANSLATIONSREQUEST = DESCRIPTOR.message_types_by_name['GetTranslationsRequest'] +_GETTRANSLATIONSRESPONSE = DESCRIPTOR.message_types_by_name['GetTranslationsResponse'] +SidList = _reflection.GeneratedProtocolMessageType('SidList', (_message.Message,), { + 'DESCRIPTOR' : _SIDLIST, + '__module__' : 'proto.localization_pb2' + # @@protoc_insertion_point(class_scope:web.localization.SidList) + }) +_sym_db.RegisterMessage(SidList) + +CategoryIdList = _reflection.GeneratedProtocolMessageType('CategoryIdList', (_message.Message,), { + 'DESCRIPTOR' : _CATEGORYIDLIST, + '__module__' : 'proto.localization_pb2' + # @@protoc_insertion_point(class_scope:web.localization.CategoryIdList) + }) +_sym_db.RegisterMessage(CategoryIdList) + +SubCategoryIdList = _reflection.GeneratedProtocolMessageType('SubCategoryIdList', (_message.Message,), { + 'DESCRIPTOR' : _SUBCATEGORYIDLIST, + '__module__' : 'proto.localization_pb2' + # @@protoc_insertion_point(class_scope:web.localization.SubCategoryIdList) + }) +_sym_db.RegisterMessage(SubCategoryIdList) + +TranslationsQuery = _reflection.GeneratedProtocolMessageType('TranslationsQuery', (_message.Message,), { + 'DESCRIPTOR' : _TRANSLATIONSQUERY, + '__module__' : 'proto.localization_pb2' + # @@protoc_insertion_point(class_scope:web.localization.TranslationsQuery) + }) +_sym_db.RegisterMessage(TranslationsQuery) + +LocalizedText = _reflection.GeneratedProtocolMessageType('LocalizedText', (_message.Message,), { + 'DESCRIPTOR' : _LOCALIZEDTEXT, + '__module__' : 'proto.localization_pb2' + # @@protoc_insertion_point(class_scope:web.localization.LocalizedText) + }) +_sym_db.RegisterMessage(LocalizedText) + +Timestamp = _reflection.GeneratedProtocolMessageType('Timestamp', (_message.Message,), { + 'DESCRIPTOR' : _TIMESTAMP, + '__module__' : 'proto.localization_pb2' + # @@protoc_insertion_point(class_scope:web.localization.Timestamp) + }) +_sym_db.RegisterMessage(Timestamp) + +GetTranslationsRequest = _reflection.GeneratedProtocolMessageType('GetTranslationsRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETTRANSLATIONSREQUEST, + '__module__' : 'proto.localization_pb2' + # @@protoc_insertion_point(class_scope:web.localization.GetTranslationsRequest) + }) +_sym_db.RegisterMessage(GetTranslationsRequest) + +GetTranslationsResponse = _reflection.GeneratedProtocolMessageType('GetTranslationsResponse', (_message.Message,), { + 'DESCRIPTOR' : _GETTRANSLATIONSRESPONSE, + '__module__' : 'proto.localization_pb2' + # @@protoc_insertion_point(class_scope:web.localization.GetTranslationsResponse) + }) +_sym_db.RegisterMessage(GetTranslationsResponse) + +_CLIENTLOCALIZATION = DESCRIPTOR.services_by_name['ClientLocalization'] +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _TIMESTAMP.fields_by_name['seconds']._options = None + _TIMESTAMP.fields_by_name['seconds']._serialized_options = b'0\001' + _SIDLIST._serialized_start=46 + _SIDLIST._serialized_end=69 + _CATEGORYIDLIST._serialized_start=71 + _CATEGORYIDLIST._serialized_end=100 + _SUBCATEGORYIDLIST._serialized_start=102 + _SUBCATEGORYIDLIST._serialized_end=134 + _TRANSLATIONSQUERY._serialized_start=137 + _TRANSLATIONSQUERY._serialized_end=322 + _LOCALIZEDTEXT._serialized_start=324 + _LOCALIZEDTEXT._serialized_end=395 + _TIMESTAMP._serialized_start=397 + _TIMESTAMP._serialized_end=444 + _GETTRANSLATIONSREQUEST._serialized_start=447 + _GETTRANSLATIONSREQUEST._serialized_end=599 + _GETTRANSLATIONSRESPONSE._serialized_start=602 + _GETTRANSLATIONSRESPONSE._serialized_end=735 + _CLIENTLOCALIZATION._serialized_start=737 + _CLIENTLOCALIZATION._serialized_end=863 +# @@protoc_insertion_point(module_scope) diff --git a/bfportal_grpc_python/proto/localization_pb2_grpc.py b/bfportal_grpc_python/proto/localization_pb2_grpc.py new file mode 100644 index 0000000..08f7b6a --- /dev/null +++ b/bfportal_grpc_python/proto/localization_pb2_grpc.py @@ -0,0 +1,66 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from proto import localization_pb2 as proto_dot_localization__pb2 + + +class ClientLocalizationStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.getTranslations = channel.unary_unary( + '/web.localization.ClientLocalization/getTranslations', + request_serializer=proto_dot_localization__pb2.GetTranslationsRequest.SerializeToString, + response_deserializer=proto_dot_localization__pb2.GetTranslationsResponse.FromString, + ) + + +class ClientLocalizationServicer(object): + """Missing associated documentation comment in .proto file.""" + + def getTranslations(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ClientLocalizationServicer_to_server(servicer, server): + rpc_method_handlers = { + 'getTranslations': grpc.unary_unary_rpc_method_handler( + servicer.getTranslations, + request_deserializer=proto_dot_localization__pb2.GetTranslationsRequest.FromString, + response_serializer=proto_dot_localization__pb2.GetTranslationsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'web.localization.ClientLocalization', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ClientLocalization(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def getTranslations(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/web.localization.ClientLocalization/getTranslations', + proto_dot_localization__pb2.GetTranslationsRequest.SerializeToString, + proto_dot_localization__pb2.GetTranslationsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/bfportal_grpc_python/proto/reporting_pb2.py b/bfportal_grpc_python/proto/reporting_pb2.py new file mode 100644 index 0000000..891e166 --- /dev/null +++ b/bfportal_grpc_python/proto/reporting_pb2.py @@ -0,0 +1,80 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: proto/reporting.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15proto/reporting.proto\x12\rweb.reporting\"\x1c\n\x0bStringValue\x12\r\n\x05value\x18\x01 \x01(\t\"\xd4\x01\n\x17ReportPlaygroundRequest\x12\x17\n\x0fprotocolVersion\x18\x01 \x01(\t\x12\x14\n\x0cplaygroundId\x18\x02 \x01(\t\x12)\n\x08\x63\x61tegory\x18\x03 \x01(\x0e\x32\x17.web.reporting.Category\x12\x32\n\x0erequesterEmail\x18\x04 \x01(\x0b\x32\x1a.web.reporting.StringValue\x12+\n\x07subject\x18\x05 \x01(\x0b\x32\x1a.web.reporting.StringValue\".\n\x18ReportPlaygroundResponse\x12\x12\n\npetitionId\x18\x01 \x01(\t*\xc7\x02\n\x08\x43\x61tegory\x12\x14\n\x10UNKNOWN_CATEGORY\x10\x00\x12\x0c\n\x08\x43HEATING\x10\x01\x12\x0e\n\nHARASSMENT\x10\x02\x12\x08\n\x04SPAM\x10\x03\x12\x0e\n\nPLAGIARISM\x10\x04\x12\x0f\n\x0bHATE_SPEECH\x10\x05\x12\x15\n\x11SEXUALLY_EXPLICIT\x10\x06\x12\x16\n\x12\x43HILD_SOLICITATION\x10\x07\x12\x14\n\x10TERRORIST_THREAT\x10\x08\x12\x0f\n\x0b\x43LIENT_HACK\x10\t\x12\x12\n\x0eSUICIDE_THREAT\x10\n\x12\n\n\x06\x44OXING\x10\x0b\x12\x0f\n\x0b\x41\x44VERTISING\x10\x0c\x12\x11\n\rINAPPROPRIATE\x10\r\x12\x0b\n\x07VIOLENT\x10\x0e\x12\r\n\tOFFENSIVE\x10\x0f\x12\x12\n\x0eOFFENSIVE_CHAT\x10\x10\x12\x12\n\x0eOFFENSIVE_NAME\x10\x11\x32u\n\x0cWebReporting\x12\x65\n\x10reportPlayground\x12&.web.reporting.ReportPlaygroundRequest\x1a\'.web.reporting.ReportPlaygroundResponse\"\x00\x62\x06proto3') + +_CATEGORY = DESCRIPTOR.enum_types_by_name['Category'] +Category = enum_type_wrapper.EnumTypeWrapper(_CATEGORY) +UNKNOWN_CATEGORY = 0 +CHEATING = 1 +HARASSMENT = 2 +SPAM = 3 +PLAGIARISM = 4 +HATE_SPEECH = 5 +SEXUALLY_EXPLICIT = 6 +CHILD_SOLICITATION = 7 +TERRORIST_THREAT = 8 +CLIENT_HACK = 9 +SUICIDE_THREAT = 10 +DOXING = 11 +ADVERTISING = 12 +INAPPROPRIATE = 13 +VIOLENT = 14 +OFFENSIVE = 15 +OFFENSIVE_CHAT = 16 +OFFENSIVE_NAME = 17 + + +_STRINGVALUE = DESCRIPTOR.message_types_by_name['StringValue'] +_REPORTPLAYGROUNDREQUEST = DESCRIPTOR.message_types_by_name['ReportPlaygroundRequest'] +_REPORTPLAYGROUNDRESPONSE = DESCRIPTOR.message_types_by_name['ReportPlaygroundResponse'] +StringValue = _reflection.GeneratedProtocolMessageType('StringValue', (_message.Message,), { + 'DESCRIPTOR' : _STRINGVALUE, + '__module__' : 'proto.reporting_pb2' + # @@protoc_insertion_point(class_scope:web.reporting.StringValue) + }) +_sym_db.RegisterMessage(StringValue) + +ReportPlaygroundRequest = _reflection.GeneratedProtocolMessageType('ReportPlaygroundRequest', (_message.Message,), { + 'DESCRIPTOR' : _REPORTPLAYGROUNDREQUEST, + '__module__' : 'proto.reporting_pb2' + # @@protoc_insertion_point(class_scope:web.reporting.ReportPlaygroundRequest) + }) +_sym_db.RegisterMessage(ReportPlaygroundRequest) + +ReportPlaygroundResponse = _reflection.GeneratedProtocolMessageType('ReportPlaygroundResponse', (_message.Message,), { + 'DESCRIPTOR' : _REPORTPLAYGROUNDRESPONSE, + '__module__' : 'proto.reporting_pb2' + # @@protoc_insertion_point(class_scope:web.reporting.ReportPlaygroundResponse) + }) +_sym_db.RegisterMessage(ReportPlaygroundResponse) + +_WEBREPORTING = DESCRIPTOR.services_by_name['WebReporting'] +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _CATEGORY._serialized_start=334 + _CATEGORY._serialized_end=661 + _STRINGVALUE._serialized_start=40 + _STRINGVALUE._serialized_end=68 + _REPORTPLAYGROUNDREQUEST._serialized_start=71 + _REPORTPLAYGROUNDREQUEST._serialized_end=283 + _REPORTPLAYGROUNDRESPONSE._serialized_start=285 + _REPORTPLAYGROUNDRESPONSE._serialized_end=331 + _WEBREPORTING._serialized_start=663 + _WEBREPORTING._serialized_end=780 +# @@protoc_insertion_point(module_scope) diff --git a/bfportal_grpc_python/proto/reporting_pb2_grpc.py b/bfportal_grpc_python/proto/reporting_pb2_grpc.py new file mode 100644 index 0000000..8d57922 --- /dev/null +++ b/bfportal_grpc_python/proto/reporting_pb2_grpc.py @@ -0,0 +1,66 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from proto import reporting_pb2 as proto_dot_reporting__pb2 + + +class WebReportingStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.reportPlayground = channel.unary_unary( + '/web.reporting.WebReporting/reportPlayground', + request_serializer=proto_dot_reporting__pb2.ReportPlaygroundRequest.SerializeToString, + response_deserializer=proto_dot_reporting__pb2.ReportPlaygroundResponse.FromString, + ) + + +class WebReportingServicer(object): + """Missing associated documentation comment in .proto file.""" + + def reportPlayground(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_WebReportingServicer_to_server(servicer, server): + rpc_method_handlers = { + 'reportPlayground': grpc.unary_unary_rpc_method_handler( + servicer.reportPlayground, + request_deserializer=proto_dot_reporting__pb2.ReportPlaygroundRequest.FromString, + response_serializer=proto_dot_reporting__pb2.ReportPlaygroundResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'web.reporting.WebReporting', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class WebReporting(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def reportPlayground(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/web.reporting.WebReporting/reportPlayground', + proto_dot_reporting__pb2.ReportPlaygroundRequest.SerializeToString, + proto_dot_reporting__pb2.ReportPlaygroundResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/package.json b/package.json index d73c0c7..76890fb 100644 --- a/package.json +++ b/package.json @@ -7,11 +7,12 @@ "umd:main": "dist/umd/index.js", "types": "dist/types/index.d.js", "scripts": { - "build": "npm run build:cjs && npm run build:esm && npm run build:umd && npm run build:types", + "build": "npm run build:cjs && npm run build:esm && npm run build:umd && npm run build:types && npm run build:python", "build:cjs": "node tools/cleanup cjs && tsc -p config/tsconfig.cjs.json && copyfiles -u 1 src/**/*.js dist/cjs/", "build:esm": "node tools/cleanup esm && tsc -p config/tsconfig.esm.json && copyfiles -u 1 src/**/*.js dist/esm/", "build:umd": "node tools/cleanup umd && webpack --config config/webpack.config.js && copyfiles -u 1 src/**/*.js dist/umd/", "build:types": "node tools/cleanup types && tsc -p config/tsconfig.types.json && copyfiles -u 1 src/**/*.js dist/types/", + "build:python": "python3 -m grpc_tools.protoc -I. --python_out=./grpc-python --grpc_python_out=./grpc-python ./proto/communitygames.proto ./proto/localization.proto ./proto/authentication.proto ./proto/reporting.proto", "test": "jest --no-cache --runInBand" }, "publishConfig": { diff --git a/tests/test_communitygames.py b/tests/test_communitygames.py new file mode 100644 index 0000000..5fe7e95 --- /dev/null +++ b/tests/test_communitygames.py @@ -0,0 +1,19 @@ +import asyncio +import sonora.aio +from bfportal_grpc_python.proto import communitygames_pb2, communitygames_pb2_grpc + +async def test__playground(): + async with sonora.aio.insecure_web_channel( + f"https://kingston-prod-wgw-envoy.ops.dice.se" + ) as channel: + stub = communitygames_pb2_grpc.CommunityGamesStub(channel) + response: communitygames_pb2.PlaygroundInfoResponse = await stub.getPlayground(communitygames_pb2.GetPlaygroundRequest(playgroundId="10992a10-461a-11ec-8de0-d9f491f92236"), metadata=( + ('x-dice-tenancy', 'prod_default-prod_default-kingston-common'), + ('x-gateway-session-id', 'web-c6b312c9-2520-4fde-958d-60ae71840a65'), + ('x-grpc-web', '1'), + ('x-user-agent', 'grpc-web-javascript/0.1') + )) + assert isinstance(response.playground.originalPlayground.name, str) + +if __name__ == "__main__": + asyncio.run(test__playground()) \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index e59e63d..b193d93 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -67,5 +67,5 @@ // "skipLibCheck": true, /* Skip type checking of declaration files. */ "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ }, - "include": ["src/**/*"] + "include": ["src/**/*", "proto"] } \ No newline at end of file