diff --git a/.changeset/model-autonomy-and-vehicle-state-lights.md b/.changeset/model-autonomy-and-vehicle-state-lights.md new file mode 100644 index 0000000..230b5a4 --- /dev/null +++ b/.changeset/model-autonomy-and-vehicle-state-lights.md @@ -0,0 +1,5 @@ +--- +"@teslemetry/tesla-protocol": minor +--- + +Model the remaining autonomy/autopilot surface and vehicle lighting fields observed in the current app: `UniversalMessage.Domain.DOMAIN_AUTOPILOT`, VCSEC's `AutonomyCommand` (wrapping the `PullOverCommand` trigger, wired into `UnsignedMessage` field 66), and `VehicleState.deck_lights_on` / `hazards_on` - based on our own observations and contributions from the community. diff --git a/AGENTS.md b/AGENTS.md index a546640..b9f1d11 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -9,6 +9,7 @@ This file is the project's committed home for project-intrinsic agent knowledge: - The codegen toolchain is fully pinned (`scripts/requirements.txt`, ts-proto in root `package.json`). Changing any pin changes generated output and is a coordinated, changeset-worthy change. - `CarServer.Response.response_msg` (`proto/command/car_server.proto`) models the full server reply surface except fields 17 and 19, which are `reserved` with a reason comment (`centerdisplay.server`/`webrtc_comms` replies, app-only namespaces, intentionally excluded). Field 12 (`GetRateTariffResponse`) is modelled, mirroring the tariff document already declared for `SetRateTariffRequest` (tag 55). `scripts/check_reply_coverage.py` (run in CI) fails if any field in its known-field set is neither modelled in the oneof nor `reserved` with a comment - before adding a new reply oneof field, check whether its payload type pulls in an app-only namespace first, and either model it or add it to `KNOWN_REPLY_FIELDS` as a reserved entry. - Un-reserving a field to model it (as field 12 above did) trips buf's `RESERVED_MESSAGE_NO_DELETE` breaking check even though it's a wire-compatible addition; `buf.yaml` excepts that rule repo-wide for this reason, so the same move for fields 17/19 later won't need a fresh exception. +- The committed `proto/command/` baseline already reflects one specific Tesla app build reconstructed via cross-version protobuf diffing (`app-4.58.6`, see `TESLEMETRY-EXT` markers). A later app-version-diff pass will find most candidate fields already modelled here - check the current `.proto` files for the exact field/tag before assuming it needs adding, and only model the genuine delta. ## Maintaining this file diff --git a/packages/python/tesla_protocol/command/universal_message_pb2.py b/packages/python/tesla_protocol/command/universal_message_pb2.py index d6dcc62..1b84675 100644 --- a/packages/python/tesla_protocol/command/universal_message_pb2.py +++ b/packages/python/tesla_protocol/command/universal_message_pb2.py @@ -7,7 +7,7 @@ _runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 31, 1, '', 'universal_message.proto') _sym_db = _symbol_database.Default() from . import signatures_pb2 as signatures__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17universal_message.proto\x12\x10UniversalMessage\x1a\x10signatures.proto"g\n\x0bDestination\x12*\n\x06domain\x18\x01 \x01(\x0e2\x18.UniversalMessage.DomainH\x00\x12\x19\n\x0frouting_address\x18\x02 \x01(\x0cH\x00B\x11\n\x0fsub_destination"\x8e\x01\n\rMessageStatus\x12=\n\x10operation_status\x18\x01 \x01(\x0e2#.UniversalMessage.OperationStatus_E\x12>\n\x14signed_message_fault\x18\x02 \x01(\x0e2 .UniversalMessage.MessageFault_E";\n\x12SessionInfoRequest\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\x12\x11\n\tchallenge\x18\x02 \x01(\x0c"\xd6\x03\n\x0fRoutableMessage\x125\n\x0eto_destination\x18\x06 \x01(\x0b2\x1d.UniversalMessage.Destination\x127\n\x10from_destination\x18\x07 \x01(\x0b2\x1d.UniversalMessage.Destination\x12#\n\x19protobuf_message_as_bytes\x18\n \x01(\x0cH\x00\x12D\n\x14session_info_request\x18\x0e \x01(\x0b2$.UniversalMessage.SessionInfoRequestH\x00\x12\x16\n\x0csession_info\x18\x0f \x01(\x0cH\x00\x123\n\x0esignature_data\x18\r \x01(\x0b2\x19.Signatures.SignatureDataH\x01\x12<\n\x13signedMessageStatus\x18\x0c \x01(\x0b2\x1f.UniversalMessage.MessageStatus\x12\x14\n\x0crequest_uuid\x182 \x01(\x0c\x12\x0c\n\x04uuid\x183 \x01(\x0c\x12\r\n\x05flags\x184 \x01(\rB\t\n\x07payloadB\r\n\x0bsub_sigDataJ\x04\x08\x01\x10\x06J\x04\x08\x10\x10)J\x04\x08\x0b\x10\x0c*\x9f\x01\n\x06Domain\x12\x14\n\x10DOMAIN_BROADCAST\x10\x00\x12\x1b\n\x17DOMAIN_VEHICLE_SECURITY\x10\x02\x12\x17\n\x13DOMAIN_INFOTAINMENT\x10\x03\x12\x10\n\x0cDOMAIN_AUTHD\x10\x05\x12\x18\n\x14DOMAIN_ENERGY_DEVICE\x10\x07\x12\x1d\n\x19DOMAIN_ENERGY_DEVICE_AUTH\x10\x08*`\n\x11OperationStatus_E\x12\x16\n\x12OPERATIONSTATUS_OK\x10\x00\x12\x18\n\x14OPERATIONSTATUS_WAIT\x10\x01\x12\x19\n\x15OPERATIONSTATUS_ERROR\x10\x02*\xe4\t\n\x0eMessageFault_E\x12\x1b\n\x17MESSAGEFAULT_ERROR_NONE\x10\x00\x12\x1b\n\x17MESSAGEFAULT_ERROR_BUSY\x10\x01\x12\x1e\n\x1aMESSAGEFAULT_ERROR_TIMEOUT\x10\x02\x12%\n!MESSAGEFAULT_ERROR_UNKNOWN_KEY_ID\x10\x03\x12#\n\x1fMESSAGEFAULT_ERROR_INACTIVE_KEY\x10\x04\x12(\n$MESSAGEFAULT_ERROR_INVALID_SIGNATURE\x10\x05\x12/\n+MESSAGEFAULT_ERROR_INVALID_TOKEN_OR_COUNTER\x10\x06\x12.\n*MESSAGEFAULT_ERROR_INSUFFICIENT_PRIVILEGES\x10\x07\x12&\n"MESSAGEFAULT_ERROR_INVALID_DOMAINS\x10\x08\x12&\n"MESSAGEFAULT_ERROR_INVALID_COMMAND\x10\t\x12\x1f\n\x1bMESSAGEFAULT_ERROR_DECODING\x10\n\x12\x1f\n\x1bMESSAGEFAULT_ERROR_INTERNAL\x10\x0b\x12,\n(MESSAGEFAULT_ERROR_WRONG_PERSONALIZATION\x10\x0c\x12$\n MESSAGEFAULT_ERROR_BAD_PARAMETER\x10\r\x12\'\n#MESSAGEFAULT_ERROR_KEYCHAIN_IS_FULL\x10\x0e\x12&\n"MESSAGEFAULT_ERROR_INCORRECT_EPOCH\x10\x0f\x12*\n&MESSAGEFAULT_ERROR_IV_INCORRECT_LENGTH\x10\x10\x12#\n\x1fMESSAGEFAULT_ERROR_TIME_EXPIRED\x10\x11\x124\n0MESSAGEFAULT_ERROR_NOT_PROVISIONED_WITH_IDENTITY\x10\x12\x12.\n*MESSAGEFAULT_ERROR_COULD_NOT_HASH_METADATA\x10\x13\x12,\n(MESSAGEFAULT_ERROR_TIME_TO_LIVE_TOO_LONG\x10\x14\x12-\n)MESSAGEFAULT_ERROR_REMOTE_ACCESS_DISABLED\x10\x15\x125\n1MESSAGEFAULT_ERROR_REMOTE_SERVICE_ACCESS_DISABLED\x10\x16\x12;\n7MESSAGEFAULT_ERROR_COMMAND_REQUIRES_ACCOUNT_CREDENTIALS\x10\x17\x12+\n\'MESSAGEFAULT_ERROR_REQUEST_MTU_EXCEEDED\x10\x18\x12,\n(MESSAGEFAULT_ERROR_RESPONSE_MTU_EXCEEDED\x10\x19\x12\'\n#MESSAGEFAULT_ERROR_REPEATED_COUNTER\x10\x1a\x12)\n%MESSAGEFAULT_ERROR_INVALID_KEY_HANDLE\x10\x1b\x123\n/MESSAGEFAULT_ERROR_REQUIRES_RESPONSE_ENCRYPTION\x10\x1c*9\n\x05Flags\x12\x15\n\x11FLAG_USER_COMMAND\x10\x00\x12\x19\n\x15FLAG_ENCRYPT_RESPONSE\x10\x01Bu\n$com.tesla.generated.universalmessageZMgithub.com/teslamotors/vehicle-command/pkg/protocol/protobuf/universalmessageb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17universal_message.proto\x12\x10UniversalMessage\x1a\x10signatures.proto"g\n\x0bDestination\x12*\n\x06domain\x18\x01 \x01(\x0e2\x18.UniversalMessage.DomainH\x00\x12\x19\n\x0frouting_address\x18\x02 \x01(\x0cH\x00B\x11\n\x0fsub_destination"\x8e\x01\n\rMessageStatus\x12=\n\x10operation_status\x18\x01 \x01(\x0e2#.UniversalMessage.OperationStatus_E\x12>\n\x14signed_message_fault\x18\x02 \x01(\x0e2 .UniversalMessage.MessageFault_E";\n\x12SessionInfoRequest\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\x12\x11\n\tchallenge\x18\x02 \x01(\x0c"\xd6\x03\n\x0fRoutableMessage\x125\n\x0eto_destination\x18\x06 \x01(\x0b2\x1d.UniversalMessage.Destination\x127\n\x10from_destination\x18\x07 \x01(\x0b2\x1d.UniversalMessage.Destination\x12#\n\x19protobuf_message_as_bytes\x18\n \x01(\x0cH\x00\x12D\n\x14session_info_request\x18\x0e \x01(\x0b2$.UniversalMessage.SessionInfoRequestH\x00\x12\x16\n\x0csession_info\x18\x0f \x01(\x0cH\x00\x123\n\x0esignature_data\x18\r \x01(\x0b2\x19.Signatures.SignatureDataH\x01\x12<\n\x13signedMessageStatus\x18\x0c \x01(\x0b2\x1f.UniversalMessage.MessageStatus\x12\x14\n\x0crequest_uuid\x182 \x01(\x0c\x12\x0c\n\x04uuid\x183 \x01(\x0c\x12\r\n\x05flags\x184 \x01(\rB\t\n\x07payloadB\r\n\x0bsub_sigDataJ\x04\x08\x01\x10\x06J\x04\x08\x10\x10)J\x04\x08\x0b\x10\x0c*\xb5\x01\n\x06Domain\x12\x14\n\x10DOMAIN_BROADCAST\x10\x00\x12\x1b\n\x17DOMAIN_VEHICLE_SECURITY\x10\x02\x12\x17\n\x13DOMAIN_INFOTAINMENT\x10\x03\x12\x14\n\x10DOMAIN_AUTOPILOT\x10\x04\x12\x10\n\x0cDOMAIN_AUTHD\x10\x05\x12\x18\n\x14DOMAIN_ENERGY_DEVICE\x10\x07\x12\x1d\n\x19DOMAIN_ENERGY_DEVICE_AUTH\x10\x08*`\n\x11OperationStatus_E\x12\x16\n\x12OPERATIONSTATUS_OK\x10\x00\x12\x18\n\x14OPERATIONSTATUS_WAIT\x10\x01\x12\x19\n\x15OPERATIONSTATUS_ERROR\x10\x02*\xe4\t\n\x0eMessageFault_E\x12\x1b\n\x17MESSAGEFAULT_ERROR_NONE\x10\x00\x12\x1b\n\x17MESSAGEFAULT_ERROR_BUSY\x10\x01\x12\x1e\n\x1aMESSAGEFAULT_ERROR_TIMEOUT\x10\x02\x12%\n!MESSAGEFAULT_ERROR_UNKNOWN_KEY_ID\x10\x03\x12#\n\x1fMESSAGEFAULT_ERROR_INACTIVE_KEY\x10\x04\x12(\n$MESSAGEFAULT_ERROR_INVALID_SIGNATURE\x10\x05\x12/\n+MESSAGEFAULT_ERROR_INVALID_TOKEN_OR_COUNTER\x10\x06\x12.\n*MESSAGEFAULT_ERROR_INSUFFICIENT_PRIVILEGES\x10\x07\x12&\n"MESSAGEFAULT_ERROR_INVALID_DOMAINS\x10\x08\x12&\n"MESSAGEFAULT_ERROR_INVALID_COMMAND\x10\t\x12\x1f\n\x1bMESSAGEFAULT_ERROR_DECODING\x10\n\x12\x1f\n\x1bMESSAGEFAULT_ERROR_INTERNAL\x10\x0b\x12,\n(MESSAGEFAULT_ERROR_WRONG_PERSONALIZATION\x10\x0c\x12$\n MESSAGEFAULT_ERROR_BAD_PARAMETER\x10\r\x12\'\n#MESSAGEFAULT_ERROR_KEYCHAIN_IS_FULL\x10\x0e\x12&\n"MESSAGEFAULT_ERROR_INCORRECT_EPOCH\x10\x0f\x12*\n&MESSAGEFAULT_ERROR_IV_INCORRECT_LENGTH\x10\x10\x12#\n\x1fMESSAGEFAULT_ERROR_TIME_EXPIRED\x10\x11\x124\n0MESSAGEFAULT_ERROR_NOT_PROVISIONED_WITH_IDENTITY\x10\x12\x12.\n*MESSAGEFAULT_ERROR_COULD_NOT_HASH_METADATA\x10\x13\x12,\n(MESSAGEFAULT_ERROR_TIME_TO_LIVE_TOO_LONG\x10\x14\x12-\n)MESSAGEFAULT_ERROR_REMOTE_ACCESS_DISABLED\x10\x15\x125\n1MESSAGEFAULT_ERROR_REMOTE_SERVICE_ACCESS_DISABLED\x10\x16\x12;\n7MESSAGEFAULT_ERROR_COMMAND_REQUIRES_ACCOUNT_CREDENTIALS\x10\x17\x12+\n\'MESSAGEFAULT_ERROR_REQUEST_MTU_EXCEEDED\x10\x18\x12,\n(MESSAGEFAULT_ERROR_RESPONSE_MTU_EXCEEDED\x10\x19\x12\'\n#MESSAGEFAULT_ERROR_REPEATED_COUNTER\x10\x1a\x12)\n%MESSAGEFAULT_ERROR_INVALID_KEY_HANDLE\x10\x1b\x123\n/MESSAGEFAULT_ERROR_REQUIRES_RESPONSE_ENCRYPTION\x10\x1c*9\n\x05Flags\x12\x15\n\x11FLAG_USER_COMMAND\x10\x00\x12\x19\n\x15FLAG_ENCRYPT_RESPONSE\x10\x01Bu\n$com.tesla.generated.universalmessageZMgithub.com/teslamotors/vehicle-command/pkg/protocol/protobuf/universalmessageb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'universal_message_pb2', _globals) @@ -15,13 +15,13 @@ _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n$com.tesla.generated.universalmessageZMgithub.com/teslamotors/vehicle-command/pkg/protocol/protobuf/universalmessage' _globals['_DOMAIN']._serialized_start = 848 - _globals['_DOMAIN']._serialized_end = 1007 - _globals['_OPERATIONSTATUS_E']._serialized_start = 1009 - _globals['_OPERATIONSTATUS_E']._serialized_end = 1105 - _globals['_MESSAGEFAULT_E']._serialized_start = 1108 - _globals['_MESSAGEFAULT_E']._serialized_end = 2360 - _globals['_FLAGS']._serialized_start = 2362 - _globals['_FLAGS']._serialized_end = 2419 + _globals['_DOMAIN']._serialized_end = 1029 + _globals['_OPERATIONSTATUS_E']._serialized_start = 1031 + _globals['_OPERATIONSTATUS_E']._serialized_end = 1127 + _globals['_MESSAGEFAULT_E']._serialized_start = 1130 + _globals['_MESSAGEFAULT_E']._serialized_end = 2382 + _globals['_FLAGS']._serialized_start = 2384 + _globals['_FLAGS']._serialized_end = 2441 _globals['_DESTINATION']._serialized_start = 63 _globals['_DESTINATION']._serialized_end = 166 _globals['_MESSAGESTATUS']._serialized_start = 169 diff --git a/packages/python/tesla_protocol/command/universal_message_pb2.pyi b/packages/python/tesla_protocol/command/universal_message_pb2.pyi index 03b453b..4cc2c8d 100644 --- a/packages/python/tesla_protocol/command/universal_message_pb2.pyi +++ b/packages/python/tesla_protocol/command/universal_message_pb2.pyi @@ -11,6 +11,7 @@ class Domain(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): DOMAIN_BROADCAST: _ClassVar[Domain] DOMAIN_VEHICLE_SECURITY: _ClassVar[Domain] DOMAIN_INFOTAINMENT: _ClassVar[Domain] + DOMAIN_AUTOPILOT: _ClassVar[Domain] DOMAIN_AUTHD: _ClassVar[Domain] DOMAIN_ENERGY_DEVICE: _ClassVar[Domain] DOMAIN_ENERGY_DEVICE_AUTH: _ClassVar[Domain] @@ -60,6 +61,7 @@ class Flags(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): DOMAIN_BROADCAST: Domain DOMAIN_VEHICLE_SECURITY: Domain DOMAIN_INFOTAINMENT: Domain +DOMAIN_AUTOPILOT: Domain DOMAIN_AUTHD: Domain DOMAIN_ENERGY_DEVICE: Domain DOMAIN_ENERGY_DEVICE_AUTH: Domain diff --git a/packages/python/tesla_protocol/command/vcsec_pb2.py b/packages/python/tesla_protocol/command/vcsec_pb2.py index 2903b23..83b79cb 100644 --- a/packages/python/tesla_protocol/command/vcsec_pb2.py +++ b/packages/python/tesla_protocol/command/vcsec_pb2.py @@ -8,41 +8,41 @@ _sym_db = _symbol_database.Default() from . import keys_pb2 as keys__pb2 from . import errors_pb2 as errors__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0bvcsec.proto\x12\x05VCSEC\x1a\nkeys.proto\x1a\x0cerrors.proto"\\\n\rSignedMessage\x12\x1e\n\x16protobufMessageAsBytes\x18\x02 \x01(\x0c\x12+\n\rsignatureType\x18\x03 \x01(\x0e2\x14.VCSEC.SignatureType"=\n\x0eToVCSECMessage\x12+\n\rsignedMessage\x18\x01 \x01(\x0b2\x14.VCSEC.SignedMessage"&\n\rKeyIdentifier\x12\x15\n\rpublicKeySHA1\x18\x01 \x01(\x0c":\n\x0bKeyMetadata\x12+\n\rkeyFormFactor\x18\x01 \x01(\x0e2\x14.VCSEC.KeyFormFactor"!\n\tPublicKey\x12\x14\n\x0cPublicKeyRaw\x18\x01 \x01(\x0c"j\n\rWhitelistInfo\x12\x17\n\x0fnumberOfEntries\x18\x01 \x01(\r\x12.\n\x10whitelistEntries\x18\x02 \x03(\x0b2\x14.VCSEC.KeyIdentifier\x12\x10\n\x08slotMask\x18\x03 \x01(\r"\xb5\x01\n\x12WhitelistEntryInfo\x12#\n\x05keyId\x18\x01 \x01(\x0b2\x14.VCSEC.KeyIdentifier\x12#\n\tpublicKey\x18\x02 \x01(\x0b2\x10.VCSEC.PublicKey\x12*\n\x0emetadataForKey\x18\x04 \x01(\x0b2\x12.VCSEC.KeyMetadata\x12\x0c\n\x04slot\x18\x06 \x01(\r\x12\x1b\n\x07keyRole\x18\x07 \x01(\x0e2\n.Keys.Role"\xa6\x01\n\x12InformationRequest\x12=\n\x16informationRequestType\x18\x01 \x01(\x0e2\x1d.VCSEC.InformationRequestType\x12%\n\x05keyId\x18\x02 \x01(\x0b2\x14.VCSEC.KeyIdentifierH\x00\x12\x13\n\tpublicKey\x18\x03 \x01(\x0cH\x00\x12\x0e\n\x04slot\x18\x04 \x01(\rH\x00B\x05\n\x03key"\x98\x03\n\x12ClosureMoveRequest\x121\n\x0ffrontDriverDoor\x18\x01 \x01(\x0e2\x18.VCSEC.ClosureMoveType_E\x124\n\x12frontPassengerDoor\x18\x02 \x01(\x0e2\x18.VCSEC.ClosureMoveType_E\x120\n\x0erearDriverDoor\x18\x03 \x01(\x0e2\x18.VCSEC.ClosureMoveType_E\x123\n\x11rearPassengerDoor\x18\x04 \x01(\x0e2\x18.VCSEC.ClosureMoveType_E\x12+\n\trearTrunk\x18\x05 \x01(\x0e2\x18.VCSEC.ClosureMoveType_E\x12,\n\nfrontTrunk\x18\x06 \x01(\x0e2\x18.VCSEC.ClosureMoveType_E\x12,\n\nchargePort\x18\x07 \x01(\x0e2\x18.VCSEC.ClosureMoveType_E\x12)\n\x07tonneau\x18\x08 \x01(\x0e2\x18.VCSEC.ClosureMoveType_E"i\n\x10PermissionChange\x12\x1d\n\x03key\x18\x01 \x01(\x0b2\x10.VCSEC.PublicKey\x12\x19\n\x11secondsToBeActive\x18\x03 \x01(\r\x12\x1b\n\x07keyRole\x18\x04 \x01(\x0e2\n.Keys.Role"\xbb\x01\n\nReplaceKey\x12.\n\x12publicKeyToReplace\x18\x01 \x01(\x0b2\x10.VCSEC.PublicKeyH\x00\x12\x17\n\rslotToReplace\x18\x02 \x01(\rH\x00\x12"\n\x08keyToAdd\x18\x03 \x01(\x0b2\x10.VCSEC.PublicKey\x12\x1b\n\x07keyRole\x18\x04 \x01(\x0e2\n.Keys.Role\x12\x13\n\x0bimpermanent\x18\x05 \x01(\x08B\x0e\n\x0ckeyToReplace"\x8c\x05\n\x12WhitelistOperation\x123\n\x17addPublicKeyToWhitelist\x18\x01 \x01(\x0b2\x10.VCSEC.PublicKeyH\x00\x128\n\x1cremovePublicKeyFromWhitelist\x18\x02 \x01(\x0b2\x10.VCSEC.PublicKeyH\x00\x12<\n\x19addPermissionsToPublicKey\x18\x03 \x01(\x0b2\x17.VCSEC.PermissionChangeH\x00\x12A\n\x1eremovePermissionsFromPublicKey\x18\x04 \x01(\x0b2\x17.VCSEC.PermissionChangeH\x00\x12E\n"addKeyToWhitelistAndAddPermissions\x18\x05 \x01(\x0b2\x17.VCSEC.PermissionChangeH\x00\x12:\n\x17updateKeyAndPermissions\x18\x07 \x01(\x0b2\x17.VCSEC.PermissionChangeH\x00\x124\n\x11addImpermanentKey\x18\x08 \x01(\x0b2\x17.VCSEC.PermissionChangeH\x00\x12E\n"addImpermanentKeyAndRemoveExisting\x18\t \x01(\x0b2\x17.VCSEC.PermissionChangeH\x00\x12"\n\x18removeAllImpermanentKeys\x18\x10 \x01(\x08H\x00\x12\'\n\nreplaceKey\x18\x11 \x01(\x0b2\x11.VCSEC.ReplaceKeyH\x00\x12*\n\x0emetadataForKey\x18\x06 \x01(\x0b2\x12.VCSEC.KeyMetadataB\r\n\x0bsub_message"\xcf\x01\n\x19WhitelistOperation_status\x12N\n\x1dwhitelistOperationInformation\x18\x01 \x01(\x0e2\'.VCSEC.WhitelistOperation_information_E\x12/\n\x11signerOfOperation\x18\x02 \x01(\x0b2\x14.VCSEC.KeyIdentifier\x121\n\x0foperationStatus\x18\x03 \x01(\x0e2\x18.VCSEC.OperationStatus_E"m\n\x14SignedMessage_status\x12\x0f\n\x07counter\x18\x01 \x01(\r\x12D\n\x18signedMessageInformation\x18\x02 \x01(\x0e2".VCSEC.SignedMessage_information_E"\xd3\x01\n\rCommandStatus\x121\n\x0foperationStatus\x18\x01 \x01(\x0e2\x18.VCSEC.OperationStatus_E\x12:\n\x13signedMessageStatus\x18\x02 \x01(\x0b2\x1b.VCSEC.SignedMessage_statusH\x00\x12D\n\x18whitelistOperationStatus\x18\x03 \x01(\x0b2 .VCSEC.WhitelistOperation_statusH\x00B\r\n\x0bsub_message"\x92\x02\n\x0fUnsignedMessage\x127\n\x12InformationRequest\x18\x01 \x01(\x0b2\x19.VCSEC.InformationRequestH\x00\x12\'\n\tRKEAction\x18\x02 \x01(\x0e2\x12.VCSEC.RKEAction_EH\x00\x127\n\x12closureMoveRequest\x18\x04 \x01(\x0b2\x19.VCSEC.ClosureMoveRequestH\x00\x127\n\x12WhitelistOperation\x18\x10 \x01(\x0b2\x19.VCSEC.WhitelistOperationH\x00B\r\n\x0bsub_messageJ\x04\x08\x06\x10\x07J\x04\x08\x07\x10\x08J\x04\x08\n\x10\x0bJ\x04\x08\x0c\x10\rJ\x04\x08\r\x10\x0e"\xfd\x02\n\x0fClosureStatuses\x12.\n\x0ffrontDriverDoor\x18\x01 \x01(\x0e2\x15.VCSEC.ClosureState_E\x121\n\x12frontPassengerDoor\x18\x02 \x01(\x0e2\x15.VCSEC.ClosureState_E\x12-\n\x0erearDriverDoor\x18\x03 \x01(\x0e2\x15.VCSEC.ClosureState_E\x120\n\x11rearPassengerDoor\x18\x04 \x01(\x0e2\x15.VCSEC.ClosureState_E\x12(\n\trearTrunk\x18\x05 \x01(\x0e2\x15.VCSEC.ClosureState_E\x12)\n\nfrontTrunk\x18\x06 \x01(\x0e2\x15.VCSEC.ClosureState_E\x12)\n\nchargePort\x18\x07 \x01(\x0e2\x15.VCSEC.ClosureState_E\x12&\n\x07tonneau\x18\x08 \x01(\x0e2\x15.VCSEC.ClosureState_E"3\n\x15DetailedClosureStatus\x12\x1a\n\x12tonneauPercentOpen\x18\x01 \x01(\r"\xda\x02\n\rVehicleStatus\x12/\n\x0fclosureStatuses\x18\x01 \x01(\x0b2\x16.VCSEC.ClosureStatuses\x123\n\x10vehicleLockState\x18\x02 \x01(\x0e2\x19.VCSEC.VehicleLockState_E\x127\n\x12vehicleSleepStatus\x18\x03 \x01(\x0e2\x1b.VCSEC.VehicleSleepStatus_E\x12+\n\x0cuserPresence\x18\x04 \x01(\x0e2\x15.VCSEC.UserPresence_E\x12;\n\x15detailedClosureStatus\x18\x05 \x01(\x0b2\x1c.VCSEC.DetailedClosureStatus\x12#\n\x08uiDesire\x18\x06 \x01(\x0e2\x11.VCSEC.UIDesire_E\x12\x1b\n\x04gear\x18\x07 \x01(\x0e2\r.VCSEC.Gear_E"\x9b\x02\n\x10FromVCSECMessage\x12-\n\rvehicleStatus\x18\x01 \x01(\x0b2\x14.VCSEC.VehicleStatusH\x00\x12-\n\rcommandStatus\x18\x04 \x01(\x0b2\x14.VCSEC.CommandStatusH\x00\x12-\n\rwhitelistInfo\x18\x10 \x01(\x0b2\x14.VCSEC.WhitelistInfoH\x00\x127\n\x12whitelistEntryInfo\x18\x11 \x01(\x0b2\x19.VCSEC.WhitelistEntryInfoH\x00\x12,\n\x0cnominalError\x18. \x01(\x0b2\x14.Errors.NominalErrorH\x00B\r\n\x0bsub_messageJ\x04\x08\x06\x10\x0b*H\n\rSignatureType\x12\x17\n\x13SIGNATURE_TYPE_NONE\x10\x00\x12\x1e\n\x1aSIGNATURE_TYPE_PRESENT_KEY\x10\x02*\xb2\x06\n\rKeyFormFactor\x12\x1b\n\x17KEY_FORM_FACTOR_UNKNOWN\x10\x00\x12\x1c\n\x18KEY_FORM_FACTOR_NFC_CARD\x10\x01\x12+\n\'KEY_FORM_FACTOR_3_BUTTON_BLE_CAR_KEYFOB\x10\x02\x12\x1e\n\x1aKEY_FORM_FACTOR_BLE_DEVICE\x10\x03\x12\x1e\n\x1aKEY_FORM_FACTOR_NFC_DEVICE\x10\x04\x12&\n"KEY_FORM_FACTOR_BLE_AND_NFC_DEVICE\x10\x05\x12\x1e\n\x1aKEY_FORM_FACTOR_IOS_DEVICE\x10\x06\x12"\n\x1eKEY_FORM_FACTOR_ANDROID_DEVICE\x10\x07\x12/\n+KEY_FORM_FACTOR_3_BUTTON_BLE_CAR_KEYFOB_P60\x10\x08\x12\x1d\n\x19KEY_FORM_FACTOR_CLOUD_KEY\x10\t\x120\n,KEY_FORM_FACTOR_3_BUTTON_GEN2_CAR_KEYFOB_P60\x10\n\x120\n,KEY_FORM_FACTOR_5_BUTTON_GEN2_CAR_KEYFOB_P60\x10\x0b\x123\n/KEY_FORM_FACTOR_3_BUTTON_GEN2_CAR_KEYFOB_P60_V2\x10\x0c\x123\n/KEY_FORM_FACTOR_3_BUTTON_GEN2_CAR_KEYFOB_P60_V3\x10\r\x12 \n\x1cKEY_FORM_FACTOR_NFC_CARD_P71\x10\x0e\x12\'\n#KEY_FORM_FACTOR_NFC_CARD_METAL_CARD\x10\x0f\x12)\n%KEY_FORM_FACTOR_NFC_CARD_PLASTIC_CARD\x10\x10\x12\x1f\n\x1bKEY_FORM_FACTOR_APPLE_WATCH\x10\x11\x12,\n(KEY_FORM_FACTOR_NFC_CARD_WD_PLASTIC_CARD\x10\x12\x12*\n&KEY_FORM_FACTOR_HARMONY_OS_NEXT_DEVICE\x10\x13*\xa5\x04\n\x16InformationRequestType\x12\'\n#INFORMATION_REQUEST_TYPE_GET_STATUS\x10\x00\x12&\n"INFORMATION_REQUEST_TYPE_GET_TOKEN\x10\x01\x12(\n$INFORMATION_REQUEST_TYPE_GET_COUNTER\x10\x02\x125\n1INFORMATION_REQUEST_TYPE_GET_EPHEMERAL_PUBLIC_KEY\x10\x03\x12-\n)INFORMATION_REQUEST_TYPE_GET_SESSION_DATA\x10\x04\x12/\n+INFORMATION_REQUEST_TYPE_GET_WHITELIST_INFO\x10\x05\x125\n1INFORMATION_REQUEST_TYPE_GET_WHITELIST_ENTRY_INFO\x10\x06\x125\n1INFORMATION_REQUEST_TYPE_GET_PERSONALIZATION_INFO\x10\x07\x12/\n+INFORMATION_REQUEST_TYPE_GET_KEYSTATUS_INFO\x10\x08\x12+\n\'INFORMATION_REQUEST_TYPE_GET_ACTIVE_KEY\x10\t\x12-\n)INFORMATION_REQUEST_TYPE_GET_CAPABILITIES\x10\x10*\xfd\x02\n\x0bRKEAction_E\x12\x15\n\x11RKE_ACTION_UNLOCK\x10\x00\x12\x13\n\x0fRKE_ACTION_LOCK\x10\x01\x12\x19\n\x15RKE_ACTION_OPEN_TRUNK\x10\x02\x12\x19\n\x15RKE_ACTION_OPEN_FRUNK\x10\x03\x12\x1f\n\x1bRKE_ACTION_OPEN_CHARGE_PORT\x10\x04\x12 \n\x1cRKE_ACTION_CLOSE_CHARGE_PORT\x10\x05\x12+\n\'RKE_ACTION_CANCEL_EXTERNAL_AUTHENTICATE\x10\x06\x12\x16\n\x12RKE_ACTION_UNKNOWN\x10\x13\x12\x1b\n\x17RKE_ACTION_REMOTE_DRIVE\x10\x14\x12"\n\x1eRKE_ACTION_AUTO_SECURE_VEHICLE\x10\x1d\x12\x1b\n\x17RKE_ACTION_WAKE_VEHICLE\x10\x1e\x12&\n"RKE_ACTION_UNLOCK_AND_REMOTE_DRIVE\x10\x1f*\xeb\x01\n\x11ClosureMoveType_E\x12\x1a\n\x16CLOSURE_MOVE_TYPE_NONE\x10\x00\x12\x1a\n\x16CLOSURE_MOVE_TYPE_MOVE\x10\x01\x12\x1a\n\x16CLOSURE_MOVE_TYPE_STOP\x10\x02\x12\x1a\n\x16CLOSURE_MOVE_TYPE_OPEN\x10\x03\x12\x1b\n\x17CLOSURE_MOVE_TYPE_CLOSE\x10\x04\x12#\n\x1fCLOSURE_MOVE_TYPE_OVERRIDE_OPEN\x10\x05\x12$\n CLOSURE_MOVE_TYPE_OVERRIDE_CLOSE\x10\x06*`\n\x11OperationStatus_E\x12\x16\n\x12OPERATIONSTATUS_OK\x10\x00\x12\x18\n\x14OPERATIONSTATUS_WAIT\x10\x01\x12\x19\n\x15OPERATIONSTATUS_ERROR\x10\x02*\xf3\x08\n\x1bSignedMessage_information_E\x12"\n\x1eSIGNEDMESSAGE_INFORMATION_NONE\x10\x00\x12+\n\'SIGNEDMESSAGE_INFORMATION_FAULT_UNKNOWN\x10\x01\x124\n0SIGNEDMESSAGE_INFORMATION_FAULT_NOT_ON_WHITELIST\x10\x02\x12<\n8SIGNEDMESSAGE_INFORMATION_FAULT_IV_SMALLER_THAN_EXPECTED\x10\x03\x121\n-SIGNEDMESSAGE_INFORMATION_FAULT_INVALID_TOKEN\x10\x04\x12=\n9SIGNEDMESSAGE_INFORMATION_FAULT_TOKEN_AND_COUNTER_INVALID\x10\x05\x124\n0SIGNEDMESSAGE_INFORMATION_FAULT_AES_DECRYPT_AUTH\x10\x06\x12/\n+SIGNEDMESSAGE_INFORMATION_FAULT_ECDSA_INPUT\x10\x07\x123\n/SIGNEDMESSAGE_INFORMATION_FAULT_ECDSA_SIGNATURE\x10\x08\x126\n2SIGNEDMESSAGE_INFORMATION_FAULT_LOCAL_ENTITY_START\x10\t\x127\n3SIGNEDMESSAGE_INFORMATION_FAULT_LOCAL_ENTITY_RESULT\x10\n\x12:\n6SIGNEDMESSAGE_INFORMATION_FAULT_COULD_NOT_RETRIEVE_KEY\x10\x0b\x12<\n8SIGNEDMESSAGE_INFORMATION_FAULT_COULD_NOT_RETRIEVE_TOKEN\x10\x0c\x127\n3SIGNEDMESSAGE_INFORMATION_FAULT_SIGNATURE_TOO_SHORT\x10\r\x12=\n9SIGNEDMESSAGE_INFORMATION_FAULT_TOKEN_IS_INCORRECT_LENGTH\x10\x0e\x123\n/SIGNEDMESSAGE_INFORMATION_FAULT_INCORRECT_EPOCH\x10\x0f\x127\n3SIGNEDMESSAGE_INFORMATION_FAULT_IV_INCORRECT_LENGTH\x10\x10\x120\n,SIGNEDMESSAGE_INFORMATION_FAULT_TIME_EXPIRED\x10\x11\x12A\n=SIGNEDMESSAGE_INFORMATION_FAULT_NOT_PROVISIONED_WITH_IDENTITY\x10\x12\x12;\n7SIGNEDMESSAGE_INFORMATION_FAULT_COULD_NOT_HASH_METADATA\x10\x13*\xf2\x12\n WhitelistOperation_information_E\x12\'\n#WHITELISTOPERATION_INFORMATION_NONE\x10\x00\x125\n1WHITELISTOPERATION_INFORMATION_UNDOCUMENTED_ERROR\x10\x01\x12B\n>WHITELISTOPERATION_INFORMATION_NO_PERMISSION_TO_REMOVE_ONESELF\x10\x02\x124\n0WHITELISTOPERATION_INFORMATION_KEYFOB_SLOTS_FULL\x10\x03\x121\n-WHITELISTOPERATION_INFORMATION_WHITELIST_FULL\x10\x04\x127\n3WHITELISTOPERATION_INFORMATION_NO_PERMISSION_TO_ADD\x10\x05\x125\n1WHITELISTOPERATION_INFORMATION_INVALID_PUBLIC_KEY\x10\x06\x12:\n6WHITELISTOPERATION_INFORMATION_NO_PERMISSION_TO_REMOVE\x10\x07\x12F\nBWHITELISTOPERATION_INFORMATION_NO_PERMISSION_TO_CHANGE_PERMISSIONS\x10\x08\x12L\nHWHITELISTOPERATION_INFORMATION_ATTEMPTING_TO_ELEVATE_OTHER_ABOVE_ONESELF\x10\t\x12K\nGWHITELISTOPERATION_INFORMATION_ATTEMPTING_TO_DEMOTE_SUPERIOR_TO_ONESELF\x10\n\x12G\nCWHITELISTOPERATION_INFORMATION_ATTEMPTING_TO_REMOVE_OWN_PERMISSIONS\x10\x0b\x12>\n:WHITELISTOPERATION_INFORMATION_PUBLIC_KEY_NOT_ON_WHITELIST\x10\x0c\x12Y\nUWHITELISTOPERATION_INFORMATION_ATTEMPTING_TO_ADD_KEY_THAT_IS_ALREADY_ON_THE_WHITELIST\x10\r\x12F\nBWHITELISTOPERATION_INFORMATION_NOT_ALLOWED_TO_ADD_UNLESS_ON_READER\x10\x0e\x12A\n=WHITELISTOPERATION_INFORMATION_FM_MODIFYING_OUTSIDE_OF_F_MODE\x10\x0f\x12E\nAWHITELISTOPERATION_INFORMATION_FM_ATTEMPTING_TO_ADD_PERMANENT_KEY\x10\x10\x12H\nDWHITELISTOPERATION_INFORMATION_FM_ATTEMPTING_TO_REMOVE_PERMANENT_KEY\x10\x11\x129\n5WHITELISTOPERATION_INFORMATION_KEYCHAIN_WHILE_FS_FULL\x10\x12\x12E\nAWHITELISTOPERATION_INFORMATION_ATTEMPTING_TO_ADD_KEY_WITHOUT_ROLE\x10\x13\x12J\nFWHITELISTOPERATION_INFORMATION_ATTEMPTING_TO_ADD_KEY_WITH_SERVICE_ROLE\x10\x14\x12Q\nMWHITELISTOPERATION_INFORMATION_NON_SERVICE_KEY_ATTEMPTING_TO_ADD_SERVICE_TECH\x10\x15\x12b\n^WHITELISTOPERATION_INFORMATION_SERVICE_KEY_ATTEMPTING_TO_ADD_SERVICE_TECH_OUTSIDE_SERVICE_MODE\x10\x16\x12D\n@WHITELISTOPERATION_INFORMATION_COULD_NOT_START_LOCAL_ENTITY_AUTH\x10\x17\x12E\nAWHITELISTOPERATION_INFORMATION_LOCAL_ENTITY_AUTH_FAILED_UI_DENIED\x10\x18\x12U\nQWHITELISTOPERATION_INFORMATION_LOCAL_ENTITY_AUTH_FAILED_TIMED_OUT_WAITING_FOR_TAP\x10\x19\x12X\nTWHITELISTOPERATION_INFORMATION_LOCAL_ENTITY_AUTH_FAILED_TIMED_OUT_WAITING_FOR_UI_ACK\x10\x1a\x12F\nBWHITELISTOPERATION_INFORMATION_LOCAL_ENTITY_AUTH_FAILED_VALET_MODE\x10\x1b\x12E\nAWHITELISTOPERATION_INFORMATION_LOCAL_ENTITY_AUTH_FAILED_CANCELLED\x10\x1c\x12N\nJWHITELISTOPERATION_INFORMATION_NON_SERVICE_KEY_ATTEMPTING_TO_ADD_RIDER_KEY\x10\x1d\x12Q\nMWHITELISTOPERATION_INFORMATION_ATTEMPTING_TO_ADD_RIDER_KEY_OUTSIDE_FLEET_MODE\x10\x1e\x12T\nPWHITELISTOPERATION_INFORMATION_NON_SERVICE_KEY_ATTEMPTING_TO_ADD_PREDELIVERY_KEY\x10\x1f\x12g\ncWHITELISTOPERATION_INFORMATION_SERVICE_KEY_ATTEMPTING_TO_ADD_PREDELIVERY_KEY_WHEN_ALREADY_DELIVERED\x10 *\xc6\x01\n\x0eClosureState_E\x12\x17\n\x13CLOSURESTATE_CLOSED\x10\x00\x12\x15\n\x11CLOSURESTATE_OPEN\x10\x01\x12\x15\n\x11CLOSURESTATE_AJAR\x10\x02\x12\x18\n\x14CLOSURESTATE_UNKNOWN\x10\x03\x12\x1f\n\x1bCLOSURESTATE_FAILED_UNLATCH\x10\x04\x12\x18\n\x14CLOSURESTATE_OPENING\x10\x05\x12\x18\n\x14CLOSURESTATE_CLOSING\x10\x06*\x9f\x01\n\x12VehicleLockState_E\x12\x1d\n\x19VEHICLELOCKSTATE_UNLOCKED\x10\x00\x12\x1b\n\x17VEHICLELOCKSTATE_LOCKED\x10\x01\x12$\n VEHICLELOCKSTATE_INTERNAL_LOCKED\x10\x02\x12\'\n#VEHICLELOCKSTATE_SELECTIVE_UNLOCKED\x10\x03*y\n\x14VehicleSleepStatus_E\x12 \n\x1cVEHICLE_SLEEP_STATUS_UNKNOWN\x10\x00\x12\x1e\n\x1aVEHICLE_SLEEP_STATUS_AWAKE\x10\x01\x12\x1f\n\x1bVEHICLE_SLEEP_STATUS_ASLEEP\x10\x02*}\n\x0eUserPresence_E\x12!\n\x1dVEHICLE_USER_PRESENCE_UNKNOWN\x10\x00\x12%\n!VEHICLE_USER_PRESENCE_NOT_PRESENT\x10\x01\x12!\n\x1dVEHICLE_USER_PRESENCE_PRESENT\x10\x02*8\n\nUIDesire_E\x12\x12\n\x0eUI_DESIRE_NONE\x10\x00\x12\x16\n\x12UI_DESIRE_HAS_DATA\x10\x01*]\n\x06Gear_E\x12\x10\n\x0cGEAR_UNKNOWN\x10\x00\x12\r\n\tGEAR_PARK\x10\x01\x12\x0e\n\nGEAR_DRIVE\x10\x02\x12\x10\n\x0cGEAR_REVERSE\x10\x03\x12\x10\n\x0cGEAR_NEUTRAL\x10\x04B_\n\x19com.tesla.generated.vcsecZBgithub.com/teslamotors/vehicle-command/pkg/protocol/protobuf/vcsecb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0bvcsec.proto\x12\x05VCSEC\x1a\nkeys.proto\x1a\x0cerrors.proto"\\\n\rSignedMessage\x12\x1e\n\x16protobufMessageAsBytes\x18\x02 \x01(\x0c\x12+\n\rsignatureType\x18\x03 \x01(\x0e2\x14.VCSEC.SignatureType"=\n\x0eToVCSECMessage\x12+\n\rsignedMessage\x18\x01 \x01(\x0b2\x14.VCSEC.SignedMessage"&\n\rKeyIdentifier\x12\x15\n\rpublicKeySHA1\x18\x01 \x01(\x0c":\n\x0bKeyMetadata\x12+\n\rkeyFormFactor\x18\x01 \x01(\x0e2\x14.VCSEC.KeyFormFactor"!\n\tPublicKey\x12\x14\n\x0cPublicKeyRaw\x18\x01 \x01(\x0c"j\n\rWhitelistInfo\x12\x17\n\x0fnumberOfEntries\x18\x01 \x01(\r\x12.\n\x10whitelistEntries\x18\x02 \x03(\x0b2\x14.VCSEC.KeyIdentifier\x12\x10\n\x08slotMask\x18\x03 \x01(\r"\xb5\x01\n\x12WhitelistEntryInfo\x12#\n\x05keyId\x18\x01 \x01(\x0b2\x14.VCSEC.KeyIdentifier\x12#\n\tpublicKey\x18\x02 \x01(\x0b2\x10.VCSEC.PublicKey\x12*\n\x0emetadataForKey\x18\x04 \x01(\x0b2\x12.VCSEC.KeyMetadata\x12\x0c\n\x04slot\x18\x06 \x01(\r\x12\x1b\n\x07keyRole\x18\x07 \x01(\x0e2\n.Keys.Role"\xa6\x01\n\x12InformationRequest\x12=\n\x16informationRequestType\x18\x01 \x01(\x0e2\x1d.VCSEC.InformationRequestType\x12%\n\x05keyId\x18\x02 \x01(\x0b2\x14.VCSEC.KeyIdentifierH\x00\x12\x13\n\tpublicKey\x18\x03 \x01(\x0cH\x00\x12\x0e\n\x04slot\x18\x04 \x01(\rH\x00B\x05\n\x03key"\x98\x03\n\x12ClosureMoveRequest\x121\n\x0ffrontDriverDoor\x18\x01 \x01(\x0e2\x18.VCSEC.ClosureMoveType_E\x124\n\x12frontPassengerDoor\x18\x02 \x01(\x0e2\x18.VCSEC.ClosureMoveType_E\x120\n\x0erearDriverDoor\x18\x03 \x01(\x0e2\x18.VCSEC.ClosureMoveType_E\x123\n\x11rearPassengerDoor\x18\x04 \x01(\x0e2\x18.VCSEC.ClosureMoveType_E\x12+\n\trearTrunk\x18\x05 \x01(\x0e2\x18.VCSEC.ClosureMoveType_E\x12,\n\nfrontTrunk\x18\x06 \x01(\x0e2\x18.VCSEC.ClosureMoveType_E\x12,\n\nchargePort\x18\x07 \x01(\x0e2\x18.VCSEC.ClosureMoveType_E\x12)\n\x07tonneau\x18\x08 \x01(\x0e2\x18.VCSEC.ClosureMoveType_E"i\n\x10PermissionChange\x12\x1d\n\x03key\x18\x01 \x01(\x0b2\x10.VCSEC.PublicKey\x12\x19\n\x11secondsToBeActive\x18\x03 \x01(\r\x12\x1b\n\x07keyRole\x18\x04 \x01(\x0e2\n.Keys.Role"\xbb\x01\n\nReplaceKey\x12.\n\x12publicKeyToReplace\x18\x01 \x01(\x0b2\x10.VCSEC.PublicKeyH\x00\x12\x17\n\rslotToReplace\x18\x02 \x01(\rH\x00\x12"\n\x08keyToAdd\x18\x03 \x01(\x0b2\x10.VCSEC.PublicKey\x12\x1b\n\x07keyRole\x18\x04 \x01(\x0e2\n.Keys.Role\x12\x13\n\x0bimpermanent\x18\x05 \x01(\x08B\x0e\n\x0ckeyToReplace"\x8c\x05\n\x12WhitelistOperation\x123\n\x17addPublicKeyToWhitelist\x18\x01 \x01(\x0b2\x10.VCSEC.PublicKeyH\x00\x128\n\x1cremovePublicKeyFromWhitelist\x18\x02 \x01(\x0b2\x10.VCSEC.PublicKeyH\x00\x12<\n\x19addPermissionsToPublicKey\x18\x03 \x01(\x0b2\x17.VCSEC.PermissionChangeH\x00\x12A\n\x1eremovePermissionsFromPublicKey\x18\x04 \x01(\x0b2\x17.VCSEC.PermissionChangeH\x00\x12E\n"addKeyToWhitelistAndAddPermissions\x18\x05 \x01(\x0b2\x17.VCSEC.PermissionChangeH\x00\x12:\n\x17updateKeyAndPermissions\x18\x07 \x01(\x0b2\x17.VCSEC.PermissionChangeH\x00\x124\n\x11addImpermanentKey\x18\x08 \x01(\x0b2\x17.VCSEC.PermissionChangeH\x00\x12E\n"addImpermanentKeyAndRemoveExisting\x18\t \x01(\x0b2\x17.VCSEC.PermissionChangeH\x00\x12"\n\x18removeAllImpermanentKeys\x18\x10 \x01(\x08H\x00\x12\'\n\nreplaceKey\x18\x11 \x01(\x0b2\x11.VCSEC.ReplaceKeyH\x00\x12*\n\x0emetadataForKey\x18\x06 \x01(\x0b2\x12.VCSEC.KeyMetadataB\r\n\x0bsub_message"\xcf\x01\n\x19WhitelistOperation_status\x12N\n\x1dwhitelistOperationInformation\x18\x01 \x01(\x0e2\'.VCSEC.WhitelistOperation_information_E\x12/\n\x11signerOfOperation\x18\x02 \x01(\x0b2\x14.VCSEC.KeyIdentifier\x121\n\x0foperationStatus\x18\x03 \x01(\x0e2\x18.VCSEC.OperationStatus_E"m\n\x14SignedMessage_status\x12\x0f\n\x07counter\x18\x01 \x01(\r\x12D\n\x18signedMessageInformation\x18\x02 \x01(\x0e2".VCSEC.SignedMessage_information_E"\xd3\x01\n\rCommandStatus\x121\n\x0foperationStatus\x18\x01 \x01(\x0e2\x18.VCSEC.OperationStatus_E\x12:\n\x13signedMessageStatus\x18\x02 \x01(\x0b2\x1b.VCSEC.SignedMessage_statusH\x00\x12D\n\x18whitelistOperationStatus\x18\x03 \x01(\x0b2 .VCSEC.WhitelistOperation_statusH\x00B\r\n\x0bsub_message"v\n\x0fAutonomyCommand\x12A\n\x0fpullOverCommand\x18\x01 \x01(\x0b2&.VCSEC.AutonomyCommand.PullOverCommandH\x00\x1a\x11\n\x0fPullOverCommandB\r\n\x0bsub_message"\xc5\x02\n\x0fUnsignedMessage\x127\n\x12InformationRequest\x18\x01 \x01(\x0b2\x19.VCSEC.InformationRequestH\x00\x12\'\n\tRKEAction\x18\x02 \x01(\x0e2\x12.VCSEC.RKEAction_EH\x00\x127\n\x12closureMoveRequest\x18\x04 \x01(\x0b2\x19.VCSEC.ClosureMoveRequestH\x00\x127\n\x12WhitelistOperation\x18\x10 \x01(\x0b2\x19.VCSEC.WhitelistOperationH\x00\x121\n\x0fautonomyCommand\x18B \x01(\x0b2\x16.VCSEC.AutonomyCommandH\x00B\r\n\x0bsub_messageJ\x04\x08\x06\x10\x07J\x04\x08\x07\x10\x08J\x04\x08\n\x10\x0bJ\x04\x08\x0c\x10\rJ\x04\x08\r\x10\x0e"\xfd\x02\n\x0fClosureStatuses\x12.\n\x0ffrontDriverDoor\x18\x01 \x01(\x0e2\x15.VCSEC.ClosureState_E\x121\n\x12frontPassengerDoor\x18\x02 \x01(\x0e2\x15.VCSEC.ClosureState_E\x12-\n\x0erearDriverDoor\x18\x03 \x01(\x0e2\x15.VCSEC.ClosureState_E\x120\n\x11rearPassengerDoor\x18\x04 \x01(\x0e2\x15.VCSEC.ClosureState_E\x12(\n\trearTrunk\x18\x05 \x01(\x0e2\x15.VCSEC.ClosureState_E\x12)\n\nfrontTrunk\x18\x06 \x01(\x0e2\x15.VCSEC.ClosureState_E\x12)\n\nchargePort\x18\x07 \x01(\x0e2\x15.VCSEC.ClosureState_E\x12&\n\x07tonneau\x18\x08 \x01(\x0e2\x15.VCSEC.ClosureState_E"3\n\x15DetailedClosureStatus\x12\x1a\n\x12tonneauPercentOpen\x18\x01 \x01(\r"\xda\x02\n\rVehicleStatus\x12/\n\x0fclosureStatuses\x18\x01 \x01(\x0b2\x16.VCSEC.ClosureStatuses\x123\n\x10vehicleLockState\x18\x02 \x01(\x0e2\x19.VCSEC.VehicleLockState_E\x127\n\x12vehicleSleepStatus\x18\x03 \x01(\x0e2\x1b.VCSEC.VehicleSleepStatus_E\x12+\n\x0cuserPresence\x18\x04 \x01(\x0e2\x15.VCSEC.UserPresence_E\x12;\n\x15detailedClosureStatus\x18\x05 \x01(\x0b2\x1c.VCSEC.DetailedClosureStatus\x12#\n\x08uiDesire\x18\x06 \x01(\x0e2\x11.VCSEC.UIDesire_E\x12\x1b\n\x04gear\x18\x07 \x01(\x0e2\r.VCSEC.Gear_E"\x9b\x02\n\x10FromVCSECMessage\x12-\n\rvehicleStatus\x18\x01 \x01(\x0b2\x14.VCSEC.VehicleStatusH\x00\x12-\n\rcommandStatus\x18\x04 \x01(\x0b2\x14.VCSEC.CommandStatusH\x00\x12-\n\rwhitelistInfo\x18\x10 \x01(\x0b2\x14.VCSEC.WhitelistInfoH\x00\x127\n\x12whitelistEntryInfo\x18\x11 \x01(\x0b2\x19.VCSEC.WhitelistEntryInfoH\x00\x12,\n\x0cnominalError\x18. \x01(\x0b2\x14.Errors.NominalErrorH\x00B\r\n\x0bsub_messageJ\x04\x08\x06\x10\x0b*H\n\rSignatureType\x12\x17\n\x13SIGNATURE_TYPE_NONE\x10\x00\x12\x1e\n\x1aSIGNATURE_TYPE_PRESENT_KEY\x10\x02*\xb2\x06\n\rKeyFormFactor\x12\x1b\n\x17KEY_FORM_FACTOR_UNKNOWN\x10\x00\x12\x1c\n\x18KEY_FORM_FACTOR_NFC_CARD\x10\x01\x12+\n\'KEY_FORM_FACTOR_3_BUTTON_BLE_CAR_KEYFOB\x10\x02\x12\x1e\n\x1aKEY_FORM_FACTOR_BLE_DEVICE\x10\x03\x12\x1e\n\x1aKEY_FORM_FACTOR_NFC_DEVICE\x10\x04\x12&\n"KEY_FORM_FACTOR_BLE_AND_NFC_DEVICE\x10\x05\x12\x1e\n\x1aKEY_FORM_FACTOR_IOS_DEVICE\x10\x06\x12"\n\x1eKEY_FORM_FACTOR_ANDROID_DEVICE\x10\x07\x12/\n+KEY_FORM_FACTOR_3_BUTTON_BLE_CAR_KEYFOB_P60\x10\x08\x12\x1d\n\x19KEY_FORM_FACTOR_CLOUD_KEY\x10\t\x120\n,KEY_FORM_FACTOR_3_BUTTON_GEN2_CAR_KEYFOB_P60\x10\n\x120\n,KEY_FORM_FACTOR_5_BUTTON_GEN2_CAR_KEYFOB_P60\x10\x0b\x123\n/KEY_FORM_FACTOR_3_BUTTON_GEN2_CAR_KEYFOB_P60_V2\x10\x0c\x123\n/KEY_FORM_FACTOR_3_BUTTON_GEN2_CAR_KEYFOB_P60_V3\x10\r\x12 \n\x1cKEY_FORM_FACTOR_NFC_CARD_P71\x10\x0e\x12\'\n#KEY_FORM_FACTOR_NFC_CARD_METAL_CARD\x10\x0f\x12)\n%KEY_FORM_FACTOR_NFC_CARD_PLASTIC_CARD\x10\x10\x12\x1f\n\x1bKEY_FORM_FACTOR_APPLE_WATCH\x10\x11\x12,\n(KEY_FORM_FACTOR_NFC_CARD_WD_PLASTIC_CARD\x10\x12\x12*\n&KEY_FORM_FACTOR_HARMONY_OS_NEXT_DEVICE\x10\x13*\xa5\x04\n\x16InformationRequestType\x12\'\n#INFORMATION_REQUEST_TYPE_GET_STATUS\x10\x00\x12&\n"INFORMATION_REQUEST_TYPE_GET_TOKEN\x10\x01\x12(\n$INFORMATION_REQUEST_TYPE_GET_COUNTER\x10\x02\x125\n1INFORMATION_REQUEST_TYPE_GET_EPHEMERAL_PUBLIC_KEY\x10\x03\x12-\n)INFORMATION_REQUEST_TYPE_GET_SESSION_DATA\x10\x04\x12/\n+INFORMATION_REQUEST_TYPE_GET_WHITELIST_INFO\x10\x05\x125\n1INFORMATION_REQUEST_TYPE_GET_WHITELIST_ENTRY_INFO\x10\x06\x125\n1INFORMATION_REQUEST_TYPE_GET_PERSONALIZATION_INFO\x10\x07\x12/\n+INFORMATION_REQUEST_TYPE_GET_KEYSTATUS_INFO\x10\x08\x12+\n\'INFORMATION_REQUEST_TYPE_GET_ACTIVE_KEY\x10\t\x12-\n)INFORMATION_REQUEST_TYPE_GET_CAPABILITIES\x10\x10*\xfd\x02\n\x0bRKEAction_E\x12\x15\n\x11RKE_ACTION_UNLOCK\x10\x00\x12\x13\n\x0fRKE_ACTION_LOCK\x10\x01\x12\x19\n\x15RKE_ACTION_OPEN_TRUNK\x10\x02\x12\x19\n\x15RKE_ACTION_OPEN_FRUNK\x10\x03\x12\x1f\n\x1bRKE_ACTION_OPEN_CHARGE_PORT\x10\x04\x12 \n\x1cRKE_ACTION_CLOSE_CHARGE_PORT\x10\x05\x12+\n\'RKE_ACTION_CANCEL_EXTERNAL_AUTHENTICATE\x10\x06\x12\x16\n\x12RKE_ACTION_UNKNOWN\x10\x13\x12\x1b\n\x17RKE_ACTION_REMOTE_DRIVE\x10\x14\x12"\n\x1eRKE_ACTION_AUTO_SECURE_VEHICLE\x10\x1d\x12\x1b\n\x17RKE_ACTION_WAKE_VEHICLE\x10\x1e\x12&\n"RKE_ACTION_UNLOCK_AND_REMOTE_DRIVE\x10\x1f*\xeb\x01\n\x11ClosureMoveType_E\x12\x1a\n\x16CLOSURE_MOVE_TYPE_NONE\x10\x00\x12\x1a\n\x16CLOSURE_MOVE_TYPE_MOVE\x10\x01\x12\x1a\n\x16CLOSURE_MOVE_TYPE_STOP\x10\x02\x12\x1a\n\x16CLOSURE_MOVE_TYPE_OPEN\x10\x03\x12\x1b\n\x17CLOSURE_MOVE_TYPE_CLOSE\x10\x04\x12#\n\x1fCLOSURE_MOVE_TYPE_OVERRIDE_OPEN\x10\x05\x12$\n CLOSURE_MOVE_TYPE_OVERRIDE_CLOSE\x10\x06*`\n\x11OperationStatus_E\x12\x16\n\x12OPERATIONSTATUS_OK\x10\x00\x12\x18\n\x14OPERATIONSTATUS_WAIT\x10\x01\x12\x19\n\x15OPERATIONSTATUS_ERROR\x10\x02*\xf3\x08\n\x1bSignedMessage_information_E\x12"\n\x1eSIGNEDMESSAGE_INFORMATION_NONE\x10\x00\x12+\n\'SIGNEDMESSAGE_INFORMATION_FAULT_UNKNOWN\x10\x01\x124\n0SIGNEDMESSAGE_INFORMATION_FAULT_NOT_ON_WHITELIST\x10\x02\x12<\n8SIGNEDMESSAGE_INFORMATION_FAULT_IV_SMALLER_THAN_EXPECTED\x10\x03\x121\n-SIGNEDMESSAGE_INFORMATION_FAULT_INVALID_TOKEN\x10\x04\x12=\n9SIGNEDMESSAGE_INFORMATION_FAULT_TOKEN_AND_COUNTER_INVALID\x10\x05\x124\n0SIGNEDMESSAGE_INFORMATION_FAULT_AES_DECRYPT_AUTH\x10\x06\x12/\n+SIGNEDMESSAGE_INFORMATION_FAULT_ECDSA_INPUT\x10\x07\x123\n/SIGNEDMESSAGE_INFORMATION_FAULT_ECDSA_SIGNATURE\x10\x08\x126\n2SIGNEDMESSAGE_INFORMATION_FAULT_LOCAL_ENTITY_START\x10\t\x127\n3SIGNEDMESSAGE_INFORMATION_FAULT_LOCAL_ENTITY_RESULT\x10\n\x12:\n6SIGNEDMESSAGE_INFORMATION_FAULT_COULD_NOT_RETRIEVE_KEY\x10\x0b\x12<\n8SIGNEDMESSAGE_INFORMATION_FAULT_COULD_NOT_RETRIEVE_TOKEN\x10\x0c\x127\n3SIGNEDMESSAGE_INFORMATION_FAULT_SIGNATURE_TOO_SHORT\x10\r\x12=\n9SIGNEDMESSAGE_INFORMATION_FAULT_TOKEN_IS_INCORRECT_LENGTH\x10\x0e\x123\n/SIGNEDMESSAGE_INFORMATION_FAULT_INCORRECT_EPOCH\x10\x0f\x127\n3SIGNEDMESSAGE_INFORMATION_FAULT_IV_INCORRECT_LENGTH\x10\x10\x120\n,SIGNEDMESSAGE_INFORMATION_FAULT_TIME_EXPIRED\x10\x11\x12A\n=SIGNEDMESSAGE_INFORMATION_FAULT_NOT_PROVISIONED_WITH_IDENTITY\x10\x12\x12;\n7SIGNEDMESSAGE_INFORMATION_FAULT_COULD_NOT_HASH_METADATA\x10\x13*\xf2\x12\n WhitelistOperation_information_E\x12\'\n#WHITELISTOPERATION_INFORMATION_NONE\x10\x00\x125\n1WHITELISTOPERATION_INFORMATION_UNDOCUMENTED_ERROR\x10\x01\x12B\n>WHITELISTOPERATION_INFORMATION_NO_PERMISSION_TO_REMOVE_ONESELF\x10\x02\x124\n0WHITELISTOPERATION_INFORMATION_KEYFOB_SLOTS_FULL\x10\x03\x121\n-WHITELISTOPERATION_INFORMATION_WHITELIST_FULL\x10\x04\x127\n3WHITELISTOPERATION_INFORMATION_NO_PERMISSION_TO_ADD\x10\x05\x125\n1WHITELISTOPERATION_INFORMATION_INVALID_PUBLIC_KEY\x10\x06\x12:\n6WHITELISTOPERATION_INFORMATION_NO_PERMISSION_TO_REMOVE\x10\x07\x12F\nBWHITELISTOPERATION_INFORMATION_NO_PERMISSION_TO_CHANGE_PERMISSIONS\x10\x08\x12L\nHWHITELISTOPERATION_INFORMATION_ATTEMPTING_TO_ELEVATE_OTHER_ABOVE_ONESELF\x10\t\x12K\nGWHITELISTOPERATION_INFORMATION_ATTEMPTING_TO_DEMOTE_SUPERIOR_TO_ONESELF\x10\n\x12G\nCWHITELISTOPERATION_INFORMATION_ATTEMPTING_TO_REMOVE_OWN_PERMISSIONS\x10\x0b\x12>\n:WHITELISTOPERATION_INFORMATION_PUBLIC_KEY_NOT_ON_WHITELIST\x10\x0c\x12Y\nUWHITELISTOPERATION_INFORMATION_ATTEMPTING_TO_ADD_KEY_THAT_IS_ALREADY_ON_THE_WHITELIST\x10\r\x12F\nBWHITELISTOPERATION_INFORMATION_NOT_ALLOWED_TO_ADD_UNLESS_ON_READER\x10\x0e\x12A\n=WHITELISTOPERATION_INFORMATION_FM_MODIFYING_OUTSIDE_OF_F_MODE\x10\x0f\x12E\nAWHITELISTOPERATION_INFORMATION_FM_ATTEMPTING_TO_ADD_PERMANENT_KEY\x10\x10\x12H\nDWHITELISTOPERATION_INFORMATION_FM_ATTEMPTING_TO_REMOVE_PERMANENT_KEY\x10\x11\x129\n5WHITELISTOPERATION_INFORMATION_KEYCHAIN_WHILE_FS_FULL\x10\x12\x12E\nAWHITELISTOPERATION_INFORMATION_ATTEMPTING_TO_ADD_KEY_WITHOUT_ROLE\x10\x13\x12J\nFWHITELISTOPERATION_INFORMATION_ATTEMPTING_TO_ADD_KEY_WITH_SERVICE_ROLE\x10\x14\x12Q\nMWHITELISTOPERATION_INFORMATION_NON_SERVICE_KEY_ATTEMPTING_TO_ADD_SERVICE_TECH\x10\x15\x12b\n^WHITELISTOPERATION_INFORMATION_SERVICE_KEY_ATTEMPTING_TO_ADD_SERVICE_TECH_OUTSIDE_SERVICE_MODE\x10\x16\x12D\n@WHITELISTOPERATION_INFORMATION_COULD_NOT_START_LOCAL_ENTITY_AUTH\x10\x17\x12E\nAWHITELISTOPERATION_INFORMATION_LOCAL_ENTITY_AUTH_FAILED_UI_DENIED\x10\x18\x12U\nQWHITELISTOPERATION_INFORMATION_LOCAL_ENTITY_AUTH_FAILED_TIMED_OUT_WAITING_FOR_TAP\x10\x19\x12X\nTWHITELISTOPERATION_INFORMATION_LOCAL_ENTITY_AUTH_FAILED_TIMED_OUT_WAITING_FOR_UI_ACK\x10\x1a\x12F\nBWHITELISTOPERATION_INFORMATION_LOCAL_ENTITY_AUTH_FAILED_VALET_MODE\x10\x1b\x12E\nAWHITELISTOPERATION_INFORMATION_LOCAL_ENTITY_AUTH_FAILED_CANCELLED\x10\x1c\x12N\nJWHITELISTOPERATION_INFORMATION_NON_SERVICE_KEY_ATTEMPTING_TO_ADD_RIDER_KEY\x10\x1d\x12Q\nMWHITELISTOPERATION_INFORMATION_ATTEMPTING_TO_ADD_RIDER_KEY_OUTSIDE_FLEET_MODE\x10\x1e\x12T\nPWHITELISTOPERATION_INFORMATION_NON_SERVICE_KEY_ATTEMPTING_TO_ADD_PREDELIVERY_KEY\x10\x1f\x12g\ncWHITELISTOPERATION_INFORMATION_SERVICE_KEY_ATTEMPTING_TO_ADD_PREDELIVERY_KEY_WHEN_ALREADY_DELIVERED\x10 *\xc6\x01\n\x0eClosureState_E\x12\x17\n\x13CLOSURESTATE_CLOSED\x10\x00\x12\x15\n\x11CLOSURESTATE_OPEN\x10\x01\x12\x15\n\x11CLOSURESTATE_AJAR\x10\x02\x12\x18\n\x14CLOSURESTATE_UNKNOWN\x10\x03\x12\x1f\n\x1bCLOSURESTATE_FAILED_UNLATCH\x10\x04\x12\x18\n\x14CLOSURESTATE_OPENING\x10\x05\x12\x18\n\x14CLOSURESTATE_CLOSING\x10\x06*\x9f\x01\n\x12VehicleLockState_E\x12\x1d\n\x19VEHICLELOCKSTATE_UNLOCKED\x10\x00\x12\x1b\n\x17VEHICLELOCKSTATE_LOCKED\x10\x01\x12$\n VEHICLELOCKSTATE_INTERNAL_LOCKED\x10\x02\x12\'\n#VEHICLELOCKSTATE_SELECTIVE_UNLOCKED\x10\x03*y\n\x14VehicleSleepStatus_E\x12 \n\x1cVEHICLE_SLEEP_STATUS_UNKNOWN\x10\x00\x12\x1e\n\x1aVEHICLE_SLEEP_STATUS_AWAKE\x10\x01\x12\x1f\n\x1bVEHICLE_SLEEP_STATUS_ASLEEP\x10\x02*}\n\x0eUserPresence_E\x12!\n\x1dVEHICLE_USER_PRESENCE_UNKNOWN\x10\x00\x12%\n!VEHICLE_USER_PRESENCE_NOT_PRESENT\x10\x01\x12!\n\x1dVEHICLE_USER_PRESENCE_PRESENT\x10\x02*8\n\nUIDesire_E\x12\x12\n\x0eUI_DESIRE_NONE\x10\x00\x12\x16\n\x12UI_DESIRE_HAS_DATA\x10\x01*]\n\x06Gear_E\x12\x10\n\x0cGEAR_UNKNOWN\x10\x00\x12\r\n\tGEAR_PARK\x10\x01\x12\x0e\n\nGEAR_DRIVE\x10\x02\x12\x10\n\x0cGEAR_REVERSE\x10\x03\x12\x10\n\x0cGEAR_NEUTRAL\x10\x04B_\n\x19com.tesla.generated.vcsecZBgithub.com/teslamotors/vehicle-command/pkg/protocol/protobuf/vcsecb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'vcsec_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n\x19com.tesla.generated.vcsecZBgithub.com/teslamotors/vehicle-command/pkg/protocol/protobuf/vcsec' - _globals['_SIGNATURETYPE']._serialized_start = 4048 - _globals['_SIGNATURETYPE']._serialized_end = 4120 - _globals['_KEYFORMFACTOR']._serialized_start = 4123 - _globals['_KEYFORMFACTOR']._serialized_end = 4941 - _globals['_INFORMATIONREQUESTTYPE']._serialized_start = 4944 - _globals['_INFORMATIONREQUESTTYPE']._serialized_end = 5493 - _globals['_RKEACTION_E']._serialized_start = 5496 - _globals['_RKEACTION_E']._serialized_end = 5877 - _globals['_CLOSUREMOVETYPE_E']._serialized_start = 5880 - _globals['_CLOSUREMOVETYPE_E']._serialized_end = 6115 - _globals['_OPERATIONSTATUS_E']._serialized_start = 6117 - _globals['_OPERATIONSTATUS_E']._serialized_end = 6213 - _globals['_SIGNEDMESSAGE_INFORMATION_E']._serialized_start = 6216 - _globals['_SIGNEDMESSAGE_INFORMATION_E']._serialized_end = 7355 - _globals['_WHITELISTOPERATION_INFORMATION_E']._serialized_start = 7358 - _globals['_WHITELISTOPERATION_INFORMATION_E']._serialized_end = 9776 - _globals['_CLOSURESTATE_E']._serialized_start = 9779 - _globals['_CLOSURESTATE_E']._serialized_end = 9977 - _globals['_VEHICLELOCKSTATE_E']._serialized_start = 9980 - _globals['_VEHICLELOCKSTATE_E']._serialized_end = 10139 - _globals['_VEHICLESLEEPSTATUS_E']._serialized_start = 10141 - _globals['_VEHICLESLEEPSTATUS_E']._serialized_end = 10262 - _globals['_USERPRESENCE_E']._serialized_start = 10264 - _globals['_USERPRESENCE_E']._serialized_end = 10389 - _globals['_UIDESIRE_E']._serialized_start = 10391 - _globals['_UIDESIRE_E']._serialized_end = 10447 - _globals['_GEAR_E']._serialized_start = 10449 - _globals['_GEAR_E']._serialized_end = 10542 + _globals['_SIGNATURETYPE']._serialized_start = 4219 + _globals['_SIGNATURETYPE']._serialized_end = 4291 + _globals['_KEYFORMFACTOR']._serialized_start = 4294 + _globals['_KEYFORMFACTOR']._serialized_end = 5112 + _globals['_INFORMATIONREQUESTTYPE']._serialized_start = 5115 + _globals['_INFORMATIONREQUESTTYPE']._serialized_end = 5664 + _globals['_RKEACTION_E']._serialized_start = 5667 + _globals['_RKEACTION_E']._serialized_end = 6048 + _globals['_CLOSUREMOVETYPE_E']._serialized_start = 6051 + _globals['_CLOSUREMOVETYPE_E']._serialized_end = 6286 + _globals['_OPERATIONSTATUS_E']._serialized_start = 6288 + _globals['_OPERATIONSTATUS_E']._serialized_end = 6384 + _globals['_SIGNEDMESSAGE_INFORMATION_E']._serialized_start = 6387 + _globals['_SIGNEDMESSAGE_INFORMATION_E']._serialized_end = 7526 + _globals['_WHITELISTOPERATION_INFORMATION_E']._serialized_start = 7529 + _globals['_WHITELISTOPERATION_INFORMATION_E']._serialized_end = 9947 + _globals['_CLOSURESTATE_E']._serialized_start = 9950 + _globals['_CLOSURESTATE_E']._serialized_end = 10148 + _globals['_VEHICLELOCKSTATE_E']._serialized_start = 10151 + _globals['_VEHICLELOCKSTATE_E']._serialized_end = 10310 + _globals['_VEHICLESLEEPSTATUS_E']._serialized_start = 10312 + _globals['_VEHICLESLEEPSTATUS_E']._serialized_end = 10433 + _globals['_USERPRESENCE_E']._serialized_start = 10435 + _globals['_USERPRESENCE_E']._serialized_end = 10560 + _globals['_UIDESIRE_E']._serialized_start = 10562 + _globals['_UIDESIRE_E']._serialized_end = 10618 + _globals['_GEAR_E']._serialized_start = 10620 + _globals['_GEAR_E']._serialized_end = 10713 _globals['_SIGNEDMESSAGE']._serialized_start = 48 _globals['_SIGNEDMESSAGE']._serialized_end = 140 _globals['_TOVCSECMESSAGE']._serialized_start = 142 @@ -73,13 +73,17 @@ _globals['_SIGNEDMESSAGE_STATUS']._serialized_end = 2483 _globals['_COMMANDSTATUS']._serialized_start = 2486 _globals['_COMMANDSTATUS']._serialized_end = 2697 - _globals['_UNSIGNEDMESSAGE']._serialized_start = 2700 - _globals['_UNSIGNEDMESSAGE']._serialized_end = 2974 - _globals['_CLOSURESTATUSES']._serialized_start = 2977 - _globals['_CLOSURESTATUSES']._serialized_end = 3358 - _globals['_DETAILEDCLOSURESTATUS']._serialized_start = 3360 - _globals['_DETAILEDCLOSURESTATUS']._serialized_end = 3411 - _globals['_VEHICLESTATUS']._serialized_start = 3414 - _globals['_VEHICLESTATUS']._serialized_end = 3760 - _globals['_FROMVCSECMESSAGE']._serialized_start = 3763 - _globals['_FROMVCSECMESSAGE']._serialized_end = 4046 \ No newline at end of file + _globals['_AUTONOMYCOMMAND']._serialized_start = 2699 + _globals['_AUTONOMYCOMMAND']._serialized_end = 2817 + _globals['_AUTONOMYCOMMAND_PULLOVERCOMMAND']._serialized_start = 2785 + _globals['_AUTONOMYCOMMAND_PULLOVERCOMMAND']._serialized_end = 2802 + _globals['_UNSIGNEDMESSAGE']._serialized_start = 2820 + _globals['_UNSIGNEDMESSAGE']._serialized_end = 3145 + _globals['_CLOSURESTATUSES']._serialized_start = 3148 + _globals['_CLOSURESTATUSES']._serialized_end = 3529 + _globals['_DETAILEDCLOSURESTATUS']._serialized_start = 3531 + _globals['_DETAILEDCLOSURESTATUS']._serialized_end = 3582 + _globals['_VEHICLESTATUS']._serialized_start = 3585 + _globals['_VEHICLESTATUS']._serialized_end = 3931 + _globals['_FROMVCSECMESSAGE']._serialized_start = 3934 + _globals['_FROMVCSECMESSAGE']._serialized_end = 4217 \ No newline at end of file diff --git a/packages/python/tesla_protocol/command/vcsec_pb2.pyi b/packages/python/tesla_protocol/command/vcsec_pb2.pyi index 167fdf4..4863d8c 100644 --- a/packages/python/tesla_protocol/command/vcsec_pb2.pyi +++ b/packages/python/tesla_protocol/command/vcsec_pb2.pyi @@ -510,18 +510,34 @@ class CommandStatus(_message.Message): def __init__(self, operationStatus: _Optional[_Union[OperationStatus_E, str]]=..., signedMessageStatus: _Optional[_Union[SignedMessage_status, _Mapping]]=..., whitelistOperationStatus: _Optional[_Union[WhitelistOperation_status, _Mapping]]=...) -> None: ... +class AutonomyCommand(_message.Message): + __slots__ = ('pullOverCommand',) + + class PullOverCommand(_message.Message): + __slots__ = () + + def __init__(self) -> None: + ... + PULLOVERCOMMAND_FIELD_NUMBER: _ClassVar[int] + pullOverCommand: AutonomyCommand.PullOverCommand + + def __init__(self, pullOverCommand: _Optional[_Union[AutonomyCommand.PullOverCommand, _Mapping]]=...) -> None: + ... + class UnsignedMessage(_message.Message): - __slots__ = ('InformationRequest', 'RKEAction', 'closureMoveRequest', 'WhitelistOperation') + __slots__ = ('InformationRequest', 'RKEAction', 'closureMoveRequest', 'WhitelistOperation', 'autonomyCommand') INFORMATIONREQUEST_FIELD_NUMBER: _ClassVar[int] RKEACTION_FIELD_NUMBER: _ClassVar[int] CLOSUREMOVEREQUEST_FIELD_NUMBER: _ClassVar[int] WHITELISTOPERATION_FIELD_NUMBER: _ClassVar[int] + AUTONOMYCOMMAND_FIELD_NUMBER: _ClassVar[int] InformationRequest: InformationRequest RKEAction: RKEAction_E closureMoveRequest: ClosureMoveRequest WhitelistOperation: WhitelistOperation + autonomyCommand: AutonomyCommand - def __init__(self, InformationRequest: _Optional[_Union[InformationRequest, _Mapping]]=..., RKEAction: _Optional[_Union[RKEAction_E, str]]=..., closureMoveRequest: _Optional[_Union[ClosureMoveRequest, _Mapping]]=..., WhitelistOperation: _Optional[_Union[WhitelistOperation, _Mapping]]=...) -> None: + def __init__(self, InformationRequest: _Optional[_Union[InformationRequest, _Mapping]]=..., RKEAction: _Optional[_Union[RKEAction_E, str]]=..., closureMoveRequest: _Optional[_Union[ClosureMoveRequest, _Mapping]]=..., WhitelistOperation: _Optional[_Union[WhitelistOperation, _Mapping]]=..., autonomyCommand: _Optional[_Union[AutonomyCommand, _Mapping]]=...) -> None: ... class ClosureStatuses(_message.Message): diff --git a/packages/python/tesla_protocol/command/vehicle_pb2.py b/packages/python/tesla_protocol/command/vehicle_pb2.py index 656e55c..28fd22d 100644 --- a/packages/python/tesla_protocol/command/vehicle_pb2.py +++ b/packages/python/tesla_protocol/command/vehicle_pb2.py @@ -10,25 +10,25 @@ from . import vcsec_pb2 as vcsec__pb2 from . import common_pb2 as common__pb2 from . import managed_charging_pb2 as managed__charging__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rvehicle.proto\x12\tCarServer\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x0bvcsec.proto\x1a\x0ccommon.proto\x1a\x16managed_charging.proto"\xd7\x0b\n\x0bVehicleData\x12,\n\x0cgui_settings\x18\x02 \x01(\x0b2\x16.CarServer.GuiSettings\x12,\n\x0ccharge_state\x18\x03 \x01(\x0b2\x16.CarServer.ChargeState\x12.\n\rclimate_state\x18\x04 \x01(\x0b2\x17.CarServer.ClimateState\x12*\n\x0bdrive_state\x18\x05 \x01(\x0b2\x15.CarServer.DriveState\x125\n\x14legacy_vehicle_state\x18\x06 \x01(\x0b2\x17.CarServer.VehicleState\x120\n\x0evehicle_config\x18\x07 \x01(\x0b2\x18.CarServer.VehicleConfig\x120\n\x0elocation_state\x18\x08 \x01(\x0b2\x18.CarServer.LocationState\x120\n\x0eclosures_state\x18\t \x01(\x0b2\x18.CarServer.ClosuresState\x12\x1c\n\x12proto_json_version\x18\n \x01(\x05H\x00\x12\x17\n\rupload_reason\x18\x0c \x01(\tH\x01\x12?\n\x16parked_accessory_state\x18\x0e \x01(\x0b2\x1f.CarServer.ParkedAccessoryState\x12=\n\x15charge_schedule_state\x18\x0f \x01(\x0b2\x1e.CarServer.ChargeScheduleState\x12O\n\x1epreconditioning_schedule_state\x18\x10 \x01(\x0b2\'.CarServer.PreconditioningScheduleState\x12&\n\tsoh_state\x18\x11 \x01(\x0b2\x13.CarServer.SohState\x12\x0f\n\x07unknown\x18\x12 \x01(\x0c\x129\n\x13tire_pressure_state\x18\x13 \x01(\x0b2\x1c.CarServer.TirePressureState\x12*\n\x0bmedia_state\x18\x14 \x01(\x0b2\x15.CarServer.MediaState\x127\n\x12media_detail_state\x18\x15 \x01(\x0b2\x1b.CarServer.MediaDetailState\x12;\n\x14vehicle_detail_state\x18\x16 \x01(\x0b2\x1d.CarServer.VehicleDetailState\x12=\n\x15software_update_state\x18\x17 \x01(\x0b2\x1e.CarServer.SoftwareUpdateState\x12A\n\x17parental_controls_state\x18\x18 \x01(\x0b2 .CarServer.ParentalControlsState\x12*\n\x0balert_state\x18\x19 \x01(\x0b2\x15.CarServer.AlertState\x123\n\x10light_show_state\x18\x1a \x01(\x0b2\x19.CarServer.LightShowState\x129\n\x13vehicle_image_state\x18\x1b \x01(\x0b2\x1c.CarServer.VehicleImageState\x124\n\x10suspension_state\x18\x1d \x01(\x0b2\x1a.CarServer.SuspensionState\x12N\n\x1echild_presence_detection_state\x18\x1e \x01(\x0b2&.CarServer.ChildPresenceDetectionState\x12#\n\x18supports_optional_fields\x18\xe7\x07 \x01(\x08H\x02B\x1d\n\x1boptional_proto_json_versionB\x18\n\x16optional_upload_reasonB#\n!optional_supports_optional_fields"\xb7\x15\n\rClosuresState\x12 \n\x16door_open_driver_front\x18e \x01(\x08H\x00\x12\x1f\n\x15door_open_driver_rear\x18f \x01(\x08H\x01\x12#\n\x19door_open_passenger_front\x18g \x01(\x08H\x02\x12"\n\x18door_open_passenger_rear\x18h \x01(\x08H\x03\x12\x1f\n\x15door_open_trunk_front\x18i \x01(\x08H\x04\x12\x1e\n\x14door_open_trunk_rear\x18j \x01(\x08H\x05\x12"\n\x18window_open_driver_front\x18k \x01(\x08H\x06\x12%\n\x1bwindow_open_passenger_front\x18l \x01(\x08H\x07\x12!\n\x17window_open_driver_rear\x18m \x01(\x08H\x08\x12$\n\x1awindow_open_passenger_rear\x18n \x01(\x08H\t\x12=\n\x0esun_roof_state\x18\x0b \x01(\x0b2%.CarServer.ClosuresState.SunRoofState\x12\x1f\n\x15sun_roof_percent_open\x18p \x01(\x05H\n\x12\x10\n\x06locked\x18q \x01(\x08H\x0b\x12\x19\n\x0fis_user_present\x18r \x01(\x08H\x0c\x12C\n\x14center_display_state\x18\x0f \x01(\x0b2%.CarServer.ClosuresState.DisplayState\x12\x16\n\x0cremote_start\x18t \x01(\x08H\r\x12\x14\n\nvalet_mode\x18u \x01(\x08H\x0e\x12\x1a\n\x10valet_pin_needed\x18v \x01(\x08H\x0f\x12C\n\x11sentry_mode_state\x18\x13 \x01(\x0b2(.CarServer.ClosuresState.SentryModeState\x12\x1f\n\x15sentry_mode_available\x18x \x01(\x08H\x10\x123\n\x10speed_limit_mode\x18\x16 \x01(\x0b2\x19.CarServer.SpeedLimitMode\x12.\n\rtonneau_state\x18\x17 \x01(\x0e2\x15.VCSEC.ClosureState_EH\x11\x12\x1e\n\x14tonneau_percent_open\x18\x18 \x01(\rH\x12\x12\x1b\n\x11tonneau_in_motion\x18\x19 \x01(\x08H\x13\x12\x1f\n\x15has_automatic_tonneau\x18\x1a \x01(\x08H\x14\x12 \n\x16has_side_storage_doors\x18\x1b \x01(\x08H\x15\x12%\n\x1bdoor_open_side_storage_left\x18\x1c \x01(\x08H\x16\x12&\n\x1cdoor_open_side_storage_right\x18\x1d \x01(\x08H\x17\x12.\n\ttimestamp\x18\xd0\x0f \x01(\x0b2\x1a.google.protobuf.Timestamp\x1a\xea\x01\n\x0cSunRoofState\x12"\n\x07Unknown\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12&\n\x0bCalibrating\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12!\n\x06Closed\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1f\n\x04Open\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12!\n\x06Moving\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1f\n\x04Vent\x18\x06 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type\x1a\xf2\x02\n\x0cDisplayState\x12\x1e\n\x03Off\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03Dim\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12$\n\tAccessory\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1d\n\x02On\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12"\n\x07Driving\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12#\n\x08Charging\x18\x06 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1f\n\x04Lock\x18\x07 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12!\n\x06Sentry\x18\x08 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03Dog\x18\t \x01(\x0b2\x0f.CarServer.VoidH\x00\x12(\n\rEntertainment\x18\n \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type\x1a\xe2\x01\n\x0fSentryModeState\x12\x1e\n\x03Off\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1f\n\x04Idle\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05Armed\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05Aware\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05Panic\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05Quiet\x18\x06 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04typeB!\n\x1foptional_door_open_driver_frontB \n\x1eoptional_door_open_driver_rearB$\n"optional_door_open_passenger_frontB#\n!optional_door_open_passenger_rearB \n\x1eoptional_door_open_trunk_frontB\x1f\n\x1doptional_door_open_trunk_rearB#\n!optional_window_open_driver_frontB&\n$optional_window_open_passenger_frontB"\n optional_window_open_driver_rearB%\n#optional_window_open_passenger_rearB \n\x1eoptional_sun_roof_percent_openB\x11\n\x0foptional_lockedB\x1a\n\x18optional_is_user_presentB\x17\n\x15optional_remote_startB\x15\n\x13optional_valet_modeB\x1b\n\x19optional_valet_pin_neededB \n\x1eoptional_sentry_mode_availableB\x18\n\x16optional_tonneau_stateB\x1f\n\x1doptional_tonneau_percent_openB\x1c\n\x1aoptional_tonneau_in_motionB \n\x1eoptional_has_automatic_tonneauB!\n\x1foptional_has_side_storage_doorsB&\n$optional_door_open_side_storage_leftB\'\n%optional_door_open_side_storage_right"\xda\x03\n\x13ChargeScheduleState\x123\n\x10charge_schedules\x18\x01 \x03(\x0b2\x19.CarServer.ChargeSchedule\x12;\n\x16charge_schedule_window\x18\x02 \x01(\x0b2\x19.CarServer.ChargeScheduleH\x00\x12\x17\n\rcharge_buffer\x18\x03 \x01(\x05H\x01\x12"\n\x18max_num_charge_schedules\x18\x04 \x01(\rH\x02\x12\x17\n\rnext_schedule\x18\x05 \x01(\x08H\x03\x12&\n\x1cshow_schedule_complete_state\x18\x06 \x01(\x08H\x04\x12.\n\ttimestamp\x18\xd0\x0f \x01(\x0b2\x1a.google.protobuf.TimestampB!\n\x1foptional_charge_schedule_windowB\x18\n\x16optional_charge_bufferB#\n!optional_max_num_charge_schedulesB\x18\n\x16optional_next_scheduleB\'\n%optional_show_schedule_complete_state"\x8f\x03\n\x1cPreconditioningScheduleState\x12?\n\x16precondition_schedules\x18\x01 \x03(\x0b2\x1f.CarServer.PreconditionSchedule\x12J\n\x1fpreconditioning_schedule_window\x18\x02 \x01(\x0b2\x1f.CarServer.PreconditionScheduleH\x00\x12(\n\x1emax_num_precondition_schedules\x18\x03 \x01(\rH\x01\x12\x17\n\rnext_schedule\x18\x04 \x01(\x08H\x02\x12.\n\ttimestamp\x18\xd0\x0f \x01(\x0b2\x1a.google.protobuf.TimestampB*\n(optional_preconditioning_schedule_windowB)\n\'optional_max_num_precondition_schedulesB\x18\n\x16optional_next_schedule"\x87\x02\n\x0eSpeedLimitMode\x12\x10\n\x06active\x18g \x01(\x08H\x00\x12\x16\n\x0cpin_code_set\x18h \x01(\x08H\x01\x12\x17\n\rmax_limit_mph\x18j \x01(\x02H\x02\x12\x17\n\rmin_limit_mph\x18k \x01(\x02H\x03\x12\x1b\n\x11current_limit_mph\x18l \x01(\x02H\x04B\x11\n\x0foptional_activeB\x17\n\x15optional_pin_code_setB\x18\n\x16optional_max_limit_mphB\x18\n\x16optional_min_limit_mphB\x1c\n\x1aoptional_current_limit_mph"\xe8\x05\n\x18ParentalControlsSettings\x12\x1d\n\x13speed_limit_enabled\x18\x01 \x01(\x08H\x00\x12\x17\n\rmax_limit_mph\x18\x02 \x01(\x02H\x01\x12\x17\n\rmin_limit_mph\x18\x03 \x01(\x02H\x02\x12\x1b\n\x11current_limit_mph\x18\x04 \x01(\x02H\x03\x12$\n\x1achill_acceleration_enabled\x18\x05 \x01(\x08H\x04\x12)\n\x1frequire_safety_settings_enabled\x18\x06 \x01(\x08H\x05\x12\x18\n\x0ecurfew_enabled\x18\x07 \x01(\x08H\x06\x12\x1b\n\x11curfew_start_time\x18\x08 \x01(\x05H\x07\x12\x19\n\x0fcurfew_end_time\x18\t \x01(\x05H\x08\x12\x19\n\x0fbrowser_blocked\x18\n \x01(\x08H\t\x12\x19\n\x0ftheater_blocked\x18\x0b \x01(\x08H\n\x12\x18\n\x0earcade_blocked\x18\x0c \x01(\x08H\x0bB\x1e\n\x1coptional_speed_limit_enabledB\x18\n\x16optional_max_limit_mphB\x18\n\x16optional_min_limit_mphB\x1c\n\x1aoptional_current_limit_mphB%\n#optional_chill_acceleration_enabledB*\n(optional_require_safety_settings_enabledB\x19\n\x17optional_curfew_enabledB\x1c\n\x1aoptional_curfew_start_timeB\x1a\n\x18optional_curfew_end_timeB\x1a\n\x18optional_browser_blockedB\x1a\n\x18optional_theater_blockedB\x19\n\x17optional_arcade_blocked"\xa3\x02\n\x15ParentalControlsState\x12-\n\ttimestamp\x18\x01 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12"\n\x18parental_controls_active\x18\x02 \x01(\x08H\x00\x12#\n\x19parental_controls_pin_set\x18\x03 \x01(\x08H\x01\x12G\n\x1aparental_controls_settings\x18\x04 \x01(\x0b2#.CarServer.ParentalControlsSettingsB#\n!optional_parental_controls_activeB$\n"optional_parental_controls_pin_set"\xa2\x06\n\x13SoftwareUpdateState\x12C\n\x06status\x18\x01 \x01(\x0b23.CarServer.SoftwareUpdateState.SoftwareUpdateStatus\x12\x1b\n\x11scheduled_time_ms\x18f \x01(\x04H\x00\x12#\n\x19warning_time_remaining_ms\x18g \x01(\x04H\x01\x12\x1f\n\x15expected_duration_sec\x18h \x01(\rH\x02\x12\x17\n\rdownload_perc\x18i \x01(\rH\x03\x12\x16\n\x0cinstall_perc\x18j \x01(\rH\x04\x12\x11\n\x07version\x18k \x01(\tH\x05\x12-\n\ttimestamp\x18l \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x18\n\x0eauto_scheduled\x18m \x01(\x08H\x06\x1a\x8d\x02\n\x14SoftwareUpdateStatus\x12"\n\x07Unknown\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12%\n\nInstalling\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12$\n\tScheduled\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12$\n\tAvailable\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12.\n\x13DownloadingWifiWait\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12&\n\x0bDownloading\x18\x06 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04typeB\x1c\n\x1aoptional_scheduled_time_msB$\n"optional_warning_time_remaining_msB \n\x1eoptional_expected_duration_secB\x18\n\x16optional_download_percB\x17\n\x15optional_install_percB\x12\n\x10optional_versionB\x19\n\x17optional_auto_scheduled"\xe0\r\n\nDriveState\x12*\n\x0bshift_state\x18\x01 \x01(\x0b2\x15.CarServer.ShiftState\x12\x0f\n\x05speed\x18f \x01(\rH\x00\x12\x0f\n\x05power\x18g \x01(\x05H\x01\x12-\n\ttimestamp\x18\x04 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12*\n odometer_in_hundredths_of_a_mile\x18i \x01(\x05H\x02\x12\x15\n\x0bspeed_float\x18j \x01(\x02H\x03\x12"\n\x18active_route_destination\x18\x07 \x01(\tH\x04\x12)\n\x1factive_route_minutes_to_arrival\x18\x08 \x01(\x02H\x05\x12\'\n\x1dactive_route_miles_to_arrival\x18\t \x01(\x02H\x06\x12,\n"active_route_traffic_minutes_delay\x18\n \x01(\x02H\x07\x12(\n\x1eactive_route_energy_at_arrival\x18\x0b \x01(\x02H\x08\x12\x1b\n\x11last_route_update\x18\x0e \x01(\rH\t\x127\n\x13last_traffic_update\x18\x0f \x01(\x0b2\x1a.google.protobuf.Timestamp\x124\n\x18active_route_coordinates\x18\x0c \x01(\x0b2\x12.CarServer.LatLong\x12(\n\x1efsd_user_total_miles_travelled\x18\x10 \x01(\x02H\n\x12\x1e\n\x14fsd_user_total_miles\x18\x11 \x01(\x02H\x0b\x12+\n!fsd_user_miles_hands_free_current\x18\x12 \x01(\x02H\x0c\x12\'\n\x1dfsd_user_miles_hands_free_max\x18\x13 \x01(\x02H\r\x12$\n\x1afsd_total_miles_this_month\x18\x14 \x01(\x02H\x0e\x12D\n\x13fsd_monthly_history\x18\x15 \x03(\x0b2\'.CarServer.DriveState.FsdMonthlyMileage\x12\x19\n\x0ffsd_streak_days\x18\x16 \x01(\x05H\x0f\x12F\n\x15fsd_last_7_days_usage\x18\x17 \x01(\x0b2\'.CarServer.DriveState.FsdLast7DaysUsage\x12\x1e\n\x14rainbow_road_enabled\x18\x18 \x01(\x08H\x10\x12\x14\n\nfsd_active\x18\x19 \x01(\x08H\x11\x1aO\n\x11FsdMonthlyMileage\x12\x12\n\nyear_month\x18\x01 \x01(\t\x12\x11\n\tfsd_miles\x18\x02 \x01(\x02\x12\x13\n\x0btotal_miles\x18\x03 \x01(\x02\x1aE\n\x11FsdLast7DaysUsage\x12\x1d\n\x15week_starts_on_sunday\x18\x01 \x01(\x08\x12\x11\n\tday_usage\x18\x02 \x03(\x08B\x10\n\x0eoptional_speedB\x10\n\x0eoptional_powerB+\n)optional_odometer_in_hundredths_of_a_mileB\x16\n\x14optional_speed_floatB#\n!optional_active_route_destinationB*\n(optional_active_route_minutes_to_arrivalB(\n&optional_active_route_miles_to_arrivalB-\n+optional_active_route_traffic_minutes_delayB)\n\'optional_active_route_energy_at_arrivalB\x1c\n\x1aoptional_last_route_updateB)\n\'optional_fsd_user_total_miles_travelledB\x1f\n\x1doptional_fsd_user_total_milesB,\n*optional_fsd_user_miles_hands_free_currentB(\n&optional_fsd_user_miles_hands_free_maxB%\n#optional_fsd_total_miles_this_monthB\x1a\n\x18optional_fsd_streak_daysB\x1f\n\x1doptional_rainbow_road_enabledB\x15\n\x13optional_fsd_active"\xffF\n\x0bChargeState\x12<\n\x0echarging_state\x18\x01 \x01(\x0b2$.CarServer.ChargeState.ChargingState\x12=\n\x11fast_charger_type\x18\x02 \x01(\x0b2".CarServer.ChargeState.ChargerType\x12?\n\x12fast_charger_brand\x18\x03 \x01(\x0b2#.CarServer.ChargeState.ChargerBrand\x12\x1a\n\x10charge_limit_soc\x18h \x01(\x05H\x00\x12\x1e\n\x14charge_limit_soc_std\x18i \x01(\x05H\x01\x12\x1e\n\x14charge_limit_soc_min\x18j \x01(\x05H\x02\x12\x1e\n\x14charge_limit_soc_max\x18k \x01(\x05H\x03\x12"\n\x18max_range_charge_counter\x18m \x01(\x05H\x04\x12\x1e\n\x14fast_charger_present\x18n \x01(\x08H\x05\x12\x17\n\rbattery_range\x18o \x01(\x02H\x06\x12\x1b\n\x11est_battery_range\x18p \x01(\x02H\x07\x12\x1d\n\x13ideal_battery_range\x18q \x01(\x02H\x08\x12\x17\n\rbattery_level\x18r \x01(\x05H\t\x12\x1e\n\x14usable_battery_level\x18s \x01(\x05H\n\x12\x1d\n\x13charge_energy_added\x18t \x01(\x02H\x0b\x12"\n\x18charge_miles_added_rated\x18u \x01(\x02H\x0c\x12"\n\x18charge_miles_added_ideal\x18v \x01(\x02H\r\x12\x19\n\x0fcharger_voltage\x18w \x01(\x05H\x0e\x12\x1f\n\x15charger_pilot_current\x18x \x01(\x05H\x0f\x12 \n\x16charger_actual_current\x18y \x01(\x05H\x10\x12\x17\n\rcharger_power\x18z \x01(\x05H\x11\x12 \n\x16minutes_to_full_charge\x18{ \x01(\x05H\x12\x12"\n\x17minutes_to_charge_limit\x18\x8e\x01 \x01(\x05H\x13\x12\x17\n\rtrip_charging\x18} \x01(\x08H\x14\x12\x19\n\x0fcharge_rate_mph\x18~ \x01(\x05H\x15\x12\x1f\n\x15charge_port_door_open\x18\x7f \x01(\x08H\x16\x12;\n\x11conn_charge_cable\x18\x1c \x01(\x0b2 .CarServer.ChargeState.CableType\x12(\n\x1dscheduled_charging_start_time\x18\x81\x01 \x01(\x04H\x17\x12%\n\x1ascheduled_charging_pending\x18\x82\x01 \x01(\x08H\x18\x12<\n\x18scheduled_departure_time\x18\x1f \x01(\x0b2\x1a.google.protobuf.Timestamp\x12%\n\x1auser_charge_enable_request\x18\x84\x01 \x01(\x08H\x19\x12 \n\x15charge_enable_request\x18\x85\x01 \x01(\x08H\x1a\x12\x19\n\x0echarger_phases\x18\x86\x01 \x01(\x05H\x1b\x12:\n\x11charge_port_latch\x18# \x01(\x0b2\x1f.CarServer.ChargePortLatchState\x12(\n\x1dcharge_port_cold_weather_mode\x18\x88\x01 \x01(\x08H\x1c\x12!\n\x16charge_current_request\x18\x89\x01 \x01(\x05H\x1d\x12%\n\x1acharge_current_request_max\x18\x8a\x01 \x01(\x05H\x1e\x12"\n\x17managed_charging_active\x18\x8b\x01 \x01(\x08H\x1f\x12)\n\x1emanaged_charging_user_canceled\x18\x8c\x01 \x01(\x08H \x12&\n\x1bmanaged_charging_start_time\x18\x8d\x01 \x01(\x04H!\x12-\n\ttimestamp\x18, \x01(\x0b2\x1a.google.protobuf.Timestamp\x12>\n\x15preconditioning_times\x18- \x01(\x0b2\x1f.CarServer.PreconditioningTimes\x12@\n\x17off_peak_charging_times\x18. \x01(\x0b2\x1f.CarServer.OffPeakChargingTimes\x12"\n\x17off_peak_hours_end_time\x18\x93\x01 \x01(\rH"\x12P\n\x17scheduled_charging_mode\x18\x94\x01 \x01(\x0e2,.CarServer.ChargeState.ScheduledChargingModeH#\x12\x18\n\rcharging_amps\x18\x95\x01 \x01(\x05H$\x120\n%scheduled_charging_start_time_minutes\x18\x96\x01 \x01(\rH%\x12+\n scheduled_departure_time_minutes\x18\x97\x01 \x01(\rH&\x12"\n\x17preconditioning_enabled\x18\x98\x01 \x01(\x08H\'\x12,\n!scheduled_charging_start_time_app\x18\x99\x01 \x01(\x11H(\x12,\n!supercharger_session_trip_planner\x18\x9a\x01 \x01(\x08H)\x12F\n\x11charge_port_color\x18\x9b\x01 \x01(\x0e2(.CarServer.ChargeState.ChargePortColor_EH*\x12 \n\x15charge_rate_mph_float\x18\x9c\x01 \x01(\x02H+\x12H\n\x13charge_limit_reason\x18\x9d\x01 \x01(\x0e2(.CarServer.ChargeState.ChargeLimitReasonH,\x12@\n\x16managed_charging_state\x18\x9e\x01 \x01(\x0b2\x1f.CarServer.ManagedChargingState\x12!\n\x16charge_cable_unlatched\x18\x9f\x01 \x01(\x08H-\x12;\n\x0coutlet_state\x18\xa0\x01 \x01(\x0e2".CarServer.ChargeState.OutletStateH.\x12B\n\x10power_feed_state\x18\xa1\x01 \x01(\x0e2%.CarServer.ChargeState.PowerFeedStateH/\x12\x1b\n\x10outlet_soc_limit\x18\xa2\x01 \x01(\x05H0\x12\x1f\n\x14power_feed_soc_limit\x18\xa3\x01 \x01(\x05H1\x12 \n\x15outlet_time_remaining\x18\xa4\x01 \x01(\x03H2\x12$\n\x19power_feed_time_remaining\x18\xa5\x01 \x01(\x03H3\x12%\n\x1apowershare_feature_allowed\x18\xa6\x01 \x01(\x08H4\x12%\n\x1apowershare_feature_enabled\x18\xa7\x01 \x01(\x08H5\x12\x1d\n\x12powershare_request\x18\xa8\x01 \x01(\x08H6\x12A\n\x0fpowershare_type\x18\xa9\x01 \x01(\x0e2%.CarServer.ChargeState.PowershareTypeH7\x12E\n\x11powershare_status\x18\xaa\x01 \x01(\x0e2\'.CarServer.ChargeState.PowershareStatusH8\x12N\n\x16powershare_stop_reason\x18\xab\x01 \x01(\x0e2+.CarServer.ChargeState.PowershareStopReasonH9\x12+\n powershare_instantaneous_load_kw\x18\xac\x01 \x01(\x02H:\x12,\n!powershare_vehicle_energy_left_hr\x18\xad\x01 \x01(\x05H;\x12\x1f\n\x14powershare_soc_limit\x18\xae\x01 \x01(\x05H<\x12\x1d\n\x12one_time_soc_limit\x18\xaf\x01 \x01(\x05H=\x12,\n\rhome_location\x18\xb0\x01 \x01(\x0b2\x12.CarServer.LatLongH>\x12,\n\rwork_location\x18\xb1\x01 \x01(\x0b2\x12.CarServer.LatLongH?\x12#\n\x18outlet_max_timer_minutes\x18\xb2\x01 \x01(\x05H@\x12(\n\x1dbatt_heat_min_to_start_charge\x18\xb3\x01 \x01(\x05HA\x124\n)batt_heat_min_to_start_charge_calculating\x18\xb4\x01 \x01(\x08HB\x12\x19\n\x0ehas_ac_outlets\x18\xb5\x01 \x01(\x08HC\x12\x1b\n\x10paid_session_fee\x18\xb7\x01 \x01(\x02HD\x12$\n\x19paid_session_fee_currency\x18\xb8\x01 \x01(\tHE\x12 \n\x15paid_session_kwh_rate\x18\xb9\x01 \x01(\x02HF\x12\x1e\n\x13discharge_limit_soe\x18\xba\x01 \x01(\x05HG\x12\x15\n\nis_roaming\x18\xbb\x01 \x01(\x08HH\x12%\n\x1apaid_session_location_guid\x18\xbc\x01 \x01(\tHI\x12&\n\x1bpaid_session_pricebook_guid\x18\xbd\x01 \x01(\tHJ\x12<\n\x17paid_session_start_time\x18\xbe\x01 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x19\n\x0elow_power_mode\x18\xbf\x01 \x01(\x08HK\x12#\n\x18low_power_mode_forced_on\x18\xc0\x01 \x01(\x08HL\x12\x1f\n\x14convenience_features\x18\xc1\x01 \x01(\rHM\x12$\n\x19keep_accessory_power_mode\x18\xc2\x01 \x01(\x08HN\x12!\n\x16should_hide_range_info\x18\xc6\x01 \x01(\x08HO\x1a\xb7\x01\n\tCableType\x12\x1e\n\x03SNA\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03IEC\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03SAE\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05GB_AC\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05GB_DC\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type\x1a\xdf\x02\n\x0bChargerType\x12\x1e\n\x03SNA\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\'\n\x0cSupercharger\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12"\n\x07Chademo\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1d\n\x02Gb\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12*\n\x0fACSingleWireCAN\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05Combo\x18\x06 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12*\n\x0fMCSingleWireCAN\x18\x07 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05Other\x18\x08 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05Tesla\x18\t \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type\x1a\xc3\x02\n\rChargingState\x12"\n\x07Unknown\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\'\n\x0cDisconnected\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12"\n\x07NoPower\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12#\n\x08Starting\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12#\n\x08Charging\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12#\n\x08Complete\x18\x06 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12"\n\x07Stopped\x18\x07 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12&\n\x0bCalibrating\x18\x08 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type\x1aX\n\x0cChargerBrand\x12 \n\x05Tesla\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03SNA\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type"z\n\x15ScheduledChargingMode\x12\x1c\n\x18ScheduledChargingModeOff\x10\x00\x12 \n\x1cScheduledChargingModeStartAt\x10\x01\x12!\n\x1dScheduledChargingModeDepartBy\x10\x02"\xc2\x02\n\x11ChargePortColor_E\x12\x16\n\x12ChargePortColorOff\x10\x00\x12\x16\n\x12ChargePortColorRed\x10\x01\x12\x18\n\x14ChargePortColorGreen\x10\x02\x12\x17\n\x13ChargePortColorBlue\x10\x03\x12\x18\n\x14ChargePortColorWhite\x10\x04\x12 \n\x1cChargePortColorFlashingGreen\x10\x05\x12 \n\x1cChargePortColorFlashingAmber\x10\x06\x12\x18\n\x14ChargePortColorAmber\x10\x07\x12\x17\n\x13ChargePortColorRave\x10\x08\x12\x18\n\x14ChargePortColorDebug\x10\t\x12\x1f\n\x1bChargePortColorFlashingBlue\x10\n"\xf3\x01\n\x11ChargeLimitReason\x12\x1c\n\x18ChargeLimitReasonUnknown\x10\x00\x12\x19\n\x15ChargeLimitReasonNone\x10\x01\x12\x19\n\x15ChargeLimitReasonEvse\x10\x02\x12 \n\x1cChargeLimitReasonBattTempLow\x10\x03\x12\x1c\n\x18ChargeLimitReasonHighSoc\x10\x04\x12\x1a\n\x16ChargeLimitReasonCabin\x10\x05\x12.\n*ChargeLimitReasonEvseRelocationRecommended\x10\x06"S\n\x0bOutletState\x12\x12\n\x0eOutletStateOff\x10\x00\x12\x1a\n\x16OutletStateCabinAndBed\x10\x01\x12\x14\n\x10OutletStateCabin\x10\x02"_\n\x0ePowerFeedState\x12\x15\n\x11PowerFeedStateOff\x10\x00\x12\x1d\n\x19PowerFeedStateCabinAndBed\x10\x01\x12\x17\n\x13PowerFeedStateCabin\x10\x02"\xd0\x01\n\x10PowershareStatus\x12\x1c\n\x18PowershareStatusInactive\x10\x00\x12\x18\n\x14PowershareStatusInit\x10\x01\x12\x1a\n\x16PowershareStatusActive\x10\x02\x12\x1b\n\x17PowershareStatusStopped\x10\x03\x12\x1f\n\x1bPowershareStatusHandshaking\x10\x04\x12*\n&PowershareStatusActiveReconnectingSoon\x10\x05"p\n\x0ePowershareType\x12\x16\n\x12PowershareTypeNone\x10\x00\x12\x16\n\x12PowershareTypeLoad\x10\x01\x12\x16\n\x12PowershareTypeHome\x10\x02\x12\x16\n\x12PowershareTypeGrid\x10\x03"\xdf\x02\n\x14PowershareStopReason\x12\x1c\n\x18PowershareStopReasonNone\x10\x00\x12!\n\x1dPowershareStopReasonSOCTooLow\x10\x01\x12\x1d\n\x19PowershareStopReasonRetry\x10\x02\x12\x1d\n\x19PowershareStopReasonFault\x10\x03\x12\x1c\n\x18PowershareStopReasonUser\x10\x04\x12$\n PowershareStopReasonReconnecting\x10\x05\x12&\n"PowershareStopReasonAuthentication\x10\x06\x12\'\n#PowershareStopReasonAdapterUpdating\x10\x07\x123\n/PowershareStopReasonAdapterInitializationFailed\x10\x08B\x1b\n\x19optional_charge_limit_socB\x1f\n\x1doptional_charge_limit_soc_stdB\x1f\n\x1doptional_charge_limit_soc_minB\x1f\n\x1doptional_charge_limit_soc_maxB#\n!optional_max_range_charge_counterB\x1f\n\x1doptional_fast_charger_presentB\x18\n\x16optional_battery_rangeB\x1c\n\x1aoptional_est_battery_rangeB\x1e\n\x1coptional_ideal_battery_rangeB\x18\n\x16optional_battery_levelB\x1f\n\x1doptional_usable_battery_levelB\x1e\n\x1coptional_charge_energy_addedB#\n!optional_charge_miles_added_ratedB#\n!optional_charge_miles_added_idealB\x1a\n\x18optional_charger_voltageB \n\x1eoptional_charger_pilot_currentB!\n\x1foptional_charger_actual_currentB\x18\n\x16optional_charger_powerB!\n\x1foptional_minutes_to_full_chargeB"\n optional_minutes_to_charge_limitB\x18\n\x16optional_trip_chargingB\x1a\n\x18optional_charge_rate_mphB \n\x1eoptional_charge_port_door_openB(\n&optional_scheduled_charging_start_timeB%\n#optional_scheduled_charging_pendingB%\n#optional_user_charge_enable_requestB \n\x1eoptional_charge_enable_requestB\x19\n\x17optional_charger_phasesB(\n&optional_charge_port_cold_weather_modeB!\n\x1foptional_charge_current_requestB%\n#optional_charge_current_request_maxB"\n optional_managed_charging_activeB)\n\'optional_managed_charging_user_canceledB&\n$optional_managed_charging_start_timeB"\n optional_off_peak_hours_end_timeB"\n optional_scheduled_charging_modeB\x18\n\x16optional_charging_ampsB0\n.optional_scheduled_charging_start_time_minutesB+\n)optional_scheduled_departure_time_minutesB"\n optional_preconditioning_enabledB,\n*optional_scheduled_charging_start_time_appB,\n*optional_supercharger_session_trip_plannerB\x1c\n\x1aoptional_charge_port_colorB \n\x1eoptional_charge_rate_mph_floatB\x1e\n\x1coptional_charge_limit_reasonB!\n\x1foptional_charge_cable_unlatchedB\x17\n\x15optional_outlet_stateB\x1b\n\x19optional_power_feed_stateB\x19\n\x17option_outlet_soc_limitB\x1d\n\x1boption_power_feed_soc_limitB\x1e\n\x1coption_outlet_time_remainingB"\n option_power_feed_time_remainingB%\n#optional_powershare_feature_allowedB%\n#optional_powershare_feature_enabledB\x1d\n\x1boptional_powershare_requestB\x1a\n\x18optional_powershare_typeB\x1c\n\x1aoptional_powershare_statusB!\n\x1foptional_powershare_stop_reasonB+\n)optional_powershare_instantaneous_load_kwB,\n*optional_powershare_vehicle_energy_left_hrB\x1f\n\x1doptional_powershare_soc_limitB\x1d\n\x1boptional_one_time_soc_limitB\x18\n\x16optional_home_locationB\x18\n\x16optional_work_locationB#\n!optional_outlet_max_timer_minutesB(\n&optional_batt_heat_min_to_start_chargeB4\n2optional_batt_heat_min_to_start_charge_calculatingB\x19\n\x17optional_has_ac_outletsB\x1b\n\x19optional_paid_session_feeB$\n"optional_paid_session_fee_currencyB \n\x1eoptional_paid_session_kwh_rateB\x1e\n\x1coptional_discharge_limit_soeB\x15\n\x13optional_is_roamingB%\n#optional_paid_session_location_guidB&\n$optional_paid_session_pricebook_guidB\x19\n\x17optional_low_power_modeB#\n!optional_low_power_mode_forced_onB\x1f\n\x1doptional_convenience_featuresB$\n"optional_keep_accessory_power_modeB!\n\x1foptional_should_hide_range_infoJ\x04\x08\x08\x10\tJ\x04\x08*\x10+J\x04\x08+\x10,"\xaf\x02\n\x14ManagedChargingState\x12<\n\x15charge_on_solar_state\x18\x01 \x01(\x0b2\x1d.CarServer.ChargeOnSolarState\x12%\n\x1bcharge_on_solar_gateway_din\x18\x02 \x01(\tH\x00\x12!\n\x17tesla_electric_asset_id\x18\x03 \x01(\tH\x01\x12 \n\x16minutes_to_lower_limit\x18\x04 \x01(\x05H\x02B&\n$optional_charge_on_solar_gateway_dinB"\n optional_tesla_electric_asset_idB!\n\x1foptional_minutes_to_lower_limit"\xe7\x04\n\x12ChargeOnSolarState\x12>\n\x0bnot_allowed\x18\x01 \x01(\x0b2\'.CarServer.ChargeOnSolarStateNotAllowedH\x00\x12Q\n\x15no_charge_recommended\x18\x02 \x01(\x0b20.CarServer.ChargeOnSolarStateNoChargeRecommendedH\x00\x12V\n\x18charging_on_excess_solar\x18\x03 \x01(\x0b22.CarServer.ChargeOnSolarStateChargingOnExcessSolarH\x00\x12O\n\x14charging_on_anything\x18\x04 \x01(\x0b2/.CarServer.ChargeOnSolarStateChargingOnAnythingH\x00\x12B\n\ruser_disabled\x18\x06 \x01(\x0b2).CarServer.ChargeOnSolarStateUserDisabledH\x00\x12K\n\x12waiting_for_server\x18\x07 \x01(\x0b2-.CarServer.ChargeOnSolarStateWaitingForServerH\x00\x123\n\x05error\x18\x08 \x01(\x0b2".CarServer.ChargeOnSolarStateErrorH\x00\x12@\n\x0cuser_stopped\x18\t \x01(\x0b2(.CarServer.ChargeOnSolarStateUserStoppedH\x00B\x07\n\x05stateJ\x04\x08\x05\x10\x06"\x1e\n\x1cChargeOnSolarStateNotAllowed"e\n%ChargeOnSolarStateNoChargeRecommended\x12<\n\x06reason\x18\x01 \x01(\x0e2,.ManagedCharging.ChargeOnSolarNoChargeReason")\n\'ChargeOnSolarStateChargingOnExcessSolar"&\n$ChargeOnSolarStateChargingOnAnything" \n\x1eChargeOnSolarStateUserDisabled"$\n"ChargeOnSolarStateWaitingForServer"\x19\n\x17ChargeOnSolarStateError"\x1f\n\x1dChargeOnSolarStateUserStopped"\x9d\r\n\rLocationState\x12\x12\n\x08latitude\x18e \x01(\x02H\x00\x12\x13\n\tlongitude\x18f \x01(\x02H\x01\x12\x11\n\x07heading\x18g \x01(\rH\x02\x12\x13\n\tgps_as_of\x18h \x01(\x04H\x03\x12#\n\x19native_location_supported\x18i \x01(\x08H\x04\x12\x19\n\x0fnative_latitude\x18j \x01(\x02H\x05\x12\x1a\n\x10native_longitude\x18k \x01(\x02H\x06\x12?\n\x0bnative_type\x18\x08 \x01(\x0b2*.CarServer.LocationState.GPSCoordinateType\x12\x1c\n\x12corrected_latitude\x18m \x01(\x02H\x07\x12\x1d\n\x13corrected_longitude\x18n \x01(\x02H\x08\x12-\n\ttimestamp\x18\x0b \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x19\n\x0fhomelink_nearby\x18p \x01(\x08H\t\x12\x17\n\rlocation_name\x18q \x01(\tH\n\x12\x16\n\x0cgeo_latitude\x18r \x01(\x02H\x0b\x12\x17\n\rgeo_longitude\x18s \x01(\x02H\x0c\x12\x15\n\x0bgeo_heading\x18t \x01(\x02H\r\x12\x17\n\rgeo_elevation\x18u \x01(\x02H\x0e\x12\x16\n\x0cgeo_accuracy\x18v \x01(\x02H\x0f\x12\x1d\n\x13estimated_gps_valid\x18w \x01(\x08H\x10\x12#\n\x19estimated_to_raw_distance\x18x \x01(\x02H\x11\x12\x1d\n\x13supercharger_trt_id\x18y \x01(\x05H\x12\x12\x1b\n\x11native_latitude_d\x18z \x01(\x01H\x13\x12\x1c\n\x12native_longitude_d\x18{ \x01(\x01H\x14\x12\x18\n\x0egeo_latitude_d\x18| \x01(\x01H\x15\x12\x19\n\x0fgeo_longitude_d\x18} \x01(\x01H\x16\x12\x1f\n\x15geo_hw_raw_latitude_d\x18~ \x01(\x01H\x17\x12 \n\x16geo_hw_raw_longitude_d\x18\x7f \x01(\x01H\x18\x12"\n\x17geo_horizontal_accuracy\x18\x80\x01 \x01(\x02H\x19\x1a[\n\x11GPSCoordinateType\x12\x1e\n\x03GCJ\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03WGS\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04typeB\x13\n\x11optional_latitudeB\x14\n\x12optional_longitudeB\x12\n\x10optional_headingB\x14\n\x12optional_gps_as_ofB$\n"optional_native_location_supportedB\x1a\n\x18optional_native_latitudeB\x1b\n\x19optional_native_longitudeB\x1d\n\x1boptional_corrected_latitudeB\x1e\n\x1coptional_corrected_longitudeB\x1a\n\x18optional_homelink_nearbyB\x18\n\x16optional_location_nameB\x17\n\x15optional_geo_latitudeB\x18\n\x16optional_geo_longitudeB\x16\n\x14optional_geo_headingB\x18\n\x16optional_geo_elevationB\x17\n\x15optional_geo_accuracyB\x1e\n\x1coptional_estimated_gps_validB$\n"optional_estimated_to_raw_distanceB\x1e\n\x1coptional_supercharger_trt_idB\x1c\n\x1aoptional_native_latitude_dB\x1d\n\x1boptional_native_longitude_dB\x19\n\x17optional_geo_latitude_dB\x1a\n\x18optional_geo_longitude_dB \n\x1eoptional_geo_hw_raw_latitude_dB!\n\x1foptional_geo_hw_raw_longitude_dB"\n optional_geo_horizontal_accuracyJ\x04\x08\x0c\x10\r"\xd4&\n\x0cVehicleState\x12=\n\x15software_update_state\x18& \x01(\x0b2\x1e.CarServer.SoftwareUpdateState\x127\n\x12legacy_media_state\x18\' \x01(\x0b2\x1b.CarServer.LegacyMediaState\x12-\n\ttimestamp\x18+ \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x17\n\x0ffeature_bitmask\x187 \x03(\r\x12C\n\x1ftpms_last_seen_pressure_time_fl\x18: \x01(\x0b2\x1a.google.protobuf.Timestamp\x12C\n\x1ftpms_last_seen_pressure_time_fr\x18; \x01(\x0b2\x1a.google.protobuf.Timestamp\x12C\n\x1ftpms_last_seen_pressure_time_rl\x18< \x01(\x0b2\x1a.google.protobuf.Timestamp\x12C\n\x1ftpms_last_seen_pressure_time_rr\x18= \x01(\x0b2\x1a.google.protobuf.Timestamp\x125\n\x11legacy_media_info\x18H \x01(\x0b2\x1a.CarServer.LegacyMediaInfo\x12.\n$allow_authorized_mobile_devices_only\x18I \x01(\x08H\x00\x124\n\tguestMode\x18J \x01(\x0b2!.CarServer.VehicleState.GuestMode\x12\x17\n\rdrive_rail_on\x18K \x01(\x08H\x01\x12\x1e\n\x14pin_to_drive_enabled\x18L \x01(\x08H\x02\x12\x1e\n\x14pin_to_drive_pin_set\x18M \x01(\x08H\x03\x12\x1b\n\x11frontfoglights_on\x18N \x01(\x08H\x04\x12\x1a\n\x10rearfoglights_on\x18O \x01(\x08H\x05\x12\x17\n\rheadlights_on\x18P \x01(\x08H\x06\x12\x1b\n\x11highbeamlights_on\x18Q \x01(\x08H\x07\x12\x19\n\x0ftrailer_mode_on\x18R \x01(\x08H\x08\x12&\n\x1ctrailer_light_test_available\x18S \x01(\x08H\t\x12&\n\x1ctrailer_light_test_requested\x18T \x01(\x08H\n\x12%\n\x1btruck_bed_lights_brightness\x18V \x01(\rH\x0b\x12!\n\x17signed_cmd_service_mode\x18W \x01(\x08H\x0c\x12&\n\x1caccessory_lightbar_middle_on\x18X \x01(\x08H\r\x12\x18\n\x0etransport_mode\x18Y \x01(\x08H\x0e\x12*\n truck_bed_lights_auto_brightness\x18Z \x01(\rH\x0f\x12%\n\x1btruck_bed_lights_auto_state\x18[ \x01(\x08H\x10\x12,\n"truck_bed_lights_controls_disabled\x18\\ \x01(\x08H\x11\x12\x1b\n\x11service_mode_auth\x18] \x01(\tH\x12\x12)\n\x1fservice_gtw_diag_session_active\x18^ \x01(\x08H\x13\x12\x16\n\x0cfactory_mode\x18_ \x01(\x08H\x14\x12\x1e\n\x14training_wheels_mode\x18` \x01(\x08H\x15\x121\n\x0egtw_diag_level\x18a \x01(\x0e2\x17.CarServer.GtwDiagLevelH\x16\x12"\n\x18parental_controls_active\x18b \x01(\x08H\x17\x12#\n\x19parental_controls_pin_set\x18c \x01(\x08H\x18\x12G\n\x1aparental_controls_settings\x18d \x01(\x0b2#.CarServer.ParentalControlsSettings\x12\x15\n\x0bapi_version\x18e \x01(\rH\x19\x12\x15\n\x0bcar_version\x18l \x01(\tH\x1a\x12\x1a\n\x10detailed_version\x18m \x01(\tH\x1b\x12\x18\n\x0eautopilot_hash\x18n \x01(\tH\x1c\x12\x16\n\x0cvehicle_name\x18v \x01(\tH\x1d\x12!\n\x17notifications_supported\x18x \x01(\x08H\x1e\x12 \n\x16remote_start_supported\x18y \x01(\x08H\x1f\x12\x1e\n\x14remote_start_enabled\x18z \x01(\x08H \x12\x1e\n\x13last_autopark_error\x18\x83\x01 \x01(\tH!\x12 \n\x15homelink_device_count\x18\x85\x01 \x01(\rH"\x12!\n\x16smart_summon_available\x18\x87\x01 \x01(\x08H#\x12&\n\x1bsummon_standby_mode_enabled\x18\x88\x01 \x01(\x08H$\x12\x15\n\npatsy_mode\x18\x8d\x01 \x01(\x08H%\x12\x1b\n\x10webcam_available\x18\x8e\x01 \x01(\x08H&\x12&\n\x1bvehicle_self_test_requested\x18\x90\x01 \x01(\x08H\'\x12%\n\x1avehicle_self_test_progress\x18\x91\x01 \x01(\rH(\x12\x1d\n\x12calendar_supported\x18\x94\x01 \x01(\x08H)\x12&\n\x1bdashcam_clip_save_available\x18\x95\x01 \x01(\x08H*\x121\n\rdashcam_state\x18\x96\x01 \x01(\x0e2\x17.CarServer.DashCamStateH+\x12\x1b\n\x10tpms_pressure_fl\x18\x97\x01 \x01(\x02H,\x12\x1b\n\x10tpms_pressure_fr\x18\x98\x01 \x01(\x02H-\x12\x1b\n\x10tpms_pressure_rl\x18\x99\x01 \x01(\x02H.\x12\x1b\n\x10tpms_pressure_rr\x18\x9a\x01 \x01(\x02H/\x12\x17\n\x0cservice_mode\x18\x9c\x01 \x01(\x08H0\x12\x1c\n\x11service_mode_plus\x18\x9d\x01 \x01(\x08H1\x12\x1f\n\x14tpms_hard_warning_fl\x18\xa2\x01 \x01(\x08H2\x12\x1f\n\x14tpms_hard_warning_fr\x18\xa3\x01 \x01(\x08H3\x12\x1f\n\x14tpms_hard_warning_rl\x18\xa4\x01 \x01(\x08H4\x12\x1f\n\x14tpms_hard_warning_rr\x18\xa5\x01 \x01(\x08H5\x12\x1f\n\x14tpms_soft_warning_fl\x18\xa6\x01 \x01(\x08H6\x12\x1f\n\x14tpms_soft_warning_fr\x18\xa7\x01 \x01(\x08H7\x12\x1f\n\x14tpms_soft_warning_rl\x18\xa8\x01 \x01(\x08H8\x12\x1f\n\x14tpms_soft_warning_rr\x18\xa9\x01 \x01(\x08H9\x12\x1f\n\x14tpms_rcp_front_value\x18\xaa\x01 \x01(\x02H:\x12\x1e\n\x13tpms_rcp_rear_value\x18\xab\x01 \x01(\x02H;\x12\x1f\n\x14fsd_software_version\x18\xac\x01 \x01(\tH<\x121\n\x0eautopilot_base\x18\xc4\x01 \x01(\x0e2\x18.CarServer.AutopilotBase\x12D\n\x18autopilot_override_state\x18\xc5\x01 \x01(\x0e2!.CarServer.AutopilotOverrideState\x12)\n\x1eautopilot_override_expire_time\x18\xc6\x01 \x01(\x03H=\x1a$\n\tGuestMode\x12\x17\n\x0fGuestModeActive\x18\x01 \x01(\x08B/\n-optional_allow_authorized_mobile_devices_onlyB\x18\n\x16optional_drive_rail_onB\x1f\n\x1doptional_pin_to_drive_enabledB\x1f\n\x1doptional_pin_to_drive_pin_setB\x1c\n\x1aoptional_frontfoglights_onB\x1b\n\x19optional_rearfoglights_onB\x18\n\x16optional_headlights_onB\x1c\n\x1aoptional_highbeamlights_onB\x1a\n\x18optional_trailer_mode_onB\'\n%optional_trailer_light_test_availableB\'\n%optional_trailer_light_test_requestedB&\n$optional_truck_bed_lights_brightnessB"\n optional_signed_cmd_service_modeB\'\n%optional_accessory_lightbar_middle_onB\x19\n\x17optional_transport_modeB+\n)optional_truck_bed_lights_auto_brightnessB&\n$optional_truck_bed_lights_auto_stateB-\n+optional_truck_bed_lights_controls_disabledB\x1c\n\x1aoptional_service_mode_authB*\n(optional_service_gtw_diag_session_activeB\x17\n\x15optional_factory_modeB\x1f\n\x1doptional_training_wheels_modeB\x19\n\x17optional_gtw_diag_levelB#\n!optional_parental_controls_activeB$\n"optional_parental_controls_pin_setB\x16\n\x14optional_api_versionB\x16\n\x14optional_car_versionB\x1b\n\x19optional_detailed_versionB\x19\n\x17optional_autopilot_hashB\x17\n\x15optional_vehicle_nameB"\n optional_notifications_supportedB!\n\x1foptional_remote_start_supportedB\x1f\n\x1doptional_remote_start_enabledB\x1e\n\x1coptional_last_autopark_errorB \n\x1eoptional_homelink_device_countB!\n\x1foptional_smart_summon_availableB&\n$optional_summon_standby_mode_enabledB\x15\n\x13optional_patsy_modeB\x1b\n\x19optional_webcam_availableB&\n$optional_vehicle_self_test_requestedB%\n#optional_vehicle_self_test_progressB\x1d\n\x1boptional_calendar_supportedB&\n$optional_dashcam_clip_save_availableB\x18\n\x16optional_dashcam_stateB\x1b\n\x19optional_tpms_pressure_flB\x1b\n\x19optional_tpms_pressure_frB\x1b\n\x19optional_tpms_pressure_rlB\x1b\n\x19optional_tpms_pressure_rrB\x17\n\x15optional_service_modeB\x1c\n\x1aoptional_service_mode_plusB\x1f\n\x1doptional_tpms_hard_warning_flB\x1f\n\x1doptional_tpms_hard_warning_frB\x1f\n\x1doptional_tpms_hard_warning_rlB\x1f\n\x1doptional_tpms_hard_warning_rrB\x1f\n\x1doptional_tpms_soft_warning_flB\x1f\n\x1doptional_tpms_soft_warning_frB\x1f\n\x1doptional_tpms_soft_warning_rlB\x1f\n\x1doptional_tpms_soft_warning_rrB\x1f\n\x1doptional_tpms_rcp_front_valueB\x1e\n\x1coptional_tpms_rcp_rear_valueB\x1f\n\x1doptional_fsd_software_versionB)\n\'optional_autopilot_override_expire_time"W\n\x10LegacyMediaState\x12 \n\x16remote_control_enabled\x18e \x01(\x08H\x00B!\n\x1foptional_remote_control_enabled"\xbf\x03\n\x0fLegacyMediaInfo\x12=\n\x15media_playback_status\x18\x01 \x01(\x0e2\x1e.CarServer.MediaPlaybackStatus\x12\x14\n\x0caudio_volume\x18\x02 \x01(\x02\x12\x1c\n\x14now_playing_duration\x18\x03 \x01(\x05\x12\x1b\n\x13now_playing_elapsed\x18\x04 \x01(\x05\x126\n\x12now_playing_source\x18\x05 \x01(\x0e2\x1a.CarServer.MediaSourceType\x12!\n\x19now_playing_source_string\x18\x06 \x01(\t\x12\x1a\n\x12now_playing_artist\x18\x07 \x01(\t\x12\x19\n\x11now_playing_title\x18\x08 \x01(\t\x12\x19\n\x11now_playing_album\x18\t \x01(\t\x12\x1b\n\x13now_playing_station\x18\n \x01(\t\x12\x1e\n\x16audio_volume_increment\x18\x0b \x01(\x02\x12\x18\n\x10audio_volume_max\x18\x0c \x01(\x02\x12\x18\n\x10a2dp_source_name\x18\x0f \x01(\t"\xbb\'\n\x0cClimateState\x12\x1d\n\x13inside_temp_celsius\x18e \x01(\x02H\x00\x12\x1e\n\x14outside_temp_celsius\x18f \x01(\x02H\x01\x12\x1d\n\x13driver_temp_setting\x18g \x01(\x02H\x02\x12 \n\x16passenger_temp_setting\x18h \x01(\x02H\x03\x12\x1d\n\x13left_temp_direction\x18i \x01(\x05H\x04\x12\x1e\n\x14right_temp_direction\x18j \x01(\x05H\x05\x12\x1f\n\x15is_front_defroster_on\x18k \x01(\x08H\x06\x12\x1e\n\x14is_rear_defroster_on\x18l \x01(\x08H\x07\x12\x14\n\nfan_status\x18m \x01(\x05H\x08\x12\x17\n\ris_climate_on\x18n \x01(\x08H\t\x12 \n\x16min_avail_temp_celsius\x18o \x01(\x02H\n\x12 \n\x16max_avail_temp_celsius\x18p \x01(\x02H\x0b\x12\x1a\n\x10seat_heater_left\x18q \x01(\x05H\x0c\x12\x1b\n\x11seat_heater_right\x18r \x01(\x05H\r\x12\x1f\n\x15seat_heater_rear_left\x18s \x01(\x05H\x0e\x12 \n\x16seat_heater_rear_right\x18t \x01(\x05H\x0f\x12!\n\x17seat_heater_rear_center\x18u \x01(\x05H\x10\x12%\n\x1bseat_heater_rear_right_back\x18v \x01(\x05H\x11\x12$\n\x1aseat_heater_rear_left_back\x18w \x01(\x05H\x12\x12%\n\x1bseat_heater_third_row_right\x18x \x01(\x05H\x13\x12$\n\x1aseat_heater_third_row_left\x18y \x01(\x05H\x14\x12\x18\n\x0ebattery_heater\x18z \x01(\x08H\x15\x12!\n\x17battery_heater_no_power\x18{ \x01(\x08H\x16\x12\x1f\n\x15steering_wheel_heater\x18} \x01(\x08H\x17\x12\x1c\n\x12wiper_blade_heater\x18~ \x01(\x08H\x18\x12\x1d\n\x13side_mirror_heaters\x18\x7f \x01(\x08H\x19\x12\x1d\n\x12is_preconditioning\x18\x80\x01 \x01(\x08H\x1a\x12(\n\x1dremote_heater_control_enabled\x18\x81\x01 \x01(\x08H\x1b\x12F\n\x13climate_keeper_mode\x18\x1e \x01(\x0b2).CarServer.ClimateState.ClimateKeeperMode\x12-\n\ttimestamp\x18! \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x1c\n\x11bioweapon_mode_on\x18\x86\x01 \x01(\x08H\x1c\x129\n\x0cdefrost_mode\x18# \x01(\x0b2#.CarServer.ClimateState.DefrostMode\x12"\n\x17is_auto_conditioning_on\x18\x88\x01 \x01(\x08H\x1d\x12!\n\x16auto_seat_climate_left\x18\x89\x01 \x01(\x08H\x1e\x12"\n\x17auto_seat_climate_right\x18\x8a\x01 \x01(\x08H\x1f\x12\x1e\n\x13seat_fan_front_left\x18\x8b\x01 \x01(\x05H \x12\x1f\n\x14seat_fan_front_right\x18\x8c\x01 \x01(\x05H!\x12*\n\x1fallow_cabin_overheat_protection\x18\x8d\x01 \x01(\x08H"\x126\n+supports_fan_only_cabin_overheat_protection\x18\x8e\x01 \x01(\x08H#\x12W\n\x19cabin_overheat_protection\x18\x8f\x01 \x01(\x0e21.CarServer.ClimateState.CabinOverheatProtection_EH$\x125\n*cabin_overheat_protection_actively_cooling\x18\x90\x01 \x01(\x08H%\x12P\n\x1acop_activation_temperature\x18\x92\x01 \x01(\x0e2).CarServer.ClimateState.CopActivationTempH&\x12#\n\x18auto_steering_wheel_heat\x18\x93\x01 \x01(\x08H\'\x12=\n\x19steering_wheel_heat_level\x18\x94\x01 \x01(\x0e2\x17.CarServer.StwHeatLevelH(\x12E\n\x11hvac_auto_request\x18\x96\x01 \x01(\x0e2\'.CarServer.ClimateState.HvacAutoRequestH)\x12N\n\x16cop_not_running_reason\x18\x97\x01 \x01(\x0e2+.CarServer.ClimateState.COPNotRunningReasonH*\x12#\n\x18seat_fan_second_row_left\x18\x98\x01 \x01(\x05H+\x12$\n\x19seat_fan_second_row_right\x18\x99\x01 \x01(\x05H,\x12?\n\x0edog_mode_state\x18\x9a\x01 \x01(\x0e2$.CarServer.ClimateState.DogModeStateH-\x1a\xc0\x01\n\x11ClimateKeeperMode\x12"\n\x07Unknown\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03Off\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1d\n\x02On\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03Dog\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05Party\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type\x1ax\n\x0bDefrostMode\x12\x1e\n\x03Off\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12!\n\x06Normal\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03Max\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type"E\n\x0fHvacAutoRequest\x12\x15\n\x11HvacAutoRequestOn\x10\x00\x12\x1b\n\x17HvacAutoRequestOverride\x10\x01"~\n\x19CabinOverheatProtection_E\x12\x1e\n\x1aCabinOverheatProtectionOff\x10\x00\x12\x1d\n\x19CabinOverheatProtectionOn\x10\x01\x12"\n\x1eCabinOverheatProtectionFanOnly\x10\x02"t\n\x11SeatHeaterLevel_E\x12\x16\n\x12SeatHeaterLevelOff\x10\x00\x12\x16\n\x12SeatHeaterLevelLow\x10\x01\x12\x16\n\x12SeatHeaterLevelMed\x10\x02\x12\x17\n\x13SeatHeaterLevelHigh\x10\x03"y\n\x12SeatCoolingLevel_E\x12\x17\n\x13SeatCoolingLevelOff\x10\x00\x12\x17\n\x13SeatCoolingLevelLow\x10\x01\x12\x17\n\x13SeatCoolingLevelMed\x10\x02\x12\x18\n\x14SeatCoolingLevelHigh\x10\x03"\x87\x01\n\x11CopActivationTemp\x12 \n\x1cCopActivationTempUnspecified\x10\x00\x12\x18\n\x14CopActivationTempLow\x10\x01\x12\x1b\n\x17CopActivationTempMedium\x10\x02\x12\x19\n\x15CopActivationTempHigh\x10\x03"\x9e\x02\n\x13COPNotRunningReason\x12\x1f\n\x1bCOPNotRunningReasonNoReason\x10\x00\x12&\n"COPNotRunningReasonUserInteraction\x10\x01\x12/\n+COPNotRunningReasonEnergyConsumptionReached\x10\x02\x12\x1e\n\x1aCOPNotRunningReasonTimeout\x10\x03\x12#\n\x1fCOPNotRunningReasonLowSolarLoad\x10\x04\x12\x1c\n\x18COPNotRunningReasonFault\x10\x05\x12*\n&COPNotRunningReasonCabinBelowThreshold\x10\x06"\xdb\x01\n\x0cDogModeState\x12 \n\x1cDogModeStateUnavailableFault\x10\x00\x12!\n\x1dDogModeStateUnavailableTooHot\x10\x01\x12\x19\n\x15DogModeStateAvailable\x10\x02\x12\x1e\n\x1aDogModeStateRunningNominal\x10\x03\x12\x1c\n\x18DogModeStateRunningFault\x10\x04\x12-\n)DogModeStateRunningTemperatureMonitorTrip\x10\x05B\x1e\n\x1coptional_inside_temp_celsiusB\x1f\n\x1doptional_outside_temp_celsiusB\x1e\n\x1coptional_driver_temp_settingB!\n\x1foptional_passenger_temp_settingB\x1e\n\x1coptional_left_temp_directionB\x1f\n\x1doptional_right_temp_directionB \n\x1eoptional_is_front_defroster_onB\x1f\n\x1doptional_is_rear_defroster_onB\x15\n\x13optional_fan_statusB\x18\n\x16optional_is_climate_onB!\n\x1foptional_min_avail_temp_celsiusB!\n\x1foptional_max_avail_temp_celsiusB\x1b\n\x19optional_seat_heater_leftB\x1c\n\x1aoptional_seat_heater_rightB \n\x1eoptional_seat_heater_rear_leftB!\n\x1foptional_seat_heater_rear_rightB"\n optional_seat_heater_rear_centerB&\n$optional_seat_heater_rear_right_backB%\n#optional_seat_heater_rear_left_backB&\n$optional_seat_heater_third_row_rightB%\n#optional_seat_heater_third_row_leftB\x19\n\x17optional_battery_heaterB"\n optional_battery_heater_no_powerB \n\x1eoptional_steering_wheel_heaterB\x1d\n\x1boptional_wiper_blade_heaterB\x1e\n\x1coptional_side_mirror_heatersB\x1d\n\x1boptional_is_preconditioningB(\n&optional_remote_heater_control_enabledB\x1c\n\x1aoptional_bioweapon_mode_onB"\n optional_is_auto_conditioning_onB!\n\x1foptional_auto_seat_climate_leftB"\n optional_auto_seat_climate_rightB\x1e\n\x1coptional_seat_fan_front_leftB\x1f\n\x1doptional_seat_fan_front_rightB*\n(optional_allow_cabin_overheat_protectionB6\n4optional_supports_fan_only_cabin_overheat_protectionB$\n"optional_cabin_overheat_protectionB5\n3optional_cabin_overheat_protection_actively_coolingB%\n#optional_cop_activation_temperatureB#\n!optional_auto_steering_wheel_heatB$\n"optional_steering_wheel_heat_levelB\x1c\n\x1aoptional_hvac_auto_requestB!\n\x1foptional_cop_not_running_reasonB#\n!optional_seat_fan_second_row_leftB$\n"optional_seat_fan_second_row_rightB\x19\n\x17optional_dog_mode_stateJ\x06\x08\x91\x01\x10\x92\x01"\xae3\n\x11TirePressureState\x12-\n\ttimestamp\x18\x01 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x1a\n\x10tpms_pressure_fl\x18\x02 \x01(\x02H\x00\x12\x1a\n\x10tpms_pressure_fr\x18\x03 \x01(\x02H\x01\x12\x1a\n\x10tpms_pressure_rl\x18\x04 \x01(\x02H\x02\x12\x1a\n\x10tpms_pressure_rr\x18\x05 \x01(\x02H\x03\x12C\n\x1ftpms_last_seen_pressure_time_fl\x18\x06 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12C\n\x1ftpms_last_seen_pressure_time_fr\x18\x07 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12C\n\x1ftpms_last_seen_pressure_time_rl\x18\x08 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12C\n\x1ftpms_last_seen_pressure_time_rr\x18\t \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x1e\n\x14tpms_hard_warning_fl\x18\n \x01(\x08H\x04\x12\x1e\n\x14tpms_hard_warning_fr\x18\x0b \x01(\x08H\x05\x12\x1e\n\x14tpms_hard_warning_rl\x18\x0c \x01(\x08H\x06\x12\x1e\n\x14tpms_hard_warning_rr\x18\r \x01(\x08H\x07\x12\x1e\n\x14tpms_soft_warning_fl\x18\x0e \x01(\x08H\x08\x12\x1e\n\x14tpms_soft_warning_fr\x18\x0f \x01(\x08H\t\x12\x1e\n\x14tpms_soft_warning_rl\x18\x10 \x01(\x08H\n\x12\x1e\n\x14tpms_soft_warning_rr\x18\x11 \x01(\x08H\x0b\x12\x1e\n\x14tpms_rcp_front_value\x18\x12 \x01(\x02H\x0c\x12\x1d\n\x13tpms_rcp_rear_value\x18\x13 \x01(\x02H\r\x12\x1e\n\x14tpms_pressure_re1_l0\x18\x14 \x01(\x02H\x0e\x12\x1e\n\x14tpms_pressure_re1_l1\x18\x15 \x01(\x02H\x0f\x12\x1e\n\x14tpms_pressure_re1_r0\x18\x16 \x01(\x02H\x10\x12\x1e\n\x14tpms_pressure_re1_r1\x18\x17 \x01(\x02H\x11\x12\x1e\n\x14tpms_pressure_re2_l0\x18\x18 \x01(\x02H\x12\x12\x1e\n\x14tpms_pressure_re2_l1\x18\x19 \x01(\x02H\x13\x12\x1e\n\x14tpms_pressure_re2_r0\x18\x1a \x01(\x02H\x14\x12\x1e\n\x14tpms_pressure_re2_r1\x18\x1b \x01(\x02H\x15\x12G\n#tpms_last_seen_pressure_time_re1_l0\x18\x1c \x01(\x0b2\x1a.google.protobuf.Timestamp\x12G\n#tpms_last_seen_pressure_time_re1_l1\x18\x1d \x01(\x0b2\x1a.google.protobuf.Timestamp\x12G\n#tpms_last_seen_pressure_time_re1_r0\x18\x1e \x01(\x0b2\x1a.google.protobuf.Timestamp\x12G\n#tpms_last_seen_pressure_time_re1_r1\x18\x1f \x01(\x0b2\x1a.google.protobuf.Timestamp\x12G\n#tpms_last_seen_pressure_time_re2_l0\x18 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12G\n#tpms_last_seen_pressure_time_re2_l1\x18! \x01(\x0b2\x1a.google.protobuf.Timestamp\x12G\n#tpms_last_seen_pressure_time_re2_r0\x18" \x01(\x0b2\x1a.google.protobuf.Timestamp\x12G\n#tpms_last_seen_pressure_time_re2_r1\x18# \x01(\x0b2\x1a.google.protobuf.Timestamp\x12"\n\x18tpms_hard_warning_re1_l0\x18$ \x01(\x08H\x16\x12"\n\x18tpms_hard_warning_re1_l1\x18% \x01(\x08H\x17\x12"\n\x18tpms_hard_warning_re1_r0\x18& \x01(\x08H\x18\x12"\n\x18tpms_hard_warning_re1_r1\x18\' \x01(\x08H\x19\x12"\n\x18tpms_hard_warning_re2_l0\x18( \x01(\x08H\x1a\x12"\n\x18tpms_hard_warning_re2_l1\x18) \x01(\x08H\x1b\x12"\n\x18tpms_hard_warning_re2_r0\x18* \x01(\x08H\x1c\x12"\n\x18tpms_hard_warning_re2_r1\x18+ \x01(\x08H\x1d\x12"\n\x18tpms_soft_warning_re1_l0\x18, \x01(\x08H\x1e\x12"\n\x18tpms_soft_warning_re1_l1\x18- \x01(\x08H\x1f\x12"\n\x18tpms_soft_warning_re1_r0\x18. \x01(\x08H \x12"\n\x18tpms_soft_warning_re1_r1\x18/ \x01(\x08H!\x12"\n\x18tpms_soft_warning_re2_l0\x180 \x01(\x08H"\x12"\n\x18tpms_soft_warning_re2_l1\x181 \x01(\x08H#\x12"\n\x18tpms_soft_warning_re2_r0\x182 \x01(\x08H$\x12"\n\x18tpms_soft_warning_re2_r1\x183 \x01(\x08H%\x12\x1d\n\x13tpms_temperature_fl\x184 \x01(\x02H&\x12\x1d\n\x13tpms_temperature_fr\x185 \x01(\x02H\'\x12\x1d\n\x13tpms_temperature_rl\x186 \x01(\x02H(\x12\x1d\n\x13tpms_temperature_rr\x187 \x01(\x02H)\x12!\n\x17tpms_temperature_re1_l0\x188 \x01(\x02H*\x12!\n\x17tpms_temperature_re1_l1\x189 \x01(\x02H+\x12!\n\x17tpms_temperature_re1_r0\x18: \x01(\x02H,\x12!\n\x17tpms_temperature_re1_r1\x18; \x01(\x02H-\x12!\n\x17tpms_temperature_re2_l0\x18< \x01(\x02H.\x12!\n\x17tpms_temperature_re2_l1\x18= \x01(\x02H/\x12!\n\x17tpms_temperature_re2_r0\x18> \x01(\x02H0\x12!\n\x17tpms_temperature_re2_r1\x18? \x01(\x02H1\x12*\n tpms_temperature_hard_warning_fl\x18@ \x01(\x08H2\x12*\n tpms_temperature_hard_warning_fr\x18A \x01(\x08H3\x12*\n tpms_temperature_hard_warning_rl\x18B \x01(\x08H4\x12*\n tpms_temperature_hard_warning_rr\x18C \x01(\x08H5\x12.\n$tpms_temperature_hard_warning_re1_l0\x18D \x01(\x08H6\x12.\n$tpms_temperature_hard_warning_re1_l1\x18E \x01(\x08H7\x12.\n$tpms_temperature_hard_warning_re1_r0\x18F \x01(\x08H8\x12.\n$tpms_temperature_hard_warning_re1_r1\x18G \x01(\x08H9\x12.\n$tpms_temperature_hard_warning_re2_l0\x18H \x01(\x08H:\x12.\n$tpms_temperature_hard_warning_re2_l1\x18I \x01(\x08H;\x12.\n$tpms_temperature_hard_warning_re2_r0\x18J \x01(\x08H<\x12.\n$tpms_temperature_hard_warning_re2_r1\x18K \x01(\x08H=\x12*\n tpms_temperature_soft_warning_fl\x18L \x01(\x08H>\x12*\n tpms_temperature_soft_warning_fr\x18M \x01(\x08H?\x12*\n tpms_temperature_soft_warning_rl\x18N \x01(\x08H@\x12*\n tpms_temperature_soft_warning_rr\x18O \x01(\x08HA\x12.\n$tpms_temperature_soft_warning_re1_l0\x18P \x01(\x08HB\x12.\n$tpms_temperature_soft_warning_re1_l1\x18Q \x01(\x08HC\x12.\n$tpms_temperature_soft_warning_re1_r0\x18R \x01(\x08HD\x12.\n$tpms_temperature_soft_warning_re1_r1\x18S \x01(\x08HE\x12.\n$tpms_temperature_soft_warning_re2_l0\x18T \x01(\x08HF\x12.\n$tpms_temperature_soft_warning_re2_l1\x18U \x01(\x08HG\x12.\n$tpms_temperature_soft_warning_re2_r0\x18V \x01(\x08HH\x12.\n$tpms_temperature_soft_warning_re2_r1\x18W \x01(\x08HIB\x1b\n\x19optional_tpms_pressure_flB\x1b\n\x19optional_tpms_pressure_frB\x1b\n\x19optional_tpms_pressure_rlB\x1b\n\x19optional_tpms_pressure_rrB\x1f\n\x1doptional_tpms_hard_warning_flB\x1f\n\x1doptional_tpms_hard_warning_frB\x1f\n\x1doptional_tpms_hard_warning_rlB\x1f\n\x1doptional_tpms_hard_warning_rrB\x1f\n\x1doptional_tpms_soft_warning_flB\x1f\n\x1doptional_tpms_soft_warning_frB\x1f\n\x1doptional_tpms_soft_warning_rlB\x1f\n\x1doptional_tpms_soft_warning_rrB\x1f\n\x1doptional_tpms_rcp_front_valueB\x1e\n\x1coptional_tpms_rcp_rear_valueB\x1f\n\x1doptional_tpms_pressure_re1_l0B\x1f\n\x1doptional_tpms_pressure_re1_l1B\x1f\n\x1doptional_tpms_pressure_re1_r0B\x1f\n\x1doptional_tpms_pressure_re1_r1B\x1f\n\x1doptional_tpms_pressure_re2_l0B\x1f\n\x1doptional_tpms_pressure_re2_l1B\x1f\n\x1doptional_tpms_pressure_re2_r0B\x1f\n\x1doptional_tpms_pressure_re2_r1B#\n!optional_tpms_hard_warning_re1_l0B#\n!optional_tpms_hard_warning_re1_l1B#\n!optional_tpms_hard_warning_re1_r0B#\n!optional_tpms_hard_warning_re1_r1B#\n!optional_tpms_hard_warning_re2_l0B#\n!optional_tpms_hard_warning_re2_l1B#\n!optional_tpms_hard_warning_re2_r0B#\n!optional_tpms_hard_warning_re2_r1B#\n!optional_tpms_soft_warning_re1_l0B#\n!optional_tpms_soft_warning_re1_l1B#\n!optional_tpms_soft_warning_re1_r0B#\n!optional_tpms_soft_warning_re1_r1B#\n!optional_tpms_soft_warning_re2_l0B#\n!optional_tpms_soft_warning_re2_l1B#\n!optional_tpms_soft_warning_re2_r0B#\n!optional_tpms_soft_warning_re2_r1B\x1e\n\x1coptional_tpms_temperature_flB\x1e\n\x1coptional_tpms_temperature_frB\x1e\n\x1coptional_tpms_temperature_rlB\x1e\n\x1coptional_tpms_temperature_rrB"\n optional_tpms_temperature_re1_l0B"\n optional_tpms_temperature_re1_l1B"\n optional_tpms_temperature_re1_r0B"\n optional_tpms_temperature_re1_r1B"\n optional_tpms_temperature_re2_l0B"\n optional_tpms_temperature_re2_l1B"\n optional_tpms_temperature_re2_r0B"\n optional_tpms_temperature_re2_r1B+\n)optional_tpms_temperature_hard_warning_flB+\n)optional_tpms_temperature_hard_warning_frB+\n)optional_tpms_temperature_hard_warning_rlB+\n)optional_tpms_temperature_hard_warning_rrB/\n-optional_tpms_temperature_hard_warning_re1_l0B/\n-optional_tpms_temperature_hard_warning_re1_l1B/\n-optional_tpms_temperature_hard_warning_re1_r0B/\n-optional_tpms_temperature_hard_warning_re1_r1B/\n-optional_tpms_temperature_hard_warning_re2_l0B/\n-optional_tpms_temperature_hard_warning_re2_l1B/\n-optional_tpms_temperature_hard_warning_re2_r0B/\n-optional_tpms_temperature_hard_warning_re2_r1B+\n)optional_tpms_temperature_soft_warning_flB+\n)optional_tpms_temperature_soft_warning_frB+\n)optional_tpms_temperature_soft_warning_rlB+\n)optional_tpms_temperature_soft_warning_rrB/\n-optional_tpms_temperature_soft_warning_re1_l0B/\n-optional_tpms_temperature_soft_warning_re1_l1B/\n-optional_tpms_temperature_soft_warning_re1_r0B/\n-optional_tpms_temperature_soft_warning_re1_r1B/\n-optional_tpms_temperature_soft_warning_re2_l0B/\n-optional_tpms_temperature_soft_warning_re2_l1B/\n-optional_tpms_temperature_soft_warning_re2_r0B/\n-optional_tpms_temperature_soft_warning_re2_r1"\xe3\x04\n\nMediaState\x12-\n\ttimestamp\x18\x01 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12 \n\x16remote_control_enabled\x18\x02 \x01(\x08H\x00\x12\x1c\n\x12now_playing_artist\x18\x03 \x01(\tH\x01\x12\x1b\n\x11now_playing_title\x18\x04 \x01(\tH\x02\x12\x16\n\x0caudio_volume\x18\x05 \x01(\x02H\x03\x12 \n\x16audio_volume_increment\x18\x06 \x01(\x02H\x04\x12\x1a\n\x10audio_volume_max\x18\x07 \x01(\x02H\x05\x128\n\x12now_playing_source\x18\x08 \x01(\x0e2\x1a.CarServer.MediaSourceTypeH\x06\x12?\n\x15media_playback_status\x18\t \x01(\x0e2\x1e.CarServer.MediaPlaybackStatusH\x07B!\n\x1foptional_remote_control_enabledB\x1d\n\x1boptional_now_playing_artistB\x1c\n\x1aoptional_now_playing_titleB\x17\n\x15optional_audio_volumeB!\n\x1foptional_audio_volume_incrementB\x1b\n\x19optional_audio_volume_maxB\x1d\n\x1boptional_now_playing_sourceB \n\x1eoptional_media_playback_status"\xb8\x05\n\x10MediaDetailState\x12-\n\ttimestamp\x18\x01 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x1e\n\x14now_playing_duration\x18\x02 \x01(\x05H\x00\x12\x1d\n\x13now_playing_elapsed\x18\x03 \x01(\x05H\x01\x12#\n\x19now_playing_source_string\x18\x04 \x01(\tH\x02\x12\x1b\n\x11now_playing_album\x18\x05 \x01(\tH\x03\x12\x1d\n\x13now_playing_station\x18\x06 \x01(\tH\x04\x12\x1a\n\x10a2dp_source_name\x18\x07 \x01(\tH\x05\x129\n\x15recent_theater_source\x18\x08 \x01(\x0e2\x18.CarServer.TheaterSourceH\x06\x12&\n\x1crecent_theater_source_string\x18\t \x01(\tH\x07\x12#\n\x19theater_source_is_playing\x18\n \x01(\x08H\x08B\x1f\n\x1doptional_now_playing_durationB\x1e\n\x1coptional_now_playing_elapsedB$\n"optional_now_playing_source_stringB\x1c\n\x1aoptional_now_playing_albumB\x1e\n\x1coptional_now_playing_stationB\x1b\n\x19optional_a2dp_source_nameB \n\x1eoptional_recent_theater_sourceB\'\n%optional_recent_theater_source_stringB$\n"optional_theater_source_is_playing"\xd0\x01\n\nShiftState\x12"\n\x07Invalid\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1c\n\x01P\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1c\n\x01R\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1c\n\x01N\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1c\n\x01D\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03SNA\x18\x06 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type"\xe2\x02\n\x0bGuiSettings\x12-\n\ttimestamp\x18\x07 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x1a\n\x10gui_24_hour_time\x18h \x01(\x08H\x00\x12\x1a\n\x10show_range_units\x18j \x01(\x08H\x01\x12I\n\x16gui_tirepressure_units\x18l \x01(\x0e2\'.CarServer.GuiSettings.TirePressureUnitH\x02"D\n\x10TirePressureUnit\x12\x17\n\x13TirePressureUnitPsi\x10\x00\x12\x17\n\x13TirePressureUnitBar\x10\x01B\x1b\n\x19optional_gui_24_hour_timeB\x1b\n\x19optional_show_range_unitsB!\n\x1foptional_gui_tirepressure_units"\xb28\n\rVehicleConfig\x12E\n\x12interior_trim_type\x18\x1c \x01(\x0b2).CarServer.VehicleConfig.InteriorTrimType\x12E\n\x12exterior_trim_type\x18# \x01(\x0b2).CarServer.VehicleConfig.ExteriorTrimType\x12\x1c\n\x12red_brake_calipers\x18= \x01(\x08H\x00\x12\x1b\n\x11use_range_badging\x18g \x01(\x08H\x01\x12\x1c\n\x12range_plus_badging\x18h \x01(\x08H\x02\x12\x1c\n\x12has_ludicrous_mode\x18i \x01(\x08H\x03\x12\x1c\n\x12can_actuate_trunks\x18j \x01(\x08H\x04\x12\x1c\n\x12has_air_suspension\x18n \x01(\x08H\x05\x12\x1a\n\x10ece_restrictions\x18x \x01(\x08H\x06\x12\x14\n\neu_vehicle\x18y \x01(\x08H\x07\x12\x1f\n\x15motorized_charge_port\x18z \x01(\x08H\x08\x12(\n\x1ecan_accept_navigation_requests\x18| \x01(\x08H\t\x12\x15\n\x0bkey_version\x18} \x01(\rH\n\x12\x18\n\x0emobile_enabled\x18~ \x01(\x08H\x0b\x12 \n\x15default_charge_to_max\x18\x86\x01 \x01(\x08H\x0c\x12*\n\x1fsteering_wheel_heater_installed\x18\x88\x01 \x01(\x08H\r\x12 \n\x15sentry_mode_supported\x18\x89\x01 \x01(\x08H\x0e\x12\x1d\n\x12homelink_supported\x18\x8a\x01 \x01(\x08H\x0f\x12\x1b\n\x10webcam_supported\x18\x8b\x01 \x01(\x08H\x10\x12#\n\x18bioweapon_mode_supported\x18\x8d\x01 \x01(\x08H\x11\x12&\n\x1bdashcam_clip_save_supported\x18\x8e\x01 \x01(\x08H\x12\x12\x12\n\x07has_pws\x18\x8f\x01 \x01(\x08H\x13\x12\x15\n\nutc_offset\x18\x90\x01 \x01(\x11H\x14\x12\x1b\n\x10has_seat_cooling\x18\x91\x01 \x01(\x08H\x15\x12\x1f\n\x14paint_color_override\x18\x92\x01 \x01(\tH\x16\x12#\n\x18tpms_pressures_supported\x18\x93\x01 \x01(\x08H\x17\x12\x1a\n\x0fvehicle_badging\x18\x94\x01 \x01(\rH\x18\x12!\n\x16exterior_trim_override\x18\x95\x01 \x01(\tH\x19\x12A\n\rheadlamp_type\x18\x96\x01 \x01(\x0e2\'.CarServer.VehicleConfig.HeadlampType_EH\x1a\x12B\n\x0eaux_park_lamps\x18\x9a\x01 \x01(\x0e2\'.CarServer.VehicleConfig.AuxParkLamps_EH\x1b\x12\x13\n\x08is_raven\x18\x9b\x01 \x01(\x08H\x1c\x12 \n\x15has_auto_seat_climate\x18\x9c\x01 \x01(\x08H\x1d\x12%\n\x1ahas_front_row_seat_heaters\x18\x9d\x01 \x01(\x08H\x1e\x12%\n\x1ahas_third_row_seat_heaters\x18\x9e\x01 \x01(\x08H\x1f\x12\x1e\n\x13supports_qr_pairing\x18\x9f\x01 \x01(\x08H \x12$\n\x19disable_window_vent_close\x18\xa1\x01 \x01(\x08H!\x12"\n\x17webcam_selfie_supported\x18\xa2\x01 \x01(\x08H"\x12&\n\x1bcop_user_set_temp_supported\x18\xa3\x01 \x01(\x08H#\x12\x1c\n\x11has_auto_stw_heat\x18\xa4\x01 \x01(\x08H$\x12A\n\x0erearlight_type\x18\xa5\x01 \x01(\x0e2&.CarServer.VehicleConfig.RearLightTypeH%\x12?\n\x15rear_seat_heater_type\x18\xa6\x01 \x01(\x0e2\x1d.CarServer.RearSeatHeaterTypeH&\x12 \n\x15webcam_grid_supported\x18\xa7\x01 \x01(\x08H\'\x12\x1a\n\x0fhas_tesla_badge\x18\xa8\x01 \x01(\x08H(\x12\x1d\n\x12has_tesla_wordmark\x18\xa9\x01 \x01(\x08H)\x12-\n\x0bfascia_type\x18\xaa\x01 \x01(\x0e2\x15.CarServer.FasciaTypeH*\x12D\n\x17accessory_lightbar_type\x18\xab\x01 \x01(\x0e2 .CarServer.AccessoryLightbarTypeH+\x12#\n\x18sentry_preview_supported\x18\xac\x01 \x01(\x08H,\x12@\n\x0eseat_trim_type\x18\xad\x01 \x01(\x0e2%.CarServer.VehicleConfig.SeatTrimTypeH-\x12C\n\x0fdrivetrain_type\x18\xae\x01 \x01(\x0e2\'.CarServer.VehicleConfig.DrivetrainTypeH.\x12\x1e\n\x13lightshow_supported\x18\xaf\x01 \x01(\x08H/\x12(\n\x1dmobile_dashcam_viewer_version\x18\xb0\x01 \x01(\rH0\x12#\n\x18has_premium_connectivity\x18\xb1\x01 \x01(\x08H1\x12\x1b\n\x10car_wrap_enabled\x18\xb2\x01 \x01(\x08H2\x12\x1f\n\x14supports_ride_height\x18\xb3\x01 \x01(\x08H3\x12&\n\x1bsupports_set_arrival_energy\x18\xb4\x01 \x01(\x08H4\x12*\n\x1fsupports_pillar_camera_metadata\x18\xb5\x01 \x01(\x08H5\x12/\n\x0cchassis_type\x18\xb6\x01 \x01(\x0e2\x16.CarServer.ChassisTypeH6\x12\x1b\n\x10is_china_vehicle\x18\xb7\x01 \x01(\x08H7\x12 \n\x15is_using_unreal_apviz\x18\xb8\x01 \x01(\x08H8\x12,\n!supports_flexible_dashcam_bitrate\x18\xb9\x01 \x01(\x08H9\x12S\n\x18front_fascia_camera_type\x18\xba\x01 \x01(\x0e2..CarServer.VehicleConfig.FrontFasciaCameraTypeH:\x12Y\n\x1bturn_indicator_control_type\x18\xbb\x01 \x01(\x0e21.CarServer.VehicleConfig.TurnIndicatorControlTypeH;\x12\x1b\n\x10has_rear_display\x18\xbc\x01 \x01(\x08H<\x12\x1c\n\x11window_tint_color\x18\xbd\x01 \x01(\tH=\x12S\n\x18interior_upper_trim_type\x18\xbe\x01 \x01(\x0e2..CarServer.VehicleConfig.InteriorUpperTrimTypeH>\x12N\n\x15badging_material_type\x18\xbf\x01 \x01(\x0e2,.CarServer.VehicleConfig.BadgingMaterialTypeH?\x12\x1f\n\x14webcam_interior_only\x18\xc0\x01 \x01(\x08H@\x12\x17\n\x0ccountry_code\x18\xc1\x01 \x01(\tHA\x12F\n\x11bed_lighting_type\x18\xc2\x01 \x01(\x0e2(.CarServer.VehicleConfig.BedLightingTypeHB\x12Y\n\x1brear_light_hardware_variant\x18\xc3\x01 \x01(\x0e21.CarServer.VehicleConfig.RearLightHardwareVariantHC\x121\n\x0eautopilot_base\x18\xc4\x01 \x01(\x0e2\x18.CarServer.AutopilotBase\x12D\n\x18autopilot_override_state\x18\xc5\x01 \x01(\x0e2!.CarServer.AutopilotOverrideState\x12)\n\x1eautopilot_override_expire_time\x18\xc6\x01 \x01(\x03HD\x1a\xd5\x03\n\x10InteriorTrimType\x12(\n\rBLACKCONSOLE2\x18\x06 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12(\n\rWHITECONSOLE2\x18\x07 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12#\n\x08ALLBLACK\x18\x08 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12(\n\rBLACKANDWHITE\x18\t \x01(\x0b2\x0f.CarServer.VoidH\x00\x12&\n\x0bWALNUTCREAM\x18\x0c \x01(\x0b2\x0f.CarServer.VoidH\x00\x12&\n\x0bWALNUTWHITE\x18\r \x01(\x0b2\x0f.CarServer.VoidH\x00\x12%\n\nEBONYBLACK\x18\x0e \x01(\x0b2\x0f.CarServer.VoidH\x00\x12&\n\x0bCARBONCREAM\x18\x0f \x01(\x0b2\x0f.CarServer.VoidH\x00\x12&\n\x0bCARBONWHITE\x18\x10 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12&\n\x0bCARBONBLACK\x18\x11 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\'\n\x0cTACTICALGREY\x18\x12 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type\x1al\n\x10ExteriorTrimType\x12)\n\x0eSTANDARDCHROME\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12%\n\nSATINBLACK\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type"m\n\x0eAuxParkLamps_E\x12\x16\n\x12AuxParkLampsNaBase\x10\x00\x12\x19\n\x15AuxParkLampsNaPremium\x10\x01\x12\x12\n\x0eAuxParkLampsEu\x10\x02\x12\x14\n\x10AuxParkLampsNone\x10\x03"]\n\x13BadgingMaterialType\x12#\n\x1fBadgingMaterialTypeChromeSilver\x10\x00\x12!\n\x1dBadgingMaterialTypeBlackMatte\x10\x01"F\n\x0fBedLightingType\x12\x17\n\x13BedLightingTypeBase\x10\x00\x12\x1a\n\x16BedLightingTypePremium\x10\x01"]\n\x0eDrivetrainType\x12\x15\n\x11DrivetrainTypeRWD\x10\x00\x12\x15\n\x11DrivetrainTypeAWD\x10\x01\x12\x1d\n\x19DrivetrainTypeAWDTriMotor\x10\x02"x\n\x15FrontFasciaCameraType\x12\x1d\n\x19FrontFasciaCameraTypeNone\x10\x00\x12\x1f\n\x1bFrontFasciaCameraTypeIMX963\x10\x01\x12\x1f\n\x1bFrontFasciaCameraTypeIMX00N\x10\x02"\x9a\x01\n\x0eHeadlampType_E\x12\x17\n\x13HeadlampTypePremium\x10\x00\x12\x16\n\x12HeadlampTypeGlobal\x10\x01\x12\x17\n\x13HeadlampTypeHalogen\x10\x02\x12\x13\n\x0fHeadlampTypeHid\x10\x03\x12\x13\n\x0fHeadlampTypeLed\x10\x04\x12\x14\n\x10HeadlampTypeBase\x10\x05"b\n\x15InteriorUpperTrimType\x12"\n\x1eInteriorUpperTrimTypePolarGrey\x10\x00\x12%\n!InteriorUpperTrimTypeMammothBlack\x10\x01"\xaf\x01\n\x18RearLightHardwareVariant\x12#\n\x1fRearLightHardwareVariantUnknown\x10\x00\x12 \n\x1cRearLightHardwareVariantBase\x10\x01\x12%\n!RearLightHardwareVariantPremiumV1\x10\x02\x12%\n!RearLightHardwareVariantPremiumV2\x10\x03"T\n\rRearLightType\x12\x13\n\x0fRearLightTypeNA\x10\x00\x12\x15\n\x11RearLightTypeEuCn\x10\x01\x12\x17\n\x13RearLightTypeGlobal\x10\x02"X\n\x0cSeatTrimType\x12\x14\n\x10SeatTrimTypeBase\x10\x00\x12\x15\n\x11SeatTrimTypeSport\x10\x01\x12\x1b\n\x17SeatTrimTypeBaseTextile\x10\x02"\x95\x01\n\x18TurnIndicatorControlType\x12#\n\x1fTurnIndicatorControlTypeUnknown\x10\x00\x12-\n)TurnIndicatorControlTypeSingleDetentStalk\x10\x01\x12%\n!TurnIndicatorControlTypeSWSButton\x10\x02B\x1d\n\x1boptional_red_brake_calipersB\x1c\n\x1aoptional_use_range_badgingB\x1d\n\x1boptional_range_plus_badgingB\x1d\n\x1boptional_has_ludicrous_modeB\x1d\n\x1boptional_can_actuate_trunksB\x1d\n\x1boptional_has_air_suspensionB\x1b\n\x19optional_ece_restrictionsB\x15\n\x13optional_eu_vehicleB \n\x1eoptional_motorized_charge_portB)\n\'optional_can_accept_navigation_requestsB\x16\n\x14optional_key_versionB\x19\n\x17optional_mobile_enabledB \n\x1eoptional_default_charge_to_maxB*\n(optional_steering_wheel_heater_installedB \n\x1eoptional_sentry_mode_supportedB\x1d\n\x1boptional_homelink_supportedB\x1b\n\x19optional_webcam_supportedB#\n!optional_bioweapon_mode_supportedB&\n$optional_dashcam_clip_save_supportedB\x12\n\x10optional_has_pwsB\x15\n\x13optional_utc_offsetB\x1b\n\x19optional_has_seat_coolingB\x1f\n\x1doptional_paint_color_overrideB#\n!optional_tpms_pressures_supportedB\x1a\n\x18optional_vehicle_badgingB!\n\x1foptional_exterior_trim_overrideB\x18\n\x16optional_headlamp_typeB\x19\n\x17optional_aux_park_lampsB\x13\n\x11optional_is_ravenB \n\x1eoptional_has_auto_seat_climateB%\n#optional_has_front_row_seat_heatersB%\n#optional_has_third_row_seat_heatersB\x1e\n\x1coptional_supports_qr_pairingB$\n"optional_disable_window_vent_closeB"\n optional_webcam_selfie_supportedB&\n$optional_cop_user_set_temp_supportedB\x1c\n\x1aoptional_has_auto_stw_heatB\x19\n\x17optional_rearlight_typeB \n\x1eoptional_rear_seat_heater_typeB \n\x1eoptional_webcam_grid_supportedB\x1a\n\x18optional_has_tesla_badgeB\x1d\n\x1boptional_has_tesla_wordmarkB\x16\n\x14optional_fascia_typeB"\n optional_accessory_lightbar_typeB#\n!optional_sentry_preview_supportedB\x19\n\x17optional_seat_trim_typeB\x1a\n\x18optional_drivetrain_typeB\x1e\n\x1coptional_lightshow_supportedB(\n&optional_mobile_dashcam_viewer_versionB#\n!optional_has_premium_connectivityB\x1b\n\x19optional_car_wrap_enabledB\x1f\n\x1doptional_supports_ride_heightB&\n$optional_supports_set_arrival_energyB*\n(optional_supports_pillar_camera_metadataB\x17\n\x15optional_chassis_typeB\x1b\n\x19optional_is_china_vehicleB \n\x1eoptional_is_using_unreal_apvizB,\n*optional_supports_flexible_dashcam_bitrateB#\n!optional_front_fascia_camera_typeB&\n$optional_turn_indicator_control_typeB\x1b\n\x19optional_has_rear_displayB\x1c\n\x1aoptional_window_tint_colorB#\n!optional_interior_upper_trim_typeB \n\x1eoptional_badging_material_typeB\x1f\n\x1doptional_webcam_interior_onlyB\x17\n\x15optional_country_codeB\x1c\n\x1aoptional_bed_lighting_typeB&\n$optional_rear_light_hardware_variantB)\n\'optional_autopilot_override_expire_time"\xdb\t\n\x14ParkedAccessoryState\x12\x1b\n\x11tent_mode_request\x18\x01 \x01(\x08H\x00\x12 \n\x16horizon_leveling_state\x18\x02 \x01(\x08H\x01\x12?\n\x18front_zone_light_request\x18\x03 \x01(\x0e2\x1b.CarServer.ZoneLightRequestH\x02\x12>\n\x17rear_zone_light_request\x18\x04 \x01(\x0e2\x1b.CarServer.ZoneLightRequestH\x03\x12%\n\x1btruck_bed_lights_brightness\x18\x05 \x01(\rH\x04\x12*\n truck_bed_lights_auto_brightness\x18\x06 \x01(\rH\x05\x12%\n\x1btruck_bed_lights_auto_state\x18\x07 \x01(\x08H\x06\x12,\n"truck_bed_lights_controls_disabled\x18\x08 \x01(\x08H\x07\x12&\n\x1caccessory_lightbar_middle_on\x18\t \x01(\x08H\x08\x12%\n\x1baccessory_lightbar_ditch_on\x18\n \x01(\x08H\t\x12\'\n\x1daccessory_lightbar_brightness\x18\x0b \x01(\rH\n\x12 \n\x16accessory_lightbar_low\x18\x0c \x01(\rH\x0b\x12 \n\x16accessory_lightbar_med\x18\r \x01(\rH\x0c\x12!\n\x17accessory_lightbar_high\x18\x0e \x01(\rH\r\x12\x17\n\rhas_tent_mode\x18\x0f \x01(\x08H\x0e\x12.\n\ttimestamp\x18\xd0\x0f \x01(\x0b2\x1a.google.protobuf.TimestampB\x1c\n\x1aoptional_tent_mode_requestB!\n\x1foptional_horizon_leveling_stateB#\n!optional_front_zone_light_requestB"\n optional_rear_zone_light_requestB&\n$optional_truck_bed_lights_brightnessB+\n)optional_truck_bed_lights_auto_brightnessB&\n$optional_truck_bed_lights_auto_stateB-\n+optional_truck_bed_lights_controls_disabledB\'\n%optional_accessory_lightbar_middle_onB&\n$optional_accessory_lightbar_ditch_onB(\n&optional_accessory_lightbar_brightnessB!\n\x1foptional_accessory_lightbar_lowB!\n\x1foptional_accessory_lightbar_medB"\n optional_accessory_lightbar_highB\x18\n\x16optional_has_tent_mode"\xf3\x05\n\x08SohState\x128\n\x0esoh_test_state\x18\x01 \x01(\x0b2 .CarServer.SohState.SohTestState\x121\n\nsoh_result\x18\x03 \x01(\x0b2\x1d.CarServer.SohState.SohResult\x12-\n\ttimestamp\x18\x04 \x01(\x0b2\x1a.google.protobuf.Timestamp\x1a\x86\x01\n\x0cSohTestState\x12\x1b\n\x11soh_time_estimate\x18\x02 \x01(\x02H\x00\x12\x1c\n\x12soh_time_remaining\x18\x03 \x01(\x02H\x01B\x1c\n\x1aoptional_soh_time_estimateB\x1d\n\x1boptional_soh_time_remaining\x1a\xe5\x02\n\tSohResult\x12\x18\n\x0esoh_calibrated\x18\x04 \x01(\x08H\x00\x12\x1c\n\x12soh_last_test_time\x18\x05 \x01(\rH\x01\x12F\n\x11soh_health_result\x18\x06 \x01(\x0e2).CarServer.SohState.WarrantyServiceResultH\x02\x12%\n\x1bsoh_distance_since_soh_test\x18\x07 \x01(\rH\x03\x12\x17\n\rsoh_regulated\x18\x08 \x01(\x08H\x04B\x19\n\x17optional_soh_calibratedB\x1d\n\x1boptional_soh_last_test_timeB\x1c\n\x1aoptional_soh_health_resultB&\n$optional_soh_distance_since_soh_testB\x18\n\x16optional_soh_regulated"Z\n\x15WarrantyServiceResult\x12\n\n\x06SOH_OK\x10\x00\x12\x0f\n\x0bSOH_REDUCED\x10\x01\x12\x13\n\x0fSOH_NO_INTERNET\x10\x02\x12\x0f\n\x0bSOH_UNKNOWN\x10\x03"o\n\nAlertState\x121\n\x0fcharging_alerts\x18\x01 \x03(\x0b2\x18.CarServer.ChargingAlert\x12.\n\ttimestamp\x18\xd0\x0f \x01(\x0b2\x1a.google.protobuf.Timestamp"G\n\x0fLightShowOption\x12\x17\n\x0flight_show_name\x18\x01 \x01(\t\x12\x1b\n\x13light_show_duration\x18\x02 \x01(\t"\xcc\x01\n\x11LightShowSettings\x12\x1d\n\x15light_show_volume_min\x18\x01 \x01(\x02\x12\x1d\n\x15light_show_volume_max\x18\x02 \x01(\x02\x12\x1e\n\x16light_show_volume_step\x18\x03 \x01(\x02\x126\n\x12light_show_options\x18\x04 \x03(\x0b2\x1a.CarServer.LightShowOption\x12!\n\x19light_show_schedule_times\x18\x05 \x03(\x04"\xc1\x02\n\x0eLightShowState\x12-\n\ttimestamp\x18\x01 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x1b\n\x11light_show_active\x18\x02 \x01(\x08H\x00\x12"\n\x18light_show_selected_name\x18\x03 \x01(\tH\x01\x12\x1f\n\x15light_show_start_time\x18\x04 \x01(\x04H\x02\x129\n\x13light_show_settings\x18\x05 \x01(\x0b2\x1c.CarServer.LightShowSettingsB\x1c\n\x1aoptional_light_show_activeB#\n!optional_light_show_selected_nameB \n\x1eoptional_light_show_start_time"a\n\x10VehicleImageData\x12\x10\n\x08image_id\x18\x01 \x01(\x0c\x12\x0c\n\x04data\x18\x02 \x01(\x0c\x12\x17\n\x0fdata_chunk_size\x18\x03 \x01(\r\x12\x14\n\x0cstart_offset\x18\x04 \x01(\r"\x83\x01\n\x0cVehicleImage\x12\x10\n\x08image_id\x18\x01 \x01(\x0c\x12/\n\nasset_data\x18\x02 \x01(\x0b2\x1b.CarServer.VehicleImageData\x12\x16\n\x0eis_local_image\x18\x04 \x01(\x08\x12\x18\n\x10total_image_size\x18\x05 \x01(\r"s\n\x11VehicleImageState\x12/\n\x0evehicle_images\x18\x01 \x03(\x0b2\x17.CarServer.VehicleImage\x12-\n\ttimestamp\x18\x02 \x01(\x0b2\x1a.google.protobuf.Timestamp"\x9b\x03\n\x0fSuspensionState\x123\n\rcurrent_level\x18\x02 \x01(\x0e2\x1a.CarServer.SuspensionLevelH\x00\x122\n\x0ctarget_level\x18\x03 \x01(\x0e2\x1a.CarServer.SuspensionLevelH\x01\x12=\n\x0emovement_state\x18\x04 \x01(\x0e2#.CarServer.SuspensionActuationStateH\x02\x12\x14\n\noffroad_on\x18\x05 \x01(\x08H\x03\x12\x19\n\x0fdisabled_reason\x18\x06 \x01(\tH\x04\x12.\n\ttimestamp\x18\xd0\x0f \x01(\x0b2\x1a.google.protobuf.TimestampB\x18\n\x16optional_current_levelB\x17\n\x15optional_target_levelB\x19\n\x17optional_movement_stateB\x15\n\x13optional_offroad_onB\x1a\n\x18optional_disabled_reason"\xb0\x02\n\x1bChildPresenceDetectionState\x12+\n!cpd_disable_notification_required\x18\x01 \x01(\x08H\x00\x12\x19\n\x0fcpd_hvac_active\x18\x02 \x01(\x08H\x01\x12&\n\x1ccpd_supports_critical_alerts\x18\x03 \x01(\x08H\x02\x12.\n\ttimestamp\x18\xd0\x0f \x01(\x0b2\x1a.google.protobuf.TimestampB,\n*optional_cpd_disable_notification_requiredB\x1a\n\x18optional_cpd_hvac_activeB\'\n%optional_cpd_supports_critical_alerts"\xec\x03\n\x12VehicleDetailState\x12-\n\ttimestamp\x18\x01 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x16\n\x0cvehicle_name\x18\x02 \x01(\tH\x00\x12\x15\n\x0bcar_version\x18\x03 \x01(\tH\x01\x12\x1a\n\x10detailed_version\x18\x04 \x01(\tH\x02\x12\x18\n\x0eautopilot_hash\x18\x05 \x01(\tH\x03\x12\x1e\n\x14fsd_software_version\x18\x06 \x01(\tH\x04\x12\x1e\n\x14current_profile_name\x18\x07 \x01(\tH\x05\x12*\n china_autopilot_software_version\x18\x08 \x01(\tH\x06B\x17\n\x15optional_vehicle_nameB\x16\n\x14optional_car_versionB\x1b\n\x19optional_detailed_versionB\x19\n\x17optional_autopilot_hashB\x1f\n\x1doptional_fsd_software_versionB\x1f\n\x1doptional_current_profile_nameB+\n)optional_china_autopilot_software_version*\x97\x01\n\rAutopilotBase\x12\x16\n\x12AutopilotBase_NONE\x10\x00\x12\x19\n\x15AutopilotBase_HIGHWAY\x10\x01\x12\x1a\n\x16AutopilotBase_ENHANCED\x10\x02\x12\x1e\n\x1aAutopilotBase_SELF_DRIVING\x10\x03\x12\x17\n\x13AutopilotBase_BASIC\x10\x04*\x87\x03\n\x16AutopilotOverrideState\x12\x1f\n\x1bAutopilotOverrideState_BASE\x10\x00\x12\'\n#AutopilotOverrideState_SUBSCRIPTION\x10\x01\x12 \n\x1cAutopilotOverrideState_TRIAL\x10\x02\x121\n-AutopilotOverrideState_TIMEBOUND_SUBSCRIPTION\x10\x03\x12*\n&AutopilotOverrideState_TIMEBOUND_TRIAL\x10\x04\x12&\n"AutopilotOverrideState_OPTION_CODE\x10\x05\x12*\n&AutopilotOverrideState_OPTION_OVERRIDE\x10\x06\x12*\n&AutopilotOverrideState_VEHICLE_MANAGED\x10\x07\x12"\n\x1eAutopilotOverrideState_UNKNOWN\x10\x08*\xe5\x01\n\x0cDashCamState\x12\x1c\n\x18DashCamState_UNAVAILABLE\x10\x00\x12\x1a\n\x16DashCamState_AVAILABLE\x10\x01\x12\x1a\n\x16DashCamState_RECORDING\x10\x02\x12\x16\n\x12DashCamState_SAVED\x10\x03\x12\x1a\n\x16DashCamState_STREAMING\x10\x04\x12\x19\n\x15DashCamState_NO_SPACE\x10\x05\x12\x17\n\x13DashCamState_SAVING\x10\x06\x12\x17\n\x13DashCamState_PAUSED\x10\x07*\xde\x03\n\rTheaterSource\x12\x16\n\x12TheaterSource_None\x10\x00\x12\x19\n\x15TheaterSource_YouTube\x10\x01\x12 \n\x1cTheaterSource_TeslaTutorials\x10\x02\x12\x19\n\x15TheaterSource_Netflix\x10\x03\x12\x18\n\x14TheaterSource_Twitch\x10\x04\x12\x18\n\x14TheaterSource_TikTok\x10\x05\x12\x16\n\x12TheaterSource_Hulu\x10\x07\x12\x1a\n\x16TheaterSource_BiliBili\x10\n\x12\x18\n\x14TheaterSource_Disney\x10\r\x12\x18\n\x14TheaterSource_Douyin\x10\x0e\x12\x1d\n\x19TheaterSource_MontyPython\x10\x13\x12\x19\n\x15TheaterSource_Tencent\x10\x1c\x12\x17\n\x13TheaterSource_Youku\x10 \x12\x17\n\x13TheaterSource_iQiyi\x10!\x12\x1e\n\x1aTheaterSource_ThunderStone\x10"\x12\x19\n\x15TheaterSource_MangoTV\x10#\x12\x1a\n\x16TheaterSource_Kuaishou\x10$*\x83\n\n\x0fMediaSourceType\x12\x18\n\x14MediaSourceType_None\x10\x00\x12\x16\n\x12MediaSourceType_AM\x10\x01\x12\x16\n\x12MediaSourceType_FM\x10\x02\x12\x16\n\x12MediaSourceType_XM\x10\x03\x12\x1b\n\x17MediaSourceType_Slacker\x10\x05\x12\x1e\n\x1aMediaSourceType_LocalFiles\x10\x06\x12\x18\n\x14MediaSourceType_iPod\x10\x07\x12\x1d\n\x19MediaSourceType_Bluetooth\x10\x08\x12\x19\n\x15MediaSourceType_AuxIn\x10\t\x12\x17\n\x13MediaSourceType_DAB\x10\n\x12\x18\n\x14MediaSourceType_Rdio\x10\x0b\x12\x1b\n\x17MediaSourceType_Spotify\x10\x0c\x12\x1b\n\x17MediaSourceType_USRadio\x10\r\x12\x1b\n\x17MediaSourceType_EURadio\x10\x0e\x12\x1d\n\x19MediaSourceType_MediaFile\x10\x10\x12\x1a\n\x16MediaSourceType_TuneIn\x10\x11\x12\x1c\n\x18MediaSourceType_Stingray\x10\x12\x12\x1c\n\x18MediaSourceType_SiriusXM\x10\x13\x12\x19\n\x15MediaSourceType_Tidal\x10\x14\x12\x1b\n\x17MediaSourceType_QQMusic\x10\x15\x12\x1c\n\x18MediaSourceType_QQMusic2\x10\x16\x12\x1c\n\x18MediaSourceType_Ximalaya\x10\x17\x12\x1f\n\x1bMediaSourceType_OnlineRadio\x10\x18\x12 \n\x1cMediaSourceType_OnlineRadio2\x10\x19\x12 \n\x1cMediaSourceType_NetEaseMusic\x10\x1a\x12\x1e\n\x1aMediaSourceType_AppleMusic\x10\x1b\x12\x1b\n\x17MediaSourceType_Browser\x10\x1c\x12\x1b\n\x17MediaSourceType_Theater\x10\x1d\x12\x18\n\x14MediaSourceType_Game\x10\x1e\x12\x1c\n\x18MediaSourceType_Tutorial\x10\x1f\x12\x1a\n\x16MediaSourceType_Toybox\x10 \x12$\n MediaSourceType_RecentsFavorites\x10!\x12\x1c\n\x18MediaSourceType_HomeApps\x10"\x12\x1a\n\x16MediaSourceType_Search\x10#\x12!\n\x1dMediaSourceType_ApplePodcasts\x10$\x12\x1b\n\x17MediaSourceType_Audible\x10%\x12\x1f\n\x1bMediaSourceType_AmazonMusic\x10&\x12 \n\x1cMediaSourceType_YouTubeMusic\x10\'\x12\x1f\n\x1bMediaSourceType_SiriusXmWeb\x10(\x12\x1b\n\x17MediaSourceType_Yunting\x10)\x12\x1d\n\x19MediaSourceType_TuneInWeb\x10*\x12\x19\n\x15MediaSourceType_Kugou\x10+\x12\x1a\n\x16MediaSourceType_Vohico\x10,*S\n\x15VehicleImageStateType\x12\x11\n\rAPVIZ_INVALID\x10\x00\x12\x0e\n\nAPVIZ_WRAP\x10\x01\x12\x17\n\x13APVIZ_LICENSE_PLATE\x10\x02Bx\n%com.tesla.generated.carserver.vehicleB\x07VehicleZFgithub.com/teslamotors/vehicle-command/pkg/protocol/protobuf/carserverb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rvehicle.proto\x12\tCarServer\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x0bvcsec.proto\x1a\x0ccommon.proto\x1a\x16managed_charging.proto"\xd7\x0b\n\x0bVehicleData\x12,\n\x0cgui_settings\x18\x02 \x01(\x0b2\x16.CarServer.GuiSettings\x12,\n\x0ccharge_state\x18\x03 \x01(\x0b2\x16.CarServer.ChargeState\x12.\n\rclimate_state\x18\x04 \x01(\x0b2\x17.CarServer.ClimateState\x12*\n\x0bdrive_state\x18\x05 \x01(\x0b2\x15.CarServer.DriveState\x125\n\x14legacy_vehicle_state\x18\x06 \x01(\x0b2\x17.CarServer.VehicleState\x120\n\x0evehicle_config\x18\x07 \x01(\x0b2\x18.CarServer.VehicleConfig\x120\n\x0elocation_state\x18\x08 \x01(\x0b2\x18.CarServer.LocationState\x120\n\x0eclosures_state\x18\t \x01(\x0b2\x18.CarServer.ClosuresState\x12\x1c\n\x12proto_json_version\x18\n \x01(\x05H\x00\x12\x17\n\rupload_reason\x18\x0c \x01(\tH\x01\x12?\n\x16parked_accessory_state\x18\x0e \x01(\x0b2\x1f.CarServer.ParkedAccessoryState\x12=\n\x15charge_schedule_state\x18\x0f \x01(\x0b2\x1e.CarServer.ChargeScheduleState\x12O\n\x1epreconditioning_schedule_state\x18\x10 \x01(\x0b2\'.CarServer.PreconditioningScheduleState\x12&\n\tsoh_state\x18\x11 \x01(\x0b2\x13.CarServer.SohState\x12\x0f\n\x07unknown\x18\x12 \x01(\x0c\x129\n\x13tire_pressure_state\x18\x13 \x01(\x0b2\x1c.CarServer.TirePressureState\x12*\n\x0bmedia_state\x18\x14 \x01(\x0b2\x15.CarServer.MediaState\x127\n\x12media_detail_state\x18\x15 \x01(\x0b2\x1b.CarServer.MediaDetailState\x12;\n\x14vehicle_detail_state\x18\x16 \x01(\x0b2\x1d.CarServer.VehicleDetailState\x12=\n\x15software_update_state\x18\x17 \x01(\x0b2\x1e.CarServer.SoftwareUpdateState\x12A\n\x17parental_controls_state\x18\x18 \x01(\x0b2 .CarServer.ParentalControlsState\x12*\n\x0balert_state\x18\x19 \x01(\x0b2\x15.CarServer.AlertState\x123\n\x10light_show_state\x18\x1a \x01(\x0b2\x19.CarServer.LightShowState\x129\n\x13vehicle_image_state\x18\x1b \x01(\x0b2\x1c.CarServer.VehicleImageState\x124\n\x10suspension_state\x18\x1d \x01(\x0b2\x1a.CarServer.SuspensionState\x12N\n\x1echild_presence_detection_state\x18\x1e \x01(\x0b2&.CarServer.ChildPresenceDetectionState\x12#\n\x18supports_optional_fields\x18\xe7\x07 \x01(\x08H\x02B\x1d\n\x1boptional_proto_json_versionB\x18\n\x16optional_upload_reasonB#\n!optional_supports_optional_fields"\xb7\x15\n\rClosuresState\x12 \n\x16door_open_driver_front\x18e \x01(\x08H\x00\x12\x1f\n\x15door_open_driver_rear\x18f \x01(\x08H\x01\x12#\n\x19door_open_passenger_front\x18g \x01(\x08H\x02\x12"\n\x18door_open_passenger_rear\x18h \x01(\x08H\x03\x12\x1f\n\x15door_open_trunk_front\x18i \x01(\x08H\x04\x12\x1e\n\x14door_open_trunk_rear\x18j \x01(\x08H\x05\x12"\n\x18window_open_driver_front\x18k \x01(\x08H\x06\x12%\n\x1bwindow_open_passenger_front\x18l \x01(\x08H\x07\x12!\n\x17window_open_driver_rear\x18m \x01(\x08H\x08\x12$\n\x1awindow_open_passenger_rear\x18n \x01(\x08H\t\x12=\n\x0esun_roof_state\x18\x0b \x01(\x0b2%.CarServer.ClosuresState.SunRoofState\x12\x1f\n\x15sun_roof_percent_open\x18p \x01(\x05H\n\x12\x10\n\x06locked\x18q \x01(\x08H\x0b\x12\x19\n\x0fis_user_present\x18r \x01(\x08H\x0c\x12C\n\x14center_display_state\x18\x0f \x01(\x0b2%.CarServer.ClosuresState.DisplayState\x12\x16\n\x0cremote_start\x18t \x01(\x08H\r\x12\x14\n\nvalet_mode\x18u \x01(\x08H\x0e\x12\x1a\n\x10valet_pin_needed\x18v \x01(\x08H\x0f\x12C\n\x11sentry_mode_state\x18\x13 \x01(\x0b2(.CarServer.ClosuresState.SentryModeState\x12\x1f\n\x15sentry_mode_available\x18x \x01(\x08H\x10\x123\n\x10speed_limit_mode\x18\x16 \x01(\x0b2\x19.CarServer.SpeedLimitMode\x12.\n\rtonneau_state\x18\x17 \x01(\x0e2\x15.VCSEC.ClosureState_EH\x11\x12\x1e\n\x14tonneau_percent_open\x18\x18 \x01(\rH\x12\x12\x1b\n\x11tonneau_in_motion\x18\x19 \x01(\x08H\x13\x12\x1f\n\x15has_automatic_tonneau\x18\x1a \x01(\x08H\x14\x12 \n\x16has_side_storage_doors\x18\x1b \x01(\x08H\x15\x12%\n\x1bdoor_open_side_storage_left\x18\x1c \x01(\x08H\x16\x12&\n\x1cdoor_open_side_storage_right\x18\x1d \x01(\x08H\x17\x12.\n\ttimestamp\x18\xd0\x0f \x01(\x0b2\x1a.google.protobuf.Timestamp\x1a\xea\x01\n\x0cSunRoofState\x12"\n\x07Unknown\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12&\n\x0bCalibrating\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12!\n\x06Closed\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1f\n\x04Open\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12!\n\x06Moving\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1f\n\x04Vent\x18\x06 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type\x1a\xf2\x02\n\x0cDisplayState\x12\x1e\n\x03Off\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03Dim\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12$\n\tAccessory\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1d\n\x02On\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12"\n\x07Driving\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12#\n\x08Charging\x18\x06 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1f\n\x04Lock\x18\x07 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12!\n\x06Sentry\x18\x08 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03Dog\x18\t \x01(\x0b2\x0f.CarServer.VoidH\x00\x12(\n\rEntertainment\x18\n \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type\x1a\xe2\x01\n\x0fSentryModeState\x12\x1e\n\x03Off\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1f\n\x04Idle\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05Armed\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05Aware\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05Panic\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05Quiet\x18\x06 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04typeB!\n\x1foptional_door_open_driver_frontB \n\x1eoptional_door_open_driver_rearB$\n"optional_door_open_passenger_frontB#\n!optional_door_open_passenger_rearB \n\x1eoptional_door_open_trunk_frontB\x1f\n\x1doptional_door_open_trunk_rearB#\n!optional_window_open_driver_frontB&\n$optional_window_open_passenger_frontB"\n optional_window_open_driver_rearB%\n#optional_window_open_passenger_rearB \n\x1eoptional_sun_roof_percent_openB\x11\n\x0foptional_lockedB\x1a\n\x18optional_is_user_presentB\x17\n\x15optional_remote_startB\x15\n\x13optional_valet_modeB\x1b\n\x19optional_valet_pin_neededB \n\x1eoptional_sentry_mode_availableB\x18\n\x16optional_tonneau_stateB\x1f\n\x1doptional_tonneau_percent_openB\x1c\n\x1aoptional_tonneau_in_motionB \n\x1eoptional_has_automatic_tonneauB!\n\x1foptional_has_side_storage_doorsB&\n$optional_door_open_side_storage_leftB\'\n%optional_door_open_side_storage_right"\xda\x03\n\x13ChargeScheduleState\x123\n\x10charge_schedules\x18\x01 \x03(\x0b2\x19.CarServer.ChargeSchedule\x12;\n\x16charge_schedule_window\x18\x02 \x01(\x0b2\x19.CarServer.ChargeScheduleH\x00\x12\x17\n\rcharge_buffer\x18\x03 \x01(\x05H\x01\x12"\n\x18max_num_charge_schedules\x18\x04 \x01(\rH\x02\x12\x17\n\rnext_schedule\x18\x05 \x01(\x08H\x03\x12&\n\x1cshow_schedule_complete_state\x18\x06 \x01(\x08H\x04\x12.\n\ttimestamp\x18\xd0\x0f \x01(\x0b2\x1a.google.protobuf.TimestampB!\n\x1foptional_charge_schedule_windowB\x18\n\x16optional_charge_bufferB#\n!optional_max_num_charge_schedulesB\x18\n\x16optional_next_scheduleB\'\n%optional_show_schedule_complete_state"\x8f\x03\n\x1cPreconditioningScheduleState\x12?\n\x16precondition_schedules\x18\x01 \x03(\x0b2\x1f.CarServer.PreconditionSchedule\x12J\n\x1fpreconditioning_schedule_window\x18\x02 \x01(\x0b2\x1f.CarServer.PreconditionScheduleH\x00\x12(\n\x1emax_num_precondition_schedules\x18\x03 \x01(\rH\x01\x12\x17\n\rnext_schedule\x18\x04 \x01(\x08H\x02\x12.\n\ttimestamp\x18\xd0\x0f \x01(\x0b2\x1a.google.protobuf.TimestampB*\n(optional_preconditioning_schedule_windowB)\n\'optional_max_num_precondition_schedulesB\x18\n\x16optional_next_schedule"\x87\x02\n\x0eSpeedLimitMode\x12\x10\n\x06active\x18g \x01(\x08H\x00\x12\x16\n\x0cpin_code_set\x18h \x01(\x08H\x01\x12\x17\n\rmax_limit_mph\x18j \x01(\x02H\x02\x12\x17\n\rmin_limit_mph\x18k \x01(\x02H\x03\x12\x1b\n\x11current_limit_mph\x18l \x01(\x02H\x04B\x11\n\x0foptional_activeB\x17\n\x15optional_pin_code_setB\x18\n\x16optional_max_limit_mphB\x18\n\x16optional_min_limit_mphB\x1c\n\x1aoptional_current_limit_mph"\xe8\x05\n\x18ParentalControlsSettings\x12\x1d\n\x13speed_limit_enabled\x18\x01 \x01(\x08H\x00\x12\x17\n\rmax_limit_mph\x18\x02 \x01(\x02H\x01\x12\x17\n\rmin_limit_mph\x18\x03 \x01(\x02H\x02\x12\x1b\n\x11current_limit_mph\x18\x04 \x01(\x02H\x03\x12$\n\x1achill_acceleration_enabled\x18\x05 \x01(\x08H\x04\x12)\n\x1frequire_safety_settings_enabled\x18\x06 \x01(\x08H\x05\x12\x18\n\x0ecurfew_enabled\x18\x07 \x01(\x08H\x06\x12\x1b\n\x11curfew_start_time\x18\x08 \x01(\x05H\x07\x12\x19\n\x0fcurfew_end_time\x18\t \x01(\x05H\x08\x12\x19\n\x0fbrowser_blocked\x18\n \x01(\x08H\t\x12\x19\n\x0ftheater_blocked\x18\x0b \x01(\x08H\n\x12\x18\n\x0earcade_blocked\x18\x0c \x01(\x08H\x0bB\x1e\n\x1coptional_speed_limit_enabledB\x18\n\x16optional_max_limit_mphB\x18\n\x16optional_min_limit_mphB\x1c\n\x1aoptional_current_limit_mphB%\n#optional_chill_acceleration_enabledB*\n(optional_require_safety_settings_enabledB\x19\n\x17optional_curfew_enabledB\x1c\n\x1aoptional_curfew_start_timeB\x1a\n\x18optional_curfew_end_timeB\x1a\n\x18optional_browser_blockedB\x1a\n\x18optional_theater_blockedB\x19\n\x17optional_arcade_blocked"\xa3\x02\n\x15ParentalControlsState\x12-\n\ttimestamp\x18\x01 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12"\n\x18parental_controls_active\x18\x02 \x01(\x08H\x00\x12#\n\x19parental_controls_pin_set\x18\x03 \x01(\x08H\x01\x12G\n\x1aparental_controls_settings\x18\x04 \x01(\x0b2#.CarServer.ParentalControlsSettingsB#\n!optional_parental_controls_activeB$\n"optional_parental_controls_pin_set"\xa2\x06\n\x13SoftwareUpdateState\x12C\n\x06status\x18\x01 \x01(\x0b23.CarServer.SoftwareUpdateState.SoftwareUpdateStatus\x12\x1b\n\x11scheduled_time_ms\x18f \x01(\x04H\x00\x12#\n\x19warning_time_remaining_ms\x18g \x01(\x04H\x01\x12\x1f\n\x15expected_duration_sec\x18h \x01(\rH\x02\x12\x17\n\rdownload_perc\x18i \x01(\rH\x03\x12\x16\n\x0cinstall_perc\x18j \x01(\rH\x04\x12\x11\n\x07version\x18k \x01(\tH\x05\x12-\n\ttimestamp\x18l \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x18\n\x0eauto_scheduled\x18m \x01(\x08H\x06\x1a\x8d\x02\n\x14SoftwareUpdateStatus\x12"\n\x07Unknown\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12%\n\nInstalling\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12$\n\tScheduled\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12$\n\tAvailable\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12.\n\x13DownloadingWifiWait\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12&\n\x0bDownloading\x18\x06 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04typeB\x1c\n\x1aoptional_scheduled_time_msB$\n"optional_warning_time_remaining_msB \n\x1eoptional_expected_duration_secB\x18\n\x16optional_download_percB\x17\n\x15optional_install_percB\x12\n\x10optional_versionB\x19\n\x17optional_auto_scheduled"\xe0\r\n\nDriveState\x12*\n\x0bshift_state\x18\x01 \x01(\x0b2\x15.CarServer.ShiftState\x12\x0f\n\x05speed\x18f \x01(\rH\x00\x12\x0f\n\x05power\x18g \x01(\x05H\x01\x12-\n\ttimestamp\x18\x04 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12*\n odometer_in_hundredths_of_a_mile\x18i \x01(\x05H\x02\x12\x15\n\x0bspeed_float\x18j \x01(\x02H\x03\x12"\n\x18active_route_destination\x18\x07 \x01(\tH\x04\x12)\n\x1factive_route_minutes_to_arrival\x18\x08 \x01(\x02H\x05\x12\'\n\x1dactive_route_miles_to_arrival\x18\t \x01(\x02H\x06\x12,\n"active_route_traffic_minutes_delay\x18\n \x01(\x02H\x07\x12(\n\x1eactive_route_energy_at_arrival\x18\x0b \x01(\x02H\x08\x12\x1b\n\x11last_route_update\x18\x0e \x01(\rH\t\x127\n\x13last_traffic_update\x18\x0f \x01(\x0b2\x1a.google.protobuf.Timestamp\x124\n\x18active_route_coordinates\x18\x0c \x01(\x0b2\x12.CarServer.LatLong\x12(\n\x1efsd_user_total_miles_travelled\x18\x10 \x01(\x02H\n\x12\x1e\n\x14fsd_user_total_miles\x18\x11 \x01(\x02H\x0b\x12+\n!fsd_user_miles_hands_free_current\x18\x12 \x01(\x02H\x0c\x12\'\n\x1dfsd_user_miles_hands_free_max\x18\x13 \x01(\x02H\r\x12$\n\x1afsd_total_miles_this_month\x18\x14 \x01(\x02H\x0e\x12D\n\x13fsd_monthly_history\x18\x15 \x03(\x0b2\'.CarServer.DriveState.FsdMonthlyMileage\x12\x19\n\x0ffsd_streak_days\x18\x16 \x01(\x05H\x0f\x12F\n\x15fsd_last_7_days_usage\x18\x17 \x01(\x0b2\'.CarServer.DriveState.FsdLast7DaysUsage\x12\x1e\n\x14rainbow_road_enabled\x18\x18 \x01(\x08H\x10\x12\x14\n\nfsd_active\x18\x19 \x01(\x08H\x11\x1aO\n\x11FsdMonthlyMileage\x12\x12\n\nyear_month\x18\x01 \x01(\t\x12\x11\n\tfsd_miles\x18\x02 \x01(\x02\x12\x13\n\x0btotal_miles\x18\x03 \x01(\x02\x1aE\n\x11FsdLast7DaysUsage\x12\x1d\n\x15week_starts_on_sunday\x18\x01 \x01(\x08\x12\x11\n\tday_usage\x18\x02 \x03(\x08B\x10\n\x0eoptional_speedB\x10\n\x0eoptional_powerB+\n)optional_odometer_in_hundredths_of_a_mileB\x16\n\x14optional_speed_floatB#\n!optional_active_route_destinationB*\n(optional_active_route_minutes_to_arrivalB(\n&optional_active_route_miles_to_arrivalB-\n+optional_active_route_traffic_minutes_delayB)\n\'optional_active_route_energy_at_arrivalB\x1c\n\x1aoptional_last_route_updateB)\n\'optional_fsd_user_total_miles_travelledB\x1f\n\x1doptional_fsd_user_total_milesB,\n*optional_fsd_user_miles_hands_free_currentB(\n&optional_fsd_user_miles_hands_free_maxB%\n#optional_fsd_total_miles_this_monthB\x1a\n\x18optional_fsd_streak_daysB\x1f\n\x1doptional_rainbow_road_enabledB\x15\n\x13optional_fsd_active"\xffF\n\x0bChargeState\x12<\n\x0echarging_state\x18\x01 \x01(\x0b2$.CarServer.ChargeState.ChargingState\x12=\n\x11fast_charger_type\x18\x02 \x01(\x0b2".CarServer.ChargeState.ChargerType\x12?\n\x12fast_charger_brand\x18\x03 \x01(\x0b2#.CarServer.ChargeState.ChargerBrand\x12\x1a\n\x10charge_limit_soc\x18h \x01(\x05H\x00\x12\x1e\n\x14charge_limit_soc_std\x18i \x01(\x05H\x01\x12\x1e\n\x14charge_limit_soc_min\x18j \x01(\x05H\x02\x12\x1e\n\x14charge_limit_soc_max\x18k \x01(\x05H\x03\x12"\n\x18max_range_charge_counter\x18m \x01(\x05H\x04\x12\x1e\n\x14fast_charger_present\x18n \x01(\x08H\x05\x12\x17\n\rbattery_range\x18o \x01(\x02H\x06\x12\x1b\n\x11est_battery_range\x18p \x01(\x02H\x07\x12\x1d\n\x13ideal_battery_range\x18q \x01(\x02H\x08\x12\x17\n\rbattery_level\x18r \x01(\x05H\t\x12\x1e\n\x14usable_battery_level\x18s \x01(\x05H\n\x12\x1d\n\x13charge_energy_added\x18t \x01(\x02H\x0b\x12"\n\x18charge_miles_added_rated\x18u \x01(\x02H\x0c\x12"\n\x18charge_miles_added_ideal\x18v \x01(\x02H\r\x12\x19\n\x0fcharger_voltage\x18w \x01(\x05H\x0e\x12\x1f\n\x15charger_pilot_current\x18x \x01(\x05H\x0f\x12 \n\x16charger_actual_current\x18y \x01(\x05H\x10\x12\x17\n\rcharger_power\x18z \x01(\x05H\x11\x12 \n\x16minutes_to_full_charge\x18{ \x01(\x05H\x12\x12"\n\x17minutes_to_charge_limit\x18\x8e\x01 \x01(\x05H\x13\x12\x17\n\rtrip_charging\x18} \x01(\x08H\x14\x12\x19\n\x0fcharge_rate_mph\x18~ \x01(\x05H\x15\x12\x1f\n\x15charge_port_door_open\x18\x7f \x01(\x08H\x16\x12;\n\x11conn_charge_cable\x18\x1c \x01(\x0b2 .CarServer.ChargeState.CableType\x12(\n\x1dscheduled_charging_start_time\x18\x81\x01 \x01(\x04H\x17\x12%\n\x1ascheduled_charging_pending\x18\x82\x01 \x01(\x08H\x18\x12<\n\x18scheduled_departure_time\x18\x1f \x01(\x0b2\x1a.google.protobuf.Timestamp\x12%\n\x1auser_charge_enable_request\x18\x84\x01 \x01(\x08H\x19\x12 \n\x15charge_enable_request\x18\x85\x01 \x01(\x08H\x1a\x12\x19\n\x0echarger_phases\x18\x86\x01 \x01(\x05H\x1b\x12:\n\x11charge_port_latch\x18# \x01(\x0b2\x1f.CarServer.ChargePortLatchState\x12(\n\x1dcharge_port_cold_weather_mode\x18\x88\x01 \x01(\x08H\x1c\x12!\n\x16charge_current_request\x18\x89\x01 \x01(\x05H\x1d\x12%\n\x1acharge_current_request_max\x18\x8a\x01 \x01(\x05H\x1e\x12"\n\x17managed_charging_active\x18\x8b\x01 \x01(\x08H\x1f\x12)\n\x1emanaged_charging_user_canceled\x18\x8c\x01 \x01(\x08H \x12&\n\x1bmanaged_charging_start_time\x18\x8d\x01 \x01(\x04H!\x12-\n\ttimestamp\x18, \x01(\x0b2\x1a.google.protobuf.Timestamp\x12>\n\x15preconditioning_times\x18- \x01(\x0b2\x1f.CarServer.PreconditioningTimes\x12@\n\x17off_peak_charging_times\x18. \x01(\x0b2\x1f.CarServer.OffPeakChargingTimes\x12"\n\x17off_peak_hours_end_time\x18\x93\x01 \x01(\rH"\x12P\n\x17scheduled_charging_mode\x18\x94\x01 \x01(\x0e2,.CarServer.ChargeState.ScheduledChargingModeH#\x12\x18\n\rcharging_amps\x18\x95\x01 \x01(\x05H$\x120\n%scheduled_charging_start_time_minutes\x18\x96\x01 \x01(\rH%\x12+\n scheduled_departure_time_minutes\x18\x97\x01 \x01(\rH&\x12"\n\x17preconditioning_enabled\x18\x98\x01 \x01(\x08H\'\x12,\n!scheduled_charging_start_time_app\x18\x99\x01 \x01(\x11H(\x12,\n!supercharger_session_trip_planner\x18\x9a\x01 \x01(\x08H)\x12F\n\x11charge_port_color\x18\x9b\x01 \x01(\x0e2(.CarServer.ChargeState.ChargePortColor_EH*\x12 \n\x15charge_rate_mph_float\x18\x9c\x01 \x01(\x02H+\x12H\n\x13charge_limit_reason\x18\x9d\x01 \x01(\x0e2(.CarServer.ChargeState.ChargeLimitReasonH,\x12@\n\x16managed_charging_state\x18\x9e\x01 \x01(\x0b2\x1f.CarServer.ManagedChargingState\x12!\n\x16charge_cable_unlatched\x18\x9f\x01 \x01(\x08H-\x12;\n\x0coutlet_state\x18\xa0\x01 \x01(\x0e2".CarServer.ChargeState.OutletStateH.\x12B\n\x10power_feed_state\x18\xa1\x01 \x01(\x0e2%.CarServer.ChargeState.PowerFeedStateH/\x12\x1b\n\x10outlet_soc_limit\x18\xa2\x01 \x01(\x05H0\x12\x1f\n\x14power_feed_soc_limit\x18\xa3\x01 \x01(\x05H1\x12 \n\x15outlet_time_remaining\x18\xa4\x01 \x01(\x03H2\x12$\n\x19power_feed_time_remaining\x18\xa5\x01 \x01(\x03H3\x12%\n\x1apowershare_feature_allowed\x18\xa6\x01 \x01(\x08H4\x12%\n\x1apowershare_feature_enabled\x18\xa7\x01 \x01(\x08H5\x12\x1d\n\x12powershare_request\x18\xa8\x01 \x01(\x08H6\x12A\n\x0fpowershare_type\x18\xa9\x01 \x01(\x0e2%.CarServer.ChargeState.PowershareTypeH7\x12E\n\x11powershare_status\x18\xaa\x01 \x01(\x0e2\'.CarServer.ChargeState.PowershareStatusH8\x12N\n\x16powershare_stop_reason\x18\xab\x01 \x01(\x0e2+.CarServer.ChargeState.PowershareStopReasonH9\x12+\n powershare_instantaneous_load_kw\x18\xac\x01 \x01(\x02H:\x12,\n!powershare_vehicle_energy_left_hr\x18\xad\x01 \x01(\x05H;\x12\x1f\n\x14powershare_soc_limit\x18\xae\x01 \x01(\x05H<\x12\x1d\n\x12one_time_soc_limit\x18\xaf\x01 \x01(\x05H=\x12,\n\rhome_location\x18\xb0\x01 \x01(\x0b2\x12.CarServer.LatLongH>\x12,\n\rwork_location\x18\xb1\x01 \x01(\x0b2\x12.CarServer.LatLongH?\x12#\n\x18outlet_max_timer_minutes\x18\xb2\x01 \x01(\x05H@\x12(\n\x1dbatt_heat_min_to_start_charge\x18\xb3\x01 \x01(\x05HA\x124\n)batt_heat_min_to_start_charge_calculating\x18\xb4\x01 \x01(\x08HB\x12\x19\n\x0ehas_ac_outlets\x18\xb5\x01 \x01(\x08HC\x12\x1b\n\x10paid_session_fee\x18\xb7\x01 \x01(\x02HD\x12$\n\x19paid_session_fee_currency\x18\xb8\x01 \x01(\tHE\x12 \n\x15paid_session_kwh_rate\x18\xb9\x01 \x01(\x02HF\x12\x1e\n\x13discharge_limit_soe\x18\xba\x01 \x01(\x05HG\x12\x15\n\nis_roaming\x18\xbb\x01 \x01(\x08HH\x12%\n\x1apaid_session_location_guid\x18\xbc\x01 \x01(\tHI\x12&\n\x1bpaid_session_pricebook_guid\x18\xbd\x01 \x01(\tHJ\x12<\n\x17paid_session_start_time\x18\xbe\x01 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x19\n\x0elow_power_mode\x18\xbf\x01 \x01(\x08HK\x12#\n\x18low_power_mode_forced_on\x18\xc0\x01 \x01(\x08HL\x12\x1f\n\x14convenience_features\x18\xc1\x01 \x01(\rHM\x12$\n\x19keep_accessory_power_mode\x18\xc2\x01 \x01(\x08HN\x12!\n\x16should_hide_range_info\x18\xc6\x01 \x01(\x08HO\x1a\xb7\x01\n\tCableType\x12\x1e\n\x03SNA\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03IEC\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03SAE\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05GB_AC\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05GB_DC\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type\x1a\xdf\x02\n\x0bChargerType\x12\x1e\n\x03SNA\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\'\n\x0cSupercharger\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12"\n\x07Chademo\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1d\n\x02Gb\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12*\n\x0fACSingleWireCAN\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05Combo\x18\x06 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12*\n\x0fMCSingleWireCAN\x18\x07 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05Other\x18\x08 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05Tesla\x18\t \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type\x1a\xc3\x02\n\rChargingState\x12"\n\x07Unknown\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\'\n\x0cDisconnected\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12"\n\x07NoPower\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12#\n\x08Starting\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12#\n\x08Charging\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12#\n\x08Complete\x18\x06 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12"\n\x07Stopped\x18\x07 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12&\n\x0bCalibrating\x18\x08 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type\x1aX\n\x0cChargerBrand\x12 \n\x05Tesla\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03SNA\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type"z\n\x15ScheduledChargingMode\x12\x1c\n\x18ScheduledChargingModeOff\x10\x00\x12 \n\x1cScheduledChargingModeStartAt\x10\x01\x12!\n\x1dScheduledChargingModeDepartBy\x10\x02"\xc2\x02\n\x11ChargePortColor_E\x12\x16\n\x12ChargePortColorOff\x10\x00\x12\x16\n\x12ChargePortColorRed\x10\x01\x12\x18\n\x14ChargePortColorGreen\x10\x02\x12\x17\n\x13ChargePortColorBlue\x10\x03\x12\x18\n\x14ChargePortColorWhite\x10\x04\x12 \n\x1cChargePortColorFlashingGreen\x10\x05\x12 \n\x1cChargePortColorFlashingAmber\x10\x06\x12\x18\n\x14ChargePortColorAmber\x10\x07\x12\x17\n\x13ChargePortColorRave\x10\x08\x12\x18\n\x14ChargePortColorDebug\x10\t\x12\x1f\n\x1bChargePortColorFlashingBlue\x10\n"\xf3\x01\n\x11ChargeLimitReason\x12\x1c\n\x18ChargeLimitReasonUnknown\x10\x00\x12\x19\n\x15ChargeLimitReasonNone\x10\x01\x12\x19\n\x15ChargeLimitReasonEvse\x10\x02\x12 \n\x1cChargeLimitReasonBattTempLow\x10\x03\x12\x1c\n\x18ChargeLimitReasonHighSoc\x10\x04\x12\x1a\n\x16ChargeLimitReasonCabin\x10\x05\x12.\n*ChargeLimitReasonEvseRelocationRecommended\x10\x06"S\n\x0bOutletState\x12\x12\n\x0eOutletStateOff\x10\x00\x12\x1a\n\x16OutletStateCabinAndBed\x10\x01\x12\x14\n\x10OutletStateCabin\x10\x02"_\n\x0ePowerFeedState\x12\x15\n\x11PowerFeedStateOff\x10\x00\x12\x1d\n\x19PowerFeedStateCabinAndBed\x10\x01\x12\x17\n\x13PowerFeedStateCabin\x10\x02"\xd0\x01\n\x10PowershareStatus\x12\x1c\n\x18PowershareStatusInactive\x10\x00\x12\x18\n\x14PowershareStatusInit\x10\x01\x12\x1a\n\x16PowershareStatusActive\x10\x02\x12\x1b\n\x17PowershareStatusStopped\x10\x03\x12\x1f\n\x1bPowershareStatusHandshaking\x10\x04\x12*\n&PowershareStatusActiveReconnectingSoon\x10\x05"p\n\x0ePowershareType\x12\x16\n\x12PowershareTypeNone\x10\x00\x12\x16\n\x12PowershareTypeLoad\x10\x01\x12\x16\n\x12PowershareTypeHome\x10\x02\x12\x16\n\x12PowershareTypeGrid\x10\x03"\xdf\x02\n\x14PowershareStopReason\x12\x1c\n\x18PowershareStopReasonNone\x10\x00\x12!\n\x1dPowershareStopReasonSOCTooLow\x10\x01\x12\x1d\n\x19PowershareStopReasonRetry\x10\x02\x12\x1d\n\x19PowershareStopReasonFault\x10\x03\x12\x1c\n\x18PowershareStopReasonUser\x10\x04\x12$\n PowershareStopReasonReconnecting\x10\x05\x12&\n"PowershareStopReasonAuthentication\x10\x06\x12\'\n#PowershareStopReasonAdapterUpdating\x10\x07\x123\n/PowershareStopReasonAdapterInitializationFailed\x10\x08B\x1b\n\x19optional_charge_limit_socB\x1f\n\x1doptional_charge_limit_soc_stdB\x1f\n\x1doptional_charge_limit_soc_minB\x1f\n\x1doptional_charge_limit_soc_maxB#\n!optional_max_range_charge_counterB\x1f\n\x1doptional_fast_charger_presentB\x18\n\x16optional_battery_rangeB\x1c\n\x1aoptional_est_battery_rangeB\x1e\n\x1coptional_ideal_battery_rangeB\x18\n\x16optional_battery_levelB\x1f\n\x1doptional_usable_battery_levelB\x1e\n\x1coptional_charge_energy_addedB#\n!optional_charge_miles_added_ratedB#\n!optional_charge_miles_added_idealB\x1a\n\x18optional_charger_voltageB \n\x1eoptional_charger_pilot_currentB!\n\x1foptional_charger_actual_currentB\x18\n\x16optional_charger_powerB!\n\x1foptional_minutes_to_full_chargeB"\n optional_minutes_to_charge_limitB\x18\n\x16optional_trip_chargingB\x1a\n\x18optional_charge_rate_mphB \n\x1eoptional_charge_port_door_openB(\n&optional_scheduled_charging_start_timeB%\n#optional_scheduled_charging_pendingB%\n#optional_user_charge_enable_requestB \n\x1eoptional_charge_enable_requestB\x19\n\x17optional_charger_phasesB(\n&optional_charge_port_cold_weather_modeB!\n\x1foptional_charge_current_requestB%\n#optional_charge_current_request_maxB"\n optional_managed_charging_activeB)\n\'optional_managed_charging_user_canceledB&\n$optional_managed_charging_start_timeB"\n optional_off_peak_hours_end_timeB"\n optional_scheduled_charging_modeB\x18\n\x16optional_charging_ampsB0\n.optional_scheduled_charging_start_time_minutesB+\n)optional_scheduled_departure_time_minutesB"\n optional_preconditioning_enabledB,\n*optional_scheduled_charging_start_time_appB,\n*optional_supercharger_session_trip_plannerB\x1c\n\x1aoptional_charge_port_colorB \n\x1eoptional_charge_rate_mph_floatB\x1e\n\x1coptional_charge_limit_reasonB!\n\x1foptional_charge_cable_unlatchedB\x17\n\x15optional_outlet_stateB\x1b\n\x19optional_power_feed_stateB\x19\n\x17option_outlet_soc_limitB\x1d\n\x1boption_power_feed_soc_limitB\x1e\n\x1coption_outlet_time_remainingB"\n option_power_feed_time_remainingB%\n#optional_powershare_feature_allowedB%\n#optional_powershare_feature_enabledB\x1d\n\x1boptional_powershare_requestB\x1a\n\x18optional_powershare_typeB\x1c\n\x1aoptional_powershare_statusB!\n\x1foptional_powershare_stop_reasonB+\n)optional_powershare_instantaneous_load_kwB,\n*optional_powershare_vehicle_energy_left_hrB\x1f\n\x1doptional_powershare_soc_limitB\x1d\n\x1boptional_one_time_soc_limitB\x18\n\x16optional_home_locationB\x18\n\x16optional_work_locationB#\n!optional_outlet_max_timer_minutesB(\n&optional_batt_heat_min_to_start_chargeB4\n2optional_batt_heat_min_to_start_charge_calculatingB\x19\n\x17optional_has_ac_outletsB\x1b\n\x19optional_paid_session_feeB$\n"optional_paid_session_fee_currencyB \n\x1eoptional_paid_session_kwh_rateB\x1e\n\x1coptional_discharge_limit_soeB\x15\n\x13optional_is_roamingB%\n#optional_paid_session_location_guidB&\n$optional_paid_session_pricebook_guidB\x19\n\x17optional_low_power_modeB#\n!optional_low_power_mode_forced_onB\x1f\n\x1doptional_convenience_featuresB$\n"optional_keep_accessory_power_modeB!\n\x1foptional_should_hide_range_infoJ\x04\x08\x08\x10\tJ\x04\x08*\x10+J\x04\x08+\x10,"\xaf\x02\n\x14ManagedChargingState\x12<\n\x15charge_on_solar_state\x18\x01 \x01(\x0b2\x1d.CarServer.ChargeOnSolarState\x12%\n\x1bcharge_on_solar_gateway_din\x18\x02 \x01(\tH\x00\x12!\n\x17tesla_electric_asset_id\x18\x03 \x01(\tH\x01\x12 \n\x16minutes_to_lower_limit\x18\x04 \x01(\x05H\x02B&\n$optional_charge_on_solar_gateway_dinB"\n optional_tesla_electric_asset_idB!\n\x1foptional_minutes_to_lower_limit"\xe7\x04\n\x12ChargeOnSolarState\x12>\n\x0bnot_allowed\x18\x01 \x01(\x0b2\'.CarServer.ChargeOnSolarStateNotAllowedH\x00\x12Q\n\x15no_charge_recommended\x18\x02 \x01(\x0b20.CarServer.ChargeOnSolarStateNoChargeRecommendedH\x00\x12V\n\x18charging_on_excess_solar\x18\x03 \x01(\x0b22.CarServer.ChargeOnSolarStateChargingOnExcessSolarH\x00\x12O\n\x14charging_on_anything\x18\x04 \x01(\x0b2/.CarServer.ChargeOnSolarStateChargingOnAnythingH\x00\x12B\n\ruser_disabled\x18\x06 \x01(\x0b2).CarServer.ChargeOnSolarStateUserDisabledH\x00\x12K\n\x12waiting_for_server\x18\x07 \x01(\x0b2-.CarServer.ChargeOnSolarStateWaitingForServerH\x00\x123\n\x05error\x18\x08 \x01(\x0b2".CarServer.ChargeOnSolarStateErrorH\x00\x12@\n\x0cuser_stopped\x18\t \x01(\x0b2(.CarServer.ChargeOnSolarStateUserStoppedH\x00B\x07\n\x05stateJ\x04\x08\x05\x10\x06"\x1e\n\x1cChargeOnSolarStateNotAllowed"e\n%ChargeOnSolarStateNoChargeRecommended\x12<\n\x06reason\x18\x01 \x01(\x0e2,.ManagedCharging.ChargeOnSolarNoChargeReason")\n\'ChargeOnSolarStateChargingOnExcessSolar"&\n$ChargeOnSolarStateChargingOnAnything" \n\x1eChargeOnSolarStateUserDisabled"$\n"ChargeOnSolarStateWaitingForServer"\x19\n\x17ChargeOnSolarStateError"\x1f\n\x1dChargeOnSolarStateUserStopped"\x9d\r\n\rLocationState\x12\x12\n\x08latitude\x18e \x01(\x02H\x00\x12\x13\n\tlongitude\x18f \x01(\x02H\x01\x12\x11\n\x07heading\x18g \x01(\rH\x02\x12\x13\n\tgps_as_of\x18h \x01(\x04H\x03\x12#\n\x19native_location_supported\x18i \x01(\x08H\x04\x12\x19\n\x0fnative_latitude\x18j \x01(\x02H\x05\x12\x1a\n\x10native_longitude\x18k \x01(\x02H\x06\x12?\n\x0bnative_type\x18\x08 \x01(\x0b2*.CarServer.LocationState.GPSCoordinateType\x12\x1c\n\x12corrected_latitude\x18m \x01(\x02H\x07\x12\x1d\n\x13corrected_longitude\x18n \x01(\x02H\x08\x12-\n\ttimestamp\x18\x0b \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x19\n\x0fhomelink_nearby\x18p \x01(\x08H\t\x12\x17\n\rlocation_name\x18q \x01(\tH\n\x12\x16\n\x0cgeo_latitude\x18r \x01(\x02H\x0b\x12\x17\n\rgeo_longitude\x18s \x01(\x02H\x0c\x12\x15\n\x0bgeo_heading\x18t \x01(\x02H\r\x12\x17\n\rgeo_elevation\x18u \x01(\x02H\x0e\x12\x16\n\x0cgeo_accuracy\x18v \x01(\x02H\x0f\x12\x1d\n\x13estimated_gps_valid\x18w \x01(\x08H\x10\x12#\n\x19estimated_to_raw_distance\x18x \x01(\x02H\x11\x12\x1d\n\x13supercharger_trt_id\x18y \x01(\x05H\x12\x12\x1b\n\x11native_latitude_d\x18z \x01(\x01H\x13\x12\x1c\n\x12native_longitude_d\x18{ \x01(\x01H\x14\x12\x18\n\x0egeo_latitude_d\x18| \x01(\x01H\x15\x12\x19\n\x0fgeo_longitude_d\x18} \x01(\x01H\x16\x12\x1f\n\x15geo_hw_raw_latitude_d\x18~ \x01(\x01H\x17\x12 \n\x16geo_hw_raw_longitude_d\x18\x7f \x01(\x01H\x18\x12"\n\x17geo_horizontal_accuracy\x18\x80\x01 \x01(\x02H\x19\x1a[\n\x11GPSCoordinateType\x12\x1e\n\x03GCJ\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03WGS\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04typeB\x13\n\x11optional_latitudeB\x14\n\x12optional_longitudeB\x12\n\x10optional_headingB\x14\n\x12optional_gps_as_ofB$\n"optional_native_location_supportedB\x1a\n\x18optional_native_latitudeB\x1b\n\x19optional_native_longitudeB\x1d\n\x1boptional_corrected_latitudeB\x1e\n\x1coptional_corrected_longitudeB\x1a\n\x18optional_homelink_nearbyB\x18\n\x16optional_location_nameB\x17\n\x15optional_geo_latitudeB\x18\n\x16optional_geo_longitudeB\x16\n\x14optional_geo_headingB\x18\n\x16optional_geo_elevationB\x17\n\x15optional_geo_accuracyB\x1e\n\x1coptional_estimated_gps_validB$\n"optional_estimated_to_raw_distanceB\x1e\n\x1coptional_supercharger_trt_idB\x1c\n\x1aoptional_native_latitude_dB\x1d\n\x1boptional_native_longitude_dB\x19\n\x17optional_geo_latitude_dB\x1a\n\x18optional_geo_longitude_dB \n\x1eoptional_geo_hw_raw_latitude_dB!\n\x1foptional_geo_hw_raw_longitude_dB"\n optional_geo_horizontal_accuracyJ\x04\x08\x0c\x10\r"\xb6\'\n\x0cVehicleState\x12=\n\x15software_update_state\x18& \x01(\x0b2\x1e.CarServer.SoftwareUpdateState\x127\n\x12legacy_media_state\x18\' \x01(\x0b2\x1b.CarServer.LegacyMediaState\x12-\n\ttimestamp\x18+ \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x17\n\x0ffeature_bitmask\x187 \x03(\r\x12C\n\x1ftpms_last_seen_pressure_time_fl\x18: \x01(\x0b2\x1a.google.protobuf.Timestamp\x12C\n\x1ftpms_last_seen_pressure_time_fr\x18; \x01(\x0b2\x1a.google.protobuf.Timestamp\x12C\n\x1ftpms_last_seen_pressure_time_rl\x18< \x01(\x0b2\x1a.google.protobuf.Timestamp\x12C\n\x1ftpms_last_seen_pressure_time_rr\x18= \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x18\n\x0edeck_lights_on\x18C \x01(\x08H\x00\x12\x14\n\nhazards_on\x18D \x01(\x08H\x01\x125\n\x11legacy_media_info\x18H \x01(\x0b2\x1a.CarServer.LegacyMediaInfo\x12.\n$allow_authorized_mobile_devices_only\x18I \x01(\x08H\x02\x124\n\tguestMode\x18J \x01(\x0b2!.CarServer.VehicleState.GuestMode\x12\x17\n\rdrive_rail_on\x18K \x01(\x08H\x03\x12\x1e\n\x14pin_to_drive_enabled\x18L \x01(\x08H\x04\x12\x1e\n\x14pin_to_drive_pin_set\x18M \x01(\x08H\x05\x12\x1b\n\x11frontfoglights_on\x18N \x01(\x08H\x06\x12\x1a\n\x10rearfoglights_on\x18O \x01(\x08H\x07\x12\x17\n\rheadlights_on\x18P \x01(\x08H\x08\x12\x1b\n\x11highbeamlights_on\x18Q \x01(\x08H\t\x12\x19\n\x0ftrailer_mode_on\x18R \x01(\x08H\n\x12&\n\x1ctrailer_light_test_available\x18S \x01(\x08H\x0b\x12&\n\x1ctrailer_light_test_requested\x18T \x01(\x08H\x0c\x12%\n\x1btruck_bed_lights_brightness\x18V \x01(\rH\r\x12!\n\x17signed_cmd_service_mode\x18W \x01(\x08H\x0e\x12&\n\x1caccessory_lightbar_middle_on\x18X \x01(\x08H\x0f\x12\x18\n\x0etransport_mode\x18Y \x01(\x08H\x10\x12*\n truck_bed_lights_auto_brightness\x18Z \x01(\rH\x11\x12%\n\x1btruck_bed_lights_auto_state\x18[ \x01(\x08H\x12\x12,\n"truck_bed_lights_controls_disabled\x18\\ \x01(\x08H\x13\x12\x1b\n\x11service_mode_auth\x18] \x01(\tH\x14\x12)\n\x1fservice_gtw_diag_session_active\x18^ \x01(\x08H\x15\x12\x16\n\x0cfactory_mode\x18_ \x01(\x08H\x16\x12\x1e\n\x14training_wheels_mode\x18` \x01(\x08H\x17\x121\n\x0egtw_diag_level\x18a \x01(\x0e2\x17.CarServer.GtwDiagLevelH\x18\x12"\n\x18parental_controls_active\x18b \x01(\x08H\x19\x12#\n\x19parental_controls_pin_set\x18c \x01(\x08H\x1a\x12G\n\x1aparental_controls_settings\x18d \x01(\x0b2#.CarServer.ParentalControlsSettings\x12\x15\n\x0bapi_version\x18e \x01(\rH\x1b\x12\x15\n\x0bcar_version\x18l \x01(\tH\x1c\x12\x1a\n\x10detailed_version\x18m \x01(\tH\x1d\x12\x18\n\x0eautopilot_hash\x18n \x01(\tH\x1e\x12\x16\n\x0cvehicle_name\x18v \x01(\tH\x1f\x12!\n\x17notifications_supported\x18x \x01(\x08H \x12 \n\x16remote_start_supported\x18y \x01(\x08H!\x12\x1e\n\x14remote_start_enabled\x18z \x01(\x08H"\x12\x1e\n\x13last_autopark_error\x18\x83\x01 \x01(\tH#\x12 \n\x15homelink_device_count\x18\x85\x01 \x01(\rH$\x12!\n\x16smart_summon_available\x18\x87\x01 \x01(\x08H%\x12&\n\x1bsummon_standby_mode_enabled\x18\x88\x01 \x01(\x08H&\x12\x15\n\npatsy_mode\x18\x8d\x01 \x01(\x08H\'\x12\x1b\n\x10webcam_available\x18\x8e\x01 \x01(\x08H(\x12&\n\x1bvehicle_self_test_requested\x18\x90\x01 \x01(\x08H)\x12%\n\x1avehicle_self_test_progress\x18\x91\x01 \x01(\rH*\x12\x1d\n\x12calendar_supported\x18\x94\x01 \x01(\x08H+\x12&\n\x1bdashcam_clip_save_available\x18\x95\x01 \x01(\x08H,\x121\n\rdashcam_state\x18\x96\x01 \x01(\x0e2\x17.CarServer.DashCamStateH-\x12\x1b\n\x10tpms_pressure_fl\x18\x97\x01 \x01(\x02H.\x12\x1b\n\x10tpms_pressure_fr\x18\x98\x01 \x01(\x02H/\x12\x1b\n\x10tpms_pressure_rl\x18\x99\x01 \x01(\x02H0\x12\x1b\n\x10tpms_pressure_rr\x18\x9a\x01 \x01(\x02H1\x12\x17\n\x0cservice_mode\x18\x9c\x01 \x01(\x08H2\x12\x1c\n\x11service_mode_plus\x18\x9d\x01 \x01(\x08H3\x12\x1f\n\x14tpms_hard_warning_fl\x18\xa2\x01 \x01(\x08H4\x12\x1f\n\x14tpms_hard_warning_fr\x18\xa3\x01 \x01(\x08H5\x12\x1f\n\x14tpms_hard_warning_rl\x18\xa4\x01 \x01(\x08H6\x12\x1f\n\x14tpms_hard_warning_rr\x18\xa5\x01 \x01(\x08H7\x12\x1f\n\x14tpms_soft_warning_fl\x18\xa6\x01 \x01(\x08H8\x12\x1f\n\x14tpms_soft_warning_fr\x18\xa7\x01 \x01(\x08H9\x12\x1f\n\x14tpms_soft_warning_rl\x18\xa8\x01 \x01(\x08H:\x12\x1f\n\x14tpms_soft_warning_rr\x18\xa9\x01 \x01(\x08H;\x12\x1f\n\x14tpms_rcp_front_value\x18\xaa\x01 \x01(\x02H<\x12\x1e\n\x13tpms_rcp_rear_value\x18\xab\x01 \x01(\x02H=\x12\x1f\n\x14fsd_software_version\x18\xac\x01 \x01(\tH>\x121\n\x0eautopilot_base\x18\xc4\x01 \x01(\x0e2\x18.CarServer.AutopilotBase\x12D\n\x18autopilot_override_state\x18\xc5\x01 \x01(\x0e2!.CarServer.AutopilotOverrideState\x12)\n\x1eautopilot_override_expire_time\x18\xc6\x01 \x01(\x03H?\x1a$\n\tGuestMode\x12\x17\n\x0fGuestModeActive\x18\x01 \x01(\x08B\x19\n\x17optional_deck_lights_onB\x15\n\x13optional_hazards_onB/\n-optional_allow_authorized_mobile_devices_onlyB\x18\n\x16optional_drive_rail_onB\x1f\n\x1doptional_pin_to_drive_enabledB\x1f\n\x1doptional_pin_to_drive_pin_setB\x1c\n\x1aoptional_frontfoglights_onB\x1b\n\x19optional_rearfoglights_onB\x18\n\x16optional_headlights_onB\x1c\n\x1aoptional_highbeamlights_onB\x1a\n\x18optional_trailer_mode_onB\'\n%optional_trailer_light_test_availableB\'\n%optional_trailer_light_test_requestedB&\n$optional_truck_bed_lights_brightnessB"\n optional_signed_cmd_service_modeB\'\n%optional_accessory_lightbar_middle_onB\x19\n\x17optional_transport_modeB+\n)optional_truck_bed_lights_auto_brightnessB&\n$optional_truck_bed_lights_auto_stateB-\n+optional_truck_bed_lights_controls_disabledB\x1c\n\x1aoptional_service_mode_authB*\n(optional_service_gtw_diag_session_activeB\x17\n\x15optional_factory_modeB\x1f\n\x1doptional_training_wheels_modeB\x19\n\x17optional_gtw_diag_levelB#\n!optional_parental_controls_activeB$\n"optional_parental_controls_pin_setB\x16\n\x14optional_api_versionB\x16\n\x14optional_car_versionB\x1b\n\x19optional_detailed_versionB\x19\n\x17optional_autopilot_hashB\x17\n\x15optional_vehicle_nameB"\n optional_notifications_supportedB!\n\x1foptional_remote_start_supportedB\x1f\n\x1doptional_remote_start_enabledB\x1e\n\x1coptional_last_autopark_errorB \n\x1eoptional_homelink_device_countB!\n\x1foptional_smart_summon_availableB&\n$optional_summon_standby_mode_enabledB\x15\n\x13optional_patsy_modeB\x1b\n\x19optional_webcam_availableB&\n$optional_vehicle_self_test_requestedB%\n#optional_vehicle_self_test_progressB\x1d\n\x1boptional_calendar_supportedB&\n$optional_dashcam_clip_save_availableB\x18\n\x16optional_dashcam_stateB\x1b\n\x19optional_tpms_pressure_flB\x1b\n\x19optional_tpms_pressure_frB\x1b\n\x19optional_tpms_pressure_rlB\x1b\n\x19optional_tpms_pressure_rrB\x17\n\x15optional_service_modeB\x1c\n\x1aoptional_service_mode_plusB\x1f\n\x1doptional_tpms_hard_warning_flB\x1f\n\x1doptional_tpms_hard_warning_frB\x1f\n\x1doptional_tpms_hard_warning_rlB\x1f\n\x1doptional_tpms_hard_warning_rrB\x1f\n\x1doptional_tpms_soft_warning_flB\x1f\n\x1doptional_tpms_soft_warning_frB\x1f\n\x1doptional_tpms_soft_warning_rlB\x1f\n\x1doptional_tpms_soft_warning_rrB\x1f\n\x1doptional_tpms_rcp_front_valueB\x1e\n\x1coptional_tpms_rcp_rear_valueB\x1f\n\x1doptional_fsd_software_versionB)\n\'optional_autopilot_override_expire_time"W\n\x10LegacyMediaState\x12 \n\x16remote_control_enabled\x18e \x01(\x08H\x00B!\n\x1foptional_remote_control_enabled"\xbf\x03\n\x0fLegacyMediaInfo\x12=\n\x15media_playback_status\x18\x01 \x01(\x0e2\x1e.CarServer.MediaPlaybackStatus\x12\x14\n\x0caudio_volume\x18\x02 \x01(\x02\x12\x1c\n\x14now_playing_duration\x18\x03 \x01(\x05\x12\x1b\n\x13now_playing_elapsed\x18\x04 \x01(\x05\x126\n\x12now_playing_source\x18\x05 \x01(\x0e2\x1a.CarServer.MediaSourceType\x12!\n\x19now_playing_source_string\x18\x06 \x01(\t\x12\x1a\n\x12now_playing_artist\x18\x07 \x01(\t\x12\x19\n\x11now_playing_title\x18\x08 \x01(\t\x12\x19\n\x11now_playing_album\x18\t \x01(\t\x12\x1b\n\x13now_playing_station\x18\n \x01(\t\x12\x1e\n\x16audio_volume_increment\x18\x0b \x01(\x02\x12\x18\n\x10audio_volume_max\x18\x0c \x01(\x02\x12\x18\n\x10a2dp_source_name\x18\x0f \x01(\t"\xbb\'\n\x0cClimateState\x12\x1d\n\x13inside_temp_celsius\x18e \x01(\x02H\x00\x12\x1e\n\x14outside_temp_celsius\x18f \x01(\x02H\x01\x12\x1d\n\x13driver_temp_setting\x18g \x01(\x02H\x02\x12 \n\x16passenger_temp_setting\x18h \x01(\x02H\x03\x12\x1d\n\x13left_temp_direction\x18i \x01(\x05H\x04\x12\x1e\n\x14right_temp_direction\x18j \x01(\x05H\x05\x12\x1f\n\x15is_front_defroster_on\x18k \x01(\x08H\x06\x12\x1e\n\x14is_rear_defroster_on\x18l \x01(\x08H\x07\x12\x14\n\nfan_status\x18m \x01(\x05H\x08\x12\x17\n\ris_climate_on\x18n \x01(\x08H\t\x12 \n\x16min_avail_temp_celsius\x18o \x01(\x02H\n\x12 \n\x16max_avail_temp_celsius\x18p \x01(\x02H\x0b\x12\x1a\n\x10seat_heater_left\x18q \x01(\x05H\x0c\x12\x1b\n\x11seat_heater_right\x18r \x01(\x05H\r\x12\x1f\n\x15seat_heater_rear_left\x18s \x01(\x05H\x0e\x12 \n\x16seat_heater_rear_right\x18t \x01(\x05H\x0f\x12!\n\x17seat_heater_rear_center\x18u \x01(\x05H\x10\x12%\n\x1bseat_heater_rear_right_back\x18v \x01(\x05H\x11\x12$\n\x1aseat_heater_rear_left_back\x18w \x01(\x05H\x12\x12%\n\x1bseat_heater_third_row_right\x18x \x01(\x05H\x13\x12$\n\x1aseat_heater_third_row_left\x18y \x01(\x05H\x14\x12\x18\n\x0ebattery_heater\x18z \x01(\x08H\x15\x12!\n\x17battery_heater_no_power\x18{ \x01(\x08H\x16\x12\x1f\n\x15steering_wheel_heater\x18} \x01(\x08H\x17\x12\x1c\n\x12wiper_blade_heater\x18~ \x01(\x08H\x18\x12\x1d\n\x13side_mirror_heaters\x18\x7f \x01(\x08H\x19\x12\x1d\n\x12is_preconditioning\x18\x80\x01 \x01(\x08H\x1a\x12(\n\x1dremote_heater_control_enabled\x18\x81\x01 \x01(\x08H\x1b\x12F\n\x13climate_keeper_mode\x18\x1e \x01(\x0b2).CarServer.ClimateState.ClimateKeeperMode\x12-\n\ttimestamp\x18! \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x1c\n\x11bioweapon_mode_on\x18\x86\x01 \x01(\x08H\x1c\x129\n\x0cdefrost_mode\x18# \x01(\x0b2#.CarServer.ClimateState.DefrostMode\x12"\n\x17is_auto_conditioning_on\x18\x88\x01 \x01(\x08H\x1d\x12!\n\x16auto_seat_climate_left\x18\x89\x01 \x01(\x08H\x1e\x12"\n\x17auto_seat_climate_right\x18\x8a\x01 \x01(\x08H\x1f\x12\x1e\n\x13seat_fan_front_left\x18\x8b\x01 \x01(\x05H \x12\x1f\n\x14seat_fan_front_right\x18\x8c\x01 \x01(\x05H!\x12*\n\x1fallow_cabin_overheat_protection\x18\x8d\x01 \x01(\x08H"\x126\n+supports_fan_only_cabin_overheat_protection\x18\x8e\x01 \x01(\x08H#\x12W\n\x19cabin_overheat_protection\x18\x8f\x01 \x01(\x0e21.CarServer.ClimateState.CabinOverheatProtection_EH$\x125\n*cabin_overheat_protection_actively_cooling\x18\x90\x01 \x01(\x08H%\x12P\n\x1acop_activation_temperature\x18\x92\x01 \x01(\x0e2).CarServer.ClimateState.CopActivationTempH&\x12#\n\x18auto_steering_wheel_heat\x18\x93\x01 \x01(\x08H\'\x12=\n\x19steering_wheel_heat_level\x18\x94\x01 \x01(\x0e2\x17.CarServer.StwHeatLevelH(\x12E\n\x11hvac_auto_request\x18\x96\x01 \x01(\x0e2\'.CarServer.ClimateState.HvacAutoRequestH)\x12N\n\x16cop_not_running_reason\x18\x97\x01 \x01(\x0e2+.CarServer.ClimateState.COPNotRunningReasonH*\x12#\n\x18seat_fan_second_row_left\x18\x98\x01 \x01(\x05H+\x12$\n\x19seat_fan_second_row_right\x18\x99\x01 \x01(\x05H,\x12?\n\x0edog_mode_state\x18\x9a\x01 \x01(\x0e2$.CarServer.ClimateState.DogModeStateH-\x1a\xc0\x01\n\x11ClimateKeeperMode\x12"\n\x07Unknown\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03Off\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1d\n\x02On\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03Dog\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12 \n\x05Party\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type\x1ax\n\x0bDefrostMode\x12\x1e\n\x03Off\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12!\n\x06Normal\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03Max\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type"E\n\x0fHvacAutoRequest\x12\x15\n\x11HvacAutoRequestOn\x10\x00\x12\x1b\n\x17HvacAutoRequestOverride\x10\x01"~\n\x19CabinOverheatProtection_E\x12\x1e\n\x1aCabinOverheatProtectionOff\x10\x00\x12\x1d\n\x19CabinOverheatProtectionOn\x10\x01\x12"\n\x1eCabinOverheatProtectionFanOnly\x10\x02"t\n\x11SeatHeaterLevel_E\x12\x16\n\x12SeatHeaterLevelOff\x10\x00\x12\x16\n\x12SeatHeaterLevelLow\x10\x01\x12\x16\n\x12SeatHeaterLevelMed\x10\x02\x12\x17\n\x13SeatHeaterLevelHigh\x10\x03"y\n\x12SeatCoolingLevel_E\x12\x17\n\x13SeatCoolingLevelOff\x10\x00\x12\x17\n\x13SeatCoolingLevelLow\x10\x01\x12\x17\n\x13SeatCoolingLevelMed\x10\x02\x12\x18\n\x14SeatCoolingLevelHigh\x10\x03"\x87\x01\n\x11CopActivationTemp\x12 \n\x1cCopActivationTempUnspecified\x10\x00\x12\x18\n\x14CopActivationTempLow\x10\x01\x12\x1b\n\x17CopActivationTempMedium\x10\x02\x12\x19\n\x15CopActivationTempHigh\x10\x03"\x9e\x02\n\x13COPNotRunningReason\x12\x1f\n\x1bCOPNotRunningReasonNoReason\x10\x00\x12&\n"COPNotRunningReasonUserInteraction\x10\x01\x12/\n+COPNotRunningReasonEnergyConsumptionReached\x10\x02\x12\x1e\n\x1aCOPNotRunningReasonTimeout\x10\x03\x12#\n\x1fCOPNotRunningReasonLowSolarLoad\x10\x04\x12\x1c\n\x18COPNotRunningReasonFault\x10\x05\x12*\n&COPNotRunningReasonCabinBelowThreshold\x10\x06"\xdb\x01\n\x0cDogModeState\x12 \n\x1cDogModeStateUnavailableFault\x10\x00\x12!\n\x1dDogModeStateUnavailableTooHot\x10\x01\x12\x19\n\x15DogModeStateAvailable\x10\x02\x12\x1e\n\x1aDogModeStateRunningNominal\x10\x03\x12\x1c\n\x18DogModeStateRunningFault\x10\x04\x12-\n)DogModeStateRunningTemperatureMonitorTrip\x10\x05B\x1e\n\x1coptional_inside_temp_celsiusB\x1f\n\x1doptional_outside_temp_celsiusB\x1e\n\x1coptional_driver_temp_settingB!\n\x1foptional_passenger_temp_settingB\x1e\n\x1coptional_left_temp_directionB\x1f\n\x1doptional_right_temp_directionB \n\x1eoptional_is_front_defroster_onB\x1f\n\x1doptional_is_rear_defroster_onB\x15\n\x13optional_fan_statusB\x18\n\x16optional_is_climate_onB!\n\x1foptional_min_avail_temp_celsiusB!\n\x1foptional_max_avail_temp_celsiusB\x1b\n\x19optional_seat_heater_leftB\x1c\n\x1aoptional_seat_heater_rightB \n\x1eoptional_seat_heater_rear_leftB!\n\x1foptional_seat_heater_rear_rightB"\n optional_seat_heater_rear_centerB&\n$optional_seat_heater_rear_right_backB%\n#optional_seat_heater_rear_left_backB&\n$optional_seat_heater_third_row_rightB%\n#optional_seat_heater_third_row_leftB\x19\n\x17optional_battery_heaterB"\n optional_battery_heater_no_powerB \n\x1eoptional_steering_wheel_heaterB\x1d\n\x1boptional_wiper_blade_heaterB\x1e\n\x1coptional_side_mirror_heatersB\x1d\n\x1boptional_is_preconditioningB(\n&optional_remote_heater_control_enabledB\x1c\n\x1aoptional_bioweapon_mode_onB"\n optional_is_auto_conditioning_onB!\n\x1foptional_auto_seat_climate_leftB"\n optional_auto_seat_climate_rightB\x1e\n\x1coptional_seat_fan_front_leftB\x1f\n\x1doptional_seat_fan_front_rightB*\n(optional_allow_cabin_overheat_protectionB6\n4optional_supports_fan_only_cabin_overheat_protectionB$\n"optional_cabin_overheat_protectionB5\n3optional_cabin_overheat_protection_actively_coolingB%\n#optional_cop_activation_temperatureB#\n!optional_auto_steering_wheel_heatB$\n"optional_steering_wheel_heat_levelB\x1c\n\x1aoptional_hvac_auto_requestB!\n\x1foptional_cop_not_running_reasonB#\n!optional_seat_fan_second_row_leftB$\n"optional_seat_fan_second_row_rightB\x19\n\x17optional_dog_mode_stateJ\x06\x08\x91\x01\x10\x92\x01"\xae3\n\x11TirePressureState\x12-\n\ttimestamp\x18\x01 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x1a\n\x10tpms_pressure_fl\x18\x02 \x01(\x02H\x00\x12\x1a\n\x10tpms_pressure_fr\x18\x03 \x01(\x02H\x01\x12\x1a\n\x10tpms_pressure_rl\x18\x04 \x01(\x02H\x02\x12\x1a\n\x10tpms_pressure_rr\x18\x05 \x01(\x02H\x03\x12C\n\x1ftpms_last_seen_pressure_time_fl\x18\x06 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12C\n\x1ftpms_last_seen_pressure_time_fr\x18\x07 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12C\n\x1ftpms_last_seen_pressure_time_rl\x18\x08 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12C\n\x1ftpms_last_seen_pressure_time_rr\x18\t \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x1e\n\x14tpms_hard_warning_fl\x18\n \x01(\x08H\x04\x12\x1e\n\x14tpms_hard_warning_fr\x18\x0b \x01(\x08H\x05\x12\x1e\n\x14tpms_hard_warning_rl\x18\x0c \x01(\x08H\x06\x12\x1e\n\x14tpms_hard_warning_rr\x18\r \x01(\x08H\x07\x12\x1e\n\x14tpms_soft_warning_fl\x18\x0e \x01(\x08H\x08\x12\x1e\n\x14tpms_soft_warning_fr\x18\x0f \x01(\x08H\t\x12\x1e\n\x14tpms_soft_warning_rl\x18\x10 \x01(\x08H\n\x12\x1e\n\x14tpms_soft_warning_rr\x18\x11 \x01(\x08H\x0b\x12\x1e\n\x14tpms_rcp_front_value\x18\x12 \x01(\x02H\x0c\x12\x1d\n\x13tpms_rcp_rear_value\x18\x13 \x01(\x02H\r\x12\x1e\n\x14tpms_pressure_re1_l0\x18\x14 \x01(\x02H\x0e\x12\x1e\n\x14tpms_pressure_re1_l1\x18\x15 \x01(\x02H\x0f\x12\x1e\n\x14tpms_pressure_re1_r0\x18\x16 \x01(\x02H\x10\x12\x1e\n\x14tpms_pressure_re1_r1\x18\x17 \x01(\x02H\x11\x12\x1e\n\x14tpms_pressure_re2_l0\x18\x18 \x01(\x02H\x12\x12\x1e\n\x14tpms_pressure_re2_l1\x18\x19 \x01(\x02H\x13\x12\x1e\n\x14tpms_pressure_re2_r0\x18\x1a \x01(\x02H\x14\x12\x1e\n\x14tpms_pressure_re2_r1\x18\x1b \x01(\x02H\x15\x12G\n#tpms_last_seen_pressure_time_re1_l0\x18\x1c \x01(\x0b2\x1a.google.protobuf.Timestamp\x12G\n#tpms_last_seen_pressure_time_re1_l1\x18\x1d \x01(\x0b2\x1a.google.protobuf.Timestamp\x12G\n#tpms_last_seen_pressure_time_re1_r0\x18\x1e \x01(\x0b2\x1a.google.protobuf.Timestamp\x12G\n#tpms_last_seen_pressure_time_re1_r1\x18\x1f \x01(\x0b2\x1a.google.protobuf.Timestamp\x12G\n#tpms_last_seen_pressure_time_re2_l0\x18 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12G\n#tpms_last_seen_pressure_time_re2_l1\x18! \x01(\x0b2\x1a.google.protobuf.Timestamp\x12G\n#tpms_last_seen_pressure_time_re2_r0\x18" \x01(\x0b2\x1a.google.protobuf.Timestamp\x12G\n#tpms_last_seen_pressure_time_re2_r1\x18# \x01(\x0b2\x1a.google.protobuf.Timestamp\x12"\n\x18tpms_hard_warning_re1_l0\x18$ \x01(\x08H\x16\x12"\n\x18tpms_hard_warning_re1_l1\x18% \x01(\x08H\x17\x12"\n\x18tpms_hard_warning_re1_r0\x18& \x01(\x08H\x18\x12"\n\x18tpms_hard_warning_re1_r1\x18\' \x01(\x08H\x19\x12"\n\x18tpms_hard_warning_re2_l0\x18( \x01(\x08H\x1a\x12"\n\x18tpms_hard_warning_re2_l1\x18) \x01(\x08H\x1b\x12"\n\x18tpms_hard_warning_re2_r0\x18* \x01(\x08H\x1c\x12"\n\x18tpms_hard_warning_re2_r1\x18+ \x01(\x08H\x1d\x12"\n\x18tpms_soft_warning_re1_l0\x18, \x01(\x08H\x1e\x12"\n\x18tpms_soft_warning_re1_l1\x18- \x01(\x08H\x1f\x12"\n\x18tpms_soft_warning_re1_r0\x18. \x01(\x08H \x12"\n\x18tpms_soft_warning_re1_r1\x18/ \x01(\x08H!\x12"\n\x18tpms_soft_warning_re2_l0\x180 \x01(\x08H"\x12"\n\x18tpms_soft_warning_re2_l1\x181 \x01(\x08H#\x12"\n\x18tpms_soft_warning_re2_r0\x182 \x01(\x08H$\x12"\n\x18tpms_soft_warning_re2_r1\x183 \x01(\x08H%\x12\x1d\n\x13tpms_temperature_fl\x184 \x01(\x02H&\x12\x1d\n\x13tpms_temperature_fr\x185 \x01(\x02H\'\x12\x1d\n\x13tpms_temperature_rl\x186 \x01(\x02H(\x12\x1d\n\x13tpms_temperature_rr\x187 \x01(\x02H)\x12!\n\x17tpms_temperature_re1_l0\x188 \x01(\x02H*\x12!\n\x17tpms_temperature_re1_l1\x189 \x01(\x02H+\x12!\n\x17tpms_temperature_re1_r0\x18: \x01(\x02H,\x12!\n\x17tpms_temperature_re1_r1\x18; \x01(\x02H-\x12!\n\x17tpms_temperature_re2_l0\x18< \x01(\x02H.\x12!\n\x17tpms_temperature_re2_l1\x18= \x01(\x02H/\x12!\n\x17tpms_temperature_re2_r0\x18> \x01(\x02H0\x12!\n\x17tpms_temperature_re2_r1\x18? \x01(\x02H1\x12*\n tpms_temperature_hard_warning_fl\x18@ \x01(\x08H2\x12*\n tpms_temperature_hard_warning_fr\x18A \x01(\x08H3\x12*\n tpms_temperature_hard_warning_rl\x18B \x01(\x08H4\x12*\n tpms_temperature_hard_warning_rr\x18C \x01(\x08H5\x12.\n$tpms_temperature_hard_warning_re1_l0\x18D \x01(\x08H6\x12.\n$tpms_temperature_hard_warning_re1_l1\x18E \x01(\x08H7\x12.\n$tpms_temperature_hard_warning_re1_r0\x18F \x01(\x08H8\x12.\n$tpms_temperature_hard_warning_re1_r1\x18G \x01(\x08H9\x12.\n$tpms_temperature_hard_warning_re2_l0\x18H \x01(\x08H:\x12.\n$tpms_temperature_hard_warning_re2_l1\x18I \x01(\x08H;\x12.\n$tpms_temperature_hard_warning_re2_r0\x18J \x01(\x08H<\x12.\n$tpms_temperature_hard_warning_re2_r1\x18K \x01(\x08H=\x12*\n tpms_temperature_soft_warning_fl\x18L \x01(\x08H>\x12*\n tpms_temperature_soft_warning_fr\x18M \x01(\x08H?\x12*\n tpms_temperature_soft_warning_rl\x18N \x01(\x08H@\x12*\n tpms_temperature_soft_warning_rr\x18O \x01(\x08HA\x12.\n$tpms_temperature_soft_warning_re1_l0\x18P \x01(\x08HB\x12.\n$tpms_temperature_soft_warning_re1_l1\x18Q \x01(\x08HC\x12.\n$tpms_temperature_soft_warning_re1_r0\x18R \x01(\x08HD\x12.\n$tpms_temperature_soft_warning_re1_r1\x18S \x01(\x08HE\x12.\n$tpms_temperature_soft_warning_re2_l0\x18T \x01(\x08HF\x12.\n$tpms_temperature_soft_warning_re2_l1\x18U \x01(\x08HG\x12.\n$tpms_temperature_soft_warning_re2_r0\x18V \x01(\x08HH\x12.\n$tpms_temperature_soft_warning_re2_r1\x18W \x01(\x08HIB\x1b\n\x19optional_tpms_pressure_flB\x1b\n\x19optional_tpms_pressure_frB\x1b\n\x19optional_tpms_pressure_rlB\x1b\n\x19optional_tpms_pressure_rrB\x1f\n\x1doptional_tpms_hard_warning_flB\x1f\n\x1doptional_tpms_hard_warning_frB\x1f\n\x1doptional_tpms_hard_warning_rlB\x1f\n\x1doptional_tpms_hard_warning_rrB\x1f\n\x1doptional_tpms_soft_warning_flB\x1f\n\x1doptional_tpms_soft_warning_frB\x1f\n\x1doptional_tpms_soft_warning_rlB\x1f\n\x1doptional_tpms_soft_warning_rrB\x1f\n\x1doptional_tpms_rcp_front_valueB\x1e\n\x1coptional_tpms_rcp_rear_valueB\x1f\n\x1doptional_tpms_pressure_re1_l0B\x1f\n\x1doptional_tpms_pressure_re1_l1B\x1f\n\x1doptional_tpms_pressure_re1_r0B\x1f\n\x1doptional_tpms_pressure_re1_r1B\x1f\n\x1doptional_tpms_pressure_re2_l0B\x1f\n\x1doptional_tpms_pressure_re2_l1B\x1f\n\x1doptional_tpms_pressure_re2_r0B\x1f\n\x1doptional_tpms_pressure_re2_r1B#\n!optional_tpms_hard_warning_re1_l0B#\n!optional_tpms_hard_warning_re1_l1B#\n!optional_tpms_hard_warning_re1_r0B#\n!optional_tpms_hard_warning_re1_r1B#\n!optional_tpms_hard_warning_re2_l0B#\n!optional_tpms_hard_warning_re2_l1B#\n!optional_tpms_hard_warning_re2_r0B#\n!optional_tpms_hard_warning_re2_r1B#\n!optional_tpms_soft_warning_re1_l0B#\n!optional_tpms_soft_warning_re1_l1B#\n!optional_tpms_soft_warning_re1_r0B#\n!optional_tpms_soft_warning_re1_r1B#\n!optional_tpms_soft_warning_re2_l0B#\n!optional_tpms_soft_warning_re2_l1B#\n!optional_tpms_soft_warning_re2_r0B#\n!optional_tpms_soft_warning_re2_r1B\x1e\n\x1coptional_tpms_temperature_flB\x1e\n\x1coptional_tpms_temperature_frB\x1e\n\x1coptional_tpms_temperature_rlB\x1e\n\x1coptional_tpms_temperature_rrB"\n optional_tpms_temperature_re1_l0B"\n optional_tpms_temperature_re1_l1B"\n optional_tpms_temperature_re1_r0B"\n optional_tpms_temperature_re1_r1B"\n optional_tpms_temperature_re2_l0B"\n optional_tpms_temperature_re2_l1B"\n optional_tpms_temperature_re2_r0B"\n optional_tpms_temperature_re2_r1B+\n)optional_tpms_temperature_hard_warning_flB+\n)optional_tpms_temperature_hard_warning_frB+\n)optional_tpms_temperature_hard_warning_rlB+\n)optional_tpms_temperature_hard_warning_rrB/\n-optional_tpms_temperature_hard_warning_re1_l0B/\n-optional_tpms_temperature_hard_warning_re1_l1B/\n-optional_tpms_temperature_hard_warning_re1_r0B/\n-optional_tpms_temperature_hard_warning_re1_r1B/\n-optional_tpms_temperature_hard_warning_re2_l0B/\n-optional_tpms_temperature_hard_warning_re2_l1B/\n-optional_tpms_temperature_hard_warning_re2_r0B/\n-optional_tpms_temperature_hard_warning_re2_r1B+\n)optional_tpms_temperature_soft_warning_flB+\n)optional_tpms_temperature_soft_warning_frB+\n)optional_tpms_temperature_soft_warning_rlB+\n)optional_tpms_temperature_soft_warning_rrB/\n-optional_tpms_temperature_soft_warning_re1_l0B/\n-optional_tpms_temperature_soft_warning_re1_l1B/\n-optional_tpms_temperature_soft_warning_re1_r0B/\n-optional_tpms_temperature_soft_warning_re1_r1B/\n-optional_tpms_temperature_soft_warning_re2_l0B/\n-optional_tpms_temperature_soft_warning_re2_l1B/\n-optional_tpms_temperature_soft_warning_re2_r0B/\n-optional_tpms_temperature_soft_warning_re2_r1"\xe3\x04\n\nMediaState\x12-\n\ttimestamp\x18\x01 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12 \n\x16remote_control_enabled\x18\x02 \x01(\x08H\x00\x12\x1c\n\x12now_playing_artist\x18\x03 \x01(\tH\x01\x12\x1b\n\x11now_playing_title\x18\x04 \x01(\tH\x02\x12\x16\n\x0caudio_volume\x18\x05 \x01(\x02H\x03\x12 \n\x16audio_volume_increment\x18\x06 \x01(\x02H\x04\x12\x1a\n\x10audio_volume_max\x18\x07 \x01(\x02H\x05\x128\n\x12now_playing_source\x18\x08 \x01(\x0e2\x1a.CarServer.MediaSourceTypeH\x06\x12?\n\x15media_playback_status\x18\t \x01(\x0e2\x1e.CarServer.MediaPlaybackStatusH\x07B!\n\x1foptional_remote_control_enabledB\x1d\n\x1boptional_now_playing_artistB\x1c\n\x1aoptional_now_playing_titleB\x17\n\x15optional_audio_volumeB!\n\x1foptional_audio_volume_incrementB\x1b\n\x19optional_audio_volume_maxB\x1d\n\x1boptional_now_playing_sourceB \n\x1eoptional_media_playback_status"\xb8\x05\n\x10MediaDetailState\x12-\n\ttimestamp\x18\x01 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x1e\n\x14now_playing_duration\x18\x02 \x01(\x05H\x00\x12\x1d\n\x13now_playing_elapsed\x18\x03 \x01(\x05H\x01\x12#\n\x19now_playing_source_string\x18\x04 \x01(\tH\x02\x12\x1b\n\x11now_playing_album\x18\x05 \x01(\tH\x03\x12\x1d\n\x13now_playing_station\x18\x06 \x01(\tH\x04\x12\x1a\n\x10a2dp_source_name\x18\x07 \x01(\tH\x05\x129\n\x15recent_theater_source\x18\x08 \x01(\x0e2\x18.CarServer.TheaterSourceH\x06\x12&\n\x1crecent_theater_source_string\x18\t \x01(\tH\x07\x12#\n\x19theater_source_is_playing\x18\n \x01(\x08H\x08B\x1f\n\x1doptional_now_playing_durationB\x1e\n\x1coptional_now_playing_elapsedB$\n"optional_now_playing_source_stringB\x1c\n\x1aoptional_now_playing_albumB\x1e\n\x1coptional_now_playing_stationB\x1b\n\x19optional_a2dp_source_nameB \n\x1eoptional_recent_theater_sourceB\'\n%optional_recent_theater_source_stringB$\n"optional_theater_source_is_playing"\xd0\x01\n\nShiftState\x12"\n\x07Invalid\x18\x01 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1c\n\x01P\x18\x02 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1c\n\x01R\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1c\n\x01N\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1c\n\x01D\x18\x05 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\x1e\n\x03SNA\x18\x06 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type"\xe2\x02\n\x0bGuiSettings\x12-\n\ttimestamp\x18\x07 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x1a\n\x10gui_24_hour_time\x18h \x01(\x08H\x00\x12\x1a\n\x10show_range_units\x18j \x01(\x08H\x01\x12I\n\x16gui_tirepressure_units\x18l \x01(\x0e2\'.CarServer.GuiSettings.TirePressureUnitH\x02"D\n\x10TirePressureUnit\x12\x17\n\x13TirePressureUnitPsi\x10\x00\x12\x17\n\x13TirePressureUnitBar\x10\x01B\x1b\n\x19optional_gui_24_hour_timeB\x1b\n\x19optional_show_range_unitsB!\n\x1foptional_gui_tirepressure_units"\xb28\n\rVehicleConfig\x12E\n\x12interior_trim_type\x18\x1c \x01(\x0b2).CarServer.VehicleConfig.InteriorTrimType\x12E\n\x12exterior_trim_type\x18# \x01(\x0b2).CarServer.VehicleConfig.ExteriorTrimType\x12\x1c\n\x12red_brake_calipers\x18= \x01(\x08H\x00\x12\x1b\n\x11use_range_badging\x18g \x01(\x08H\x01\x12\x1c\n\x12range_plus_badging\x18h \x01(\x08H\x02\x12\x1c\n\x12has_ludicrous_mode\x18i \x01(\x08H\x03\x12\x1c\n\x12can_actuate_trunks\x18j \x01(\x08H\x04\x12\x1c\n\x12has_air_suspension\x18n \x01(\x08H\x05\x12\x1a\n\x10ece_restrictions\x18x \x01(\x08H\x06\x12\x14\n\neu_vehicle\x18y \x01(\x08H\x07\x12\x1f\n\x15motorized_charge_port\x18z \x01(\x08H\x08\x12(\n\x1ecan_accept_navigation_requests\x18| \x01(\x08H\t\x12\x15\n\x0bkey_version\x18} \x01(\rH\n\x12\x18\n\x0emobile_enabled\x18~ \x01(\x08H\x0b\x12 \n\x15default_charge_to_max\x18\x86\x01 \x01(\x08H\x0c\x12*\n\x1fsteering_wheel_heater_installed\x18\x88\x01 \x01(\x08H\r\x12 \n\x15sentry_mode_supported\x18\x89\x01 \x01(\x08H\x0e\x12\x1d\n\x12homelink_supported\x18\x8a\x01 \x01(\x08H\x0f\x12\x1b\n\x10webcam_supported\x18\x8b\x01 \x01(\x08H\x10\x12#\n\x18bioweapon_mode_supported\x18\x8d\x01 \x01(\x08H\x11\x12&\n\x1bdashcam_clip_save_supported\x18\x8e\x01 \x01(\x08H\x12\x12\x12\n\x07has_pws\x18\x8f\x01 \x01(\x08H\x13\x12\x15\n\nutc_offset\x18\x90\x01 \x01(\x11H\x14\x12\x1b\n\x10has_seat_cooling\x18\x91\x01 \x01(\x08H\x15\x12\x1f\n\x14paint_color_override\x18\x92\x01 \x01(\tH\x16\x12#\n\x18tpms_pressures_supported\x18\x93\x01 \x01(\x08H\x17\x12\x1a\n\x0fvehicle_badging\x18\x94\x01 \x01(\rH\x18\x12!\n\x16exterior_trim_override\x18\x95\x01 \x01(\tH\x19\x12A\n\rheadlamp_type\x18\x96\x01 \x01(\x0e2\'.CarServer.VehicleConfig.HeadlampType_EH\x1a\x12B\n\x0eaux_park_lamps\x18\x9a\x01 \x01(\x0e2\'.CarServer.VehicleConfig.AuxParkLamps_EH\x1b\x12\x13\n\x08is_raven\x18\x9b\x01 \x01(\x08H\x1c\x12 \n\x15has_auto_seat_climate\x18\x9c\x01 \x01(\x08H\x1d\x12%\n\x1ahas_front_row_seat_heaters\x18\x9d\x01 \x01(\x08H\x1e\x12%\n\x1ahas_third_row_seat_heaters\x18\x9e\x01 \x01(\x08H\x1f\x12\x1e\n\x13supports_qr_pairing\x18\x9f\x01 \x01(\x08H \x12$\n\x19disable_window_vent_close\x18\xa1\x01 \x01(\x08H!\x12"\n\x17webcam_selfie_supported\x18\xa2\x01 \x01(\x08H"\x12&\n\x1bcop_user_set_temp_supported\x18\xa3\x01 \x01(\x08H#\x12\x1c\n\x11has_auto_stw_heat\x18\xa4\x01 \x01(\x08H$\x12A\n\x0erearlight_type\x18\xa5\x01 \x01(\x0e2&.CarServer.VehicleConfig.RearLightTypeH%\x12?\n\x15rear_seat_heater_type\x18\xa6\x01 \x01(\x0e2\x1d.CarServer.RearSeatHeaterTypeH&\x12 \n\x15webcam_grid_supported\x18\xa7\x01 \x01(\x08H\'\x12\x1a\n\x0fhas_tesla_badge\x18\xa8\x01 \x01(\x08H(\x12\x1d\n\x12has_tesla_wordmark\x18\xa9\x01 \x01(\x08H)\x12-\n\x0bfascia_type\x18\xaa\x01 \x01(\x0e2\x15.CarServer.FasciaTypeH*\x12D\n\x17accessory_lightbar_type\x18\xab\x01 \x01(\x0e2 .CarServer.AccessoryLightbarTypeH+\x12#\n\x18sentry_preview_supported\x18\xac\x01 \x01(\x08H,\x12@\n\x0eseat_trim_type\x18\xad\x01 \x01(\x0e2%.CarServer.VehicleConfig.SeatTrimTypeH-\x12C\n\x0fdrivetrain_type\x18\xae\x01 \x01(\x0e2\'.CarServer.VehicleConfig.DrivetrainTypeH.\x12\x1e\n\x13lightshow_supported\x18\xaf\x01 \x01(\x08H/\x12(\n\x1dmobile_dashcam_viewer_version\x18\xb0\x01 \x01(\rH0\x12#\n\x18has_premium_connectivity\x18\xb1\x01 \x01(\x08H1\x12\x1b\n\x10car_wrap_enabled\x18\xb2\x01 \x01(\x08H2\x12\x1f\n\x14supports_ride_height\x18\xb3\x01 \x01(\x08H3\x12&\n\x1bsupports_set_arrival_energy\x18\xb4\x01 \x01(\x08H4\x12*\n\x1fsupports_pillar_camera_metadata\x18\xb5\x01 \x01(\x08H5\x12/\n\x0cchassis_type\x18\xb6\x01 \x01(\x0e2\x16.CarServer.ChassisTypeH6\x12\x1b\n\x10is_china_vehicle\x18\xb7\x01 \x01(\x08H7\x12 \n\x15is_using_unreal_apviz\x18\xb8\x01 \x01(\x08H8\x12,\n!supports_flexible_dashcam_bitrate\x18\xb9\x01 \x01(\x08H9\x12S\n\x18front_fascia_camera_type\x18\xba\x01 \x01(\x0e2..CarServer.VehicleConfig.FrontFasciaCameraTypeH:\x12Y\n\x1bturn_indicator_control_type\x18\xbb\x01 \x01(\x0e21.CarServer.VehicleConfig.TurnIndicatorControlTypeH;\x12\x1b\n\x10has_rear_display\x18\xbc\x01 \x01(\x08H<\x12\x1c\n\x11window_tint_color\x18\xbd\x01 \x01(\tH=\x12S\n\x18interior_upper_trim_type\x18\xbe\x01 \x01(\x0e2..CarServer.VehicleConfig.InteriorUpperTrimTypeH>\x12N\n\x15badging_material_type\x18\xbf\x01 \x01(\x0e2,.CarServer.VehicleConfig.BadgingMaterialTypeH?\x12\x1f\n\x14webcam_interior_only\x18\xc0\x01 \x01(\x08H@\x12\x17\n\x0ccountry_code\x18\xc1\x01 \x01(\tHA\x12F\n\x11bed_lighting_type\x18\xc2\x01 \x01(\x0e2(.CarServer.VehicleConfig.BedLightingTypeHB\x12Y\n\x1brear_light_hardware_variant\x18\xc3\x01 \x01(\x0e21.CarServer.VehicleConfig.RearLightHardwareVariantHC\x121\n\x0eautopilot_base\x18\xc4\x01 \x01(\x0e2\x18.CarServer.AutopilotBase\x12D\n\x18autopilot_override_state\x18\xc5\x01 \x01(\x0e2!.CarServer.AutopilotOverrideState\x12)\n\x1eautopilot_override_expire_time\x18\xc6\x01 \x01(\x03HD\x1a\xd5\x03\n\x10InteriorTrimType\x12(\n\rBLACKCONSOLE2\x18\x06 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12(\n\rWHITECONSOLE2\x18\x07 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12#\n\x08ALLBLACK\x18\x08 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12(\n\rBLACKANDWHITE\x18\t \x01(\x0b2\x0f.CarServer.VoidH\x00\x12&\n\x0bWALNUTCREAM\x18\x0c \x01(\x0b2\x0f.CarServer.VoidH\x00\x12&\n\x0bWALNUTWHITE\x18\r \x01(\x0b2\x0f.CarServer.VoidH\x00\x12%\n\nEBONYBLACK\x18\x0e \x01(\x0b2\x0f.CarServer.VoidH\x00\x12&\n\x0bCARBONCREAM\x18\x0f \x01(\x0b2\x0f.CarServer.VoidH\x00\x12&\n\x0bCARBONWHITE\x18\x10 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12&\n\x0bCARBONBLACK\x18\x11 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12\'\n\x0cTACTICALGREY\x18\x12 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type\x1al\n\x10ExteriorTrimType\x12)\n\x0eSTANDARDCHROME\x18\x03 \x01(\x0b2\x0f.CarServer.VoidH\x00\x12%\n\nSATINBLACK\x18\x04 \x01(\x0b2\x0f.CarServer.VoidH\x00B\x06\n\x04type"m\n\x0eAuxParkLamps_E\x12\x16\n\x12AuxParkLampsNaBase\x10\x00\x12\x19\n\x15AuxParkLampsNaPremium\x10\x01\x12\x12\n\x0eAuxParkLampsEu\x10\x02\x12\x14\n\x10AuxParkLampsNone\x10\x03"]\n\x13BadgingMaterialType\x12#\n\x1fBadgingMaterialTypeChromeSilver\x10\x00\x12!\n\x1dBadgingMaterialTypeBlackMatte\x10\x01"F\n\x0fBedLightingType\x12\x17\n\x13BedLightingTypeBase\x10\x00\x12\x1a\n\x16BedLightingTypePremium\x10\x01"]\n\x0eDrivetrainType\x12\x15\n\x11DrivetrainTypeRWD\x10\x00\x12\x15\n\x11DrivetrainTypeAWD\x10\x01\x12\x1d\n\x19DrivetrainTypeAWDTriMotor\x10\x02"x\n\x15FrontFasciaCameraType\x12\x1d\n\x19FrontFasciaCameraTypeNone\x10\x00\x12\x1f\n\x1bFrontFasciaCameraTypeIMX963\x10\x01\x12\x1f\n\x1bFrontFasciaCameraTypeIMX00N\x10\x02"\x9a\x01\n\x0eHeadlampType_E\x12\x17\n\x13HeadlampTypePremium\x10\x00\x12\x16\n\x12HeadlampTypeGlobal\x10\x01\x12\x17\n\x13HeadlampTypeHalogen\x10\x02\x12\x13\n\x0fHeadlampTypeHid\x10\x03\x12\x13\n\x0fHeadlampTypeLed\x10\x04\x12\x14\n\x10HeadlampTypeBase\x10\x05"b\n\x15InteriorUpperTrimType\x12"\n\x1eInteriorUpperTrimTypePolarGrey\x10\x00\x12%\n!InteriorUpperTrimTypeMammothBlack\x10\x01"\xaf\x01\n\x18RearLightHardwareVariant\x12#\n\x1fRearLightHardwareVariantUnknown\x10\x00\x12 \n\x1cRearLightHardwareVariantBase\x10\x01\x12%\n!RearLightHardwareVariantPremiumV1\x10\x02\x12%\n!RearLightHardwareVariantPremiumV2\x10\x03"T\n\rRearLightType\x12\x13\n\x0fRearLightTypeNA\x10\x00\x12\x15\n\x11RearLightTypeEuCn\x10\x01\x12\x17\n\x13RearLightTypeGlobal\x10\x02"X\n\x0cSeatTrimType\x12\x14\n\x10SeatTrimTypeBase\x10\x00\x12\x15\n\x11SeatTrimTypeSport\x10\x01\x12\x1b\n\x17SeatTrimTypeBaseTextile\x10\x02"\x95\x01\n\x18TurnIndicatorControlType\x12#\n\x1fTurnIndicatorControlTypeUnknown\x10\x00\x12-\n)TurnIndicatorControlTypeSingleDetentStalk\x10\x01\x12%\n!TurnIndicatorControlTypeSWSButton\x10\x02B\x1d\n\x1boptional_red_brake_calipersB\x1c\n\x1aoptional_use_range_badgingB\x1d\n\x1boptional_range_plus_badgingB\x1d\n\x1boptional_has_ludicrous_modeB\x1d\n\x1boptional_can_actuate_trunksB\x1d\n\x1boptional_has_air_suspensionB\x1b\n\x19optional_ece_restrictionsB\x15\n\x13optional_eu_vehicleB \n\x1eoptional_motorized_charge_portB)\n\'optional_can_accept_navigation_requestsB\x16\n\x14optional_key_versionB\x19\n\x17optional_mobile_enabledB \n\x1eoptional_default_charge_to_maxB*\n(optional_steering_wheel_heater_installedB \n\x1eoptional_sentry_mode_supportedB\x1d\n\x1boptional_homelink_supportedB\x1b\n\x19optional_webcam_supportedB#\n!optional_bioweapon_mode_supportedB&\n$optional_dashcam_clip_save_supportedB\x12\n\x10optional_has_pwsB\x15\n\x13optional_utc_offsetB\x1b\n\x19optional_has_seat_coolingB\x1f\n\x1doptional_paint_color_overrideB#\n!optional_tpms_pressures_supportedB\x1a\n\x18optional_vehicle_badgingB!\n\x1foptional_exterior_trim_overrideB\x18\n\x16optional_headlamp_typeB\x19\n\x17optional_aux_park_lampsB\x13\n\x11optional_is_ravenB \n\x1eoptional_has_auto_seat_climateB%\n#optional_has_front_row_seat_heatersB%\n#optional_has_third_row_seat_heatersB\x1e\n\x1coptional_supports_qr_pairingB$\n"optional_disable_window_vent_closeB"\n optional_webcam_selfie_supportedB&\n$optional_cop_user_set_temp_supportedB\x1c\n\x1aoptional_has_auto_stw_heatB\x19\n\x17optional_rearlight_typeB \n\x1eoptional_rear_seat_heater_typeB \n\x1eoptional_webcam_grid_supportedB\x1a\n\x18optional_has_tesla_badgeB\x1d\n\x1boptional_has_tesla_wordmarkB\x16\n\x14optional_fascia_typeB"\n optional_accessory_lightbar_typeB#\n!optional_sentry_preview_supportedB\x19\n\x17optional_seat_trim_typeB\x1a\n\x18optional_drivetrain_typeB\x1e\n\x1coptional_lightshow_supportedB(\n&optional_mobile_dashcam_viewer_versionB#\n!optional_has_premium_connectivityB\x1b\n\x19optional_car_wrap_enabledB\x1f\n\x1doptional_supports_ride_heightB&\n$optional_supports_set_arrival_energyB*\n(optional_supports_pillar_camera_metadataB\x17\n\x15optional_chassis_typeB\x1b\n\x19optional_is_china_vehicleB \n\x1eoptional_is_using_unreal_apvizB,\n*optional_supports_flexible_dashcam_bitrateB#\n!optional_front_fascia_camera_typeB&\n$optional_turn_indicator_control_typeB\x1b\n\x19optional_has_rear_displayB\x1c\n\x1aoptional_window_tint_colorB#\n!optional_interior_upper_trim_typeB \n\x1eoptional_badging_material_typeB\x1f\n\x1doptional_webcam_interior_onlyB\x17\n\x15optional_country_codeB\x1c\n\x1aoptional_bed_lighting_typeB&\n$optional_rear_light_hardware_variantB)\n\'optional_autopilot_override_expire_time"\xdb\t\n\x14ParkedAccessoryState\x12\x1b\n\x11tent_mode_request\x18\x01 \x01(\x08H\x00\x12 \n\x16horizon_leveling_state\x18\x02 \x01(\x08H\x01\x12?\n\x18front_zone_light_request\x18\x03 \x01(\x0e2\x1b.CarServer.ZoneLightRequestH\x02\x12>\n\x17rear_zone_light_request\x18\x04 \x01(\x0e2\x1b.CarServer.ZoneLightRequestH\x03\x12%\n\x1btruck_bed_lights_brightness\x18\x05 \x01(\rH\x04\x12*\n truck_bed_lights_auto_brightness\x18\x06 \x01(\rH\x05\x12%\n\x1btruck_bed_lights_auto_state\x18\x07 \x01(\x08H\x06\x12,\n"truck_bed_lights_controls_disabled\x18\x08 \x01(\x08H\x07\x12&\n\x1caccessory_lightbar_middle_on\x18\t \x01(\x08H\x08\x12%\n\x1baccessory_lightbar_ditch_on\x18\n \x01(\x08H\t\x12\'\n\x1daccessory_lightbar_brightness\x18\x0b \x01(\rH\n\x12 \n\x16accessory_lightbar_low\x18\x0c \x01(\rH\x0b\x12 \n\x16accessory_lightbar_med\x18\r \x01(\rH\x0c\x12!\n\x17accessory_lightbar_high\x18\x0e \x01(\rH\r\x12\x17\n\rhas_tent_mode\x18\x0f \x01(\x08H\x0e\x12.\n\ttimestamp\x18\xd0\x0f \x01(\x0b2\x1a.google.protobuf.TimestampB\x1c\n\x1aoptional_tent_mode_requestB!\n\x1foptional_horizon_leveling_stateB#\n!optional_front_zone_light_requestB"\n optional_rear_zone_light_requestB&\n$optional_truck_bed_lights_brightnessB+\n)optional_truck_bed_lights_auto_brightnessB&\n$optional_truck_bed_lights_auto_stateB-\n+optional_truck_bed_lights_controls_disabledB\'\n%optional_accessory_lightbar_middle_onB&\n$optional_accessory_lightbar_ditch_onB(\n&optional_accessory_lightbar_brightnessB!\n\x1foptional_accessory_lightbar_lowB!\n\x1foptional_accessory_lightbar_medB"\n optional_accessory_lightbar_highB\x18\n\x16optional_has_tent_mode"\xf3\x05\n\x08SohState\x128\n\x0esoh_test_state\x18\x01 \x01(\x0b2 .CarServer.SohState.SohTestState\x121\n\nsoh_result\x18\x03 \x01(\x0b2\x1d.CarServer.SohState.SohResult\x12-\n\ttimestamp\x18\x04 \x01(\x0b2\x1a.google.protobuf.Timestamp\x1a\x86\x01\n\x0cSohTestState\x12\x1b\n\x11soh_time_estimate\x18\x02 \x01(\x02H\x00\x12\x1c\n\x12soh_time_remaining\x18\x03 \x01(\x02H\x01B\x1c\n\x1aoptional_soh_time_estimateB\x1d\n\x1boptional_soh_time_remaining\x1a\xe5\x02\n\tSohResult\x12\x18\n\x0esoh_calibrated\x18\x04 \x01(\x08H\x00\x12\x1c\n\x12soh_last_test_time\x18\x05 \x01(\rH\x01\x12F\n\x11soh_health_result\x18\x06 \x01(\x0e2).CarServer.SohState.WarrantyServiceResultH\x02\x12%\n\x1bsoh_distance_since_soh_test\x18\x07 \x01(\rH\x03\x12\x17\n\rsoh_regulated\x18\x08 \x01(\x08H\x04B\x19\n\x17optional_soh_calibratedB\x1d\n\x1boptional_soh_last_test_timeB\x1c\n\x1aoptional_soh_health_resultB&\n$optional_soh_distance_since_soh_testB\x18\n\x16optional_soh_regulated"Z\n\x15WarrantyServiceResult\x12\n\n\x06SOH_OK\x10\x00\x12\x0f\n\x0bSOH_REDUCED\x10\x01\x12\x13\n\x0fSOH_NO_INTERNET\x10\x02\x12\x0f\n\x0bSOH_UNKNOWN\x10\x03"o\n\nAlertState\x121\n\x0fcharging_alerts\x18\x01 \x03(\x0b2\x18.CarServer.ChargingAlert\x12.\n\ttimestamp\x18\xd0\x0f \x01(\x0b2\x1a.google.protobuf.Timestamp"G\n\x0fLightShowOption\x12\x17\n\x0flight_show_name\x18\x01 \x01(\t\x12\x1b\n\x13light_show_duration\x18\x02 \x01(\t"\xcc\x01\n\x11LightShowSettings\x12\x1d\n\x15light_show_volume_min\x18\x01 \x01(\x02\x12\x1d\n\x15light_show_volume_max\x18\x02 \x01(\x02\x12\x1e\n\x16light_show_volume_step\x18\x03 \x01(\x02\x126\n\x12light_show_options\x18\x04 \x03(\x0b2\x1a.CarServer.LightShowOption\x12!\n\x19light_show_schedule_times\x18\x05 \x03(\x04"\xc1\x02\n\x0eLightShowState\x12-\n\ttimestamp\x18\x01 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x1b\n\x11light_show_active\x18\x02 \x01(\x08H\x00\x12"\n\x18light_show_selected_name\x18\x03 \x01(\tH\x01\x12\x1f\n\x15light_show_start_time\x18\x04 \x01(\x04H\x02\x129\n\x13light_show_settings\x18\x05 \x01(\x0b2\x1c.CarServer.LightShowSettingsB\x1c\n\x1aoptional_light_show_activeB#\n!optional_light_show_selected_nameB \n\x1eoptional_light_show_start_time"a\n\x10VehicleImageData\x12\x10\n\x08image_id\x18\x01 \x01(\x0c\x12\x0c\n\x04data\x18\x02 \x01(\x0c\x12\x17\n\x0fdata_chunk_size\x18\x03 \x01(\r\x12\x14\n\x0cstart_offset\x18\x04 \x01(\r"\x83\x01\n\x0cVehicleImage\x12\x10\n\x08image_id\x18\x01 \x01(\x0c\x12/\n\nasset_data\x18\x02 \x01(\x0b2\x1b.CarServer.VehicleImageData\x12\x16\n\x0eis_local_image\x18\x04 \x01(\x08\x12\x18\n\x10total_image_size\x18\x05 \x01(\r"s\n\x11VehicleImageState\x12/\n\x0evehicle_images\x18\x01 \x03(\x0b2\x17.CarServer.VehicleImage\x12-\n\ttimestamp\x18\x02 \x01(\x0b2\x1a.google.protobuf.Timestamp"\x9b\x03\n\x0fSuspensionState\x123\n\rcurrent_level\x18\x02 \x01(\x0e2\x1a.CarServer.SuspensionLevelH\x00\x122\n\x0ctarget_level\x18\x03 \x01(\x0e2\x1a.CarServer.SuspensionLevelH\x01\x12=\n\x0emovement_state\x18\x04 \x01(\x0e2#.CarServer.SuspensionActuationStateH\x02\x12\x14\n\noffroad_on\x18\x05 \x01(\x08H\x03\x12\x19\n\x0fdisabled_reason\x18\x06 \x01(\tH\x04\x12.\n\ttimestamp\x18\xd0\x0f \x01(\x0b2\x1a.google.protobuf.TimestampB\x18\n\x16optional_current_levelB\x17\n\x15optional_target_levelB\x19\n\x17optional_movement_stateB\x15\n\x13optional_offroad_onB\x1a\n\x18optional_disabled_reason"\xb0\x02\n\x1bChildPresenceDetectionState\x12+\n!cpd_disable_notification_required\x18\x01 \x01(\x08H\x00\x12\x19\n\x0fcpd_hvac_active\x18\x02 \x01(\x08H\x01\x12&\n\x1ccpd_supports_critical_alerts\x18\x03 \x01(\x08H\x02\x12.\n\ttimestamp\x18\xd0\x0f \x01(\x0b2\x1a.google.protobuf.TimestampB,\n*optional_cpd_disable_notification_requiredB\x1a\n\x18optional_cpd_hvac_activeB\'\n%optional_cpd_supports_critical_alerts"\xec\x03\n\x12VehicleDetailState\x12-\n\ttimestamp\x18\x01 \x01(\x0b2\x1a.google.protobuf.Timestamp\x12\x16\n\x0cvehicle_name\x18\x02 \x01(\tH\x00\x12\x15\n\x0bcar_version\x18\x03 \x01(\tH\x01\x12\x1a\n\x10detailed_version\x18\x04 \x01(\tH\x02\x12\x18\n\x0eautopilot_hash\x18\x05 \x01(\tH\x03\x12\x1e\n\x14fsd_software_version\x18\x06 \x01(\tH\x04\x12\x1e\n\x14current_profile_name\x18\x07 \x01(\tH\x05\x12*\n china_autopilot_software_version\x18\x08 \x01(\tH\x06B\x17\n\x15optional_vehicle_nameB\x16\n\x14optional_car_versionB\x1b\n\x19optional_detailed_versionB\x19\n\x17optional_autopilot_hashB\x1f\n\x1doptional_fsd_software_versionB\x1f\n\x1doptional_current_profile_nameB+\n)optional_china_autopilot_software_version*\x97\x01\n\rAutopilotBase\x12\x16\n\x12AutopilotBase_NONE\x10\x00\x12\x19\n\x15AutopilotBase_HIGHWAY\x10\x01\x12\x1a\n\x16AutopilotBase_ENHANCED\x10\x02\x12\x1e\n\x1aAutopilotBase_SELF_DRIVING\x10\x03\x12\x17\n\x13AutopilotBase_BASIC\x10\x04*\x87\x03\n\x16AutopilotOverrideState\x12\x1f\n\x1bAutopilotOverrideState_BASE\x10\x00\x12\'\n#AutopilotOverrideState_SUBSCRIPTION\x10\x01\x12 \n\x1cAutopilotOverrideState_TRIAL\x10\x02\x121\n-AutopilotOverrideState_TIMEBOUND_SUBSCRIPTION\x10\x03\x12*\n&AutopilotOverrideState_TIMEBOUND_TRIAL\x10\x04\x12&\n"AutopilotOverrideState_OPTION_CODE\x10\x05\x12*\n&AutopilotOverrideState_OPTION_OVERRIDE\x10\x06\x12*\n&AutopilotOverrideState_VEHICLE_MANAGED\x10\x07\x12"\n\x1eAutopilotOverrideState_UNKNOWN\x10\x08*\xe5\x01\n\x0cDashCamState\x12\x1c\n\x18DashCamState_UNAVAILABLE\x10\x00\x12\x1a\n\x16DashCamState_AVAILABLE\x10\x01\x12\x1a\n\x16DashCamState_RECORDING\x10\x02\x12\x16\n\x12DashCamState_SAVED\x10\x03\x12\x1a\n\x16DashCamState_STREAMING\x10\x04\x12\x19\n\x15DashCamState_NO_SPACE\x10\x05\x12\x17\n\x13DashCamState_SAVING\x10\x06\x12\x17\n\x13DashCamState_PAUSED\x10\x07*\xde\x03\n\rTheaterSource\x12\x16\n\x12TheaterSource_None\x10\x00\x12\x19\n\x15TheaterSource_YouTube\x10\x01\x12 \n\x1cTheaterSource_TeslaTutorials\x10\x02\x12\x19\n\x15TheaterSource_Netflix\x10\x03\x12\x18\n\x14TheaterSource_Twitch\x10\x04\x12\x18\n\x14TheaterSource_TikTok\x10\x05\x12\x16\n\x12TheaterSource_Hulu\x10\x07\x12\x1a\n\x16TheaterSource_BiliBili\x10\n\x12\x18\n\x14TheaterSource_Disney\x10\r\x12\x18\n\x14TheaterSource_Douyin\x10\x0e\x12\x1d\n\x19TheaterSource_MontyPython\x10\x13\x12\x19\n\x15TheaterSource_Tencent\x10\x1c\x12\x17\n\x13TheaterSource_Youku\x10 \x12\x17\n\x13TheaterSource_iQiyi\x10!\x12\x1e\n\x1aTheaterSource_ThunderStone\x10"\x12\x19\n\x15TheaterSource_MangoTV\x10#\x12\x1a\n\x16TheaterSource_Kuaishou\x10$*\x83\n\n\x0fMediaSourceType\x12\x18\n\x14MediaSourceType_None\x10\x00\x12\x16\n\x12MediaSourceType_AM\x10\x01\x12\x16\n\x12MediaSourceType_FM\x10\x02\x12\x16\n\x12MediaSourceType_XM\x10\x03\x12\x1b\n\x17MediaSourceType_Slacker\x10\x05\x12\x1e\n\x1aMediaSourceType_LocalFiles\x10\x06\x12\x18\n\x14MediaSourceType_iPod\x10\x07\x12\x1d\n\x19MediaSourceType_Bluetooth\x10\x08\x12\x19\n\x15MediaSourceType_AuxIn\x10\t\x12\x17\n\x13MediaSourceType_DAB\x10\n\x12\x18\n\x14MediaSourceType_Rdio\x10\x0b\x12\x1b\n\x17MediaSourceType_Spotify\x10\x0c\x12\x1b\n\x17MediaSourceType_USRadio\x10\r\x12\x1b\n\x17MediaSourceType_EURadio\x10\x0e\x12\x1d\n\x19MediaSourceType_MediaFile\x10\x10\x12\x1a\n\x16MediaSourceType_TuneIn\x10\x11\x12\x1c\n\x18MediaSourceType_Stingray\x10\x12\x12\x1c\n\x18MediaSourceType_SiriusXM\x10\x13\x12\x19\n\x15MediaSourceType_Tidal\x10\x14\x12\x1b\n\x17MediaSourceType_QQMusic\x10\x15\x12\x1c\n\x18MediaSourceType_QQMusic2\x10\x16\x12\x1c\n\x18MediaSourceType_Ximalaya\x10\x17\x12\x1f\n\x1bMediaSourceType_OnlineRadio\x10\x18\x12 \n\x1cMediaSourceType_OnlineRadio2\x10\x19\x12 \n\x1cMediaSourceType_NetEaseMusic\x10\x1a\x12\x1e\n\x1aMediaSourceType_AppleMusic\x10\x1b\x12\x1b\n\x17MediaSourceType_Browser\x10\x1c\x12\x1b\n\x17MediaSourceType_Theater\x10\x1d\x12\x18\n\x14MediaSourceType_Game\x10\x1e\x12\x1c\n\x18MediaSourceType_Tutorial\x10\x1f\x12\x1a\n\x16MediaSourceType_Toybox\x10 \x12$\n MediaSourceType_RecentsFavorites\x10!\x12\x1c\n\x18MediaSourceType_HomeApps\x10"\x12\x1a\n\x16MediaSourceType_Search\x10#\x12!\n\x1dMediaSourceType_ApplePodcasts\x10$\x12\x1b\n\x17MediaSourceType_Audible\x10%\x12\x1f\n\x1bMediaSourceType_AmazonMusic\x10&\x12 \n\x1cMediaSourceType_YouTubeMusic\x10\'\x12\x1f\n\x1bMediaSourceType_SiriusXmWeb\x10(\x12\x1b\n\x17MediaSourceType_Yunting\x10)\x12\x1d\n\x19MediaSourceType_TuneInWeb\x10*\x12\x19\n\x15MediaSourceType_Kugou\x10+\x12\x1a\n\x16MediaSourceType_Vohico\x10,*S\n\x15VehicleImageStateType\x12\x11\n\rAPVIZ_INVALID\x10\x00\x12\x0e\n\nAPVIZ_WRAP\x10\x01\x12\x17\n\x13APVIZ_LICENSE_PLATE\x10\x02Bx\n%com.tesla.generated.carserver.vehicleB\x07VehicleZFgithub.com/teslamotors/vehicle-command/pkg/protocol/protobuf/carserverb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'vehicle_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n%com.tesla.generated.carserver.vehicleB\x07VehicleZFgithub.com/teslamotors/vehicle-command/pkg/protocol/protobuf/carserver' - _globals['_AUTOPILOTBASE']._serialized_start = 51681 - _globals['_AUTOPILOTBASE']._serialized_end = 51832 - _globals['_AUTOPILOTOVERRIDESTATE']._serialized_start = 51835 - _globals['_AUTOPILOTOVERRIDESTATE']._serialized_end = 52226 - _globals['_DASHCAMSTATE']._serialized_start = 52229 - _globals['_DASHCAMSTATE']._serialized_end = 52458 - _globals['_THEATERSOURCE']._serialized_start = 52461 - _globals['_THEATERSOURCE']._serialized_end = 52939 - _globals['_MEDIASOURCETYPE']._serialized_start = 52942 - _globals['_MEDIASOURCETYPE']._serialized_end = 54225 - _globals['_VEHICLEIMAGESTATETYPE']._serialized_start = 54227 - _globals['_VEHICLEIMAGESTATETYPE']._serialized_end = 54310 + _globals['_AUTOPILOTBASE']._serialized_start = 51779 + _globals['_AUTOPILOTBASE']._serialized_end = 51930 + _globals['_AUTOPILOTOVERRIDESTATE']._serialized_start = 51933 + _globals['_AUTOPILOTOVERRIDESTATE']._serialized_end = 52324 + _globals['_DASHCAMSTATE']._serialized_start = 52327 + _globals['_DASHCAMSTATE']._serialized_end = 52556 + _globals['_THEATERSOURCE']._serialized_start = 52559 + _globals['_THEATERSOURCE']._serialized_end = 53037 + _globals['_MEDIASOURCETYPE']._serialized_start = 53040 + _globals['_MEDIASOURCETYPE']._serialized_end = 54323 + _globals['_VEHICLEIMAGESTATETYPE']._serialized_start = 54325 + _globals['_VEHICLEIMAGESTATETYPE']._serialized_end = 54408 _globals['_VEHICLEDATA']._serialized_start = 113 _globals['_VEHICLEDATA']._serialized_end = 1608 _globals['_CLOSURESSTATE']._serialized_start = 1611 @@ -110,100 +110,100 @@ _globals['_LOCATIONSTATE_GPSCOORDINATETYPE']._serialized_start = 20325 _globals['_LOCATIONSTATE_GPSCOORDINATETYPE']._serialized_end = 20416 _globals['_VEHICLESTATE']._serialized_start = 21171 - _globals['_VEHICLESTATE']._serialized_end = 26119 - _globals['_VEHICLESTATE_GUESTMODE']._serialized_start = 24029 - _globals['_VEHICLESTATE_GUESTMODE']._serialized_end = 24065 - _globals['_LEGACYMEDIASTATE']._serialized_start = 26121 - _globals['_LEGACYMEDIASTATE']._serialized_end = 26208 - _globals['_LEGACYMEDIAINFO']._serialized_start = 26211 - _globals['_LEGACYMEDIAINFO']._serialized_end = 26658 - _globals['_CLIMATESTATE']._serialized_start = 26661 - _globals['_CLIMATESTATE']._serialized_end = 31712 - _globals['_CLIMATESTATE_CLIMATEKEEPERMODE']._serialized_start = 28687 - _globals['_CLIMATESTATE_CLIMATEKEEPERMODE']._serialized_end = 28879 - _globals['_CLIMATESTATE_DEFROSTMODE']._serialized_start = 28881 - _globals['_CLIMATESTATE_DEFROSTMODE']._serialized_end = 29001 - _globals['_CLIMATESTATE_HVACAUTOREQUEST']._serialized_start = 29003 - _globals['_CLIMATESTATE_HVACAUTOREQUEST']._serialized_end = 29072 - _globals['_CLIMATESTATE_CABINOVERHEATPROTECTION_E']._serialized_start = 29074 - _globals['_CLIMATESTATE_CABINOVERHEATPROTECTION_E']._serialized_end = 29200 - _globals['_CLIMATESTATE_SEATHEATERLEVEL_E']._serialized_start = 29202 - _globals['_CLIMATESTATE_SEATHEATERLEVEL_E']._serialized_end = 29318 - _globals['_CLIMATESTATE_SEATCOOLINGLEVEL_E']._serialized_start = 29320 - _globals['_CLIMATESTATE_SEATCOOLINGLEVEL_E']._serialized_end = 29441 - _globals['_CLIMATESTATE_COPACTIVATIONTEMP']._serialized_start = 29444 - _globals['_CLIMATESTATE_COPACTIVATIONTEMP']._serialized_end = 29579 - _globals['_CLIMATESTATE_COPNOTRUNNINGREASON']._serialized_start = 29582 - _globals['_CLIMATESTATE_COPNOTRUNNINGREASON']._serialized_end = 29868 - _globals['_CLIMATESTATE_DOGMODESTATE']._serialized_start = 29871 - _globals['_CLIMATESTATE_DOGMODESTATE']._serialized_end = 30090 - _globals['_TIREPRESSURESTATE']._serialized_start = 31715 - _globals['_TIREPRESSURESTATE']._serialized_end = 38289 - _globals['_MEDIASTATE']._serialized_start = 38292 - _globals['_MEDIASTATE']._serialized_end = 38903 - _globals['_MEDIADETAILSTATE']._serialized_start = 38906 - _globals['_MEDIADETAILSTATE']._serialized_end = 39602 - _globals['_SHIFTSTATE']._serialized_start = 39605 - _globals['_SHIFTSTATE']._serialized_end = 39813 - _globals['_GUISETTINGS']._serialized_start = 39816 - _globals['_GUISETTINGS']._serialized_end = 40170 - _globals['_GUISETTINGS_TIREPRESSUREUNIT']._serialized_start = 40009 - _globals['_GUISETTINGS_TIREPRESSUREUNIT']._serialized_end = 40077 - _globals['_VEHICLECONFIG']._serialized_start = 40173 - _globals['_VEHICLECONFIG']._serialized_end = 47391 - _globals['_VEHICLECONFIG_INTERIORTRIMTYPE']._serialized_start = 43298 - _globals['_VEHICLECONFIG_INTERIORTRIMTYPE']._serialized_end = 43767 - _globals['_VEHICLECONFIG_EXTERIORTRIMTYPE']._serialized_start = 43769 - _globals['_VEHICLECONFIG_EXTERIORTRIMTYPE']._serialized_end = 43877 - _globals['_VEHICLECONFIG_AUXPARKLAMPS_E']._serialized_start = 43879 - _globals['_VEHICLECONFIG_AUXPARKLAMPS_E']._serialized_end = 43988 - _globals['_VEHICLECONFIG_BADGINGMATERIALTYPE']._serialized_start = 43990 - _globals['_VEHICLECONFIG_BADGINGMATERIALTYPE']._serialized_end = 44083 - _globals['_VEHICLECONFIG_BEDLIGHTINGTYPE']._serialized_start = 44085 - _globals['_VEHICLECONFIG_BEDLIGHTINGTYPE']._serialized_end = 44155 - _globals['_VEHICLECONFIG_DRIVETRAINTYPE']._serialized_start = 44157 - _globals['_VEHICLECONFIG_DRIVETRAINTYPE']._serialized_end = 44250 - _globals['_VEHICLECONFIG_FRONTFASCIACAMERATYPE']._serialized_start = 44252 - _globals['_VEHICLECONFIG_FRONTFASCIACAMERATYPE']._serialized_end = 44372 - _globals['_VEHICLECONFIG_HEADLAMPTYPE_E']._serialized_start = 44375 - _globals['_VEHICLECONFIG_HEADLAMPTYPE_E']._serialized_end = 44529 - _globals['_VEHICLECONFIG_INTERIORUPPERTRIMTYPE']._serialized_start = 44531 - _globals['_VEHICLECONFIG_INTERIORUPPERTRIMTYPE']._serialized_end = 44629 - _globals['_VEHICLECONFIG_REARLIGHTHARDWAREVARIANT']._serialized_start = 44632 - _globals['_VEHICLECONFIG_REARLIGHTHARDWAREVARIANT']._serialized_end = 44807 - _globals['_VEHICLECONFIG_REARLIGHTTYPE']._serialized_start = 44809 - _globals['_VEHICLECONFIG_REARLIGHTTYPE']._serialized_end = 44893 - _globals['_VEHICLECONFIG_SEATTRIMTYPE']._serialized_start = 44895 - _globals['_VEHICLECONFIG_SEATTRIMTYPE']._serialized_end = 44983 - _globals['_VEHICLECONFIG_TURNINDICATORCONTROLTYPE']._serialized_start = 44986 - _globals['_VEHICLECONFIG_TURNINDICATORCONTROLTYPE']._serialized_end = 45135 - _globals['_PARKEDACCESSORYSTATE']._serialized_start = 47394 - _globals['_PARKEDACCESSORYSTATE']._serialized_end = 48637 - _globals['_SOHSTATE']._serialized_start = 48640 - _globals['_SOHSTATE']._serialized_end = 49395 - _globals['_SOHSTATE_SOHTESTSTATE']._serialized_start = 48809 - _globals['_SOHSTATE_SOHTESTSTATE']._serialized_end = 48943 - _globals['_SOHSTATE_SOHRESULT']._serialized_start = 48946 - _globals['_SOHSTATE_SOHRESULT']._serialized_end = 49303 - _globals['_SOHSTATE_WARRANTYSERVICERESULT']._serialized_start = 49305 - _globals['_SOHSTATE_WARRANTYSERVICERESULT']._serialized_end = 49395 - _globals['_ALERTSTATE']._serialized_start = 49397 - _globals['_ALERTSTATE']._serialized_end = 49508 - _globals['_LIGHTSHOWOPTION']._serialized_start = 49510 - _globals['_LIGHTSHOWOPTION']._serialized_end = 49581 - _globals['_LIGHTSHOWSETTINGS']._serialized_start = 49584 - _globals['_LIGHTSHOWSETTINGS']._serialized_end = 49788 - _globals['_LIGHTSHOWSTATE']._serialized_start = 49791 - _globals['_LIGHTSHOWSTATE']._serialized_end = 50112 - _globals['_VEHICLEIMAGEDATA']._serialized_start = 50114 - _globals['_VEHICLEIMAGEDATA']._serialized_end = 50211 - _globals['_VEHICLEIMAGE']._serialized_start = 50214 - _globals['_VEHICLEIMAGE']._serialized_end = 50345 - _globals['_VEHICLEIMAGESTATE']._serialized_start = 50347 - _globals['_VEHICLEIMAGESTATE']._serialized_end = 50462 - _globals['_SUSPENSIONSTATE']._serialized_start = 50465 - _globals['_SUSPENSIONSTATE']._serialized_end = 50876 - _globals['_CHILDPRESENCEDETECTIONSTATE']._serialized_start = 50879 - _globals['_CHILDPRESENCEDETECTIONSTATE']._serialized_end = 51183 - _globals['_VEHICLEDETAILSTATE']._serialized_start = 51186 - _globals['_VEHICLEDETAILSTATE']._serialized_end = 51678 \ No newline at end of file + _globals['_VEHICLESTATE']._serialized_end = 26217 + _globals['_VEHICLESTATE_GUESTMODE']._serialized_start = 24077 + _globals['_VEHICLESTATE_GUESTMODE']._serialized_end = 24113 + _globals['_LEGACYMEDIASTATE']._serialized_start = 26219 + _globals['_LEGACYMEDIASTATE']._serialized_end = 26306 + _globals['_LEGACYMEDIAINFO']._serialized_start = 26309 + _globals['_LEGACYMEDIAINFO']._serialized_end = 26756 + _globals['_CLIMATESTATE']._serialized_start = 26759 + _globals['_CLIMATESTATE']._serialized_end = 31810 + _globals['_CLIMATESTATE_CLIMATEKEEPERMODE']._serialized_start = 28785 + _globals['_CLIMATESTATE_CLIMATEKEEPERMODE']._serialized_end = 28977 + _globals['_CLIMATESTATE_DEFROSTMODE']._serialized_start = 28979 + _globals['_CLIMATESTATE_DEFROSTMODE']._serialized_end = 29099 + _globals['_CLIMATESTATE_HVACAUTOREQUEST']._serialized_start = 29101 + _globals['_CLIMATESTATE_HVACAUTOREQUEST']._serialized_end = 29170 + _globals['_CLIMATESTATE_CABINOVERHEATPROTECTION_E']._serialized_start = 29172 + _globals['_CLIMATESTATE_CABINOVERHEATPROTECTION_E']._serialized_end = 29298 + _globals['_CLIMATESTATE_SEATHEATERLEVEL_E']._serialized_start = 29300 + _globals['_CLIMATESTATE_SEATHEATERLEVEL_E']._serialized_end = 29416 + _globals['_CLIMATESTATE_SEATCOOLINGLEVEL_E']._serialized_start = 29418 + _globals['_CLIMATESTATE_SEATCOOLINGLEVEL_E']._serialized_end = 29539 + _globals['_CLIMATESTATE_COPACTIVATIONTEMP']._serialized_start = 29542 + _globals['_CLIMATESTATE_COPACTIVATIONTEMP']._serialized_end = 29677 + _globals['_CLIMATESTATE_COPNOTRUNNINGREASON']._serialized_start = 29680 + _globals['_CLIMATESTATE_COPNOTRUNNINGREASON']._serialized_end = 29966 + _globals['_CLIMATESTATE_DOGMODESTATE']._serialized_start = 29969 + _globals['_CLIMATESTATE_DOGMODESTATE']._serialized_end = 30188 + _globals['_TIREPRESSURESTATE']._serialized_start = 31813 + _globals['_TIREPRESSURESTATE']._serialized_end = 38387 + _globals['_MEDIASTATE']._serialized_start = 38390 + _globals['_MEDIASTATE']._serialized_end = 39001 + _globals['_MEDIADETAILSTATE']._serialized_start = 39004 + _globals['_MEDIADETAILSTATE']._serialized_end = 39700 + _globals['_SHIFTSTATE']._serialized_start = 39703 + _globals['_SHIFTSTATE']._serialized_end = 39911 + _globals['_GUISETTINGS']._serialized_start = 39914 + _globals['_GUISETTINGS']._serialized_end = 40268 + _globals['_GUISETTINGS_TIREPRESSUREUNIT']._serialized_start = 40107 + _globals['_GUISETTINGS_TIREPRESSUREUNIT']._serialized_end = 40175 + _globals['_VEHICLECONFIG']._serialized_start = 40271 + _globals['_VEHICLECONFIG']._serialized_end = 47489 + _globals['_VEHICLECONFIG_INTERIORTRIMTYPE']._serialized_start = 43396 + _globals['_VEHICLECONFIG_INTERIORTRIMTYPE']._serialized_end = 43865 + _globals['_VEHICLECONFIG_EXTERIORTRIMTYPE']._serialized_start = 43867 + _globals['_VEHICLECONFIG_EXTERIORTRIMTYPE']._serialized_end = 43975 + _globals['_VEHICLECONFIG_AUXPARKLAMPS_E']._serialized_start = 43977 + _globals['_VEHICLECONFIG_AUXPARKLAMPS_E']._serialized_end = 44086 + _globals['_VEHICLECONFIG_BADGINGMATERIALTYPE']._serialized_start = 44088 + _globals['_VEHICLECONFIG_BADGINGMATERIALTYPE']._serialized_end = 44181 + _globals['_VEHICLECONFIG_BEDLIGHTINGTYPE']._serialized_start = 44183 + _globals['_VEHICLECONFIG_BEDLIGHTINGTYPE']._serialized_end = 44253 + _globals['_VEHICLECONFIG_DRIVETRAINTYPE']._serialized_start = 44255 + _globals['_VEHICLECONFIG_DRIVETRAINTYPE']._serialized_end = 44348 + _globals['_VEHICLECONFIG_FRONTFASCIACAMERATYPE']._serialized_start = 44350 + _globals['_VEHICLECONFIG_FRONTFASCIACAMERATYPE']._serialized_end = 44470 + _globals['_VEHICLECONFIG_HEADLAMPTYPE_E']._serialized_start = 44473 + _globals['_VEHICLECONFIG_HEADLAMPTYPE_E']._serialized_end = 44627 + _globals['_VEHICLECONFIG_INTERIORUPPERTRIMTYPE']._serialized_start = 44629 + _globals['_VEHICLECONFIG_INTERIORUPPERTRIMTYPE']._serialized_end = 44727 + _globals['_VEHICLECONFIG_REARLIGHTHARDWAREVARIANT']._serialized_start = 44730 + _globals['_VEHICLECONFIG_REARLIGHTHARDWAREVARIANT']._serialized_end = 44905 + _globals['_VEHICLECONFIG_REARLIGHTTYPE']._serialized_start = 44907 + _globals['_VEHICLECONFIG_REARLIGHTTYPE']._serialized_end = 44991 + _globals['_VEHICLECONFIG_SEATTRIMTYPE']._serialized_start = 44993 + _globals['_VEHICLECONFIG_SEATTRIMTYPE']._serialized_end = 45081 + _globals['_VEHICLECONFIG_TURNINDICATORCONTROLTYPE']._serialized_start = 45084 + _globals['_VEHICLECONFIG_TURNINDICATORCONTROLTYPE']._serialized_end = 45233 + _globals['_PARKEDACCESSORYSTATE']._serialized_start = 47492 + _globals['_PARKEDACCESSORYSTATE']._serialized_end = 48735 + _globals['_SOHSTATE']._serialized_start = 48738 + _globals['_SOHSTATE']._serialized_end = 49493 + _globals['_SOHSTATE_SOHTESTSTATE']._serialized_start = 48907 + _globals['_SOHSTATE_SOHTESTSTATE']._serialized_end = 49041 + _globals['_SOHSTATE_SOHRESULT']._serialized_start = 49044 + _globals['_SOHSTATE_SOHRESULT']._serialized_end = 49401 + _globals['_SOHSTATE_WARRANTYSERVICERESULT']._serialized_start = 49403 + _globals['_SOHSTATE_WARRANTYSERVICERESULT']._serialized_end = 49493 + _globals['_ALERTSTATE']._serialized_start = 49495 + _globals['_ALERTSTATE']._serialized_end = 49606 + _globals['_LIGHTSHOWOPTION']._serialized_start = 49608 + _globals['_LIGHTSHOWOPTION']._serialized_end = 49679 + _globals['_LIGHTSHOWSETTINGS']._serialized_start = 49682 + _globals['_LIGHTSHOWSETTINGS']._serialized_end = 49886 + _globals['_LIGHTSHOWSTATE']._serialized_start = 49889 + _globals['_LIGHTSHOWSTATE']._serialized_end = 50210 + _globals['_VEHICLEIMAGEDATA']._serialized_start = 50212 + _globals['_VEHICLEIMAGEDATA']._serialized_end = 50309 + _globals['_VEHICLEIMAGE']._serialized_start = 50312 + _globals['_VEHICLEIMAGE']._serialized_end = 50443 + _globals['_VEHICLEIMAGESTATE']._serialized_start = 50445 + _globals['_VEHICLEIMAGESTATE']._serialized_end = 50560 + _globals['_SUSPENSIONSTATE']._serialized_start = 50563 + _globals['_SUSPENSIONSTATE']._serialized_end = 50974 + _globals['_CHILDPRESENCEDETECTIONSTATE']._serialized_start = 50977 + _globals['_CHILDPRESENCEDETECTIONSTATE']._serialized_end = 51281 + _globals['_VEHICLEDETAILSTATE']._serialized_start = 51284 + _globals['_VEHICLEDETAILSTATE']._serialized_end = 51776 \ No newline at end of file diff --git a/packages/python/tesla_protocol/command/vehicle_pb2.pyi b/packages/python/tesla_protocol/command/vehicle_pb2.pyi index 1f06149..89356c1 100644 --- a/packages/python/tesla_protocol/command/vehicle_pb2.pyi +++ b/packages/python/tesla_protocol/command/vehicle_pb2.pyi @@ -1134,7 +1134,7 @@ class LocationState(_message.Message): ... class VehicleState(_message.Message): - __slots__ = ('software_update_state', 'legacy_media_state', 'timestamp', 'feature_bitmask', 'tpms_last_seen_pressure_time_fl', 'tpms_last_seen_pressure_time_fr', 'tpms_last_seen_pressure_time_rl', 'tpms_last_seen_pressure_time_rr', 'legacy_media_info', 'allow_authorized_mobile_devices_only', 'guestMode', 'drive_rail_on', 'pin_to_drive_enabled', 'pin_to_drive_pin_set', 'frontfoglights_on', 'rearfoglights_on', 'headlights_on', 'highbeamlights_on', 'trailer_mode_on', 'trailer_light_test_available', 'trailer_light_test_requested', 'truck_bed_lights_brightness', 'signed_cmd_service_mode', 'accessory_lightbar_middle_on', 'transport_mode', 'truck_bed_lights_auto_brightness', 'truck_bed_lights_auto_state', 'truck_bed_lights_controls_disabled', 'service_mode_auth', 'service_gtw_diag_session_active', 'factory_mode', 'training_wheels_mode', 'gtw_diag_level', 'parental_controls_active', 'parental_controls_pin_set', 'parental_controls_settings', 'api_version', 'car_version', 'detailed_version', 'autopilot_hash', 'vehicle_name', 'notifications_supported', 'remote_start_supported', 'remote_start_enabled', 'last_autopark_error', 'homelink_device_count', 'smart_summon_available', 'summon_standby_mode_enabled', 'patsy_mode', 'webcam_available', 'vehicle_self_test_requested', 'vehicle_self_test_progress', 'calendar_supported', 'dashcam_clip_save_available', 'dashcam_state', 'tpms_pressure_fl', 'tpms_pressure_fr', 'tpms_pressure_rl', 'tpms_pressure_rr', 'service_mode', 'service_mode_plus', 'tpms_hard_warning_fl', 'tpms_hard_warning_fr', 'tpms_hard_warning_rl', 'tpms_hard_warning_rr', 'tpms_soft_warning_fl', 'tpms_soft_warning_fr', 'tpms_soft_warning_rl', 'tpms_soft_warning_rr', 'tpms_rcp_front_value', 'tpms_rcp_rear_value', 'fsd_software_version', 'autopilot_base', 'autopilot_override_state', 'autopilot_override_expire_time') + __slots__ = ('software_update_state', 'legacy_media_state', 'timestamp', 'feature_bitmask', 'tpms_last_seen_pressure_time_fl', 'tpms_last_seen_pressure_time_fr', 'tpms_last_seen_pressure_time_rl', 'tpms_last_seen_pressure_time_rr', 'deck_lights_on', 'hazards_on', 'legacy_media_info', 'allow_authorized_mobile_devices_only', 'guestMode', 'drive_rail_on', 'pin_to_drive_enabled', 'pin_to_drive_pin_set', 'frontfoglights_on', 'rearfoglights_on', 'headlights_on', 'highbeamlights_on', 'trailer_mode_on', 'trailer_light_test_available', 'trailer_light_test_requested', 'truck_bed_lights_brightness', 'signed_cmd_service_mode', 'accessory_lightbar_middle_on', 'transport_mode', 'truck_bed_lights_auto_brightness', 'truck_bed_lights_auto_state', 'truck_bed_lights_controls_disabled', 'service_mode_auth', 'service_gtw_diag_session_active', 'factory_mode', 'training_wheels_mode', 'gtw_diag_level', 'parental_controls_active', 'parental_controls_pin_set', 'parental_controls_settings', 'api_version', 'car_version', 'detailed_version', 'autopilot_hash', 'vehicle_name', 'notifications_supported', 'remote_start_supported', 'remote_start_enabled', 'last_autopark_error', 'homelink_device_count', 'smart_summon_available', 'summon_standby_mode_enabled', 'patsy_mode', 'webcam_available', 'vehicle_self_test_requested', 'vehicle_self_test_progress', 'calendar_supported', 'dashcam_clip_save_available', 'dashcam_state', 'tpms_pressure_fl', 'tpms_pressure_fr', 'tpms_pressure_rl', 'tpms_pressure_rr', 'service_mode', 'service_mode_plus', 'tpms_hard_warning_fl', 'tpms_hard_warning_fr', 'tpms_hard_warning_rl', 'tpms_hard_warning_rr', 'tpms_soft_warning_fl', 'tpms_soft_warning_fr', 'tpms_soft_warning_rl', 'tpms_soft_warning_rr', 'tpms_rcp_front_value', 'tpms_rcp_rear_value', 'fsd_software_version', 'autopilot_base', 'autopilot_override_state', 'autopilot_override_expire_time') class GuestMode(_message.Message): __slots__ = ('GuestModeActive',) @@ -1151,6 +1151,8 @@ class VehicleState(_message.Message): TPMS_LAST_SEEN_PRESSURE_TIME_FR_FIELD_NUMBER: _ClassVar[int] TPMS_LAST_SEEN_PRESSURE_TIME_RL_FIELD_NUMBER: _ClassVar[int] TPMS_LAST_SEEN_PRESSURE_TIME_RR_FIELD_NUMBER: _ClassVar[int] + DECK_LIGHTS_ON_FIELD_NUMBER: _ClassVar[int] + HAZARDS_ON_FIELD_NUMBER: _ClassVar[int] LEGACY_MEDIA_INFO_FIELD_NUMBER: _ClassVar[int] ALLOW_AUTHORIZED_MOBILE_DEVICES_ONLY_FIELD_NUMBER: _ClassVar[int] GUESTMODE_FIELD_NUMBER: _ClassVar[int] @@ -1226,6 +1228,8 @@ class VehicleState(_message.Message): tpms_last_seen_pressure_time_fr: _timestamp_pb2.Timestamp tpms_last_seen_pressure_time_rl: _timestamp_pb2.Timestamp tpms_last_seen_pressure_time_rr: _timestamp_pb2.Timestamp + deck_lights_on: bool + hazards_on: bool legacy_media_info: LegacyMediaInfo allow_authorized_mobile_devices_only: bool guestMode: VehicleState.GuestMode @@ -1294,7 +1298,7 @@ class VehicleState(_message.Message): autopilot_override_state: AutopilotOverrideState autopilot_override_expire_time: int - def __init__(self, software_update_state: _Optional[_Union[SoftwareUpdateState, _Mapping]]=..., legacy_media_state: _Optional[_Union[LegacyMediaState, _Mapping]]=..., timestamp: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]]=..., feature_bitmask: _Optional[_Iterable[int]]=..., tpms_last_seen_pressure_time_fl: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]]=..., tpms_last_seen_pressure_time_fr: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]]=..., tpms_last_seen_pressure_time_rl: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]]=..., tpms_last_seen_pressure_time_rr: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]]=..., legacy_media_info: _Optional[_Union[LegacyMediaInfo, _Mapping]]=..., allow_authorized_mobile_devices_only: bool=..., guestMode: _Optional[_Union[VehicleState.GuestMode, _Mapping]]=..., drive_rail_on: bool=..., pin_to_drive_enabled: bool=..., pin_to_drive_pin_set: bool=..., frontfoglights_on: bool=..., rearfoglights_on: bool=..., headlights_on: bool=..., highbeamlights_on: bool=..., trailer_mode_on: bool=..., trailer_light_test_available: bool=..., trailer_light_test_requested: bool=..., truck_bed_lights_brightness: _Optional[int]=..., signed_cmd_service_mode: bool=..., accessory_lightbar_middle_on: bool=..., transport_mode: bool=..., truck_bed_lights_auto_brightness: _Optional[int]=..., truck_bed_lights_auto_state: bool=..., truck_bed_lights_controls_disabled: bool=..., service_mode_auth: _Optional[str]=..., service_gtw_diag_session_active: bool=..., factory_mode: bool=..., training_wheels_mode: bool=..., gtw_diag_level: _Optional[_Union[_common_pb2.GtwDiagLevel, str]]=..., parental_controls_active: bool=..., parental_controls_pin_set: bool=..., parental_controls_settings: _Optional[_Union[ParentalControlsSettings, _Mapping]]=..., api_version: _Optional[int]=..., car_version: _Optional[str]=..., detailed_version: _Optional[str]=..., autopilot_hash: _Optional[str]=..., vehicle_name: _Optional[str]=..., notifications_supported: bool=..., remote_start_supported: bool=..., remote_start_enabled: bool=..., last_autopark_error: _Optional[str]=..., homelink_device_count: _Optional[int]=..., smart_summon_available: bool=..., summon_standby_mode_enabled: bool=..., patsy_mode: bool=..., webcam_available: bool=..., vehicle_self_test_requested: bool=..., vehicle_self_test_progress: _Optional[int]=..., calendar_supported: bool=..., dashcam_clip_save_available: bool=..., dashcam_state: _Optional[_Union[DashCamState, str]]=..., tpms_pressure_fl: _Optional[float]=..., tpms_pressure_fr: _Optional[float]=..., tpms_pressure_rl: _Optional[float]=..., tpms_pressure_rr: _Optional[float]=..., service_mode: bool=..., service_mode_plus: bool=..., tpms_hard_warning_fl: bool=..., tpms_hard_warning_fr: bool=..., tpms_hard_warning_rl: bool=..., tpms_hard_warning_rr: bool=..., tpms_soft_warning_fl: bool=..., tpms_soft_warning_fr: bool=..., tpms_soft_warning_rl: bool=..., tpms_soft_warning_rr: bool=..., tpms_rcp_front_value: _Optional[float]=..., tpms_rcp_rear_value: _Optional[float]=..., fsd_software_version: _Optional[str]=..., autopilot_base: _Optional[_Union[AutopilotBase, str]]=..., autopilot_override_state: _Optional[_Union[AutopilotOverrideState, str]]=..., autopilot_override_expire_time: _Optional[int]=...) -> None: + def __init__(self, software_update_state: _Optional[_Union[SoftwareUpdateState, _Mapping]]=..., legacy_media_state: _Optional[_Union[LegacyMediaState, _Mapping]]=..., timestamp: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]]=..., feature_bitmask: _Optional[_Iterable[int]]=..., tpms_last_seen_pressure_time_fl: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]]=..., tpms_last_seen_pressure_time_fr: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]]=..., tpms_last_seen_pressure_time_rl: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]]=..., tpms_last_seen_pressure_time_rr: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]]=..., deck_lights_on: bool=..., hazards_on: bool=..., legacy_media_info: _Optional[_Union[LegacyMediaInfo, _Mapping]]=..., allow_authorized_mobile_devices_only: bool=..., guestMode: _Optional[_Union[VehicleState.GuestMode, _Mapping]]=..., drive_rail_on: bool=..., pin_to_drive_enabled: bool=..., pin_to_drive_pin_set: bool=..., frontfoglights_on: bool=..., rearfoglights_on: bool=..., headlights_on: bool=..., highbeamlights_on: bool=..., trailer_mode_on: bool=..., trailer_light_test_available: bool=..., trailer_light_test_requested: bool=..., truck_bed_lights_brightness: _Optional[int]=..., signed_cmd_service_mode: bool=..., accessory_lightbar_middle_on: bool=..., transport_mode: bool=..., truck_bed_lights_auto_brightness: _Optional[int]=..., truck_bed_lights_auto_state: bool=..., truck_bed_lights_controls_disabled: bool=..., service_mode_auth: _Optional[str]=..., service_gtw_diag_session_active: bool=..., factory_mode: bool=..., training_wheels_mode: bool=..., gtw_diag_level: _Optional[_Union[_common_pb2.GtwDiagLevel, str]]=..., parental_controls_active: bool=..., parental_controls_pin_set: bool=..., parental_controls_settings: _Optional[_Union[ParentalControlsSettings, _Mapping]]=..., api_version: _Optional[int]=..., car_version: _Optional[str]=..., detailed_version: _Optional[str]=..., autopilot_hash: _Optional[str]=..., vehicle_name: _Optional[str]=..., notifications_supported: bool=..., remote_start_supported: bool=..., remote_start_enabled: bool=..., last_autopark_error: _Optional[str]=..., homelink_device_count: _Optional[int]=..., smart_summon_available: bool=..., summon_standby_mode_enabled: bool=..., patsy_mode: bool=..., webcam_available: bool=..., vehicle_self_test_requested: bool=..., vehicle_self_test_progress: _Optional[int]=..., calendar_supported: bool=..., dashcam_clip_save_available: bool=..., dashcam_state: _Optional[_Union[DashCamState, str]]=..., tpms_pressure_fl: _Optional[float]=..., tpms_pressure_fr: _Optional[float]=..., tpms_pressure_rl: _Optional[float]=..., tpms_pressure_rr: _Optional[float]=..., service_mode: bool=..., service_mode_plus: bool=..., tpms_hard_warning_fl: bool=..., tpms_hard_warning_fr: bool=..., tpms_hard_warning_rl: bool=..., tpms_hard_warning_rr: bool=..., tpms_soft_warning_fl: bool=..., tpms_soft_warning_fr: bool=..., tpms_soft_warning_rl: bool=..., tpms_soft_warning_rr: bool=..., tpms_rcp_front_value: _Optional[float]=..., tpms_rcp_rear_value: _Optional[float]=..., fsd_software_version: _Optional[str]=..., autopilot_base: _Optional[_Union[AutopilotBase, str]]=..., autopilot_override_state: _Optional[_Union[AutopilotOverrideState, str]]=..., autopilot_override_expire_time: _Optional[int]=...) -> None: ... class LegacyMediaState(_message.Message): diff --git a/packages/typescript/src/command/universal_message.ts b/packages/typescript/src/command/universal_message.ts index 5817f33..231d743 100644 --- a/packages/typescript/src/command/universal_message.ts +++ b/packages/typescript/src/command/universal_message.ts @@ -21,6 +21,8 @@ export enum Domain { DOMAIN_BROADCAST = 0, DOMAIN_VEHICLE_SECURITY = 2, DOMAIN_INFOTAINMENT = 3, + /** DOMAIN_AUTOPILOT - TESLEMETRY-EXT (app-4.58.6) */ + DOMAIN_AUTOPILOT = 4, /** DOMAIN_AUTHD - TESLEMETRY-EXT (app-4.58.6) */ DOMAIN_AUTHD = 5, /** DOMAIN_ENERGY_DEVICE - TESLEMETRY-EXT (app-4.58.6) */ @@ -41,6 +43,9 @@ export function domainFromJSON(object: any): Domain { case 3: case "DOMAIN_INFOTAINMENT": return Domain.DOMAIN_INFOTAINMENT; + case 4: + case "DOMAIN_AUTOPILOT": + return Domain.DOMAIN_AUTOPILOT; case 5: case "DOMAIN_AUTHD": return Domain.DOMAIN_AUTHD; @@ -65,6 +70,8 @@ export function domainToJSON(object: Domain): string { return "DOMAIN_VEHICLE_SECURITY"; case Domain.DOMAIN_INFOTAINMENT: return "DOMAIN_INFOTAINMENT"; + case Domain.DOMAIN_AUTOPILOT: + return "DOMAIN_AUTOPILOT"; case Domain.DOMAIN_AUTHD: return "DOMAIN_AUTHD"; case Domain.DOMAIN_ENERGY_DEVICE: diff --git a/packages/typescript/src/command/vcsec.ts b/packages/typescript/src/command/vcsec.ts index ea048b4..3b3ae37 100644 --- a/packages/typescript/src/command/vcsec.ts +++ b/packages/typescript/src/command/vcsec.ts @@ -1253,11 +1253,24 @@ export interface CommandStatus { whitelistOperationStatus?: WhitelistOperationStatus | undefined; } +/** ===== TESLEMETRY-EXT BEGIN (app-4.58.6) ===== */ +export interface AutonomyCommand { + pullOverCommand?: AutonomyCommand_PullOverCommand | undefined; +} + +/** Remote "pull over" request for a vehicle driving under autonomy - a trigger, no parameters. */ +export interface AutonomyCommand_PullOverCommand { +} + export interface UnsignedMessage { InformationRequest?: InformationRequest | undefined; RKEAction?: RKEActionE | undefined; closureMoveRequest?: ClosureMoveRequest | undefined; - WhitelistOperation?: WhitelistOperation | undefined; + WhitelistOperation?: + | WhitelistOperation + | undefined; + /** TESLEMETRY-EXT (app-4.58.6) */ + autonomyCommand?: AutonomyCommand | undefined; } export interface ClosureStatuses { @@ -2904,12 +2917,120 @@ export const CommandStatus: MessageFns = { }, }; +function createBaseAutonomyCommand(): AutonomyCommand { + return { pullOverCommand: undefined }; +} + +export const AutonomyCommand: MessageFns = { + encode(message: AutonomyCommand, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { + if (message.pullOverCommand !== undefined) { + AutonomyCommand_PullOverCommand.encode(message.pullOverCommand, writer.uint32(10).fork()).join(); + } + return writer; + }, + + decode(input: BinaryReader | Uint8Array, length?: number): AutonomyCommand { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); + const end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAutonomyCommand(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (tag !== 10) { + break; + } + + message.pullOverCommand = AutonomyCommand_PullOverCommand.decode(reader, reader.uint32()); + continue; + } + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skip(tag & 7); + } + return message; + }, + + fromJSON(object: any): AutonomyCommand { + return { + pullOverCommand: isSet(object.pullOverCommand) + ? AutonomyCommand_PullOverCommand.fromJSON(object.pullOverCommand) + : undefined, + }; + }, + + toJSON(message: AutonomyCommand): unknown { + const obj: any = {}; + if (message.pullOverCommand !== undefined) { + obj.pullOverCommand = AutonomyCommand_PullOverCommand.toJSON(message.pullOverCommand); + } + return obj; + }, + + create, I>>(base?: I): AutonomyCommand { + return AutonomyCommand.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): AutonomyCommand { + const message = createBaseAutonomyCommand(); + message.pullOverCommand = (object.pullOverCommand !== undefined && object.pullOverCommand !== null) + ? AutonomyCommand_PullOverCommand.fromPartial(object.pullOverCommand) + : undefined; + return message; + }, +}; + +function createBaseAutonomyCommand_PullOverCommand(): AutonomyCommand_PullOverCommand { + return {}; +} + +export const AutonomyCommand_PullOverCommand: MessageFns = { + encode(_: AutonomyCommand_PullOverCommand, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { + return writer; + }, + + decode(input: BinaryReader | Uint8Array, length?: number): AutonomyCommand_PullOverCommand { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); + const end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAutonomyCommand_PullOverCommand(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skip(tag & 7); + } + return message; + }, + + fromJSON(_: any): AutonomyCommand_PullOverCommand { + return {}; + }, + + toJSON(_: AutonomyCommand_PullOverCommand): unknown { + const obj: any = {}; + return obj; + }, + + create, I>>(base?: I): AutonomyCommand_PullOverCommand { + return AutonomyCommand_PullOverCommand.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(_: I): AutonomyCommand_PullOverCommand { + const message = createBaseAutonomyCommand_PullOverCommand(); + return message; + }, +}; + function createBaseUnsignedMessage(): UnsignedMessage { return { InformationRequest: undefined, RKEAction: undefined, closureMoveRequest: undefined, WhitelistOperation: undefined, + autonomyCommand: undefined, }; } @@ -2927,6 +3048,9 @@ export const UnsignedMessage: MessageFns = { if (message.WhitelistOperation !== undefined) { WhitelistOperation.encode(message.WhitelistOperation, writer.uint32(130).fork()).join(); } + if (message.autonomyCommand !== undefined) { + AutonomyCommand.encode(message.autonomyCommand, writer.uint32(530).fork()).join(); + } return writer; }, @@ -2969,6 +3093,14 @@ export const UnsignedMessage: MessageFns = { message.WhitelistOperation = WhitelistOperation.decode(reader, reader.uint32()); continue; } + case 66: { + if (tag !== 530) { + break; + } + + message.autonomyCommand = AutonomyCommand.decode(reader, reader.uint32()); + continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -2990,6 +3122,7 @@ export const UnsignedMessage: MessageFns = { WhitelistOperation: isSet(object.WhitelistOperation) ? WhitelistOperation.fromJSON(object.WhitelistOperation) : undefined, + autonomyCommand: isSet(object.autonomyCommand) ? AutonomyCommand.fromJSON(object.autonomyCommand) : undefined, }; }, @@ -3007,6 +3140,9 @@ export const UnsignedMessage: MessageFns = { if (message.WhitelistOperation !== undefined) { obj.WhitelistOperation = WhitelistOperation.toJSON(message.WhitelistOperation); } + if (message.autonomyCommand !== undefined) { + obj.autonomyCommand = AutonomyCommand.toJSON(message.autonomyCommand); + } return obj; }, @@ -3025,6 +3161,9 @@ export const UnsignedMessage: MessageFns = { message.WhitelistOperation = (object.WhitelistOperation !== undefined && object.WhitelistOperation !== null) ? WhitelistOperation.fromPartial(object.WhitelistOperation) : undefined; + message.autonomyCommand = (object.autonomyCommand !== undefined && object.autonomyCommand !== null) + ? AutonomyCommand.fromPartial(object.autonomyCommand) + : undefined; return message; }, }; diff --git a/packages/typescript/src/command/vehicle.ts b/packages/typescript/src/command/vehicle.ts index 9995089..aa4482f 100644 --- a/packages/typescript/src/command/vehicle.ts +++ b/packages/typescript/src/command/vehicle.ts @@ -745,7 +745,7 @@ export interface VehicleData { sohState: | SohState | undefined; - /** opaque, undecoded payload observed on live vehicleDataSubscription pushes // TESLEMETRY-EXT (from our own observations and contributions from the community) */ + /** opaque, undecoded payload observed on live vehicleDataSubscription pushes // TESLEMETRY-EXT */ unknown: Uint8Array; tirePressureState: TirePressureState | undefined; mediaState: MediaState | undefined; @@ -1732,8 +1732,10 @@ export interface VehicleState { | Date | undefined; /** TESLEMETRY-EXT (app-4.58.6) */ - tpmsLastSeenPressureTimeRr: - | Date + tpmsLastSeenPressureTimeRr: Date | undefined; + deckLightsOn?: boolean | undefined; + hazardsOn?: + | boolean | undefined; /** TESLEMETRY-EXT (app-4.58.6) */ legacyMediaInfo: LegacyMediaInfo | undefined; @@ -10285,6 +10287,8 @@ function createBaseVehicleState(): VehicleState { tpmsLastSeenPressureTimeFr: undefined, tpmsLastSeenPressureTimeRl: undefined, tpmsLastSeenPressureTimeRr: undefined, + deckLightsOn: undefined, + hazardsOn: undefined, legacyMediaInfo: undefined, allowAuthorizedMobileDevicesOnly: undefined, guestMode: undefined, @@ -10383,6 +10387,12 @@ export const VehicleState: MessageFns = { if (message.tpmsLastSeenPressureTimeRr !== undefined) { Timestamp.encode(toTimestamp(message.tpmsLastSeenPressureTimeRr), writer.uint32(490).fork()).join(); } + if (message.deckLightsOn !== undefined) { + writer.uint32(536).bool(message.deckLightsOn); + } + if (message.hazardsOn !== undefined) { + writer.uint32(544).bool(message.hazardsOn); + } if (message.legacyMediaInfo !== undefined) { LegacyMediaInfo.encode(message.legacyMediaInfo, writer.uint32(578).fork()).join(); } @@ -10668,6 +10678,22 @@ export const VehicleState: MessageFns = { message.tpmsLastSeenPressureTimeRr = fromTimestamp(Timestamp.decode(reader, reader.uint32())); continue; } + case 67: { + if (tag !== 536) { + break; + } + + message.deckLightsOn = reader.bool(); + continue; + } + case 68: { + if (tag !== 544) { + break; + } + + message.hazardsOn = reader.bool(); + continue; + } case 72: { if (tag !== 578) { break; @@ -11235,6 +11261,8 @@ export const VehicleState: MessageFns = { tpmsLastSeenPressureTimeRr: isSet(object.tpmsLastSeenPressureTimeRr) ? fromJsonTimestamp(object.tpmsLastSeenPressureTimeRr) : undefined, + deckLightsOn: isSet(object.deckLightsOn) ? globalThis.Boolean(object.deckLightsOn) : undefined, + hazardsOn: isSet(object.hazardsOn) ? globalThis.Boolean(object.hazardsOn) : undefined, legacyMediaInfo: isSet(object.legacyMediaInfo) ? LegacyMediaInfo.fromJSON(object.legacyMediaInfo) : undefined, allowAuthorizedMobileDevicesOnly: isSet(object.allowAuthorizedMobileDevicesOnly) ? globalThis.Boolean(object.allowAuthorizedMobileDevicesOnly) @@ -11377,6 +11405,12 @@ export const VehicleState: MessageFns = { if (message.tpmsLastSeenPressureTimeRr !== undefined) { obj.tpmsLastSeenPressureTimeRr = message.tpmsLastSeenPressureTimeRr.toISOString(); } + if (message.deckLightsOn !== undefined) { + obj.deckLightsOn = message.deckLightsOn; + } + if (message.hazardsOn !== undefined) { + obj.hazardsOn = message.hazardsOn; + } if (message.legacyMediaInfo !== undefined) { obj.legacyMediaInfo = LegacyMediaInfo.toJSON(message.legacyMediaInfo); } @@ -11598,6 +11632,8 @@ export const VehicleState: MessageFns = { message.tpmsLastSeenPressureTimeFr = object.tpmsLastSeenPressureTimeFr ?? undefined; message.tpmsLastSeenPressureTimeRl = object.tpmsLastSeenPressureTimeRl ?? undefined; message.tpmsLastSeenPressureTimeRr = object.tpmsLastSeenPressureTimeRr ?? undefined; + message.deckLightsOn = object.deckLightsOn ?? undefined; + message.hazardsOn = object.hazardsOn ?? undefined; message.legacyMediaInfo = (object.legacyMediaInfo !== undefined && object.legacyMediaInfo !== null) ? LegacyMediaInfo.fromPartial(object.legacyMediaInfo) : undefined; diff --git a/proto/command/universal_message.proto b/proto/command/universal_message.proto index 7b5ff58..b193735 100644 --- a/proto/command/universal_message.proto +++ b/proto/command/universal_message.proto @@ -15,6 +15,7 @@ enum Domain { DOMAIN_BROADCAST = 0; DOMAIN_VEHICLE_SECURITY = 2; DOMAIN_INFOTAINMENT = 3; + DOMAIN_AUTOPILOT = 4; // TESLEMETRY-EXT (app-4.58.6) DOMAIN_AUTHD = 5; // TESLEMETRY-EXT (app-4.58.6) DOMAIN_ENERGY_DEVICE = 7; // TESLEMETRY-EXT (app-4.58.6) DOMAIN_ENERGY_DEVICE_AUTH = 8; // TESLEMETRY-EXT (app-4.58.6) diff --git a/proto/command/vcsec.proto b/proto/command/vcsec.proto index 6e3fd89..e321ea9 100644 --- a/proto/command/vcsec.proto +++ b/proto/command/vcsec.proto @@ -261,6 +261,17 @@ message CommandStatus } } +// ===== TESLEMETRY-EXT BEGIN (app-4.58.6) ===== +message AutonomyCommand { + // Remote "pull over" request for a vehicle driving under autonomy - a trigger, no parameters. + message PullOverCommand {} + + oneof sub_message { + PullOverCommand pullOverCommand = 1; + } +} +// ===== TESLEMETRY-EXT END ===== + message UnsignedMessage { reserved 6,7,10,12,13; oneof sub_message { @@ -268,6 +279,7 @@ message UnsignedMessage { RKEAction_E RKEAction = 2; ClosureMoveRequest closureMoveRequest = 4; WhitelistOperation WhitelistOperation = 16; + AutonomyCommand autonomyCommand = 66; // TESLEMETRY-EXT (app-4.58.6) } } diff --git a/proto/command/vehicle.proto b/proto/command/vehicle.proto index 699cff2..257e41b 100644 --- a/proto/command/vehicle.proto +++ b/proto/command/vehicle.proto @@ -641,6 +641,9 @@ message VehicleState { google.protobuf.Timestamp tpms_last_seen_pressure_time_rl = 60; // TESLEMETRY-EXT (app-4.58.6) google.protobuf.Timestamp tpms_last_seen_pressure_time_rr = 61; // TESLEMETRY-EXT (app-4.58.6) + oneof optional_deck_lights_on { bool deck_lights_on = 67; } // TESLEMETRY-EXT (app-4.58.6) + oneof optional_hazards_on { bool hazards_on = 68; } // TESLEMETRY-EXT (app-4.58.6) + LegacyMediaInfo legacy_media_info = 72; // TESLEMETRY-EXT (app-4.58.6) oneof optional_allow_authorized_mobile_devices_only { bool allow_authorized_mobile_devices_only = 73; } // TESLEMETRY-EXT (app-4.58.6) GuestMode guestMode = 74;