From 625b91c5448dd4a62468459ccede7ecdb0442b79 Mon Sep 17 00:00:00 2001 From: Rene Nulsch <33263735+ReneNulschDE@users.noreply.github.com> Date: Wed, 28 Feb 2024 08:43:32 +0100 Subject: [PATCH] Add Mercedes (#12403) --- cmd/token.go | 8 +- cmd/token_mercedes.go | 71 + templates/definition/vehicle/mercedes.yaml | 59 + vehicle/mercedes.go | 61 + vehicle/mercedes/api.go | 97 + vehicle/mercedes/helper.go | 119 + vehicle/mercedes/identity.go | 127 + vehicle/mercedes/pb/acp.pb.go | 2082 ++++++ vehicle/mercedes/pb/client.pb.go | 700 +++ vehicle/mercedes/pb/cluster.pb.go | 214 + vehicle/mercedes/pb/eventpush.pb.go | 245 + vehicle/mercedes/pb/protos/protos.pb.go | 1392 ++++ vehicle/mercedes/pb/service-activation.pb.go | 496 ++ vehicle/mercedes/pb/user-events.pb.go | 1573 +++++ vehicle/mercedes/pb/vehicle-commands.pb.go | 5921 ++++++++++++++++++ vehicle/mercedes/pb/vehicle-events.pb.go | 4428 +++++++++++++ vehicle/mercedes/pb/vehicleapi.pb.go | 1322 ++++ vehicle/mercedes/pb/vin-events.pb.go | 153 + vehicle/mercedes/provider.go | 110 + vehicle/mercedes/setupapi.go | 94 + vehicle/mercedes/types.go | 74 + 21 files changed, 19343 insertions(+), 3 deletions(-) create mode 100644 cmd/token_mercedes.go create mode 100644 templates/definition/vehicle/mercedes.yaml create mode 100644 vehicle/mercedes.go create mode 100644 vehicle/mercedes/api.go create mode 100644 vehicle/mercedes/helper.go create mode 100644 vehicle/mercedes/identity.go create mode 100644 vehicle/mercedes/pb/acp.pb.go create mode 100644 vehicle/mercedes/pb/client.pb.go create mode 100644 vehicle/mercedes/pb/cluster.pb.go create mode 100644 vehicle/mercedes/pb/eventpush.pb.go create mode 100644 vehicle/mercedes/pb/protos/protos.pb.go create mode 100644 vehicle/mercedes/pb/service-activation.pb.go create mode 100644 vehicle/mercedes/pb/user-events.pb.go create mode 100644 vehicle/mercedes/pb/vehicle-commands.pb.go create mode 100644 vehicle/mercedes/pb/vehicle-events.pb.go create mode 100644 vehicle/mercedes/pb/vehicleapi.pb.go create mode 100644 vehicle/mercedes/pb/vin-events.pb.go create mode 100644 vehicle/mercedes/provider.go create mode 100644 vehicle/mercedes/setupapi.go create mode 100644 vehicle/mercedes/types.go diff --git a/cmd/token.go b/cmd/token.go index e794c3752..4df390053 100644 --- a/cmd/token.go +++ b/cmd/token.go @@ -52,6 +52,8 @@ func runToken(cmd *cobra.Command, args []string) { var err error switch strings.ToLower(vehicleConf.Type) { + case "mercedes": + token, err = mercedesToken() case "tronity": token, err = tronityToken(conf, vehicleConf) default: @@ -65,7 +67,7 @@ func runToken(cmd *cobra.Command, args []string) { fmt.Println() fmt.Println("Add the following tokens to the vehicle config:") fmt.Println() - fmt.Println(" tokens:") - fmt.Println(" access:", token.AccessToken) - fmt.Println(" refresh:", token.RefreshToken) + fmt.Println(" tokens:") + fmt.Println(" access:", token.AccessToken) + fmt.Println(" refresh:", token.RefreshToken) } diff --git a/cmd/token_mercedes.go b/cmd/token_mercedes.go new file mode 100644 index 000000000..6c2713074 --- /dev/null +++ b/cmd/token_mercedes.go @@ -0,0 +1,71 @@ +package cmd + +import ( + "errors" + "strings" + + "github.com/AlecAivazis/survey/v2" + "github.com/evcc-io/evcc/vehicle/mercedes" + "golang.org/x/oauth2" +) + +func mercedesUsernameAndRegionPrompt() (string, string, error) { + prompt_user := &survey.Input{ + Message: "Please enter your Mercedes ME user-account (e-mail or mobile)", + } + var user string + if err := survey.AskOne(prompt_user, &user, survey.WithValidator(survey.Required)); err != nil { + return "", "", err + } + + prompt_region := &survey.Select{ + Message: "Choose your MB region:", + Options: []string{"APAC", "EMEA", "NORAM"}, + } + var region string + if err := survey.AskOne(prompt_region, ®ion, survey.WithValidator(survey.Required)); err != nil { + return "", "", err + } + + return user, region, nil +} + +func mercedesPinPrompt() (string, error) { + var code string + prompt_pin := &survey.Input{ + Message: "Please enter the Pin that you received via email/sms", + } + if err := survey.AskOne(prompt_pin, &code, survey.WithValidator(survey.Required)); err != nil { + return "", err + } + + return strings.TrimSpace(code), nil +} + +func mercedesToken() (*oauth2.Token, error) { + // Get username and region from user to initate the email process + username, region, err := mercedesUsernameAndRegionPrompt() + if err != nil { + return nil, err + } + + api := mercedes.NewSetupAPI(log, username, region) + result, nonce, err := api.RequestPin() + if err != nil { + return nil, err + } + + if result { + pin, err := mercedesPinPrompt() + if err != nil { + return nil, err + } + + token, err := api.RequestAccessToken(*nonce, pin) + if err == nil { + return token, nil + } + } + + return nil, errors.New("unknown PinResponse - 200, Email empty") +} diff --git a/templates/definition/vehicle/mercedes.yaml b/templates/definition/vehicle/mercedes.yaml new file mode 100644 index 000000000..487333e28 --- /dev/null +++ b/templates/definition/vehicle/mercedes.yaml @@ -0,0 +1,59 @@ +template: mercedes +products: + - brand: Mercedes-Benz +requirements: + description: + de: | + Die Konfiguration der Mercedes-Benz Integration nur im yaml Modus möglich. + Ablauf: + 1. Hinzufügen der Konfiguration in die evcc.yaml (ohne Token) + ``` + vehicles: + - name: my_car + type: mercedes + account: # Mercedes Me Nutzer-Id (email) + region: # MB me Region (EMEA, APAC, NORAM) + vin: W... # Erforderlich, wenn mehr als ein Fahrzeug im Account registriert + capacity: 50 # Akkukapazität in kWh (optional) + ``` + 2. Ausführen von "./evcc token mercedes" zur Token Generierung + 3. Einfügen der Tokens in die evcc.yaml + ``` + vehicles: + - name: my_car + type: mercedes + account: # Mercedes Me Nutzer-Id (email) + region: # MB me Region (EMEA, APAC, NORAM) + vin: W... # , wenn mehr als ein Fahrzeug im Account registriert + capacity: 50 # Akkukapazität in kWh (optional) + tokens: + access: token... + refresh: token... + ``` + en: | + The configuration of the Mercedes-Benz integration is only possible in yaml mode. + Procedure: + 1. add the configuration to evcc.yaml (without token) + ``` + vehicles: + - name: my_car + type: mercedes + account: # Mercedes Me user-Id (email) + region: # MB me region (EMEA, APAC, NORAM) + vin: W... # Required, if more then one car is registered in this account + capacity: 50 # capacity in kWh (optional) + ``` + 2. execute "./evcc token mercedes" for token generation + 3. insert the tokens into evcc.yaml + ``` + vehicles: + - name: my_car + type: mercedes + account: # Mercedes Me user-id (email) + region: # MB me region (EMEA, APAC, NORAM) + vin: W... # Required, if more then one car is registered in this account + capacity: 50 # capacity in kWh (optional) + tokens: + access: token... + refresh: token... + ``` diff --git a/vehicle/mercedes.go b/vehicle/mercedes.go new file mode 100644 index 000000000..805fba205 --- /dev/null +++ b/vehicle/mercedes.go @@ -0,0 +1,61 @@ +package vehicle + +import ( + "time" + + "github.com/evcc-io/evcc/api" + "github.com/evcc-io/evcc/util" + "github.com/evcc-io/evcc/vehicle/mercedes" +) + +// Mercedes is an api.Vehicle implementation for Mercedes-Benz cars +type Mercedes struct { + *embed + *mercedes.Provider +} + +func init() { + registry.Add("mercedes", NewMercedesFromConfig) +} + +// NewMercedesFromConfig creates a new vehicle +func NewMercedesFromConfig(other map[string]interface{}) (api.Vehicle, error) { + cc := struct { + embed `mapstructure:",squash"` + Tokens Tokens + Account string + VIN string + Cache time.Duration + Region string + }{ + Cache: interval, + } + + if err := util.DecodeOther(other, &cc); err != nil { + return nil, err + } + + token, err := cc.Tokens.Token() + if err != nil { + return nil, err + } + + log := util.NewLogger("mercedes").Redact(cc.Tokens.Access, cc.Tokens.Refresh) + identity, err := mercedes.NewIdentity(log, token, cc.Account, cc.Region) + if err != nil { + return nil, err + } + + v := &Mercedes{ + embed: &cc.embed, + } + + api := mercedes.NewAPI(log, identity) + + cc.VIN, err = ensureVehicle(cc.VIN, api.Vehicles) + if err == nil { + v.Provider = mercedes.NewProvider(api, cc.VIN, cc.Cache) + } + + return v, err +} diff --git a/vehicle/mercedes/api.go b/vehicle/mercedes/api.go new file mode 100644 index 000000000..db224f6b4 --- /dev/null +++ b/vehicle/mercedes/api.go @@ -0,0 +1,97 @@ +package mercedes + +import ( + "fmt" + + "github.com/evcc-io/evcc/util" + "github.com/evcc-io/evcc/util/request" + "github.com/evcc-io/evcc/util/transport" + protos "github.com/evcc-io/evcc/vehicle/mercedes/pb" + "golang.org/x/oauth2" + "google.golang.org/protobuf/proto" +) + +// API is an api.Vehicle implementation for Mercedes-Benz cars +type API struct { + region string + log *util.Logger + *request.Helper +} + +func NewAPI(log *util.Logger, identity *Identity) *API { + client := request.NewHelper(log) + + client.Transport = &transport.Decorator{ + Base: &oauth2.Transport{ + Source: identity, + Base: client.Transport, + }, + Decorator: transport.DecorateHeaders(mbheaders(false, identity.region)), + } + + return &API{ + Helper: client, + region: identity.region, + log: log, + } +} + +func (v *API) Vehicles() ([]string, error) { + var res VehiclesResponse + + url := fmt.Sprintf("%s/v2/vehicles", getBffUri(v.region)) + + err := v.GetJSON(url, &res) + if err != nil { + return nil, err + } + + var vehicles []string + for _, v := range res.AssignedVehicles { + vehicles = append(vehicles, v.Fin) + } + + return vehicles, err +} + +func (v *API) Status(vin string) (StatusResponse, error) { + var res StatusResponse + + uri := fmt.Sprintf("%s/v1/vehicle/%s/vehicleattributes", getWidgetUri(v.region), vin) + + data, err := v.GetBody(uri) + if err != nil { + return res, err + } + + var message protos.VEPUpdate + if err = proto.Unmarshal(data, &message); err != nil { + return res, err + } + + if val, ok := message.Attributes["odo"]; ok { + res.VehicleInfo.Odometer.Value = int(val.GetIntValue()) + res.VehicleInfo.Odometer.Unit = val.GetDistanceUnit().String() + } + + if val, ok := message.Attributes["soc"]; ok { + res.EvInfo.Battery.StateOfCharge = float64(val.GetIntValue()) + } + + if val, ok := message.Attributes["rangeelectric"]; ok { + res.EvInfo.Battery.DistanceToEmpty.Value = int(val.GetIntValue()) + res.EvInfo.Battery.DistanceToEmpty.Unit = val.GetDistanceUnit().String() + } + + if val, ok := message.Attributes["endofchargetime"]; ok { + res.EvInfo.Battery.EndOfChargeTime = int(val.GetIntValue()) + } + + if val, ok := message.Attributes["chargingstatus"]; ok { + res.EvInfo.Battery.ChargingStatus = int(val.GetIntValue()) + } else { + res.EvInfo.Battery.ChargingStatus = 3 + } + + return res, err +} diff --git a/vehicle/mercedes/helper.go b/vehicle/mercedes/helper.go new file mode 100644 index 000000000..7393785db --- /dev/null +++ b/vehicle/mercedes/helper.go @@ -0,0 +1,119 @@ +package mercedes + +import ( + "fmt" + "net/http" + "sync" + + "github.com/google/uuid" +) + +// Helper provides utility primitives +type Helper struct { + *http.Client +} + +var ( + mu sync.Mutex + identities = make(map[string]*Identity) +) + +func getInstance(subject string) *Identity { + v := identities[subject] + return v +} + +func addInstance(subject string, identity *Identity) { + identities[subject] = identity +} + +const ( + BffUriEMEA = "https://bff.emea-prod.mobilesdk.mercedes-benz.com" + WidgetUriEMEA = "https://widget.emea-prod.mobilesdk.mercedes-benz.com" + BffUriAPAC = "https://bff.amap-prod.mobilesdk.mercedes-benz.com" + WidgetUriAPAC = "https://widget.amap-prod.mobilesdk.mercedes-benz.com" + BffUriNORAM = "https://bff.amap-prod.mobilesdk.mercedes-benz.com" + WidgetUriNORAM = "https://widget.amap-prod.mobilesdk.mercedes-benz.com" + IdUri = "https://id.mercedes-benz.com" + ClientId = "01398c1c-dc45-4b42-882b-9f5ba9f175f1" + RisApplicationVersionEMEA = "1.40.0" + RisSdkVersionEMEA = "2.111.1" + RisApplicationVersionAPAC = "1.40.0" + RisSdkVersionAPAC = "2.111.1" + RisApplicationVersionNORAM = "3.40.0" + RisSdkVersionNORAM = "2.111.1" + RisOsVersion = "17.3" + RisOsName = "ios" + XApplicationNameEMEA = "mycar-store-ece" + XApplicationNameAPAC = "mycar-store-ap" + XApplicationNameNORAM = "mycar-store-us" + UserAgent = "MyCar/%s (com.daimler.ris.mercedesme.%s.ios; %s %s) Alamofire/5.4.0" + UserAgentAPAC = "mycar-store-ap v%s, %s %s, SDK %s" + Locale = "en-GB" + CountryCode = "EN" +) + +func getBffUri(region string) string { + switch region { + case "EMEA": + return BffUriEMEA + case "APAC": + return BffUriAPAC + case "NORAM": + return BffUriNORAM + } + return BffUriEMEA +} + +func getWidgetUri(region string) string { + switch region { + case "EMEA": + return WidgetUriEMEA + case "APAC": + return WidgetUriAPAC + case "NORAM": + return WidgetUriNORAM + } + return WidgetUriEMEA +} + +func mbheaders(includeAuthServerHeader bool, region string) map[string]string { + headers := map[string]string{ + "Ris-Os-Name": RisOsName, + "Ris-Os-Version": RisOsVersion, + "X-Locale": Locale, + "X-Trackingid": uuid.New().String(), + "X-Sessionid": uuid.New().String(), + "Content-Type": "application/json", + "Accept-Language": "en-GB", + "Accept": "*/*", + "x-dev": "1", + } + + switch region { + case "EMEA": + headers["Ris-Sdk-Version"] = RisSdkVersionEMEA + headers["Ris-Application-Version"] = RisApplicationVersionEMEA + headers["X-Applicationname"] = XApplicationNameEMEA + headers["User-Agent"] = fmt.Sprintf(UserAgent, RisApplicationVersionEMEA, "ece", RisOsName, RisOsVersion) + case "APAC": + headers["Ris-Sdk-Version"] = RisSdkVersionAPAC + headers["Ris-Application-Version"] = RisApplicationVersionAPAC + headers["X-Applicationname"] = XApplicationNameAPAC + headers["User-Agent"] = fmt.Sprintf(UserAgentAPAC, RisApplicationVersionAPAC, RisOsName, RisOsVersion, RisSdkVersionAPAC) + case "NORAM": + headers["Ris-Sdk-Version"] = RisSdkVersionNORAM + headers["Ris-Application-Version"] = RisApplicationVersionNORAM + headers["X-Applicationname"] = XApplicationNameNORAM + headers["User-Agent"] = fmt.Sprintf(UserAgent, RisApplicationVersionEMEA, "ece", RisOsName, RisOsVersion) + } + + if includeAuthServerHeader { + headers["Stage"] = "prod" + headers["X-Device-Id"] = uuid.New().String() + headers["X-Request-Id"] = uuid.New().String() + headers["Content-Type"] = "application/x-www-form-urlencoded" + } + + return headers +} diff --git a/vehicle/mercedes/identity.go b/vehicle/mercedes/identity.go new file mode 100644 index 000000000..b07adb315 --- /dev/null +++ b/vehicle/mercedes/identity.go @@ -0,0 +1,127 @@ +package mercedes + +import ( + "errors" + "fmt" + "net/http" + "net/url" + "strings" + "sync" + "time" + + "github.com/evcc-io/evcc/server/db/settings" + "github.com/evcc-io/evcc/util" + "github.com/evcc-io/evcc/util/oauth" + "github.com/evcc-io/evcc/util/request" + "github.com/evcc-io/evcc/util/transport" + "github.com/google/uuid" + "golang.org/x/oauth2" +) + +type Identity struct { + *request.Helper + oauth2.TokenSource + mu sync.Mutex + log *util.Logger + account string + region string + Sessionid string +} + +// OAuth2Config is the OAuth2 configuration for authenticating with the MercedesAPI. +var OAuth2Config = &oauth2.Config{ + // RedirectURL: fmt.Sprintf("%s/void/RedirectURL", IdUri), + Endpoint: oauth2.Endpoint{ + // AuthURL: fmt.Sprintf("%s/void/AuthURL", IdUri), + TokenURL: fmt.Sprintf("%s/as/token.oauth2", IdUri), + AuthStyle: oauth2.AuthStyleInParams, + }, + Scopes: []string{"not_needed", "handled", "elsewhere"}, +} + +// NewIdentity creates Mercedes identity +func NewIdentity(log *util.Logger, token *oauth2.Token, account string, region string) (*Identity, error) { + // serialise instance handling + mu.Lock() + defer mu.Unlock() + + v := &Identity{ + Helper: request.NewHelper(log), + log: log, + account: account, + region: region, + } + + v.Sessionid = uuid.New().String() + v.Helper.Transport = &transport.Decorator{ + Base: v.Helper.Transport, //.NewTripper(log, transport.Insecure()), + Decorator: transport.DecorateHeaders(mbheaders(true, region)), + } + + // reuse identity instance + if instance := getInstance(account); instance != nil { + v.log.DEBUG.Println("identity.NewIdentity - token found in instance store") + return instance, nil + } + + if !token.Valid() { + v.log.DEBUG.Println("identity.NewIdentity - token not valid - Add expiry") + token.Expiry = time.Now().Add(time.Duration(10) * time.Second) + } + + // database token + if !token.Valid() { + v.log.DEBUG.Println("identity.NewIdentity - token not valid - database token check started") + var tok oauth2.Token + if err := settings.Json(v.settingsKey(), &tok); err == nil { + token = &tok + } + } + + if !token.Valid() && token.RefreshToken != "" { + v.log.DEBUG.Println("identity.NewIdentity - token not valid - refreshToken started") + if tok, err := v.RefreshToken(token); err == nil { + token = tok + } + } + + if !token.Valid() { + return nil, errors.New("token expired") + } + + v.TokenSource = oauth.RefreshTokenSource(token, v) + + // add instance + addInstance(account, v) + + return v, nil +} + +func (v *Identity) settingsKey() string { + return fmt.Sprintf("mercedes.%s-%s", v.account, v.region) +} + +func (v *Identity) RefreshToken(token *oauth2.Token) (*oauth2.Token, error) { + v.mu.Lock() + defer v.mu.Unlock() + + data := url.Values{ + "grant_type": []string{"refresh_token"}, + "refresh_token": []string{token.RefreshToken}, + } + + uri := fmt.Sprintf("%s/as/token.oauth2", IdUri) + req, _ := request.New(http.MethodPost, uri, strings.NewReader(data.Encode()), mbheaders(true, v.region)) + + var res oauth.Token + if err := v.DoJSON(req, &res); err != nil { + return nil, err + } + + tok := (*oauth2.Token)(&res) + v.TokenSource = oauth.RefreshTokenSource(tok, v) + + err := settings.SetJson(v.settingsKey(), tok) + + return tok, err +} diff --git a/vehicle/mercedes/pb/acp.pb.go b/vehicle/mercedes/pb/acp.pb.go new file mode 100644 index 000000000..d7bdab694 --- /dev/null +++ b/vehicle/mercedes/pb/acp.pb.go @@ -0,0 +1,2082 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v3.21.12 +// source: acp.proto + +package protos + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type VVA_CommandState int32 + +const ( + VVA_UNKNOWN_COMMAND_STATE VVA_CommandState = 0 + VVA_CREATED VVA_CommandState = 1010 + VVA_ENQUEUED VVA_CommandState = 1016 + VVA_PROCESSING VVA_CommandState = 1012 + VVA_SUSPENDED VVA_CommandState = 1017 + VVA_FINISHED VVA_CommandState = 1018 +) + +// Enum value maps for VVA_CommandState. +var ( + VVA_CommandState_name = map[int32]string{ + 0: "UNKNOWN_COMMAND_STATE", + 1010: "CREATED", + 1016: "ENQUEUED", + 1012: "PROCESSING", + 1017: "SUSPENDED", + 1018: "FINISHED", + } + VVA_CommandState_value = map[string]int32{ + "UNKNOWN_COMMAND_STATE": 0, + "CREATED": 1010, + "ENQUEUED": 1016, + "PROCESSING": 1012, + "SUSPENDED": 1017, + "FINISHED": 1018, + } +) + +func (x VVA_CommandState) Enum() *VVA_CommandState { + p := new(VVA_CommandState) + *p = x + return p +} + +func (x VVA_CommandState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VVA_CommandState) Descriptor() protoreflect.EnumDescriptor { + return file_acp_proto_enumTypes[0].Descriptor() +} + +func (VVA_CommandState) Type() protoreflect.EnumType { + return &file_acp_proto_enumTypes[0] +} + +func (x VVA_CommandState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VVA_CommandState.Descriptor instead. +func (VVA_CommandState) EnumDescriptor() ([]byte, []int) { + return file_acp_proto_rawDescGZIP(), []int{0, 0} +} + +type VVA_CommandCondition int32 + +const ( + VVA_UNKNWON_COMMAND_CONDITION VVA_CommandCondition = 0 + VVA_NONE VVA_CommandCondition = 1000 + VVA_ACCEPTED VVA_CommandCondition = 1001 + VVA_REJECTED VVA_CommandCondition = 1002 + VVA_TERMINATE VVA_CommandCondition = 1003 + VVA_SUCCESS VVA_CommandCondition = 1011 + VVA_FAILED VVA_CommandCondition = 1013 + VVA_OVERWRITTEN VVA_CommandCondition = 1014 + VVA_TIMEOUT VVA_CommandCondition = 1015 +) + +// Enum value maps for VVA_CommandCondition. +var ( + VVA_CommandCondition_name = map[int32]string{ + 0: "UNKNWON_COMMAND_CONDITION", + 1000: "NONE", + 1001: "ACCEPTED", + 1002: "REJECTED", + 1003: "TERMINATE", + 1011: "SUCCESS", + 1013: "FAILED", + 1014: "OVERWRITTEN", + 1015: "TIMEOUT", + } + VVA_CommandCondition_value = map[string]int32{ + "UNKNWON_COMMAND_CONDITION": 0, + "NONE": 1000, + "ACCEPTED": 1001, + "REJECTED": 1002, + "TERMINATE": 1003, + "SUCCESS": 1011, + "FAILED": 1013, + "OVERWRITTEN": 1014, + "TIMEOUT": 1015, + } +) + +func (x VVA_CommandCondition) Enum() *VVA_CommandCondition { + p := new(VVA_CommandCondition) + *p = x + return p +} + +func (x VVA_CommandCondition) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VVA_CommandCondition) Descriptor() protoreflect.EnumDescriptor { + return file_acp_proto_enumTypes[1].Descriptor() +} + +func (VVA_CommandCondition) Type() protoreflect.EnumType { + return &file_acp_proto_enumTypes[1] +} + +func (x VVA_CommandCondition) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VVA_CommandCondition.Descriptor instead. +func (VVA_CommandCondition) EnumDescriptor() ([]byte, []int) { + return file_acp_proto_rawDescGZIP(), []int{0, 1} +} + +type VehicleAPI_CommandState int32 + +const ( + VehicleAPI_UNKNOWN_COMMAND_STATE VehicleAPI_CommandState = 0 + // Command execution request is accepted and an asynchronous process is + // being initialized. + VehicleAPI_INITIATION VehicleAPI_CommandState = 1 + // Another process for the same vehicle and queue is active, the request has + // been queued for later execution. + VehicleAPI_ENQUEUED VehicleAPI_CommandState = 2 + // The process is currently being processed by the backend. + VehicleAPI_PROCESSING VehicleAPI_CommandState = 3 + // The backend currently waits for the vehicle to respond to the request. + VehicleAPI_WAITING VehicleAPI_CommandState = 4 + // The process has finished successfully. + VehicleAPI_FINISHED VehicleAPI_CommandState = 5 + // There was an error while executing the command process. + VehicleAPI_FAILED VehicleAPI_CommandState = 6 +) + +// Enum value maps for VehicleAPI_CommandState. +var ( + VehicleAPI_CommandState_name = map[int32]string{ + 0: "UNKNOWN_COMMAND_STATE", + 1: "INITIATION", + 2: "ENQUEUED", + 3: "PROCESSING", + 4: "WAITING", + 5: "FINISHED", + 6: "FAILED", + } + VehicleAPI_CommandState_value = map[string]int32{ + "UNKNOWN_COMMAND_STATE": 0, + "INITIATION": 1, + "ENQUEUED": 2, + "PROCESSING": 3, + "WAITING": 4, + "FINISHED": 5, + "FAILED": 6, + } +) + +func (x VehicleAPI_CommandState) Enum() *VehicleAPI_CommandState { + p := new(VehicleAPI_CommandState) + *p = x + return p +} + +func (x VehicleAPI_CommandState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VehicleAPI_CommandState) Descriptor() protoreflect.EnumDescriptor { + return file_acp_proto_enumTypes[2].Descriptor() +} + +func (VehicleAPI_CommandState) Type() protoreflect.EnumType { + return &file_acp_proto_enumTypes[2] +} + +func (x VehicleAPI_CommandState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VehicleAPI_CommandState.Descriptor instead. +func (VehicleAPI_CommandState) EnumDescriptor() ([]byte, []int) { + return file_acp_proto_rawDescGZIP(), []int{1, 0} +} + +type VehicleAPI_AttributeStatus int32 + +const ( + // Value is set and valid + VehicleAPI_VALUE_SET VehicleAPI_AttributeStatus = 0 + // Value has not yet been retrieved from vehicle (but sensor etc. should be available) + VehicleAPI_VALUE_NOT_SET VehicleAPI_AttributeStatus = 1 + // Value has been retrieved from vehicle but is invalid (marked as invalid by DaiVB backend) + VehicleAPI_INVALID VehicleAPI_AttributeStatus = 3 + // Vehicle does not support this attribute (e.g. does not have the sensor etc.) + VehicleAPI_NOT_AVAILABLE VehicleAPI_AttributeStatus = 4 +) + +// Enum value maps for VehicleAPI_AttributeStatus. +var ( + VehicleAPI_AttributeStatus_name = map[int32]string{ + 0: "VALUE_SET", + 1: "VALUE_NOT_SET", + 3: "INVALID", + 4: "NOT_AVAILABLE", + } + VehicleAPI_AttributeStatus_value = map[string]int32{ + "VALUE_SET": 0, + "VALUE_NOT_SET": 1, + "INVALID": 3, + "NOT_AVAILABLE": 4, + } +) + +func (x VehicleAPI_AttributeStatus) Enum() *VehicleAPI_AttributeStatus { + p := new(VehicleAPI_AttributeStatus) + *p = x + return p +} + +func (x VehicleAPI_AttributeStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VehicleAPI_AttributeStatus) Descriptor() protoreflect.EnumDescriptor { + return file_acp_proto_enumTypes[3].Descriptor() +} + +func (VehicleAPI_AttributeStatus) Type() protoreflect.EnumType { + return &file_acp_proto_enumTypes[3] +} + +func (x VehicleAPI_AttributeStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VehicleAPI_AttributeStatus.Descriptor instead. +func (VehicleAPI_AttributeStatus) EnumDescriptor() ([]byte, []int) { + return file_acp_proto_rawDescGZIP(), []int{1, 1} +} + +type VehicleAPI_QueueType int32 + +const ( + VehicleAPI_UNKNOWNCOMMANDQUEUETYPE VehicleAPI_QueueType = 0 + VehicleAPI_DOORS VehicleAPI_QueueType = 10 + VehicleAPI_AUXHEAT VehicleAPI_QueueType = 11 + VehicleAPI_PRECOND VehicleAPI_QueueType = 12 + VehicleAPI_CHARGEOPT VehicleAPI_QueueType = 13 + VehicleAPI_MAINTENANCE VehicleAPI_QueueType = 14 + VehicleAPI_TCU VehicleAPI_QueueType = 15 + VehicleAPI_FEED VehicleAPI_QueueType = 16 + VehicleAPI_SERVICEACTIVATION VehicleAPI_QueueType = 17 + VehicleAPI_ATP VehicleAPI_QueueType = 18 + VehicleAPI_ASSISTANCE VehicleAPI_QueueType = 19 + VehicleAPI_RACP VehicleAPI_QueueType = 20 + VehicleAPI_WEEKPROFILE VehicleAPI_QueueType = 21 + VehicleAPI_REMOTEDIAGNOSIS VehicleAPI_QueueType = 22 + VehicleAPI_FLSH VehicleAPI_QueueType = 23 //(ALSO USED BY SIGPOS/RVF) + VehicleAPI_TEMPERATURE VehicleAPI_QueueType = 24 + VehicleAPI_TRIPCOMP VehicleAPI_QueueType = 25 + VehicleAPI_ENGINE VehicleAPI_QueueType = 26 + VehicleAPI_THEFTALARM VehicleAPI_QueueType = 27 + VehicleAPI_WINDOW VehicleAPI_QueueType = 28 + VehicleAPI_HEADUNIT VehicleAPI_QueueType = 29 + VehicleAPI_MECALL VehicleAPI_QueueType = 31 + VehicleAPI_IMMOBILIZER VehicleAPI_QueueType = 32 + VehicleAPI_RENTALSIGNAL VehicleAPI_QueueType = 33 + VehicleAPI_BCF VehicleAPI_QueueType = 34 //(BLACKCHANNEL) + VehicleAPI_PLUGANDCHARGE VehicleAPI_QueueType = 35 + VehicleAPI_CARSHARINGMODULE VehicleAPI_QueueType = 36 + VehicleAPI_BATTERY VehicleAPI_QueueType = 37 + VehicleAPI_ONBOARDFENCES VehicleAPI_QueueType = 38 + VehicleAPI_SPEEDFENCES VehicleAPI_QueueType = 39 + VehicleAPI_CHARGINGTARIFFS VehicleAPI_QueueType = 40 + VehicleAPI_RTMCONFIG VehicleAPI_QueueType = 41 + VehicleAPI_MAINTENANCECOMPUTER VehicleAPI_QueueType = 42 + VehicleAPI_MECALL2 VehicleAPI_QueueType = 43 + VehicleAPI_AUTOMATEDVALETPARKING VehicleAPI_QueueType = 44 + VehicleAPI_CHARGECONTROL VehicleAPI_QueueType = 45 + VehicleAPI_SPEEDALERT VehicleAPI_QueueType = 46 + VehicleAPI_unknowncommandqueuetype VehicleAPI_QueueType = 0 + VehicleAPI_doors VehicleAPI_QueueType = 10 + VehicleAPI_auxheat VehicleAPI_QueueType = 11 + VehicleAPI_precond VehicleAPI_QueueType = 12 + VehicleAPI_chargeopt VehicleAPI_QueueType = 13 + VehicleAPI_maintenance VehicleAPI_QueueType = 14 + VehicleAPI_tcu VehicleAPI_QueueType = 15 + VehicleAPI_feed VehicleAPI_QueueType = 16 + VehicleAPI_serviceactivation VehicleAPI_QueueType = 17 + VehicleAPI_atp VehicleAPI_QueueType = 18 + VehicleAPI_assistance VehicleAPI_QueueType = 19 + VehicleAPI_racp VehicleAPI_QueueType = 20 + VehicleAPI_weekprofile VehicleAPI_QueueType = 21 + VehicleAPI_remotediagnosis VehicleAPI_QueueType = 22 + VehicleAPI_flsh VehicleAPI_QueueType = 23 //(also used by sigpos/RVF) + VehicleAPI_temperature VehicleAPI_QueueType = 24 + VehicleAPI_tripcomp VehicleAPI_QueueType = 25 + VehicleAPI_engine VehicleAPI_QueueType = 26 + VehicleAPI_theftalarm VehicleAPI_QueueType = 27 + VehicleAPI_window VehicleAPI_QueueType = 28 + VehicleAPI_headunit VehicleAPI_QueueType = 29 + VehicleAPI_mecall VehicleAPI_QueueType = 31 + VehicleAPI_immobilizer VehicleAPI_QueueType = 32 + VehicleAPI_rentalsignal VehicleAPI_QueueType = 33 + VehicleAPI_bcf VehicleAPI_QueueType = 34 //(blackchannel) + VehicleAPI_plugandcharge VehicleAPI_QueueType = 35 + VehicleAPI_carsharingmodule VehicleAPI_QueueType = 36 + VehicleAPI_battery VehicleAPI_QueueType = 37 + VehicleAPI_onboardfences VehicleAPI_QueueType = 38 + VehicleAPI_speedfences VehicleAPI_QueueType = 39 + VehicleAPI_chargingtariffs VehicleAPI_QueueType = 40 + VehicleAPI_rtmconfig VehicleAPI_QueueType = 41 + VehicleAPI_maintenancecomputer VehicleAPI_QueueType = 42 + VehicleAPI_mecall2 VehicleAPI_QueueType = 43 + VehicleAPI_automatedvaletparking VehicleAPI_QueueType = 44 + VehicleAPI_chargecontrol VehicleAPI_QueueType = 45 + VehicleAPI_speedalert VehicleAPI_QueueType = 46 +) + +// Enum value maps for VehicleAPI_QueueType. +var ( + VehicleAPI_QueueType_name = map[int32]string{ + 0: "UNKNOWNCOMMANDQUEUETYPE", + 10: "DOORS", + 11: "AUXHEAT", + 12: "PRECOND", + 13: "CHARGEOPT", + 14: "MAINTENANCE", + 15: "TCU", + 16: "FEED", + 17: "SERVICEACTIVATION", + 18: "ATP", + 19: "ASSISTANCE", + 20: "RACP", + 21: "WEEKPROFILE", + 22: "REMOTEDIAGNOSIS", + 23: "FLSH", + 24: "TEMPERATURE", + 25: "TRIPCOMP", + 26: "ENGINE", + 27: "THEFTALARM", + 28: "WINDOW", + 29: "HEADUNIT", + 31: "MECALL", + 32: "IMMOBILIZER", + 33: "RENTALSIGNAL", + 34: "BCF", + 35: "PLUGANDCHARGE", + 36: "CARSHARINGMODULE", + 37: "BATTERY", + 38: "ONBOARDFENCES", + 39: "SPEEDFENCES", + 40: "CHARGINGTARIFFS", + 41: "RTMCONFIG", + 42: "MAINTENANCECOMPUTER", + 43: "MECALL2", + 44: "AUTOMATEDVALETPARKING", + 45: "CHARGECONTROL", + 46: "SPEEDALERT", + // Duplicate value: 0: "unknowncommandqueuetype", + // Duplicate value: 10: "doors", + // Duplicate value: 11: "auxheat", + // Duplicate value: 12: "precond", + // Duplicate value: 13: "chargeopt", + // Duplicate value: 14: "maintenance", + // Duplicate value: 15: "tcu", + // Duplicate value: 16: "feed", + // Duplicate value: 17: "serviceactivation", + // Duplicate value: 18: "atp", + // Duplicate value: 19: "assistance", + // Duplicate value: 20: "racp", + // Duplicate value: 21: "weekprofile", + // Duplicate value: 22: "remotediagnosis", + // Duplicate value: 23: "flsh", + // Duplicate value: 24: "temperature", + // Duplicate value: 25: "tripcomp", + // Duplicate value: 26: "engine", + // Duplicate value: 27: "theftalarm", + // Duplicate value: 28: "window", + // Duplicate value: 29: "headunit", + // Duplicate value: 31: "mecall", + // Duplicate value: 32: "immobilizer", + // Duplicate value: 33: "rentalsignal", + // Duplicate value: 34: "bcf", + // Duplicate value: 35: "plugandcharge", + // Duplicate value: 36: "carsharingmodule", + // Duplicate value: 37: "battery", + // Duplicate value: 38: "onboardfences", + // Duplicate value: 39: "speedfences", + // Duplicate value: 40: "chargingtariffs", + // Duplicate value: 41: "rtmconfig", + // Duplicate value: 42: "maintenancecomputer", + // Duplicate value: 43: "mecall2", + // Duplicate value: 44: "automatedvaletparking", + // Duplicate value: 45: "chargecontrol", + // Duplicate value: 46: "speedalert", + } + VehicleAPI_QueueType_value = map[string]int32{ + "UNKNOWNCOMMANDQUEUETYPE": 0, + "DOORS": 10, + "AUXHEAT": 11, + "PRECOND": 12, + "CHARGEOPT": 13, + "MAINTENANCE": 14, + "TCU": 15, + "FEED": 16, + "SERVICEACTIVATION": 17, + "ATP": 18, + "ASSISTANCE": 19, + "RACP": 20, + "WEEKPROFILE": 21, + "REMOTEDIAGNOSIS": 22, + "FLSH": 23, + "TEMPERATURE": 24, + "TRIPCOMP": 25, + "ENGINE": 26, + "THEFTALARM": 27, + "WINDOW": 28, + "HEADUNIT": 29, + "MECALL": 31, + "IMMOBILIZER": 32, + "RENTALSIGNAL": 33, + "BCF": 34, + "PLUGANDCHARGE": 35, + "CARSHARINGMODULE": 36, + "BATTERY": 37, + "ONBOARDFENCES": 38, + "SPEEDFENCES": 39, + "CHARGINGTARIFFS": 40, + "RTMCONFIG": 41, + "MAINTENANCECOMPUTER": 42, + "MECALL2": 43, + "AUTOMATEDVALETPARKING": 44, + "CHARGECONTROL": 45, + "SPEEDALERT": 46, + "unknowncommandqueuetype": 0, + "doors": 10, + "auxheat": 11, + "precond": 12, + "chargeopt": 13, + "maintenance": 14, + "tcu": 15, + "feed": 16, + "serviceactivation": 17, + "atp": 18, + "assistance": 19, + "racp": 20, + "weekprofile": 21, + "remotediagnosis": 22, + "flsh": 23, + "temperature": 24, + "tripcomp": 25, + "engine": 26, + "theftalarm": 27, + "window": 28, + "headunit": 29, + "mecall": 31, + "immobilizer": 32, + "rentalsignal": 33, + "bcf": 34, + "plugandcharge": 35, + "carsharingmodule": 36, + "battery": 37, + "onboardfences": 38, + "speedfences": 39, + "chargingtariffs": 40, + "rtmconfig": 41, + "maintenancecomputer": 42, + "mecall2": 43, + "automatedvaletparking": 44, + "chargecontrol": 45, + "speedalert": 46, + } +) + +func (x VehicleAPI_QueueType) Enum() *VehicleAPI_QueueType { + p := new(VehicleAPI_QueueType) + *p = x + return p +} + +func (x VehicleAPI_QueueType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VehicleAPI_QueueType) Descriptor() protoreflect.EnumDescriptor { + return file_acp_proto_enumTypes[4].Descriptor() +} + +func (VehicleAPI_QueueType) Type() protoreflect.EnumType { + return &file_acp_proto_enumTypes[4] +} + +func (x VehicleAPI_QueueType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VehicleAPI_QueueType.Descriptor instead. +func (VehicleAPI_QueueType) EnumDescriptor() ([]byte, []int) { + return file_acp_proto_rawDescGZIP(), []int{1, 2} +} + +type ACP_CommandType int32 + +const ( + ACP_UNKNOWNCOMMANDTYPE ACP_CommandType = 0 + ACP_DOORSLOCK ACP_CommandType = 100 + ACP_DOORSUNLOCK ACP_CommandType = 110 + ACP_TRUNKUNLOCK ACP_CommandType = 115 + ACP_FUELFLAPUNLOCK ACP_CommandType = 116 + ACP_CHARGEFLAPUNLOCK ACP_CommandType = 117 + ACP_CHARGECOUPLERUNLOCK ACP_CommandType = 118 + ACP_DOORSPREPARERENTAL ACP_CommandType = 120 + ACP_DOORSSECUREVEHICLE ACP_CommandType = 130 + ACP_AUXHEATSTART ACP_CommandType = 300 + ACP_AUXHEATSTOP ACP_CommandType = 310 + ACP_AUXHEATCONFIGURE ACP_CommandType = 320 + ACP_TEMPERATURECONFIGURE ACP_CommandType = 350 + ACP_WEEKPROFILECONFIGURE ACP_CommandType = 360 + ACP_WEEKPROFILEV2CONFIGURE ACP_CommandType = 370 + ACP_PRECONDSTART ACP_CommandType = 400 + ACP_PRECONDSTOP ACP_CommandType = 410 + ACP_PRECONDCONFIGURE ACP_CommandType = 420 + ACP_PRECONDCONFIGURESEATS ACP_CommandType = 425 + ACP_CHARGEOPTCONFIGURE ACP_CommandType = 430 + ACP_CHARGEOPTSTART ACP_CommandType = 440 + ACP_CHARGEOPTSTOP ACP_CommandType = 450 + ACP_FEEDPOI ACP_CommandType = 500 + ACP_FEEDFREETEXT ACP_CommandType = 510 + ACP_ENGINESTART ACP_CommandType = 550 + ACP_ENGINESTOP ACP_CommandType = 560 + ACP_ENGINEAVPSTART ACP_CommandType = 570 + ACP_TCUWAKEUP ACP_CommandType = 600 + ACP_TCUSWUPDATE ACP_CommandType = 610 + ACP_TCURCSRESET ACP_CommandType = 620 + ACP_TCUINTERROGATION ACP_CommandType = 630 + ACP_SPEEDALERTSTART ACP_CommandType = 710 + ACP_SPEEDALERTSTOP ACP_CommandType = 720 + ACP_FLSHSTART ACP_CommandType = 750 // (DEPRECATED) + ACP_FLSHSTOP ACP_CommandType = 760 // (DEPRECATED) + ACP_SIGPOSSTART ACP_CommandType = 770 + ACP_CONTRACTCONFIGURE ACP_CommandType = 800 + ACP_CONTRACTREMOVE ACP_CommandType = 810 + ACP_ROOTCONFIGURE ACP_CommandType = 820 + ACP_ROOTREMOVE ACP_CommandType = 830 + ACP_TRIPCOMP ACP_CommandType = 850 // RESET TRIPCOMP + ACP_MAINTENANCECONFIGURE ACP_CommandType = 930 + ACP_MAINTENANCECOMPUTEROFFSET ACP_CommandType = 931 + ACP_SHORTTESTEXECUTE ACP_CommandType = 935 + ACP_SERVICEACTIVATIONCONFIGURE ACP_CommandType = 940 + ACP_DC2SERVICEACTIVATIONCONFIGURE ACP_CommandType = 945 + ACP_DC2RAWDOWNLOAD ACP_CommandType = 950 //(TEST COMMAND) + ACP_APPLICATIONCONFIGURATION ACP_CommandType = 955 // (DC2+) + ACP_DC2STARTTRACKING ACP_CommandType = 960 // (TEST COMMAND) + ACP_ATPSEQUENCE ACP_CommandType = 990 + ACP_THEFTALARMTOGGLEINTERIOR ACP_CommandType = 1000 + ACP_THEFTALARMTOGGLETOW ACP_CommandType = 1010 + ACP_THEFTALARMSELECTINTERIORTOW ACP_CommandType = 1020 + ACP_THEFTALARMDESELECTINTERIORTOW ACP_CommandType = 1030 + ACP_THEFTALARMSTOP ACP_CommandType = 1040 + ACP_WINDOWOPEN ACP_CommandType = 1100 + ACP_WINDOWCLOSE ACP_CommandType = 1110 + ACP_WINDOWVENTILATE ACP_CommandType = 1120 + ACP_WINDOWMOVE ACP_CommandType = 1121 + ACP_ROOFOPEN ACP_CommandType = 1130 + ACP_ROOFCLOSE ACP_CommandType = 1140 + ACP_ROOFLIFT ACP_CommandType = 1150 + ACP_ROOFMOVE ACP_CommandType = 1151 + ACP_BATTERYMAXSOC ACP_CommandType = 2000 + ACP_BATTERYCHARGEPROGRAM ACP_CommandType = 2010 + ACP_CHARGEPROGRAMCONFIGURE ACP_CommandType = 2020 + ACP_ONBOARDFENCESCREATE ACP_CommandType = 2100 + ACP_ONBOARDFENCESUPDATE ACP_CommandType = 2110 + ACP_ONBOARDFENCESDELETE ACP_CommandType = 2120 + ACP_SPEEDFENCESCREATE ACP_CommandType = 2200 + ACP_SPEEDFENCESUPDATE ACP_CommandType = 2210 + ACP_SPEEDFENCESDELETE ACP_CommandType = 2220 + ACP_CHARGINGTARIFFSCREATE ACP_CommandType = 2300 + ACP_CHARGINGTARIFFSUPDATE ACP_CommandType = 2310 + ACP_CHARGINGTARIFFSDELETE ACP_CommandType = 2320 + ACP_THEFTALARMSTART ACP_CommandType = 2500 + ACP_THEFTALARMSELECTINTERIOR ACP_CommandType = 2510 + ACP_THEFTALARMDESELECTINTERIOR ACP_CommandType = 2520 + ACP_THEFTALARMSELECTTOW ACP_CommandType = 2530 + ACP_THEFTALARMDESELECTTOW ACP_CommandType = 2540 + ACP_THEFTALARMSELECTDAMAGEDETECTION ACP_CommandType = 2550 + ACP_THEFTALARMDESELECTDAMAGEDETECTION ACP_CommandType = 2560 + ACP_THEFTALARMCONFIRMDAMAGEDETECTION ACP_CommandType = 2570 + ACP_MECALL2START ACP_CommandType = 2600 + ACP_UDXTRIGGERSYNCHRONIZATION ACP_CommandType = 1200 + ACP_UDXACTIVEUSERPROFILE ACP_CommandType = 1210 + ACP_UDXRESETUSERDATA ACP_CommandType = 1220 + ACP_USERPROFSYNCH ACP_CommandType = 1230 + ACP_USERDATARESET ACP_CommandType = 1240 + ACP_PROFACTIVATIONSNAP ACP_CommandType = 1250 + ACP_PROFACTIVATIONDIRECT ACP_CommandType = 1255 + ACP_SOFTWAREUPDATE ACP_CommandType = 1260 + ACP_PUSHNOTIFICATION ACP_CommandType = 1270 + ACP_MECALLCOMMAND ACP_CommandType = 1310 + ACP_PRECONDSTARTRCS ACP_CommandType = 1400 + ACP_PRECONDSTOPRCS ACP_CommandType = 1410 + ACP_PRECONDCONFIGURERCS ACP_CommandType = 1420 + ACP_TCUCONFIGURE ACP_CommandType = 1430 + ACP_EDISONSERVICEACTIVATION ACP_CommandType = 1431 + ACP_TESTSEQUENCE ACP_CommandType = 1432 + ACP_PRECONDCONFIGURERACP ACP_CommandType = 1433 + ACP_CHARGEOPTCONFIGURERACP ACP_CommandType = 1434 + ACP_TARIFFTABLEDOWNLOAD ACP_CommandType = 1435 + ACP_PRECONDSTARTRACP ACP_CommandType = 1436 + ACP_PRECONDSTOPRACP ACP_CommandType = 1437 + ACP_ROOTCERTIFICATEREMOVE ACP_CommandType = 1438 + ACP_ONREQUESTPROBEUPLOAD ACP_CommandType = 1439 + ACP_ROOTCERTIFICATEDOWNLOAD ACP_CommandType = 1440 + ACP_CONTRACTCERTIFICATEREMOVE ACP_CommandType = 1441 + ACP_CONTRACTCERTIFICATEDOWNLOAD ACP_CommandType = 1442 + ACP_PROBECONFIGURATIONUPDATE ACP_CommandType = 1443 + ACP_RDIAGDELETEECU ACP_CommandType = 1500 + ACP_RDIAGSTATUSREPORT ACP_CommandType = 1501 + ACP_RDIAGEXECUTION ACP_CommandType = 1502 + ACP_IMMOBILIZERCHALLENGE ACP_CommandType = 1600 + ACP_IMMOBILIZERSEARCHKEYLINE ACP_CommandType = 1610 + ACP_IMMOBILIZERRELEASEKEYLINE ACP_CommandType = 1620 + ACP_IMMOBILIZERLOCKKEYLINE ACP_CommandType = 1630 + ACP_IMMOBILIZERLOCKVEHICLE ACP_CommandType = 1631 + ACP_IMMOBILIZERRELEASEVEHICLE ACP_CommandType = 1621 + ACP_SETRENTALSIGNAL ACP_CommandType = 1700 + ACP_BLACKCHANNELDOWNLOAD ACP_CommandType = 1800 + ACP_BLACKCHANNELUPLOAD ACP_CommandType = 1810 + ACP_CONFIGURECSM ACP_CommandType = 1900 + ACP_UPDATEVEHICLEINFO ACP_CommandType = 1901 + ACP_RELAYMESSAGETOCSM ACP_CommandType = 1902 + ACP_RELAYRENTALREQUESTTOCSB ACP_CommandType = 1903 + ACP_RTMDOWNLOADCONFIG ACP_CommandType = 2400 + ACP_RTMREADCONFIG ACP_CommandType = 2410 + ACP_AVPACTIVATE ACP_CommandType = 2700 + ACP_CHARGECONTROLCONFIGURE ACP_CommandType = 2800 + ACP_unknownCommandType ACP_CommandType = 0 + ACP_doorsLock ACP_CommandType = 100 + ACP_doorsUnlock ACP_CommandType = 110 + ACP_trunkUnlock ACP_CommandType = 115 + ACP_fuelflapUnlock ACP_CommandType = 116 + ACP_chargeflapUnlock ACP_CommandType = 117 + ACP_chargecouplerUnlock ACP_CommandType = 118 + ACP_doorsPrepareRental ACP_CommandType = 120 + ACP_doorsSecureVehicle ACP_CommandType = 130 + ACP_auxheatStart ACP_CommandType = 300 + ACP_auxheatStop ACP_CommandType = 310 + ACP_auxheatConfigure ACP_CommandType = 320 + ACP_temperatureConfigure ACP_CommandType = 350 + ACP_weekprofileConfigure ACP_CommandType = 360 + ACP_weekprofileV2Configure ACP_CommandType = 370 + ACP_precondStart ACP_CommandType = 400 + ACP_precondStop ACP_CommandType = 410 + ACP_precondConfigure ACP_CommandType = 420 + ACP_precondConfigureSeats ACP_CommandType = 425 + ACP_chargeoptConfigure ACP_CommandType = 430 + ACP_chargeoptStart ACP_CommandType = 440 + ACP_chargeoptStop ACP_CommandType = 450 + ACP_feedPoi ACP_CommandType = 500 + ACP_feedFreetext ACP_CommandType = 510 + ACP_engineStart ACP_CommandType = 550 + ACP_engineStop ACP_CommandType = 560 + ACP_engineAvpstart ACP_CommandType = 570 + ACP_tcuWakeup ACP_CommandType = 600 + ACP_tcuSwUpdate ACP_CommandType = 610 + ACP_tcuRcsReset ACP_CommandType = 620 + ACP_tcuInterrogation ACP_CommandType = 630 + ACP_speedalertStart ACP_CommandType = 710 + ACP_speedalertStop ACP_CommandType = 720 + ACP_flshStart ACP_CommandType = 750 // (DEPRECATED) + ACP_flshStop ACP_CommandType = 760 // (DEPRECATED) + ACP_sigposStart ACP_CommandType = 770 + ACP_contractConfigure ACP_CommandType = 800 + ACP_contractRemove ACP_CommandType = 810 + ACP_rootConfigure ACP_CommandType = 820 + ACP_rootRemove ACP_CommandType = 830 + ACP_tripcomp ACP_CommandType = 850 // reset tripcomp + ACP_maintenanceConfigure ACP_CommandType = 930 + ACP_maintenanceComputerOffset ACP_CommandType = 931 + ACP_shorttestExecute ACP_CommandType = 935 + ACP_serviceactivationConfigure ACP_CommandType = 940 + ACP_dc2ServiceactivationConfigure ACP_CommandType = 945 + ACP_dc2RawDownload ACP_CommandType = 950 //(test command) + ACP_applicationConfiguration ACP_CommandType = 955 // (DC2+) + ACP_dc2StartTracking ACP_CommandType = 960 // (test command) + ACP_atpSequence ACP_CommandType = 990 + ACP_theftalarmToggleInterior ACP_CommandType = 1000 + ACP_theftalarmToggleTow ACP_CommandType = 1010 + ACP_theftalarmSelectInteriorTow ACP_CommandType = 1020 + ACP_theftalarmDeselectInteriorTow ACP_CommandType = 1030 + ACP_theftalarmStop ACP_CommandType = 1040 + ACP_windowOpen ACP_CommandType = 1100 + ACP_windowClose ACP_CommandType = 1110 + ACP_windowVentilate ACP_CommandType = 1120 + ACP_windowMove ACP_CommandType = 1121 + ACP_roofOpen ACP_CommandType = 1130 + ACP_roofClose ACP_CommandType = 1140 + ACP_roofLift ACP_CommandType = 1150 + ACP_roofMove ACP_CommandType = 1151 + ACP_batteryMaxsoc ACP_CommandType = 2000 + ACP_batteryChargeprogram ACP_CommandType = 2010 + ACP_chargeprogramconfigure ACP_CommandType = 2020 + ACP_onboardfencesCreate ACP_CommandType = 2100 + ACP_onboardfencesUpdate ACP_CommandType = 2110 + ACP_onboardfencesDelete ACP_CommandType = 2120 + ACP_speedfencesCreate ACP_CommandType = 2200 + ACP_speedfencesUpdate ACP_CommandType = 2210 + ACP_speedfencesDelete ACP_CommandType = 2220 + ACP_chargingtariffsCreate ACP_CommandType = 2300 + ACP_chargingtariffsUpdate ACP_CommandType = 2310 + ACP_chargingtariffsDelete ACP_CommandType = 2320 + ACP_theftalarmstart ACP_CommandType = 2500 + ACP_theftalarmselectinterior ACP_CommandType = 2510 + ACP_theftalarmdeselectinterior ACP_CommandType = 2520 + ACP_theftalarmselecttow ACP_CommandType = 2530 + ACP_theftalarmdeselecttow ACP_CommandType = 2540 + ACP_theftalarmselectdamagedetection ACP_CommandType = 2550 + ACP_theftalarmdeselectdamagedetection ACP_CommandType = 2560 + ACP_theftalarmconfirmdamagedetection ACP_CommandType = 2570 + ACP_mecall2start ACP_CommandType = 2600 + ACP_udxTriggerSynchronization ACP_CommandType = 1200 + ACP_udxActiveUserProfile ACP_CommandType = 1210 + ACP_udxResetUserData ACP_CommandType = 1220 + ACP_userProfSynch ACP_CommandType = 1230 + ACP_userDataReset ACP_CommandType = 1240 + ACP_profActivationSnap ACP_CommandType = 1250 + ACP_profActivationDirect ACP_CommandType = 1255 + ACP_softwareUpdate ACP_CommandType = 1260 + ACP_pushNotification ACP_CommandType = 1270 + ACP_mecallcommand ACP_CommandType = 1310 + ACP_precondStartRcs ACP_CommandType = 1400 + ACP_precondStopRcs ACP_CommandType = 1410 + ACP_precondConfigureRcs ACP_CommandType = 1420 + ACP_tcuConfigure ACP_CommandType = 1430 + ACP_edisonServiceActivation ACP_CommandType = 1431 + ACP_testSequence ACP_CommandType = 1432 + ACP_precondConfigureRacp ACP_CommandType = 1433 + ACP_chargeoptConfigureRacp ACP_CommandType = 1434 + ACP_tariffTableDownload ACP_CommandType = 1435 + ACP_precondStartRacp ACP_CommandType = 1436 + ACP_precondStopRacp ACP_CommandType = 1437 + ACP_rootCertificateRemove ACP_CommandType = 1438 + ACP_onRequestProbeUpload ACP_CommandType = 1439 + ACP_rootCertificateDownload ACP_CommandType = 1440 + ACP_contractCertificateRemove ACP_CommandType = 1441 + ACP_contractCertificateDownload ACP_CommandType = 1442 + ACP_probeConfigurationUpdate ACP_CommandType = 1443 + ACP_rdiagDeleteEcu ACP_CommandType = 1500 + ACP_rdiagStatusReport ACP_CommandType = 1501 + ACP_rdiagExecution ACP_CommandType = 1502 + ACP_immobilizerChallenge ACP_CommandType = 1600 + ACP_immobilizerSearchKeyline ACP_CommandType = 1610 + ACP_immobilizerReleaseKeyline ACP_CommandType = 1620 + ACP_immobilizerLockKeyline ACP_CommandType = 1630 + ACP_immobilizerLockVehicle ACP_CommandType = 1631 + ACP_immobilizerReleaseVehicle ACP_CommandType = 1621 + ACP_setRentalSignal ACP_CommandType = 1700 + ACP_blackchannelDownload ACP_CommandType = 1800 + ACP_blackchannelUpload ACP_CommandType = 1810 + ACP_configurecsm ACP_CommandType = 1900 + ACP_updatevehicleinfo ACP_CommandType = 1901 + ACP_relaymessagetocsm ACP_CommandType = 1902 + ACP_relayrentalrequesttocsb ACP_CommandType = 1903 + ACP_rtmDownloadConfig ACP_CommandType = 2400 + ACP_rtmReadConfig ACP_CommandType = 2410 + ACP_avpActivate ACP_CommandType = 2700 + ACP_chargecontrolconfigure ACP_CommandType = 2800 +) + +// Enum value maps for ACP_CommandType. +var ( + ACP_CommandType_name = map[int32]string{ + 0: "UNKNOWNCOMMANDTYPE", + 100: "DOORSLOCK", + 110: "DOORSUNLOCK", + 115: "TRUNKUNLOCK", + 116: "FUELFLAPUNLOCK", + 117: "CHARGEFLAPUNLOCK", + 118: "CHARGECOUPLERUNLOCK", + 120: "DOORSPREPARERENTAL", + 130: "DOORSSECUREVEHICLE", + 300: "AUXHEATSTART", + 310: "AUXHEATSTOP", + 320: "AUXHEATCONFIGURE", + 350: "TEMPERATURECONFIGURE", + 360: "WEEKPROFILECONFIGURE", + 370: "WEEKPROFILEV2CONFIGURE", + 400: "PRECONDSTART", + 410: "PRECONDSTOP", + 420: "PRECONDCONFIGURE", + 425: "PRECONDCONFIGURESEATS", + 430: "CHARGEOPTCONFIGURE", + 440: "CHARGEOPTSTART", + 450: "CHARGEOPTSTOP", + 500: "FEEDPOI", + 510: "FEEDFREETEXT", + 550: "ENGINESTART", + 560: "ENGINESTOP", + 570: "ENGINEAVPSTART", + 600: "TCUWAKEUP", + 610: "TCUSWUPDATE", + 620: "TCURCSRESET", + 630: "TCUINTERROGATION", + 710: "SPEEDALERTSTART", + 720: "SPEEDALERTSTOP", + 750: "FLSHSTART", + 760: "FLSHSTOP", + 770: "SIGPOSSTART", + 800: "CONTRACTCONFIGURE", + 810: "CONTRACTREMOVE", + 820: "ROOTCONFIGURE", + 830: "ROOTREMOVE", + 850: "TRIPCOMP", + 930: "MAINTENANCECONFIGURE", + 931: "MAINTENANCECOMPUTEROFFSET", + 935: "SHORTTESTEXECUTE", + 940: "SERVICEACTIVATIONCONFIGURE", + 945: "DC2SERVICEACTIVATIONCONFIGURE", + 950: "DC2RAWDOWNLOAD", + 955: "APPLICATIONCONFIGURATION", + 960: "DC2STARTTRACKING", + 990: "ATPSEQUENCE", + 1000: "THEFTALARMTOGGLEINTERIOR", + 1010: "THEFTALARMTOGGLETOW", + 1020: "THEFTALARMSELECTINTERIORTOW", + 1030: "THEFTALARMDESELECTINTERIORTOW", + 1040: "THEFTALARMSTOP", + 1100: "WINDOWOPEN", + 1110: "WINDOWCLOSE", + 1120: "WINDOWVENTILATE", + 1121: "WINDOWMOVE", + 1130: "ROOFOPEN", + 1140: "ROOFCLOSE", + 1150: "ROOFLIFT", + 1151: "ROOFMOVE", + 2000: "BATTERYMAXSOC", + 2010: "BATTERYCHARGEPROGRAM", + 2020: "CHARGEPROGRAMCONFIGURE", + 2100: "ONBOARDFENCESCREATE", + 2110: "ONBOARDFENCESUPDATE", + 2120: "ONBOARDFENCESDELETE", + 2200: "SPEEDFENCESCREATE", + 2210: "SPEEDFENCESUPDATE", + 2220: "SPEEDFENCESDELETE", + 2300: "CHARGINGTARIFFSCREATE", + 2310: "CHARGINGTARIFFSUPDATE", + 2320: "CHARGINGTARIFFSDELETE", + 2500: "THEFTALARMSTART", + 2510: "THEFTALARMSELECTINTERIOR", + 2520: "THEFTALARMDESELECTINTERIOR", + 2530: "THEFTALARMSELECTTOW", + 2540: "THEFTALARMDESELECTTOW", + 2550: "THEFTALARMSELECTDAMAGEDETECTION", + 2560: "THEFTALARMDESELECTDAMAGEDETECTION", + 2570: "THEFTALARMCONFIRMDAMAGEDETECTION", + 2600: "MECALL2START", + 1200: "UDXTRIGGERSYNCHRONIZATION", + 1210: "UDXACTIVEUSERPROFILE", + 1220: "UDXRESETUSERDATA", + 1230: "USERPROFSYNCH", + 1240: "USERDATARESET", + 1250: "PROFACTIVATIONSNAP", + 1255: "PROFACTIVATIONDIRECT", + 1260: "SOFTWAREUPDATE", + 1270: "PUSHNOTIFICATION", + 1310: "MECALLCOMMAND", + 1400: "PRECONDSTARTRCS", + 1410: "PRECONDSTOPRCS", + 1420: "PRECONDCONFIGURERCS", + 1430: "TCUCONFIGURE", + 1431: "EDISONSERVICEACTIVATION", + 1432: "TESTSEQUENCE", + 1433: "PRECONDCONFIGURERACP", + 1434: "CHARGEOPTCONFIGURERACP", + 1435: "TARIFFTABLEDOWNLOAD", + 1436: "PRECONDSTARTRACP", + 1437: "PRECONDSTOPRACP", + 1438: "ROOTCERTIFICATEREMOVE", + 1439: "ONREQUESTPROBEUPLOAD", + 1440: "ROOTCERTIFICATEDOWNLOAD", + 1441: "CONTRACTCERTIFICATEREMOVE", + 1442: "CONTRACTCERTIFICATEDOWNLOAD", + 1443: "PROBECONFIGURATIONUPDATE", + 1500: "RDIAGDELETEECU", + 1501: "RDIAGSTATUSREPORT", + 1502: "RDIAGEXECUTION", + 1600: "IMMOBILIZERCHALLENGE", + 1610: "IMMOBILIZERSEARCHKEYLINE", + 1620: "IMMOBILIZERRELEASEKEYLINE", + 1630: "IMMOBILIZERLOCKKEYLINE", + 1631: "IMMOBILIZERLOCKVEHICLE", + 1621: "IMMOBILIZERRELEASEVEHICLE", + 1700: "SETRENTALSIGNAL", + 1800: "BLACKCHANNELDOWNLOAD", + 1810: "BLACKCHANNELUPLOAD", + 1900: "CONFIGURECSM", + 1901: "UPDATEVEHICLEINFO", + 1902: "RELAYMESSAGETOCSM", + 1903: "RELAYRENTALREQUESTTOCSB", + 2400: "RTMDOWNLOADCONFIG", + 2410: "RTMREADCONFIG", + 2700: "AVPACTIVATE", + 2800: "CHARGECONTROLCONFIGURE", + // Duplicate value: 0: "unknownCommandType", + // Duplicate value: 100: "doorsLock", + // Duplicate value: 110: "doorsUnlock", + // Duplicate value: 115: "trunkUnlock", + // Duplicate value: 116: "fuelflapUnlock", + // Duplicate value: 117: "chargeflapUnlock", + // Duplicate value: 118: "chargecouplerUnlock", + // Duplicate value: 120: "doorsPrepareRental", + // Duplicate value: 130: "doorsSecureVehicle", + // Duplicate value: 300: "auxheatStart", + // Duplicate value: 310: "auxheatStop", + // Duplicate value: 320: "auxheatConfigure", + // Duplicate value: 350: "temperatureConfigure", + // Duplicate value: 360: "weekprofileConfigure", + // Duplicate value: 370: "weekprofileV2Configure", + // Duplicate value: 400: "precondStart", + // Duplicate value: 410: "precondStop", + // Duplicate value: 420: "precondConfigure", + // Duplicate value: 425: "precondConfigureSeats", + // Duplicate value: 430: "chargeoptConfigure", + // Duplicate value: 440: "chargeoptStart", + // Duplicate value: 450: "chargeoptStop", + // Duplicate value: 500: "feedPoi", + // Duplicate value: 510: "feedFreetext", + // Duplicate value: 550: "engineStart", + // Duplicate value: 560: "engineStop", + // Duplicate value: 570: "engineAvpstart", + // Duplicate value: 600: "tcuWakeup", + // Duplicate value: 610: "tcuSwUpdate", + // Duplicate value: 620: "tcuRcsReset", + // Duplicate value: 630: "tcuInterrogation", + // Duplicate value: 710: "speedalertStart", + // Duplicate value: 720: "speedalertStop", + // Duplicate value: 750: "flshStart", + // Duplicate value: 760: "flshStop", + // Duplicate value: 770: "sigposStart", + // Duplicate value: 800: "contractConfigure", + // Duplicate value: 810: "contractRemove", + // Duplicate value: 820: "rootConfigure", + // Duplicate value: 830: "rootRemove", + // Duplicate value: 850: "tripcomp", + // Duplicate value: 930: "maintenanceConfigure", + // Duplicate value: 931: "maintenanceComputerOffset", + // Duplicate value: 935: "shorttestExecute", + // Duplicate value: 940: "serviceactivationConfigure", + // Duplicate value: 945: "dc2ServiceactivationConfigure", + // Duplicate value: 950: "dc2RawDownload", + // Duplicate value: 955: "applicationConfiguration", + // Duplicate value: 960: "dc2StartTracking", + // Duplicate value: 990: "atpSequence", + // Duplicate value: 1000: "theftalarmToggleInterior", + // Duplicate value: 1010: "theftalarmToggleTow", + // Duplicate value: 1020: "theftalarmSelectInteriorTow", + // Duplicate value: 1030: "theftalarmDeselectInteriorTow", + // Duplicate value: 1040: "theftalarmStop", + // Duplicate value: 1100: "windowOpen", + // Duplicate value: 1110: "windowClose", + // Duplicate value: 1120: "windowVentilate", + // Duplicate value: 1121: "windowMove", + // Duplicate value: 1130: "roofOpen", + // Duplicate value: 1140: "roofClose", + // Duplicate value: 1150: "roofLift", + // Duplicate value: 1151: "roofMove", + // Duplicate value: 2000: "batteryMaxsoc", + // Duplicate value: 2010: "batteryChargeprogram", + // Duplicate value: 2020: "chargeprogramconfigure", + // Duplicate value: 2100: "onboardfencesCreate", + // Duplicate value: 2110: "onboardfencesUpdate", + // Duplicate value: 2120: "onboardfencesDelete", + // Duplicate value: 2200: "speedfencesCreate", + // Duplicate value: 2210: "speedfencesUpdate", + // Duplicate value: 2220: "speedfencesDelete", + // Duplicate value: 2300: "chargingtariffsCreate", + // Duplicate value: 2310: "chargingtariffsUpdate", + // Duplicate value: 2320: "chargingtariffsDelete", + // Duplicate value: 2500: "theftalarmstart", + // Duplicate value: 2510: "theftalarmselectinterior", + // Duplicate value: 2520: "theftalarmdeselectinterior", + // Duplicate value: 2530: "theftalarmselecttow", + // Duplicate value: 2540: "theftalarmdeselecttow", + // Duplicate value: 2550: "theftalarmselectdamagedetection", + // Duplicate value: 2560: "theftalarmdeselectdamagedetection", + // Duplicate value: 2570: "theftalarmconfirmdamagedetection", + // Duplicate value: 2600: "mecall2start", + // Duplicate value: 1200: "udxTriggerSynchronization", + // Duplicate value: 1210: "udxActiveUserProfile", + // Duplicate value: 1220: "udxResetUserData", + // Duplicate value: 1230: "userProfSynch", + // Duplicate value: 1240: "userDataReset", + // Duplicate value: 1250: "profActivationSnap", + // Duplicate value: 1255: "profActivationDirect", + // Duplicate value: 1260: "softwareUpdate", + // Duplicate value: 1270: "pushNotification", + // Duplicate value: 1310: "mecallcommand", + // Duplicate value: 1400: "precondStartRcs", + // Duplicate value: 1410: "precondStopRcs", + // Duplicate value: 1420: "precondConfigureRcs", + // Duplicate value: 1430: "tcuConfigure", + // Duplicate value: 1431: "edisonServiceActivation", + // Duplicate value: 1432: "testSequence", + // Duplicate value: 1433: "precondConfigureRacp", + // Duplicate value: 1434: "chargeoptConfigureRacp", + // Duplicate value: 1435: "tariffTableDownload", + // Duplicate value: 1436: "precondStartRacp", + // Duplicate value: 1437: "precondStopRacp", + // Duplicate value: 1438: "rootCertificateRemove", + // Duplicate value: 1439: "onRequestProbeUpload", + // Duplicate value: 1440: "rootCertificateDownload", + // Duplicate value: 1441: "contractCertificateRemove", + // Duplicate value: 1442: "contractCertificateDownload", + // Duplicate value: 1443: "probeConfigurationUpdate", + // Duplicate value: 1500: "rdiagDeleteEcu", + // Duplicate value: 1501: "rdiagStatusReport", + // Duplicate value: 1502: "rdiagExecution", + // Duplicate value: 1600: "immobilizerChallenge", + // Duplicate value: 1610: "immobilizerSearchKeyline", + // Duplicate value: 1620: "immobilizerReleaseKeyline", + // Duplicate value: 1630: "immobilizerLockKeyline", + // Duplicate value: 1631: "immobilizerLockVehicle", + // Duplicate value: 1621: "immobilizerReleaseVehicle", + // Duplicate value: 1700: "setRentalSignal", + // Duplicate value: 1800: "blackchannelDownload", + // Duplicate value: 1810: "blackchannelUpload", + // Duplicate value: 1900: "configurecsm", + // Duplicate value: 1901: "updatevehicleinfo", + // Duplicate value: 1902: "relaymessagetocsm", + // Duplicate value: 1903: "relayrentalrequesttocsb", + // Duplicate value: 2400: "rtmDownloadConfig", + // Duplicate value: 2410: "rtmReadConfig", + // Duplicate value: 2700: "avpActivate", + // Duplicate value: 2800: "chargecontrolconfigure", + } + ACP_CommandType_value = map[string]int32{ + "UNKNOWNCOMMANDTYPE": 0, + "DOORSLOCK": 100, + "DOORSUNLOCK": 110, + "TRUNKUNLOCK": 115, + "FUELFLAPUNLOCK": 116, + "CHARGEFLAPUNLOCK": 117, + "CHARGECOUPLERUNLOCK": 118, + "DOORSPREPARERENTAL": 120, + "DOORSSECUREVEHICLE": 130, + "AUXHEATSTART": 300, + "AUXHEATSTOP": 310, + "AUXHEATCONFIGURE": 320, + "TEMPERATURECONFIGURE": 350, + "WEEKPROFILECONFIGURE": 360, + "WEEKPROFILEV2CONFIGURE": 370, + "PRECONDSTART": 400, + "PRECONDSTOP": 410, + "PRECONDCONFIGURE": 420, + "PRECONDCONFIGURESEATS": 425, + "CHARGEOPTCONFIGURE": 430, + "CHARGEOPTSTART": 440, + "CHARGEOPTSTOP": 450, + "FEEDPOI": 500, + "FEEDFREETEXT": 510, + "ENGINESTART": 550, + "ENGINESTOP": 560, + "ENGINEAVPSTART": 570, + "TCUWAKEUP": 600, + "TCUSWUPDATE": 610, + "TCURCSRESET": 620, + "TCUINTERROGATION": 630, + "SPEEDALERTSTART": 710, + "SPEEDALERTSTOP": 720, + "FLSHSTART": 750, + "FLSHSTOP": 760, + "SIGPOSSTART": 770, + "CONTRACTCONFIGURE": 800, + "CONTRACTREMOVE": 810, + "ROOTCONFIGURE": 820, + "ROOTREMOVE": 830, + "TRIPCOMP": 850, + "MAINTENANCECONFIGURE": 930, + "MAINTENANCECOMPUTEROFFSET": 931, + "SHORTTESTEXECUTE": 935, + "SERVICEACTIVATIONCONFIGURE": 940, + "DC2SERVICEACTIVATIONCONFIGURE": 945, + "DC2RAWDOWNLOAD": 950, + "APPLICATIONCONFIGURATION": 955, + "DC2STARTTRACKING": 960, + "ATPSEQUENCE": 990, + "THEFTALARMTOGGLEINTERIOR": 1000, + "THEFTALARMTOGGLETOW": 1010, + "THEFTALARMSELECTINTERIORTOW": 1020, + "THEFTALARMDESELECTINTERIORTOW": 1030, + "THEFTALARMSTOP": 1040, + "WINDOWOPEN": 1100, + "WINDOWCLOSE": 1110, + "WINDOWVENTILATE": 1120, + "WINDOWMOVE": 1121, + "ROOFOPEN": 1130, + "ROOFCLOSE": 1140, + "ROOFLIFT": 1150, + "ROOFMOVE": 1151, + "BATTERYMAXSOC": 2000, + "BATTERYCHARGEPROGRAM": 2010, + "CHARGEPROGRAMCONFIGURE": 2020, + "ONBOARDFENCESCREATE": 2100, + "ONBOARDFENCESUPDATE": 2110, + "ONBOARDFENCESDELETE": 2120, + "SPEEDFENCESCREATE": 2200, + "SPEEDFENCESUPDATE": 2210, + "SPEEDFENCESDELETE": 2220, + "CHARGINGTARIFFSCREATE": 2300, + "CHARGINGTARIFFSUPDATE": 2310, + "CHARGINGTARIFFSDELETE": 2320, + "THEFTALARMSTART": 2500, + "THEFTALARMSELECTINTERIOR": 2510, + "THEFTALARMDESELECTINTERIOR": 2520, + "THEFTALARMSELECTTOW": 2530, + "THEFTALARMDESELECTTOW": 2540, + "THEFTALARMSELECTDAMAGEDETECTION": 2550, + "THEFTALARMDESELECTDAMAGEDETECTION": 2560, + "THEFTALARMCONFIRMDAMAGEDETECTION": 2570, + "MECALL2START": 2600, + "UDXTRIGGERSYNCHRONIZATION": 1200, + "UDXACTIVEUSERPROFILE": 1210, + "UDXRESETUSERDATA": 1220, + "USERPROFSYNCH": 1230, + "USERDATARESET": 1240, + "PROFACTIVATIONSNAP": 1250, + "PROFACTIVATIONDIRECT": 1255, + "SOFTWAREUPDATE": 1260, + "PUSHNOTIFICATION": 1270, + "MECALLCOMMAND": 1310, + "PRECONDSTARTRCS": 1400, + "PRECONDSTOPRCS": 1410, + "PRECONDCONFIGURERCS": 1420, + "TCUCONFIGURE": 1430, + "EDISONSERVICEACTIVATION": 1431, + "TESTSEQUENCE": 1432, + "PRECONDCONFIGURERACP": 1433, + "CHARGEOPTCONFIGURERACP": 1434, + "TARIFFTABLEDOWNLOAD": 1435, + "PRECONDSTARTRACP": 1436, + "PRECONDSTOPRACP": 1437, + "ROOTCERTIFICATEREMOVE": 1438, + "ONREQUESTPROBEUPLOAD": 1439, + "ROOTCERTIFICATEDOWNLOAD": 1440, + "CONTRACTCERTIFICATEREMOVE": 1441, + "CONTRACTCERTIFICATEDOWNLOAD": 1442, + "PROBECONFIGURATIONUPDATE": 1443, + "RDIAGDELETEECU": 1500, + "RDIAGSTATUSREPORT": 1501, + "RDIAGEXECUTION": 1502, + "IMMOBILIZERCHALLENGE": 1600, + "IMMOBILIZERSEARCHKEYLINE": 1610, + "IMMOBILIZERRELEASEKEYLINE": 1620, + "IMMOBILIZERLOCKKEYLINE": 1630, + "IMMOBILIZERLOCKVEHICLE": 1631, + "IMMOBILIZERRELEASEVEHICLE": 1621, + "SETRENTALSIGNAL": 1700, + "BLACKCHANNELDOWNLOAD": 1800, + "BLACKCHANNELUPLOAD": 1810, + "CONFIGURECSM": 1900, + "UPDATEVEHICLEINFO": 1901, + "RELAYMESSAGETOCSM": 1902, + "RELAYRENTALREQUESTTOCSB": 1903, + "RTMDOWNLOADCONFIG": 2400, + "RTMREADCONFIG": 2410, + "AVPACTIVATE": 2700, + "CHARGECONTROLCONFIGURE": 2800, + "unknownCommandType": 0, + "doorsLock": 100, + "doorsUnlock": 110, + "trunkUnlock": 115, + "fuelflapUnlock": 116, + "chargeflapUnlock": 117, + "chargecouplerUnlock": 118, + "doorsPrepareRental": 120, + "doorsSecureVehicle": 130, + "auxheatStart": 300, + "auxheatStop": 310, + "auxheatConfigure": 320, + "temperatureConfigure": 350, + "weekprofileConfigure": 360, + "weekprofileV2Configure": 370, + "precondStart": 400, + "precondStop": 410, + "precondConfigure": 420, + "precondConfigureSeats": 425, + "chargeoptConfigure": 430, + "chargeoptStart": 440, + "chargeoptStop": 450, + "feedPoi": 500, + "feedFreetext": 510, + "engineStart": 550, + "engineStop": 560, + "engineAvpstart": 570, + "tcuWakeup": 600, + "tcuSwUpdate": 610, + "tcuRcsReset": 620, + "tcuInterrogation": 630, + "speedalertStart": 710, + "speedalertStop": 720, + "flshStart": 750, + "flshStop": 760, + "sigposStart": 770, + "contractConfigure": 800, + "contractRemove": 810, + "rootConfigure": 820, + "rootRemove": 830, + "tripcomp": 850, + "maintenanceConfigure": 930, + "maintenanceComputerOffset": 931, + "shorttestExecute": 935, + "serviceactivationConfigure": 940, + "dc2ServiceactivationConfigure": 945, + "dc2RawDownload": 950, + "applicationConfiguration": 955, + "dc2StartTracking": 960, + "atpSequence": 990, + "theftalarmToggleInterior": 1000, + "theftalarmToggleTow": 1010, + "theftalarmSelectInteriorTow": 1020, + "theftalarmDeselectInteriorTow": 1030, + "theftalarmStop": 1040, + "windowOpen": 1100, + "windowClose": 1110, + "windowVentilate": 1120, + "windowMove": 1121, + "roofOpen": 1130, + "roofClose": 1140, + "roofLift": 1150, + "roofMove": 1151, + "batteryMaxsoc": 2000, + "batteryChargeprogram": 2010, + "chargeprogramconfigure": 2020, + "onboardfencesCreate": 2100, + "onboardfencesUpdate": 2110, + "onboardfencesDelete": 2120, + "speedfencesCreate": 2200, + "speedfencesUpdate": 2210, + "speedfencesDelete": 2220, + "chargingtariffsCreate": 2300, + "chargingtariffsUpdate": 2310, + "chargingtariffsDelete": 2320, + "theftalarmstart": 2500, + "theftalarmselectinterior": 2510, + "theftalarmdeselectinterior": 2520, + "theftalarmselecttow": 2530, + "theftalarmdeselecttow": 2540, + "theftalarmselectdamagedetection": 2550, + "theftalarmdeselectdamagedetection": 2560, + "theftalarmconfirmdamagedetection": 2570, + "mecall2start": 2600, + "udxTriggerSynchronization": 1200, + "udxActiveUserProfile": 1210, + "udxResetUserData": 1220, + "userProfSynch": 1230, + "userDataReset": 1240, + "profActivationSnap": 1250, + "profActivationDirect": 1255, + "softwareUpdate": 1260, + "pushNotification": 1270, + "mecallcommand": 1310, + "precondStartRcs": 1400, + "precondStopRcs": 1410, + "precondConfigureRcs": 1420, + "tcuConfigure": 1430, + "edisonServiceActivation": 1431, + "testSequence": 1432, + "precondConfigureRacp": 1433, + "chargeoptConfigureRacp": 1434, + "tariffTableDownload": 1435, + "precondStartRacp": 1436, + "precondStopRacp": 1437, + "rootCertificateRemove": 1438, + "onRequestProbeUpload": 1439, + "rootCertificateDownload": 1440, + "contractCertificateRemove": 1441, + "contractCertificateDownload": 1442, + "probeConfigurationUpdate": 1443, + "rdiagDeleteEcu": 1500, + "rdiagStatusReport": 1501, + "rdiagExecution": 1502, + "immobilizerChallenge": 1600, + "immobilizerSearchKeyline": 1610, + "immobilizerReleaseKeyline": 1620, + "immobilizerLockKeyline": 1630, + "immobilizerLockVehicle": 1631, + "immobilizerReleaseVehicle": 1621, + "setRentalSignal": 1700, + "blackchannelDownload": 1800, + "blackchannelUpload": 1810, + "configurecsm": 1900, + "updatevehicleinfo": 1901, + "relaymessagetocsm": 1902, + "relayrentalrequesttocsb": 1903, + "rtmDownloadConfig": 2400, + "rtmReadConfig": 2410, + "avpActivate": 2700, + "chargecontrolconfigure": 2800, + } +) + +func (x ACP_CommandType) Enum() *ACP_CommandType { + p := new(ACP_CommandType) + *p = x + return p +} + +func (x ACP_CommandType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ACP_CommandType) Descriptor() protoreflect.EnumDescriptor { + return file_acp_proto_enumTypes[5].Descriptor() +} + +func (ACP_CommandType) Type() protoreflect.EnumType { + return &file_acp_proto_enumTypes[5] +} + +func (x ACP_CommandType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ACP_CommandType.Descriptor instead. +func (ACP_CommandType) EnumDescriptor() ([]byte, []int) { + return file_acp_proto_rawDescGZIP(), []int{2, 0} +} + +type VVA struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *VVA) Reset() { + *x = VVA{} + if protoimpl.UnsafeEnabled { + mi := &file_acp_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VVA) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VVA) ProtoMessage() {} + +func (x *VVA) ProtoReflect() protoreflect.Message { + mi := &file_acp_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VVA.ProtoReflect.Descriptor instead. +func (*VVA) Descriptor() ([]byte, []int) { + return file_acp_proto_rawDescGZIP(), []int{0} +} + +type VehicleAPI struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *VehicleAPI) Reset() { + *x = VehicleAPI{} + if protoimpl.UnsafeEnabled { + mi := &file_acp_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VehicleAPI) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VehicleAPI) ProtoMessage() {} + +func (x *VehicleAPI) ProtoReflect() protoreflect.Message { + mi := &file_acp_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VehicleAPI.ProtoReflect.Descriptor instead. +func (*VehicleAPI) Descriptor() ([]byte, []int) { + return file_acp_proto_rawDescGZIP(), []int{1} +} + +type ACP struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ACP) Reset() { + *x = ACP{} + if protoimpl.UnsafeEnabled { + mi := &file_acp_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ACP) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ACP) ProtoMessage() {} + +func (x *ACP) ProtoReflect() protoreflect.Message { + mi := &file_acp_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ACP.ProtoReflect.Descriptor instead. +func (*ACP) Descriptor() ([]byte, []int) { + return file_acp_proto_rawDescGZIP(), []int{2} +} + +var File_acp_proto protoreflect.FileDescriptor + +var file_acp_proto_rawDesc = []byte{ + 0x0a, 0x09, 0x61, 0x63, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x0a, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa5, + 0x02, 0x0a, 0x03, 0x56, 0x56, 0x41, 0x22, 0x76, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, + 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x41, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, + 0x00, 0x12, 0x0c, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0xf2, 0x07, 0x12, + 0x0d, 0x0a, 0x08, 0x45, 0x4e, 0x51, 0x55, 0x45, 0x55, 0x45, 0x44, 0x10, 0xf8, 0x07, 0x12, 0x0f, + 0x0a, 0x0a, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0xf4, 0x07, 0x12, + 0x0e, 0x0a, 0x09, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0xf9, 0x07, 0x12, + 0x0d, 0x0a, 0x08, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0xfa, 0x07, 0x22, 0xa5, + 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x4e, 0x4b, 0x4e, 0x57, 0x4f, 0x4e, 0x5f, 0x43, + 0x4f, 0x4d, 0x4d, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0xe8, 0x07, 0x12, 0x0d, 0x0a, + 0x08, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x45, 0x44, 0x10, 0xe9, 0x07, 0x12, 0x0d, 0x0a, 0x08, + 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0xea, 0x07, 0x12, 0x0e, 0x0a, 0x09, 0x54, + 0x45, 0x52, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x45, 0x10, 0xeb, 0x07, 0x12, 0x0c, 0x0a, 0x07, 0x53, + 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0xf3, 0x07, 0x12, 0x0b, 0x0a, 0x06, 0x46, 0x41, 0x49, + 0x4c, 0x45, 0x44, 0x10, 0xf5, 0x07, 0x12, 0x10, 0x0a, 0x0b, 0x4f, 0x56, 0x45, 0x52, 0x57, 0x52, + 0x49, 0x54, 0x54, 0x45, 0x4e, 0x10, 0xf6, 0x07, 0x12, 0x0c, 0x0a, 0x07, 0x54, 0x49, 0x4d, 0x45, + 0x4f, 0x55, 0x54, 0x10, 0xf7, 0x07, 0x22, 0x8f, 0x0b, 0x0a, 0x0a, 0x56, 0x65, 0x68, 0x69, 0x63, + 0x6c, 0x65, 0x41, 0x50, 0x49, 0x22, 0x7e, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x41, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x00, + 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x4e, 0x51, 0x55, 0x45, 0x55, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, + 0x0a, 0x0a, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0b, + 0x0a, 0x07, 0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x46, + 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, + 0x4c, 0x45, 0x44, 0x10, 0x06, 0x22, 0x53, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0d, 0x0a, 0x09, 0x56, 0x41, 0x4c, 0x55, + 0x45, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x56, 0x41, 0x4c, 0x55, 0x45, + 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, + 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x4f, 0x54, 0x5f, 0x41, + 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x04, 0x22, 0xab, 0x09, 0x0a, 0x09, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x4e, 0x4b, 0x4e, + 0x4f, 0x57, 0x4e, 0x43, 0x4f, 0x4d, 0x4d, 0x41, 0x4e, 0x44, 0x51, 0x55, 0x45, 0x55, 0x45, 0x54, + 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x4f, 0x4f, 0x52, 0x53, 0x10, 0x0a, + 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x55, 0x58, 0x48, 0x45, 0x41, 0x54, 0x10, 0x0b, 0x12, 0x0b, 0x0a, + 0x07, 0x50, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x10, 0x0c, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x48, + 0x41, 0x52, 0x47, 0x45, 0x4f, 0x50, 0x54, 0x10, 0x0d, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x41, 0x49, + 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x0e, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x43, + 0x55, 0x10, 0x0f, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x45, 0x45, 0x44, 0x10, 0x10, 0x12, 0x15, 0x0a, + 0x11, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x11, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x54, 0x50, 0x10, 0x12, 0x12, 0x0e, 0x0a, + 0x0a, 0x41, 0x53, 0x53, 0x49, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x13, 0x12, 0x08, 0x0a, + 0x04, 0x52, 0x41, 0x43, 0x50, 0x10, 0x14, 0x12, 0x0f, 0x0a, 0x0b, 0x57, 0x45, 0x45, 0x4b, 0x50, + 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x15, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x45, 0x4d, 0x4f, + 0x54, 0x45, 0x44, 0x49, 0x41, 0x47, 0x4e, 0x4f, 0x53, 0x49, 0x53, 0x10, 0x16, 0x12, 0x08, 0x0a, + 0x04, 0x46, 0x4c, 0x53, 0x48, 0x10, 0x17, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x45, 0x4d, 0x50, 0x45, + 0x52, 0x41, 0x54, 0x55, 0x52, 0x45, 0x10, 0x18, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x52, 0x49, 0x50, + 0x43, 0x4f, 0x4d, 0x50, 0x10, 0x19, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, + 0x10, 0x1a, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x48, 0x45, 0x46, 0x54, 0x41, 0x4c, 0x41, 0x52, 0x4d, + 0x10, 0x1b, 0x12, 0x0a, 0x0a, 0x06, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x1c, 0x12, 0x0c, + 0x0a, 0x08, 0x48, 0x45, 0x41, 0x44, 0x55, 0x4e, 0x49, 0x54, 0x10, 0x1d, 0x12, 0x0a, 0x0a, 0x06, + 0x4d, 0x45, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x1f, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4d, 0x4d, 0x4f, + 0x42, 0x49, 0x4c, 0x49, 0x5a, 0x45, 0x52, 0x10, 0x20, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x45, 0x4e, + 0x54, 0x41, 0x4c, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x10, 0x21, 0x12, 0x07, 0x0a, 0x03, 0x42, + 0x43, 0x46, 0x10, 0x22, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x4c, 0x55, 0x47, 0x41, 0x4e, 0x44, 0x43, + 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, 0x23, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x41, 0x52, 0x53, 0x48, + 0x41, 0x52, 0x49, 0x4e, 0x47, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x24, 0x12, 0x0b, 0x0a, + 0x07, 0x42, 0x41, 0x54, 0x54, 0x45, 0x52, 0x59, 0x10, 0x25, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x4e, + 0x42, 0x4f, 0x41, 0x52, 0x44, 0x46, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x10, 0x26, 0x12, 0x0f, 0x0a, + 0x0b, 0x53, 0x50, 0x45, 0x45, 0x44, 0x46, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x10, 0x27, 0x12, 0x13, + 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x49, 0x4e, 0x47, 0x54, 0x41, 0x52, 0x49, 0x46, 0x46, + 0x53, 0x10, 0x28, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x54, 0x4d, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, + 0x10, 0x29, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, + 0x45, 0x43, 0x4f, 0x4d, 0x50, 0x55, 0x54, 0x45, 0x52, 0x10, 0x2a, 0x12, 0x0b, 0x0a, 0x07, 0x4d, + 0x45, 0x43, 0x41, 0x4c, 0x4c, 0x32, 0x10, 0x2b, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x55, 0x54, 0x4f, + 0x4d, 0x41, 0x54, 0x45, 0x44, 0x56, 0x41, 0x4c, 0x45, 0x54, 0x50, 0x41, 0x52, 0x4b, 0x49, 0x4e, + 0x47, 0x10, 0x2c, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x43, 0x4f, 0x4e, + 0x54, 0x52, 0x4f, 0x4c, 0x10, 0x2d, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x50, 0x45, 0x45, 0x44, 0x41, + 0x4c, 0x45, 0x52, 0x54, 0x10, 0x2e, 0x12, 0x1b, 0x0a, 0x17, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x71, 0x75, 0x65, 0x75, 0x65, 0x74, 0x79, 0x70, + 0x65, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x64, 0x6f, 0x6f, 0x72, 0x73, 0x10, 0x0a, 0x12, 0x0b, + 0x0a, 0x07, 0x61, 0x75, 0x78, 0x68, 0x65, 0x61, 0x74, 0x10, 0x0b, 0x12, 0x0b, 0x0a, 0x07, 0x70, + 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x10, 0x0c, 0x12, 0x0d, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x6f, 0x70, 0x74, 0x10, 0x0d, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x74, + 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x0e, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x63, 0x75, 0x10, + 0x0f, 0x12, 0x08, 0x0a, 0x04, 0x66, 0x65, 0x65, 0x64, 0x10, 0x10, 0x12, 0x15, 0x0a, 0x11, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x10, 0x11, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x74, 0x70, 0x10, 0x12, 0x12, 0x0e, 0x0a, 0x0a, 0x61, + 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x13, 0x12, 0x08, 0x0a, 0x04, 0x72, + 0x61, 0x63, 0x70, 0x10, 0x14, 0x12, 0x0f, 0x0a, 0x0b, 0x77, 0x65, 0x65, 0x6b, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x10, 0x15, 0x12, 0x13, 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x69, 0x73, 0x10, 0x16, 0x12, 0x08, 0x0a, 0x04, 0x66, + 0x6c, 0x73, 0x68, 0x10, 0x17, 0x12, 0x0f, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x10, 0x18, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x69, 0x70, 0x63, 0x6f, + 0x6d, 0x70, 0x10, 0x19, 0x12, 0x0a, 0x0a, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x10, 0x1a, + 0x12, 0x0e, 0x0a, 0x0a, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x10, 0x1b, + 0x12, 0x0a, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x10, 0x1c, 0x12, 0x0c, 0x0a, 0x08, + 0x68, 0x65, 0x61, 0x64, 0x75, 0x6e, 0x69, 0x74, 0x10, 0x1d, 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x65, + 0x63, 0x61, 0x6c, 0x6c, 0x10, 0x1f, 0x12, 0x0f, 0x0a, 0x0b, 0x69, 0x6d, 0x6d, 0x6f, 0x62, 0x69, + 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x10, 0x20, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x6e, 0x74, 0x61, + 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x10, 0x21, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x63, 0x66, + 0x10, 0x22, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x6c, 0x75, 0x67, 0x61, 0x6e, 0x64, 0x63, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x10, 0x23, 0x12, 0x14, 0x0a, 0x10, 0x63, 0x61, 0x72, 0x73, 0x68, 0x61, 0x72, + 0x69, 0x6e, 0x67, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x10, 0x24, 0x12, 0x0b, 0x0a, 0x07, 0x62, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x10, 0x25, 0x12, 0x11, 0x0a, 0x0d, 0x6f, 0x6e, 0x62, 0x6f, + 0x61, 0x72, 0x64, 0x66, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x10, 0x26, 0x12, 0x0f, 0x0a, 0x0b, 0x73, + 0x70, 0x65, 0x65, 0x64, 0x66, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x10, 0x27, 0x12, 0x13, 0x0a, 0x0f, + 0x63, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x74, 0x61, 0x72, 0x69, 0x66, 0x66, 0x73, 0x10, + 0x28, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x74, 0x6d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x29, + 0x12, 0x17, 0x0a, 0x13, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x63, + 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x10, 0x2a, 0x12, 0x0b, 0x0a, 0x07, 0x6d, 0x65, 0x63, + 0x61, 0x6c, 0x6c, 0x32, 0x10, 0x2b, 0x12, 0x19, 0x0a, 0x15, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x74, 0x65, 0x64, 0x76, 0x61, 0x6c, 0x65, 0x74, 0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x10, + 0x2c, 0x12, 0x11, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x10, 0x2d, 0x12, 0x0e, 0x0a, 0x0a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x61, 0x6c, 0x65, + 0x72, 0x74, 0x10, 0x2e, 0x1a, 0x02, 0x10, 0x01, 0x22, 0xa9, 0x31, 0x0a, 0x03, 0x41, 0x43, 0x50, + 0x22, 0xa1, 0x31, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x16, 0x0a, 0x12, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x43, 0x4f, 0x4d, 0x4d, 0x41, + 0x4e, 0x44, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x4f, 0x4f, 0x52, + 0x53, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x64, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x4f, 0x4f, 0x52, 0x53, + 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x52, 0x55, 0x4e, + 0x4b, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x55, 0x45, + 0x4c, 0x46, 0x4c, 0x41, 0x50, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x74, 0x12, 0x14, 0x0a, + 0x10, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x46, 0x4c, 0x41, 0x50, 0x55, 0x4e, 0x4c, 0x4f, 0x43, + 0x4b, 0x10, 0x75, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x43, 0x4f, 0x55, + 0x50, 0x4c, 0x45, 0x52, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x76, 0x12, 0x16, 0x0a, 0x12, + 0x44, 0x4f, 0x4f, 0x52, 0x53, 0x50, 0x52, 0x45, 0x50, 0x41, 0x52, 0x45, 0x52, 0x45, 0x4e, 0x54, + 0x41, 0x4c, 0x10, 0x78, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x4f, 0x52, 0x53, 0x53, 0x45, 0x43, + 0x55, 0x52, 0x45, 0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, 0x45, 0x10, 0x82, 0x01, 0x12, 0x11, 0x0a, + 0x0c, 0x41, 0x55, 0x58, 0x48, 0x45, 0x41, 0x54, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xac, 0x02, + 0x12, 0x10, 0x0a, 0x0b, 0x41, 0x55, 0x58, 0x48, 0x45, 0x41, 0x54, 0x53, 0x54, 0x4f, 0x50, 0x10, + 0xb6, 0x02, 0x12, 0x15, 0x0a, 0x10, 0x41, 0x55, 0x58, 0x48, 0x45, 0x41, 0x54, 0x43, 0x4f, 0x4e, + 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x10, 0xc0, 0x02, 0x12, 0x19, 0x0a, 0x14, 0x54, 0x45, 0x4d, + 0x50, 0x45, 0x52, 0x41, 0x54, 0x55, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, + 0x45, 0x10, 0xde, 0x02, 0x12, 0x19, 0x0a, 0x14, 0x57, 0x45, 0x45, 0x4b, 0x50, 0x52, 0x4f, 0x46, + 0x49, 0x4c, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x10, 0xe8, 0x02, 0x12, + 0x1b, 0x0a, 0x16, 0x57, 0x45, 0x45, 0x4b, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x56, 0x32, + 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x10, 0xf2, 0x02, 0x12, 0x11, 0x0a, 0x0c, + 0x50, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x90, 0x03, 0x12, + 0x10, 0x0a, 0x0b, 0x50, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x54, 0x4f, 0x50, 0x10, 0x9a, + 0x03, 0x12, 0x15, 0x0a, 0x10, 0x50, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x43, 0x4f, 0x4e, 0x46, + 0x49, 0x47, 0x55, 0x52, 0x45, 0x10, 0xa4, 0x03, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x52, 0x45, 0x43, + 0x4f, 0x4e, 0x44, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x53, 0x45, 0x41, 0x54, + 0x53, 0x10, 0xa9, 0x03, 0x12, 0x17, 0x0a, 0x12, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x4f, 0x50, + 0x54, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x10, 0xae, 0x03, 0x12, 0x13, 0x0a, + 0x0e, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x4f, 0x50, 0x54, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, + 0xb8, 0x03, 0x12, 0x12, 0x0a, 0x0d, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x4f, 0x50, 0x54, 0x53, + 0x54, 0x4f, 0x50, 0x10, 0xc2, 0x03, 0x12, 0x0c, 0x0a, 0x07, 0x46, 0x45, 0x45, 0x44, 0x50, 0x4f, + 0x49, 0x10, 0xf4, 0x03, 0x12, 0x11, 0x0a, 0x0c, 0x46, 0x45, 0x45, 0x44, 0x46, 0x52, 0x45, 0x45, + 0x54, 0x45, 0x58, 0x54, 0x10, 0xfe, 0x03, 0x12, 0x10, 0x0a, 0x0b, 0x45, 0x4e, 0x47, 0x49, 0x4e, + 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xa6, 0x04, 0x12, 0x0f, 0x0a, 0x0a, 0x45, 0x4e, 0x47, + 0x49, 0x4e, 0x45, 0x53, 0x54, 0x4f, 0x50, 0x10, 0xb0, 0x04, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x4e, + 0x47, 0x49, 0x4e, 0x45, 0x41, 0x56, 0x50, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xba, 0x04, 0x12, + 0x0e, 0x0a, 0x09, 0x54, 0x43, 0x55, 0x57, 0x41, 0x4b, 0x45, 0x55, 0x50, 0x10, 0xd8, 0x04, 0x12, + 0x10, 0x0a, 0x0b, 0x54, 0x43, 0x55, 0x53, 0x57, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0xe2, + 0x04, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x43, 0x55, 0x52, 0x43, 0x53, 0x52, 0x45, 0x53, 0x45, 0x54, + 0x10, 0xec, 0x04, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x43, 0x55, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x52, + 0x4f, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0xf6, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x50, + 0x45, 0x45, 0x44, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xc6, 0x05, + 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x50, 0x45, 0x45, 0x44, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x53, 0x54, + 0x4f, 0x50, 0x10, 0xd0, 0x05, 0x12, 0x0e, 0x0a, 0x09, 0x46, 0x4c, 0x53, 0x48, 0x53, 0x54, 0x41, + 0x52, 0x54, 0x10, 0xee, 0x05, 0x12, 0x0d, 0x0a, 0x08, 0x46, 0x4c, 0x53, 0x48, 0x53, 0x54, 0x4f, + 0x50, 0x10, 0xf8, 0x05, 0x12, 0x10, 0x0a, 0x0b, 0x53, 0x49, 0x47, 0x50, 0x4f, 0x53, 0x53, 0x54, + 0x41, 0x52, 0x54, 0x10, 0x82, 0x06, 0x12, 0x16, 0x0a, 0x11, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x41, + 0x43, 0x54, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x10, 0xa0, 0x06, 0x12, 0x13, + 0x0a, 0x0e, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x41, 0x43, 0x54, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, + 0x10, 0xaa, 0x06, 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x4f, 0x4f, 0x54, 0x43, 0x4f, 0x4e, 0x46, 0x49, + 0x47, 0x55, 0x52, 0x45, 0x10, 0xb4, 0x06, 0x12, 0x0f, 0x0a, 0x0a, 0x52, 0x4f, 0x4f, 0x54, 0x52, + 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0xbe, 0x06, 0x12, 0x0d, 0x0a, 0x08, 0x54, 0x52, 0x49, 0x50, + 0x43, 0x4f, 0x4d, 0x50, 0x10, 0xd2, 0x06, 0x12, 0x19, 0x0a, 0x14, 0x4d, 0x41, 0x49, 0x4e, 0x54, + 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x10, + 0xa2, 0x07, 0x12, 0x1e, 0x0a, 0x19, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, + 0x45, 0x43, 0x4f, 0x4d, 0x50, 0x55, 0x54, 0x45, 0x52, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x10, + 0xa3, 0x07, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x48, 0x4f, 0x52, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, + 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, 0x10, 0xa7, 0x07, 0x12, 0x1f, 0x0a, 0x1a, 0x53, 0x45, 0x52, + 0x56, 0x49, 0x43, 0x45, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x43, 0x4f, + 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x10, 0xac, 0x07, 0x12, 0x22, 0x0a, 0x1d, 0x44, 0x43, + 0x32, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x10, 0xb1, 0x07, 0x12, 0x13, + 0x0a, 0x0e, 0x44, 0x43, 0x32, 0x52, 0x41, 0x57, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, + 0x10, 0xb6, 0x07, 0x12, 0x1d, 0x0a, 0x18, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, + 0xbb, 0x07, 0x12, 0x15, 0x0a, 0x10, 0x44, 0x43, 0x32, 0x53, 0x54, 0x41, 0x52, 0x54, 0x54, 0x52, + 0x41, 0x43, 0x4b, 0x49, 0x4e, 0x47, 0x10, 0xc0, 0x07, 0x12, 0x10, 0x0a, 0x0b, 0x41, 0x54, 0x50, + 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x10, 0xde, 0x07, 0x12, 0x1d, 0x0a, 0x18, 0x54, + 0x48, 0x45, 0x46, 0x54, 0x41, 0x4c, 0x41, 0x52, 0x4d, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x49, + 0x4e, 0x54, 0x45, 0x52, 0x49, 0x4f, 0x52, 0x10, 0xe8, 0x07, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x48, + 0x45, 0x46, 0x54, 0x41, 0x4c, 0x41, 0x52, 0x4d, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x54, 0x4f, + 0x57, 0x10, 0xf2, 0x07, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x48, 0x45, 0x46, 0x54, 0x41, 0x4c, 0x41, + 0x52, 0x4d, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x49, 0x4f, 0x52, + 0x54, 0x4f, 0x57, 0x10, 0xfc, 0x07, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x48, 0x45, 0x46, 0x54, 0x41, + 0x4c, 0x41, 0x52, 0x4d, 0x44, 0x45, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4e, 0x54, 0x45, + 0x52, 0x49, 0x4f, 0x52, 0x54, 0x4f, 0x57, 0x10, 0x86, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x48, + 0x45, 0x46, 0x54, 0x41, 0x4c, 0x41, 0x52, 0x4d, 0x53, 0x54, 0x4f, 0x50, 0x10, 0x90, 0x08, 0x12, + 0x0f, 0x0a, 0x0a, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0xcc, 0x08, + 0x12, 0x10, 0x0a, 0x0b, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, + 0xd6, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x56, 0x45, 0x4e, 0x54, + 0x49, 0x4c, 0x41, 0x54, 0x45, 0x10, 0xe0, 0x08, 0x12, 0x0f, 0x0a, 0x0a, 0x57, 0x49, 0x4e, 0x44, + 0x4f, 0x57, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0xe1, 0x08, 0x12, 0x0d, 0x0a, 0x08, 0x52, 0x4f, 0x4f, + 0x46, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0xea, 0x08, 0x12, 0x0e, 0x0a, 0x09, 0x52, 0x4f, 0x4f, 0x46, + 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0xf4, 0x08, 0x12, 0x0d, 0x0a, 0x08, 0x52, 0x4f, 0x4f, 0x46, + 0x4c, 0x49, 0x46, 0x54, 0x10, 0xfe, 0x08, 0x12, 0x0d, 0x0a, 0x08, 0x52, 0x4f, 0x4f, 0x46, 0x4d, + 0x4f, 0x56, 0x45, 0x10, 0xff, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x42, 0x41, 0x54, 0x54, 0x45, 0x52, + 0x59, 0x4d, 0x41, 0x58, 0x53, 0x4f, 0x43, 0x10, 0xd0, 0x0f, 0x12, 0x19, 0x0a, 0x14, 0x42, 0x41, + 0x54, 0x54, 0x45, 0x52, 0x59, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x50, 0x52, 0x4f, 0x47, 0x52, + 0x41, 0x4d, 0x10, 0xda, 0x0f, 0x12, 0x1b, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x50, + 0x52, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x10, + 0xe4, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x4f, 0x4e, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x46, 0x45, 0x4e, + 0x43, 0x45, 0x53, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0xb4, 0x10, 0x12, 0x18, 0x0a, 0x13, + 0x4f, 0x4e, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x46, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x55, 0x50, 0x44, + 0x41, 0x54, 0x45, 0x10, 0xbe, 0x10, 0x12, 0x18, 0x0a, 0x13, 0x4f, 0x4e, 0x42, 0x4f, 0x41, 0x52, + 0x44, 0x46, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0xc8, 0x10, + 0x12, 0x16, 0x0a, 0x11, 0x53, 0x50, 0x45, 0x45, 0x44, 0x46, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x43, + 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x98, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x53, 0x50, 0x45, 0x45, + 0x44, 0x46, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0xa2, 0x11, + 0x12, 0x16, 0x0a, 0x11, 0x53, 0x50, 0x45, 0x45, 0x44, 0x46, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x44, + 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0xac, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x43, 0x48, 0x41, 0x52, + 0x47, 0x49, 0x4e, 0x47, 0x54, 0x41, 0x52, 0x49, 0x46, 0x46, 0x53, 0x43, 0x52, 0x45, 0x41, 0x54, + 0x45, 0x10, 0xfc, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x43, 0x48, 0x41, 0x52, 0x47, 0x49, 0x4e, 0x47, + 0x54, 0x41, 0x52, 0x49, 0x46, 0x46, 0x53, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x86, 0x12, + 0x12, 0x1a, 0x0a, 0x15, 0x43, 0x48, 0x41, 0x52, 0x47, 0x49, 0x4e, 0x47, 0x54, 0x41, 0x52, 0x49, + 0x46, 0x46, 0x53, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x90, 0x12, 0x12, 0x14, 0x0a, 0x0f, + 0x54, 0x48, 0x45, 0x46, 0x54, 0x41, 0x4c, 0x41, 0x52, 0x4d, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, + 0xc4, 0x13, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x48, 0x45, 0x46, 0x54, 0x41, 0x4c, 0x41, 0x52, 0x4d, + 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x49, 0x4f, 0x52, 0x10, 0xce, + 0x13, 0x12, 0x1f, 0x0a, 0x1a, 0x54, 0x48, 0x45, 0x46, 0x54, 0x41, 0x4c, 0x41, 0x52, 0x4d, 0x44, + 0x45, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x49, 0x4f, 0x52, 0x10, + 0xd8, 0x13, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x48, 0x45, 0x46, 0x54, 0x41, 0x4c, 0x41, 0x52, 0x4d, + 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x54, 0x4f, 0x57, 0x10, 0xe2, 0x13, 0x12, 0x1a, 0x0a, 0x15, + 0x54, 0x48, 0x45, 0x46, 0x54, 0x41, 0x4c, 0x41, 0x52, 0x4d, 0x44, 0x45, 0x53, 0x45, 0x4c, 0x45, + 0x43, 0x54, 0x54, 0x4f, 0x57, 0x10, 0xec, 0x13, 0x12, 0x24, 0x0a, 0x1f, 0x54, 0x48, 0x45, 0x46, + 0x54, 0x41, 0x4c, 0x41, 0x52, 0x4d, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x44, 0x41, 0x4d, 0x41, + 0x47, 0x45, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0xf6, 0x13, 0x12, 0x26, + 0x0a, 0x21, 0x54, 0x48, 0x45, 0x46, 0x54, 0x41, 0x4c, 0x41, 0x52, 0x4d, 0x44, 0x45, 0x53, 0x45, + 0x4c, 0x45, 0x43, 0x54, 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x10, 0x80, 0x14, 0x12, 0x25, 0x0a, 0x20, 0x54, 0x48, 0x45, 0x46, 0x54, 0x41, + 0x4c, 0x41, 0x52, 0x4d, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x44, 0x41, 0x4d, 0x41, 0x47, + 0x45, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x8a, 0x14, 0x12, 0x11, 0x0a, + 0x0c, 0x4d, 0x45, 0x43, 0x41, 0x4c, 0x4c, 0x32, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xa8, 0x14, + 0x12, 0x1e, 0x0a, 0x19, 0x55, 0x44, 0x58, 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, 0x53, 0x59, + 0x4e, 0x43, 0x48, 0x52, 0x4f, 0x4e, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0xb0, 0x09, + 0x12, 0x19, 0x0a, 0x14, 0x55, 0x44, 0x58, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x55, 0x53, 0x45, + 0x52, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0xba, 0x09, 0x12, 0x15, 0x0a, 0x10, 0x55, + 0x44, 0x58, 0x52, 0x45, 0x53, 0x45, 0x54, 0x55, 0x53, 0x45, 0x52, 0x44, 0x41, 0x54, 0x41, 0x10, + 0xc4, 0x09, 0x12, 0x12, 0x0a, 0x0d, 0x55, 0x53, 0x45, 0x52, 0x50, 0x52, 0x4f, 0x46, 0x53, 0x59, + 0x4e, 0x43, 0x48, 0x10, 0xce, 0x09, 0x12, 0x12, 0x0a, 0x0d, 0x55, 0x53, 0x45, 0x52, 0x44, 0x41, + 0x54, 0x41, 0x52, 0x45, 0x53, 0x45, 0x54, 0x10, 0xd8, 0x09, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x52, + 0x4f, 0x46, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x4e, 0x41, 0x50, + 0x10, 0xe2, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x52, 0x4f, 0x46, 0x41, 0x43, 0x54, 0x49, 0x56, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0xe7, 0x09, 0x12, 0x13, + 0x0a, 0x0e, 0x53, 0x4f, 0x46, 0x54, 0x57, 0x41, 0x52, 0x45, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, + 0x10, 0xec, 0x09, 0x12, 0x15, 0x0a, 0x10, 0x50, 0x55, 0x53, 0x48, 0x4e, 0x4f, 0x54, 0x49, 0x46, + 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0xf6, 0x09, 0x12, 0x12, 0x0a, 0x0d, 0x4d, 0x45, + 0x43, 0x41, 0x4c, 0x4c, 0x43, 0x4f, 0x4d, 0x4d, 0x41, 0x4e, 0x44, 0x10, 0x9e, 0x0a, 0x12, 0x14, + 0x0a, 0x0f, 0x50, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x54, 0x41, 0x52, 0x54, 0x52, 0x43, + 0x53, 0x10, 0xf8, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x50, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, + 0x54, 0x4f, 0x50, 0x52, 0x43, 0x53, 0x10, 0x82, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x52, 0x45, + 0x43, 0x4f, 0x4e, 0x44, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x52, 0x43, 0x53, + 0x10, 0x8c, 0x0b, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x43, 0x55, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, + 0x55, 0x52, 0x45, 0x10, 0x96, 0x0b, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x44, 0x49, 0x53, 0x4f, 0x4e, + 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x97, 0x0b, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x45, 0x53, 0x54, 0x53, 0x45, 0x51, 0x55, + 0x45, 0x4e, 0x43, 0x45, 0x10, 0x98, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x52, 0x45, 0x43, 0x4f, + 0x4e, 0x44, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x52, 0x41, 0x43, 0x50, 0x10, + 0x99, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x4f, 0x50, 0x54, 0x43, + 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x52, 0x41, 0x43, 0x50, 0x10, 0x9a, 0x0b, 0x12, + 0x18, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x49, 0x46, 0x46, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x4f, + 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x9b, 0x0b, 0x12, 0x15, 0x0a, 0x10, 0x50, 0x52, 0x45, + 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x54, 0x41, 0x52, 0x54, 0x52, 0x41, 0x43, 0x50, 0x10, 0x9c, 0x0b, + 0x12, 0x14, 0x0a, 0x0f, 0x50, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x54, 0x4f, 0x50, 0x52, + 0x41, 0x43, 0x50, 0x10, 0x9d, 0x0b, 0x12, 0x1a, 0x0a, 0x15, 0x52, 0x4f, 0x4f, 0x54, 0x43, 0x45, + 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, + 0x9e, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x4f, 0x4e, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x50, + 0x52, 0x4f, 0x42, 0x45, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x9f, 0x0b, 0x12, 0x1c, 0x0a, + 0x17, 0x52, 0x4f, 0x4f, 0x54, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, + 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0xa0, 0x0b, 0x12, 0x1e, 0x0a, 0x19, 0x43, + 0x4f, 0x4e, 0x54, 0x52, 0x41, 0x43, 0x54, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, + 0x54, 0x45, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0xa1, 0x0b, 0x12, 0x20, 0x0a, 0x1b, 0x43, + 0x4f, 0x4e, 0x54, 0x52, 0x41, 0x43, 0x54, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, + 0x54, 0x45, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0xa2, 0x0b, 0x12, 0x1d, 0x0a, + 0x18, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0xa3, 0x0b, 0x12, 0x13, 0x0a, 0x0e, + 0x52, 0x44, 0x49, 0x41, 0x47, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x45, 0x43, 0x55, 0x10, 0xdc, + 0x0b, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x44, 0x49, 0x41, 0x47, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0xdd, 0x0b, 0x12, 0x13, 0x0a, 0x0e, 0x52, 0x44, 0x49, + 0x41, 0x47, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0xde, 0x0b, 0x12, 0x19, + 0x0a, 0x14, 0x49, 0x4d, 0x4d, 0x4f, 0x42, 0x49, 0x4c, 0x49, 0x5a, 0x45, 0x52, 0x43, 0x48, 0x41, + 0x4c, 0x4c, 0x45, 0x4e, 0x47, 0x45, 0x10, 0xc0, 0x0c, 0x12, 0x1d, 0x0a, 0x18, 0x49, 0x4d, 0x4d, + 0x4f, 0x42, 0x49, 0x4c, 0x49, 0x5a, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, + 0x59, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0xca, 0x0c, 0x12, 0x1e, 0x0a, 0x19, 0x49, 0x4d, 0x4d, 0x4f, + 0x42, 0x49, 0x4c, 0x49, 0x5a, 0x45, 0x52, 0x52, 0x45, 0x4c, 0x45, 0x41, 0x53, 0x45, 0x4b, 0x45, + 0x59, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0xd4, 0x0c, 0x12, 0x1b, 0x0a, 0x16, 0x49, 0x4d, 0x4d, 0x4f, + 0x42, 0x49, 0x4c, 0x49, 0x5a, 0x45, 0x52, 0x4c, 0x4f, 0x43, 0x4b, 0x4b, 0x45, 0x59, 0x4c, 0x49, + 0x4e, 0x45, 0x10, 0xde, 0x0c, 0x12, 0x1b, 0x0a, 0x16, 0x49, 0x4d, 0x4d, 0x4f, 0x42, 0x49, 0x4c, + 0x49, 0x5a, 0x45, 0x52, 0x4c, 0x4f, 0x43, 0x4b, 0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, 0x45, 0x10, + 0xdf, 0x0c, 0x12, 0x1e, 0x0a, 0x19, 0x49, 0x4d, 0x4d, 0x4f, 0x42, 0x49, 0x4c, 0x49, 0x5a, 0x45, + 0x52, 0x52, 0x45, 0x4c, 0x45, 0x41, 0x53, 0x45, 0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, 0x45, 0x10, + 0xd5, 0x0c, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x45, 0x54, 0x52, 0x45, 0x4e, 0x54, 0x41, 0x4c, 0x53, + 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x10, 0xa4, 0x0d, 0x12, 0x19, 0x0a, 0x14, 0x42, 0x4c, 0x41, 0x43, + 0x4b, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, + 0x10, 0x88, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x43, 0x48, 0x41, 0x4e, + 0x4e, 0x45, 0x4c, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x92, 0x0e, 0x12, 0x11, 0x0a, 0x0c, + 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x43, 0x53, 0x4d, 0x10, 0xec, 0x0e, 0x12, + 0x16, 0x0a, 0x11, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, 0x45, + 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xed, 0x0e, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x45, 0x4c, 0x41, 0x59, + 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x54, 0x4f, 0x43, 0x53, 0x4d, 0x10, 0xee, 0x0e, 0x12, + 0x1c, 0x0a, 0x17, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x52, 0x45, 0x4e, 0x54, 0x41, 0x4c, 0x52, 0x45, + 0x51, 0x55, 0x45, 0x53, 0x54, 0x54, 0x4f, 0x43, 0x53, 0x42, 0x10, 0xef, 0x0e, 0x12, 0x16, 0x0a, + 0x11, 0x52, 0x54, 0x4d, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x43, 0x4f, 0x4e, 0x46, + 0x49, 0x47, 0x10, 0xe0, 0x12, 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x54, 0x4d, 0x52, 0x45, 0x41, 0x44, + 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0xea, 0x12, 0x12, 0x10, 0x0a, 0x0b, 0x41, 0x56, 0x50, + 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x45, 0x10, 0x8c, 0x15, 0x12, 0x1b, 0x0a, 0x16, 0x43, + 0x48, 0x41, 0x52, 0x47, 0x45, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x43, 0x4f, 0x4e, 0x46, + 0x49, 0x47, 0x55, 0x52, 0x45, 0x10, 0xf0, 0x15, 0x12, 0x16, 0x0a, 0x12, 0x75, 0x6e, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x10, 0x00, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x6f, 0x6f, 0x72, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x10, 0x64, 0x12, + 0x0f, 0x0a, 0x0b, 0x64, 0x6f, 0x6f, 0x72, 0x73, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x6e, + 0x12, 0x0f, 0x0a, 0x0b, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x10, + 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x75, 0x65, 0x6c, 0x66, 0x6c, 0x61, 0x70, 0x55, 0x6e, 0x6c, + 0x6f, 0x63, 0x6b, 0x10, 0x74, 0x12, 0x14, 0x0a, 0x10, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x66, + 0x6c, 0x61, 0x70, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x75, 0x12, 0x17, 0x0a, 0x13, 0x63, + 0x68, 0x61, 0x72, 0x67, 0x65, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x72, 0x55, 0x6e, 0x6c, 0x6f, + 0x63, 0x6b, 0x10, 0x76, 0x12, 0x16, 0x0a, 0x12, 0x64, 0x6f, 0x6f, 0x72, 0x73, 0x50, 0x72, 0x65, + 0x70, 0x61, 0x72, 0x65, 0x52, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x10, 0x78, 0x12, 0x17, 0x0a, 0x12, + 0x64, 0x6f, 0x6f, 0x72, 0x73, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, + 0x6c, 0x65, 0x10, 0x82, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x61, 0x75, 0x78, 0x68, 0x65, 0x61, 0x74, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, 0xac, 0x02, 0x12, 0x10, 0x0a, 0x0b, 0x61, 0x75, 0x78, 0x68, + 0x65, 0x61, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x10, 0xb6, 0x02, 0x12, 0x15, 0x0a, 0x10, 0x61, 0x75, + 0x78, 0x68, 0x65, 0x61, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x10, 0xc0, + 0x02, 0x12, 0x19, 0x0a, 0x14, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x10, 0xde, 0x02, 0x12, 0x19, 0x0a, 0x14, + 0x77, 0x65, 0x65, 0x6b, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x65, 0x10, 0xe8, 0x02, 0x12, 0x1b, 0x0a, 0x16, 0x77, 0x65, 0x65, 0x6b, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x56, 0x32, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x10, 0xf2, 0x02, 0x12, 0x11, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x10, 0x90, 0x03, 0x12, 0x10, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x10, 0x9a, 0x03, 0x12, 0x15, 0x0a, 0x10, 0x70, 0x72, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x10, 0xa4, 0x03, + 0x12, 0x1a, 0x0a, 0x15, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x65, 0x53, 0x65, 0x61, 0x74, 0x73, 0x10, 0xa9, 0x03, 0x12, 0x17, 0x0a, 0x12, + 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x6f, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x65, 0x10, 0xae, 0x03, 0x12, 0x13, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x6f, + 0x70, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, 0xb8, 0x03, 0x12, 0x12, 0x0a, 0x0d, 0x63, 0x68, + 0x61, 0x72, 0x67, 0x65, 0x6f, 0x70, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x10, 0xc2, 0x03, 0x12, 0x0c, + 0x0a, 0x07, 0x66, 0x65, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x10, 0xf4, 0x03, 0x12, 0x11, 0x0a, 0x0c, + 0x66, 0x65, 0x65, 0x64, 0x46, 0x72, 0x65, 0x65, 0x74, 0x65, 0x78, 0x74, 0x10, 0xfe, 0x03, 0x12, + 0x10, 0x0a, 0x0b, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, 0xa6, + 0x04, 0x12, 0x0f, 0x0a, 0x0a, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x10, + 0xb0, 0x04, 0x12, 0x13, 0x0a, 0x0e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x76, 0x70, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x10, 0xba, 0x04, 0x12, 0x0e, 0x0a, 0x09, 0x74, 0x63, 0x75, 0x57, 0x61, + 0x6b, 0x65, 0x75, 0x70, 0x10, 0xd8, 0x04, 0x12, 0x10, 0x0a, 0x0b, 0x74, 0x63, 0x75, 0x53, 0x77, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0xe2, 0x04, 0x12, 0x10, 0x0a, 0x0b, 0x74, 0x63, 0x75, + 0x52, 0x63, 0x73, 0x52, 0x65, 0x73, 0x65, 0x74, 0x10, 0xec, 0x04, 0x12, 0x15, 0x0a, 0x10, 0x74, + 0x63, 0x75, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x6f, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, + 0xf6, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x61, 0x6c, 0x65, 0x72, 0x74, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, 0xc6, 0x05, 0x12, 0x13, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, + 0x64, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x10, 0xd0, 0x05, 0x12, 0x0e, 0x0a, + 0x09, 0x66, 0x6c, 0x73, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, 0xee, 0x05, 0x12, 0x0d, 0x0a, + 0x08, 0x66, 0x6c, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x70, 0x10, 0xf8, 0x05, 0x12, 0x10, 0x0a, 0x0b, + 0x73, 0x69, 0x67, 0x70, 0x6f, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, 0x82, 0x06, 0x12, 0x16, + 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x65, 0x10, 0xa0, 0x06, 0x12, 0x13, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x10, 0xaa, 0x06, 0x12, 0x12, 0x0a, 0x0d, 0x72, + 0x6f, 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x10, 0xb4, 0x06, 0x12, + 0x0f, 0x0a, 0x0a, 0x72, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x10, 0xbe, 0x06, + 0x12, 0x0d, 0x0a, 0x08, 0x74, 0x72, 0x69, 0x70, 0x63, 0x6f, 0x6d, 0x70, 0x10, 0xd2, 0x06, 0x12, + 0x19, 0x0a, 0x14, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x10, 0xa2, 0x07, 0x12, 0x1e, 0x0a, 0x19, 0x6d, 0x61, + 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x10, 0xa3, 0x07, 0x12, 0x15, 0x0a, 0x10, 0x73, 0x68, + 0x6f, 0x72, 0x74, 0x74, 0x65, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x10, 0xa7, + 0x07, 0x12, 0x1f, 0x0a, 0x1a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x10, + 0xac, 0x07, 0x12, 0x22, 0x0a, 0x1d, 0x64, 0x63, 0x32, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x65, 0x10, 0xb1, 0x07, 0x12, 0x13, 0x0a, 0x0e, 0x64, 0x63, 0x32, 0x52, 0x61, 0x77, + 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x10, 0xb6, 0x07, 0x12, 0x1d, 0x0a, 0x18, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xbb, 0x07, 0x12, 0x15, 0x0a, 0x10, 0x64, 0x63, + 0x32, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0xc0, + 0x07, 0x12, 0x10, 0x0a, 0x0b, 0x61, 0x74, 0x70, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x10, 0xde, 0x07, 0x12, 0x1d, 0x0a, 0x18, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, + 0x6d, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x10, + 0xe8, 0x07, 0x12, 0x18, 0x0a, 0x13, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, + 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x77, 0x10, 0xf2, 0x07, 0x12, 0x20, 0x0a, 0x1b, + 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x54, 0x6f, 0x77, 0x10, 0xfc, 0x07, 0x12, 0x22, + 0x0a, 0x1d, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x44, 0x65, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x54, 0x6f, 0x77, 0x10, + 0x86, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, + 0x53, 0x74, 0x6f, 0x70, 0x10, 0x90, 0x08, 0x12, 0x0f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x4f, 0x70, 0x65, 0x6e, 0x10, 0xcc, 0x08, 0x12, 0x10, 0x0a, 0x0b, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x10, 0xd6, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x56, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x10, 0xe0, 0x08, + 0x12, 0x0f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4d, 0x6f, 0x76, 0x65, 0x10, 0xe1, + 0x08, 0x12, 0x0d, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x66, 0x4f, 0x70, 0x65, 0x6e, 0x10, 0xea, 0x08, + 0x12, 0x0e, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x10, 0xf4, 0x08, + 0x12, 0x0d, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x66, 0x4c, 0x69, 0x66, 0x74, 0x10, 0xfe, 0x08, 0x12, + 0x0d, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x66, 0x4d, 0x6f, 0x76, 0x65, 0x10, 0xff, 0x08, 0x12, 0x12, + 0x0a, 0x0d, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x73, 0x6f, 0x63, 0x10, + 0xd0, 0x0f, 0x12, 0x19, 0x0a, 0x14, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x10, 0xda, 0x0f, 0x12, 0x1b, 0x0a, + 0x16, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x10, 0xe4, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x6f, 0x6e, + 0x62, 0x6f, 0x61, 0x72, 0x64, 0x66, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x10, 0xb4, 0x10, 0x12, 0x18, 0x0a, 0x13, 0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x66, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0xbe, 0x10, 0x12, 0x18, + 0x0a, 0x13, 0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x66, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x10, 0xc8, 0x10, 0x12, 0x16, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x65, + 0x64, 0x66, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x10, 0x98, 0x11, + 0x12, 0x16, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x65, 0x64, 0x66, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0xa2, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x65, + 0x64, 0x66, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x10, 0xac, 0x11, + 0x12, 0x1a, 0x0a, 0x15, 0x63, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x74, 0x61, 0x72, 0x69, + 0x66, 0x66, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x10, 0xfc, 0x11, 0x12, 0x1a, 0x0a, 0x15, + 0x63, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x74, 0x61, 0x72, 0x69, 0x66, 0x66, 0x73, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0x86, 0x12, 0x12, 0x1a, 0x0a, 0x15, 0x63, 0x68, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x67, 0x74, 0x61, 0x72, 0x69, 0x66, 0x66, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x10, 0x90, 0x12, 0x12, 0x14, 0x0a, 0x0f, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, + 0x72, 0x6d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0xc4, 0x13, 0x12, 0x1d, 0x0a, 0x18, 0x74, 0x68, + 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x10, 0xce, 0x13, 0x12, 0x1f, 0x0a, 0x1a, 0x74, 0x68, 0x65, + 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x64, 0x65, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x10, 0xd8, 0x13, 0x12, 0x18, 0x0a, 0x13, 0x74, 0x68, + 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x74, 0x6f, + 0x77, 0x10, 0xe2, 0x13, 0x12, 0x1a, 0x0a, 0x15, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, + 0x72, 0x6d, 0x64, 0x65, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x74, 0x6f, 0x77, 0x10, 0xec, 0x13, + 0x12, 0x24, 0x0a, 0x1f, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x10, 0xf6, 0x13, 0x12, 0x26, 0x0a, 0x21, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, + 0x6c, 0x61, 0x72, 0x6d, 0x64, 0x65, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x64, 0x61, 0x6d, 0x61, + 0x67, 0x65, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x80, 0x14, 0x12, 0x25, + 0x0a, 0x20, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x72, 0x6d, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x10, 0x8a, 0x14, 0x12, 0x11, 0x0a, 0x0c, 0x6d, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x32, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0xa8, 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x75, 0x64, 0x78, 0x54, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xb0, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x75, 0x64, 0x78, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x10, 0xba, 0x09, 0x12, 0x15, 0x0a, 0x10, 0x75, 0x64, 0x78, 0x52, 0x65, 0x73, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x10, 0xc4, 0x09, 0x12, 0x12, 0x0a, 0x0d, 0x75, 0x73, + 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x10, 0xce, 0x09, 0x12, 0x12, + 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x65, 0x74, 0x10, + 0xd8, 0x09, 0x12, 0x17, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x66, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6e, 0x61, 0x70, 0x10, 0xe2, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x70, + 0x72, 0x6f, 0x66, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x10, 0xe7, 0x09, 0x12, 0x13, 0x0a, 0x0e, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0xec, 0x09, 0x12, 0x15, 0x0a, 0x10, 0x70, + 0x75, 0x73, 0x68, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, + 0xf6, 0x09, 0x12, 0x12, 0x0a, 0x0d, 0x6d, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x10, 0x9e, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x63, 0x73, 0x10, 0xf8, 0x0a, 0x12, 0x13, 0x0a, 0x0e, + 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x63, 0x73, 0x10, 0x82, + 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x63, 0x73, 0x10, 0x8c, 0x0b, 0x12, 0x11, 0x0a, 0x0c, 0x74, + 0x63, 0x75, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x10, 0x96, 0x0b, 0x12, 0x1c, + 0x0a, 0x17, 0x65, 0x64, 0x69, 0x73, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x97, 0x0b, 0x12, 0x11, 0x0a, 0x0c, + 0x74, 0x65, 0x73, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x10, 0x98, 0x0b, 0x12, + 0x19, 0x0a, 0x14, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x65, 0x52, 0x61, 0x63, 0x70, 0x10, 0x99, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x63, 0x68, + 0x61, 0x72, 0x67, 0x65, 0x6f, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, + 0x52, 0x61, 0x63, 0x70, 0x10, 0x9a, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x74, 0x61, 0x72, 0x69, 0x66, + 0x66, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x10, 0x9b, + 0x0b, 0x12, 0x15, 0x0a, 0x10, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x52, 0x61, 0x63, 0x70, 0x10, 0x9c, 0x0b, 0x12, 0x14, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x61, 0x63, 0x70, 0x10, 0x9d, 0x0b, 0x12, 0x1a, + 0x0a, 0x15, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x10, 0x9e, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x10, 0x9f, 0x0b, 0x12, 0x1c, 0x0a, 0x17, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x65, 0x72, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x10, 0xa0, 0x0b, 0x12, 0x1e, 0x0a, 0x19, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x43, + 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x10, 0xa1, 0x0b, 0x12, 0x20, 0x0a, 0x1b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x43, + 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x10, 0xa2, 0x0b, 0x12, 0x1d, 0x0a, 0x18, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x10, 0xa3, 0x0b, 0x12, 0x13, 0x0a, 0x0e, 0x72, 0x64, 0x69, 0x61, 0x67, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x45, 0x63, 0x75, 0x10, 0xdc, 0x0b, 0x12, 0x16, 0x0a, 0x11, 0x72, 0x64, 0x69, + 0x61, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x10, 0xdd, + 0x0b, 0x12, 0x13, 0x0a, 0x0e, 0x72, 0x64, 0x69, 0x61, 0x67, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x10, 0xde, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x69, 0x6d, 0x6d, 0x6f, 0x62, 0x69, + 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x10, 0xc0, + 0x0c, 0x12, 0x1d, 0x0a, 0x18, 0x69, 0x6d, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x72, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x10, 0xca, 0x0c, + 0x12, 0x1e, 0x0a, 0x19, 0x69, 0x6d, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x10, 0xd4, 0x0c, + 0x12, 0x1b, 0x0a, 0x16, 0x69, 0x6d, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x4c, + 0x6f, 0x63, 0x6b, 0x4b, 0x65, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x10, 0xde, 0x0c, 0x12, 0x1b, 0x0a, + 0x16, 0x69, 0x6d, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, + 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x10, 0xdf, 0x0c, 0x12, 0x1e, 0x0a, 0x19, 0x69, 0x6d, + 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x10, 0xd5, 0x0c, 0x12, 0x14, 0x0a, 0x0f, 0x73, 0x65, + 0x74, 0x52, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x10, 0xa4, 0x0d, + 0x12, 0x19, 0x0a, 0x14, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x10, 0x88, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x62, + 0x6c, 0x61, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x10, 0x92, 0x0e, 0x12, 0x11, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x63, 0x73, 0x6d, 0x10, 0xec, 0x0e, 0x12, 0x16, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x69, 0x6e, 0x66, 0x6f, 0x10, 0xed, 0x0e, 0x12, + 0x16, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x74, + 0x6f, 0x63, 0x73, 0x6d, 0x10, 0xee, 0x0e, 0x12, 0x1c, 0x0a, 0x17, 0x72, 0x65, 0x6c, 0x61, 0x79, + 0x72, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x74, 0x6f, 0x63, + 0x73, 0x62, 0x10, 0xef, 0x0e, 0x12, 0x16, 0x0a, 0x11, 0x72, 0x74, 0x6d, 0x44, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0xe0, 0x12, 0x12, 0x12, 0x0a, + 0x0d, 0x72, 0x74, 0x6d, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0xea, + 0x12, 0x12, 0x10, 0x0a, 0x0b, 0x61, 0x76, 0x70, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x10, 0x8c, 0x15, 0x12, 0x1b, 0x0a, 0x16, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x10, 0xf0, 0x15, + 0x1a, 0x02, 0x10, 0x01, 0x42, 0x20, 0xd0, 0xe1, 0x1e, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, + 0x64, 0x61, 0x69, 0x6d, 0x6c, 0x65, 0x72, 0x2e, 0x6d, 0x62, 0x63, 0x61, 0x72, 0x6b, 0x69, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_acp_proto_rawDescOnce sync.Once + file_acp_proto_rawDescData = file_acp_proto_rawDesc +) + +func file_acp_proto_rawDescGZIP() []byte { + file_acp_proto_rawDescOnce.Do(func() { + file_acp_proto_rawDescData = protoimpl.X.CompressGZIP(file_acp_proto_rawDescData) + }) + return file_acp_proto_rawDescData +} + +var file_acp_proto_enumTypes = make([]protoimpl.EnumInfo, 6) +var file_acp_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_acp_proto_goTypes = []interface{}{ + (VVA_CommandState)(0), // 0: proto.VVA.CommandState + (VVA_CommandCondition)(0), // 1: proto.VVA.CommandCondition + (VehicleAPI_CommandState)(0), // 2: proto.VehicleAPI.CommandState + (VehicleAPI_AttributeStatus)(0), // 3: proto.VehicleAPI.AttributeStatus + (VehicleAPI_QueueType)(0), // 4: proto.VehicleAPI.QueueType + (ACP_CommandType)(0), // 5: proto.ACP.CommandType + (*VVA)(nil), // 6: proto.VVA + (*VehicleAPI)(nil), // 7: proto.VehicleAPI + (*ACP)(nil), // 8: proto.ACP +} +var file_acp_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_acp_proto_init() } +func file_acp_proto_init() { + if File_acp_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_acp_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VVA); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_acp_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VehicleAPI); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_acp_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ACP); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_acp_proto_rawDesc, + NumEnums: 6, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_acp_proto_goTypes, + DependencyIndexes: file_acp_proto_depIdxs, + EnumInfos: file_acp_proto_enumTypes, + MessageInfos: file_acp_proto_msgTypes, + }.Build() + File_acp_proto = out.File + file_acp_proto_rawDesc = nil + file_acp_proto_goTypes = nil + file_acp_proto_depIdxs = nil +} diff --git a/vehicle/mercedes/pb/client.pb.go b/vehicle/mercedes/pb/client.pb.go new file mode 100644 index 000000000..ba98e6253 --- /dev/null +++ b/vehicle/mercedes/pb/client.pb.go @@ -0,0 +1,700 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v3.21.12 +// source: client.proto + +package protos + +import ( + protos "github.com/evcc-io/evcc/vehicle/mercedes/pb/protos" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// message that is sent from the client +// Sending direction: App -> Websocket (-> AppTwin) +type ClientMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TrackingId string `protobuf:"bytes,5,opt,name=tracking_id,json=trackingId,proto3" json:"tracking_id,omitempty"` + // Types that are assignable to Msg: + // + // *ClientMessage_UnsubscribeRequest + // *ClientMessage_CommandRequest + // *ClientMessage_TrackingEvent + // *ClientMessage_PingInterval + // *ClientMessage_AcknowledgeVepRequest + // *ClientMessage_AcknowledgeServiceStatusUpdatesByVin + // *ClientMessage_AcknowledgeServiceStatusUpdate + // *ClientMessage_AcknowledgeUserDataUpdate + // *ClientMessage_AcknowledgeUserPictureUpdate + // *ClientMessage_AcknowledgeUserPinUpdate + // *ClientMessage_UpdateUserJwtRequest + // *ClientMessage_AcknowledgeUserVehicleAuthChangedUpdate + // *ClientMessage_AcknowledgeAbilityToGetVehicleMasterDataFromRestApi + // *ClientMessage_AcknowledgeVehicleUpdated + // *ClientMessage_AcknowledgePreferredDealerChange + // *ClientMessage_AcknowledgeApptwinCommandStatusUpdateByVin + // *ClientMessage_Logout + // *ClientMessage_ApptwinPendingCommandsResponse + // *ClientMessage_AcknowledgeVepUpdatesByVin + // *ClientMessage_AcknowledgeAssignedVehicles + Msg isClientMessage_Msg `protobuf_oneof:"msg"` +} + +func (x *ClientMessage) Reset() { + *x = ClientMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_client_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientMessage) ProtoMessage() {} + +func (x *ClientMessage) ProtoReflect() protoreflect.Message { + mi := &file_client_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientMessage.ProtoReflect.Descriptor instead. +func (*ClientMessage) Descriptor() ([]byte, []int) { + return file_client_proto_rawDescGZIP(), []int{0} +} + +func (x *ClientMessage) GetTrackingId() string { + if x != nil { + return x.TrackingId + } + return "" +} + +func (m *ClientMessage) GetMsg() isClientMessage_Msg { + if m != nil { + return m.Msg + } + return nil +} + +func (x *ClientMessage) GetUnsubscribeRequest() *protos.UnsubscribeRequest { + if x, ok := x.GetMsg().(*ClientMessage_UnsubscribeRequest); ok { + return x.UnsubscribeRequest + } + return nil +} + +func (x *ClientMessage) GetCommandRequest() *CommandRequest { + if x, ok := x.GetMsg().(*ClientMessage_CommandRequest); ok { + return x.CommandRequest + } + return nil +} + +func (x *ClientMessage) GetTrackingEvent() *TrackingEvent { + if x, ok := x.GetMsg().(*ClientMessage_TrackingEvent); ok { + return x.TrackingEvent + } + return nil +} + +func (x *ClientMessage) GetPingInterval() *ConfigurePingInterval { + if x, ok := x.GetMsg().(*ClientMessage_PingInterval); ok { + return x.PingInterval + } + return nil +} + +func (x *ClientMessage) GetAcknowledgeVepRequest() *AcknowledgeVEPRequest { + if x, ok := x.GetMsg().(*ClientMessage_AcknowledgeVepRequest); ok { + return x.AcknowledgeVepRequest + } + return nil +} + +func (x *ClientMessage) GetAcknowledgeServiceStatusUpdatesByVin() *AcknowledgeServiceStatusUpdatesByVIN { + if x, ok := x.GetMsg().(*ClientMessage_AcknowledgeServiceStatusUpdatesByVin); ok { + return x.AcknowledgeServiceStatusUpdatesByVin + } + return nil +} + +func (x *ClientMessage) GetAcknowledgeServiceStatusUpdate() *AcknowledgeServiceStatusUpdate { + if x, ok := x.GetMsg().(*ClientMessage_AcknowledgeServiceStatusUpdate); ok { + return x.AcknowledgeServiceStatusUpdate + } + return nil +} + +func (x *ClientMessage) GetAcknowledgeUserDataUpdate() *AcknowledgeUserDataUpdate { + if x, ok := x.GetMsg().(*ClientMessage_AcknowledgeUserDataUpdate); ok { + return x.AcknowledgeUserDataUpdate + } + return nil +} + +func (x *ClientMessage) GetAcknowledgeUserPictureUpdate() *AcknowledgeUserPictureUpdate { + if x, ok := x.GetMsg().(*ClientMessage_AcknowledgeUserPictureUpdate); ok { + return x.AcknowledgeUserPictureUpdate + } + return nil +} + +func (x *ClientMessage) GetAcknowledgeUserPinUpdate() *AcknowledgeUserPINUpdate { + if x, ok := x.GetMsg().(*ClientMessage_AcknowledgeUserPinUpdate); ok { + return x.AcknowledgeUserPinUpdate + } + return nil +} + +func (x *ClientMessage) GetUpdateUserJwtRequest() *UpdateUserJWTRequest { + if x, ok := x.GetMsg().(*ClientMessage_UpdateUserJwtRequest); ok { + return x.UpdateUserJwtRequest + } + return nil +} + +func (x *ClientMessage) GetAcknowledgeUserVehicleAuthChangedUpdate() *AcknowledgeUserVehicleAuthChangedUpdate { + if x, ok := x.GetMsg().(*ClientMessage_AcknowledgeUserVehicleAuthChangedUpdate); ok { + return x.AcknowledgeUserVehicleAuthChangedUpdate + } + return nil +} + +func (x *ClientMessage) GetAcknowledgeAbilityToGetVehicleMasterDataFromRestApi() *AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI { + if x, ok := x.GetMsg().(*ClientMessage_AcknowledgeAbilityToGetVehicleMasterDataFromRestApi); ok { + return x.AcknowledgeAbilityToGetVehicleMasterDataFromRestApi + } + return nil +} + +func (x *ClientMessage) GetAcknowledgeVehicleUpdated() *AcknowledgeVehicleUpdated { + if x, ok := x.GetMsg().(*ClientMessage_AcknowledgeVehicleUpdated); ok { + return x.AcknowledgeVehicleUpdated + } + return nil +} + +func (x *ClientMessage) GetAcknowledgePreferredDealerChange() *AcknowledgePreferredDealerChange { + if x, ok := x.GetMsg().(*ClientMessage_AcknowledgePreferredDealerChange); ok { + return x.AcknowledgePreferredDealerChange + } + return nil +} + +func (x *ClientMessage) GetAcknowledgeApptwinCommandStatusUpdateByVin() *AcknowledgeAppTwinCommandStatusUpdatesByVIN { + if x, ok := x.GetMsg().(*ClientMessage_AcknowledgeApptwinCommandStatusUpdateByVin); ok { + return x.AcknowledgeApptwinCommandStatusUpdateByVin + } + return nil +} + +func (x *ClientMessage) GetLogout() *Logout { + if x, ok := x.GetMsg().(*ClientMessage_Logout); ok { + return x.Logout + } + return nil +} + +func (x *ClientMessage) GetApptwinPendingCommandsResponse() *AppTwinPendingCommandsResponse { + if x, ok := x.GetMsg().(*ClientMessage_ApptwinPendingCommandsResponse); ok { + return x.ApptwinPendingCommandsResponse + } + return nil +} + +func (x *ClientMessage) GetAcknowledgeVepUpdatesByVin() *AcknowledgeVEPUpdatesByVIN { + if x, ok := x.GetMsg().(*ClientMessage_AcknowledgeVepUpdatesByVin); ok { + return x.AcknowledgeVepUpdatesByVin + } + return nil +} + +func (x *ClientMessage) GetAcknowledgeAssignedVehicles() *protos.AcknowledgeAssignedVehicles { + if x, ok := x.GetMsg().(*ClientMessage_AcknowledgeAssignedVehicles); ok { + return x.AcknowledgeAssignedVehicles + } + return nil +} + +type isClientMessage_Msg interface { + isClientMessage_Msg() +} + +type ClientMessage_UnsubscribeRequest struct { + UnsubscribeRequest *protos.UnsubscribeRequest `protobuf:"bytes,2,opt,name=unsubscribeRequest,proto3,oneof"` +} + +type ClientMessage_CommandRequest struct { + CommandRequest *CommandRequest `protobuf:"bytes,3,opt,name=commandRequest,proto3,oneof"` +} + +type ClientMessage_TrackingEvent struct { + TrackingEvent *TrackingEvent `protobuf:"bytes,4,opt,name=tracking_event,json=trackingEvent,proto3,oneof"` +} + +type ClientMessage_PingInterval struct { + PingInterval *ConfigurePingInterval `protobuf:"bytes,6,opt,name=ping_interval,json=pingInterval,proto3,oneof"` +} + +type ClientMessage_AcknowledgeVepRequest struct { + AcknowledgeVepRequest *AcknowledgeVEPRequest `protobuf:"bytes,7,opt,name=acknowledge_vep_request,json=acknowledgeVepRequest,proto3,oneof"` +} + +type ClientMessage_AcknowledgeServiceStatusUpdatesByVin struct { + AcknowledgeServiceStatusUpdatesByVin *AcknowledgeServiceStatusUpdatesByVIN `protobuf:"bytes,9,opt,name=acknowledge_service_status_updates_by_vin,json=acknowledgeServiceStatusUpdatesByVin,proto3,oneof"` +} + +type ClientMessage_AcknowledgeServiceStatusUpdate struct { + AcknowledgeServiceStatusUpdate *AcknowledgeServiceStatusUpdate `protobuf:"bytes,13,opt,name=acknowledge_service_status_update,json=acknowledgeServiceStatusUpdate,proto3,oneof"` +} + +type ClientMessage_AcknowledgeUserDataUpdate struct { + AcknowledgeUserDataUpdate *AcknowledgeUserDataUpdate `protobuf:"bytes,10,opt,name=acknowledge_user_data_update,json=acknowledgeUserDataUpdate,proto3,oneof"` +} + +type ClientMessage_AcknowledgeUserPictureUpdate struct { + AcknowledgeUserPictureUpdate *AcknowledgeUserPictureUpdate `protobuf:"bytes,11,opt,name=acknowledge_user_picture_update,json=acknowledgeUserPictureUpdate,proto3,oneof"` +} + +type ClientMessage_AcknowledgeUserPinUpdate struct { + AcknowledgeUserPinUpdate *AcknowledgeUserPINUpdate `protobuf:"bytes,12,opt,name=acknowledge_user_pin_update,json=acknowledgeUserPinUpdate,proto3,oneof"` +} + +type ClientMessage_UpdateUserJwtRequest struct { + UpdateUserJwtRequest *UpdateUserJWTRequest `protobuf:"bytes,14,opt,name=update_user_jwt_request,json=updateUserJwtRequest,proto3,oneof"` +} + +type ClientMessage_AcknowledgeUserVehicleAuthChangedUpdate struct { + AcknowledgeUserVehicleAuthChangedUpdate *AcknowledgeUserVehicleAuthChangedUpdate `protobuf:"bytes,15,opt,name=acknowledge_user_vehicle_auth_changed_update,json=acknowledgeUserVehicleAuthChangedUpdate,proto3,oneof"` +} + +type ClientMessage_AcknowledgeAbilityToGetVehicleMasterDataFromRestApi struct { + AcknowledgeAbilityToGetVehicleMasterDataFromRestApi *AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI `protobuf:"bytes,16,opt,name=acknowledge_ability_to_get_vehicle_master_data_from_rest_api,json=acknowledgeAbilityToGetVehicleMasterDataFromRestApi,proto3,oneof"` +} + +type ClientMessage_AcknowledgeVehicleUpdated struct { + AcknowledgeVehicleUpdated *AcknowledgeVehicleUpdated `protobuf:"bytes,17,opt,name=acknowledge_vehicle_updated,json=acknowledgeVehicleUpdated,proto3,oneof"` +} + +type ClientMessage_AcknowledgePreferredDealerChange struct { + AcknowledgePreferredDealerChange *AcknowledgePreferredDealerChange `protobuf:"bytes,18,opt,name=acknowledge_preferred_dealer_change,json=acknowledgePreferredDealerChange,proto3,oneof"` +} + +type ClientMessage_AcknowledgeApptwinCommandStatusUpdateByVin struct { + AcknowledgeApptwinCommandStatusUpdateByVin *AcknowledgeAppTwinCommandStatusUpdatesByVIN `protobuf:"bytes,19,opt,name=acknowledge_apptwin_command_status_update_by_vin,json=acknowledgeApptwinCommandStatusUpdateByVin,proto3,oneof"` +} + +type ClientMessage_Logout struct { + Logout *Logout `protobuf:"bytes,20,opt,name=logout,proto3,oneof"` +} + +type ClientMessage_ApptwinPendingCommandsResponse struct { + ApptwinPendingCommandsResponse *AppTwinPendingCommandsResponse `protobuf:"bytes,21,opt,name=apptwin_pending_commands_response,json=apptwinPendingCommandsResponse,proto3,oneof"` +} + +type ClientMessage_AcknowledgeVepUpdatesByVin struct { + AcknowledgeVepUpdatesByVin *AcknowledgeVEPUpdatesByVIN `protobuf:"bytes,22,opt,name=acknowledge_vep_updates_by_vin,json=acknowledgeVepUpdatesByVin,proto3,oneof"` +} + +type ClientMessage_AcknowledgeAssignedVehicles struct { + AcknowledgeAssignedVehicles *protos.AcknowledgeAssignedVehicles `protobuf:"bytes,23,opt,name=acknowledge_assigned_vehicles,json=acknowledgeAssignedVehicles,proto3,oneof"` +} + +func (*ClientMessage_UnsubscribeRequest) isClientMessage_Msg() {} + +func (*ClientMessage_CommandRequest) isClientMessage_Msg() {} + +func (*ClientMessage_TrackingEvent) isClientMessage_Msg() {} + +func (*ClientMessage_PingInterval) isClientMessage_Msg() {} + +func (*ClientMessage_AcknowledgeVepRequest) isClientMessage_Msg() {} + +func (*ClientMessage_AcknowledgeServiceStatusUpdatesByVin) isClientMessage_Msg() {} + +func (*ClientMessage_AcknowledgeServiceStatusUpdate) isClientMessage_Msg() {} + +func (*ClientMessage_AcknowledgeUserDataUpdate) isClientMessage_Msg() {} + +func (*ClientMessage_AcknowledgeUserPictureUpdate) isClientMessage_Msg() {} + +func (*ClientMessage_AcknowledgeUserPinUpdate) isClientMessage_Msg() {} + +func (*ClientMessage_UpdateUserJwtRequest) isClientMessage_Msg() {} + +func (*ClientMessage_AcknowledgeUserVehicleAuthChangedUpdate) isClientMessage_Msg() {} + +func (*ClientMessage_AcknowledgeAbilityToGetVehicleMasterDataFromRestApi) isClientMessage_Msg() {} + +func (*ClientMessage_AcknowledgeVehicleUpdated) isClientMessage_Msg() {} + +func (*ClientMessage_AcknowledgePreferredDealerChange) isClientMessage_Msg() {} + +func (*ClientMessage_AcknowledgeApptwinCommandStatusUpdateByVin) isClientMessage_Msg() {} + +func (*ClientMessage_Logout) isClientMessage_Msg() {} + +func (*ClientMessage_ApptwinPendingCommandsResponse) isClientMessage_Msg() {} + +func (*ClientMessage_AcknowledgeVepUpdatesByVin) isClientMessage_Msg() {} + +func (*ClientMessage_AcknowledgeAssignedVehicles) isClientMessage_Msg() {} + +// Message to send from the app right before logging out of keycloak +// Stops the corresponding AppTwin actor and shuts it down and +// stops the websocket actor (but does not shut it down. This automatically happens, when the websocket connection is terminated) +type Logout struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *Logout) Reset() { + *x = Logout{} + if protoimpl.UnsafeEnabled { + mi := &file_client_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Logout) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Logout) ProtoMessage() {} + +func (x *Logout) ProtoReflect() protoreflect.Message { + mi := &file_client_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Logout.ProtoReflect.Descriptor instead. +func (*Logout) Descriptor() ([]byte, []int) { + return file_client_proto_rawDescGZIP(), []int{1} +} + +var File_client_proto protoreflect.FileDescriptor + +var file_client_proto_rawDesc = []byte{ + 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x75, + 0x73, 0x65, 0x72, 0x2d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x16, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x2d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, + 0x65, 0x2d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x10, + 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0xe6, 0x10, 0x0a, 0x0d, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x69, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, + 0x67, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x12, 0x75, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x12, 0x75, 0x6e, + 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x3f, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, + 0x00, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x3d, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x12, 0x43, 0x0a, 0x0d, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x50, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x56, 0x0a, 0x17, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, + 0x65, 0x64, 0x67, 0x65, 0x5f, 0x76, 0x65, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, + 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x56, 0x45, 0x50, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x15, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, + 0x64, 0x67, 0x65, 0x56, 0x65, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x86, 0x01, + 0x0a, 0x29, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x76, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, + 0x6c, 0x65, 0x64, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x56, 0x49, 0x4e, 0x48, 0x00, + 0x52, 0x24, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x42, 0x79, 0x56, 0x69, 0x6e, 0x12, 0x72, 0x0a, 0x21, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, + 0x6c, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, + 0x6c, 0x65, 0x64, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x1e, 0x61, 0x63, 0x6b, 0x6e, + 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x63, 0x0a, 0x1c, 0x61, 0x63, + 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, + 0x65, 0x64, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x48, 0x00, 0x52, 0x19, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x6c, 0x0a, 0x1f, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, + 0x1c, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x60, 0x0a, + 0x1b, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x70, 0x69, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, + 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x49, 0x4e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x18, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, + 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x54, 0x0a, 0x17, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6a, + 0x77, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x4a, 0x57, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, + 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4a, 0x77, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x8f, 0x01, 0x0a, 0x2c, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, + 0x6c, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x68, 0x69, 0x63, + 0x6c, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x5f, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x68, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x27, + 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x56, + 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xb7, 0x01, 0x0a, 0x3c, 0x61, 0x63, 0x6b, 0x6e, + 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, + 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x6d, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, + 0x72, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, + 0x67, 0x65, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x47, 0x65, 0x74, 0x56, 0x65, + 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x46, + 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x74, 0x41, 0x50, 0x49, 0x48, 0x00, 0x52, 0x33, 0x61, 0x63, + 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x54, 0x6f, 0x47, 0x65, 0x74, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x74, 0x41, 0x70, + 0x69, 0x12, 0x62, 0x0a, 0x1b, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, + 0x5f, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, + 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, + 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x19, 0x61, 0x63, 0x6b, 0x6e, + 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x78, 0x0a, 0x23, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, + 0x65, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x64, + 0x65, 0x61, 0x6c, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, + 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x44, + 0x65, 0x61, 0x6c, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x20, 0x61, + 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x72, 0x65, 0x64, 0x44, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0x9a, 0x01, 0x0a, 0x30, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x5f, + 0x61, 0x70, 0x70, 0x74, 0x77, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x79, + 0x5f, 0x76, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x41, 0x70, + 0x70, 0x54, 0x77, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x56, 0x49, 0x4e, 0x48, 0x00, + 0x52, 0x2a, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x41, 0x70, 0x70, + 0x74, 0x77, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x79, 0x56, 0x69, 0x6e, 0x12, 0x27, 0x0a, 0x06, + 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x48, 0x00, 0x52, 0x06, 0x6c, + 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x72, 0x0a, 0x21, 0x61, 0x70, 0x70, 0x74, 0x77, 0x69, 0x6e, + 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x54, 0x77, 0x69, 0x6e, + 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x1e, 0x61, 0x70, 0x70, 0x74, 0x77, + 0x69, 0x6e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x1e, 0x61, 0x63, 0x6b, + 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x76, 0x65, 0x70, 0x5f, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x76, 0x69, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, + 0x6c, 0x65, 0x64, 0x67, 0x65, 0x56, 0x45, 0x50, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, + 0x79, 0x56, 0x49, 0x4e, 0x48, 0x00, 0x52, 0x1a, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, + 0x64, 0x67, 0x65, 0x56, 0x65, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x56, + 0x69, 0x6e, 0x12, 0x68, 0x0a, 0x1d, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, + 0x65, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x68, 0x69, 0x63, + 0x6c, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x41, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, + 0x1b, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x41, 0x73, 0x73, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x42, 0x05, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x22, 0x08, 0x0a, 0x06, 0x4c, 0x6f, 0x67, + 0x6f, 0x75, 0x74, 0x42, 0x1c, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x61, 0x69, 0x6d, 0x6c, + 0x65, 0x72, 0x2e, 0x6d, 0x62, 0x63, 0x61, 0x72, 0x6b, 0x69, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_client_proto_rawDescOnce sync.Once + file_client_proto_rawDescData = file_client_proto_rawDesc +) + +func file_client_proto_rawDescGZIP() []byte { + file_client_proto_rawDescOnce.Do(func() { + file_client_proto_rawDescData = protoimpl.X.CompressGZIP(file_client_proto_rawDescData) + }) + return file_client_proto_rawDescData +} + +var file_client_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_client_proto_goTypes = []interface{}{ + (*ClientMessage)(nil), // 0: proto.ClientMessage + (*Logout)(nil), // 1: proto.Logout + (*protos.UnsubscribeRequest)(nil), // 2: proto.UnsubscribeRequest + (*CommandRequest)(nil), // 3: proto.CommandRequest + (*TrackingEvent)(nil), // 4: proto.TrackingEvent + (*ConfigurePingInterval)(nil), // 5: proto.ConfigurePingInterval + (*AcknowledgeVEPRequest)(nil), // 6: proto.AcknowledgeVEPRequest + (*AcknowledgeServiceStatusUpdatesByVIN)(nil), // 7: proto.AcknowledgeServiceStatusUpdatesByVIN + (*AcknowledgeServiceStatusUpdate)(nil), // 8: proto.AcknowledgeServiceStatusUpdate + (*AcknowledgeUserDataUpdate)(nil), // 9: proto.AcknowledgeUserDataUpdate + (*AcknowledgeUserPictureUpdate)(nil), // 10: proto.AcknowledgeUserPictureUpdate + (*AcknowledgeUserPINUpdate)(nil), // 11: proto.AcknowledgeUserPINUpdate + (*UpdateUserJWTRequest)(nil), // 12: proto.UpdateUserJWTRequest + (*AcknowledgeUserVehicleAuthChangedUpdate)(nil), // 13: proto.AcknowledgeUserVehicleAuthChangedUpdate + (*AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI)(nil), // 14: proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI + (*AcknowledgeVehicleUpdated)(nil), // 15: proto.AcknowledgeVehicleUpdated + (*AcknowledgePreferredDealerChange)(nil), // 16: proto.AcknowledgePreferredDealerChange + (*AcknowledgeAppTwinCommandStatusUpdatesByVIN)(nil), // 17: proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN + (*AppTwinPendingCommandsResponse)(nil), // 18: proto.AppTwinPendingCommandsResponse + (*AcknowledgeVEPUpdatesByVIN)(nil), // 19: proto.AcknowledgeVEPUpdatesByVIN + (*protos.AcknowledgeAssignedVehicles)(nil), // 20: proto.AcknowledgeAssignedVehicles +} +var file_client_proto_depIdxs = []int32{ + 2, // 0: proto.ClientMessage.unsubscribeRequest:type_name -> proto.UnsubscribeRequest + 3, // 1: proto.ClientMessage.commandRequest:type_name -> proto.CommandRequest + 4, // 2: proto.ClientMessage.tracking_event:type_name -> proto.TrackingEvent + 5, // 3: proto.ClientMessage.ping_interval:type_name -> proto.ConfigurePingInterval + 6, // 4: proto.ClientMessage.acknowledge_vep_request:type_name -> proto.AcknowledgeVEPRequest + 7, // 5: proto.ClientMessage.acknowledge_service_status_updates_by_vin:type_name -> proto.AcknowledgeServiceStatusUpdatesByVIN + 8, // 6: proto.ClientMessage.acknowledge_service_status_update:type_name -> proto.AcknowledgeServiceStatusUpdate + 9, // 7: proto.ClientMessage.acknowledge_user_data_update:type_name -> proto.AcknowledgeUserDataUpdate + 10, // 8: proto.ClientMessage.acknowledge_user_picture_update:type_name -> proto.AcknowledgeUserPictureUpdate + 11, // 9: proto.ClientMessage.acknowledge_user_pin_update:type_name -> proto.AcknowledgeUserPINUpdate + 12, // 10: proto.ClientMessage.update_user_jwt_request:type_name -> proto.UpdateUserJWTRequest + 13, // 11: proto.ClientMessage.acknowledge_user_vehicle_auth_changed_update:type_name -> proto.AcknowledgeUserVehicleAuthChangedUpdate + 14, // 12: proto.ClientMessage.acknowledge_ability_to_get_vehicle_master_data_from_rest_api:type_name -> proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI + 15, // 13: proto.ClientMessage.acknowledge_vehicle_updated:type_name -> proto.AcknowledgeVehicleUpdated + 16, // 14: proto.ClientMessage.acknowledge_preferred_dealer_change:type_name -> proto.AcknowledgePreferredDealerChange + 17, // 15: proto.ClientMessage.acknowledge_apptwin_command_status_update_by_vin:type_name -> proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN + 1, // 16: proto.ClientMessage.logout:type_name -> proto.Logout + 18, // 17: proto.ClientMessage.apptwin_pending_commands_response:type_name -> proto.AppTwinPendingCommandsResponse + 19, // 18: proto.ClientMessage.acknowledge_vep_updates_by_vin:type_name -> proto.AcknowledgeVEPUpdatesByVIN + 20, // 19: proto.ClientMessage.acknowledge_assigned_vehicles:type_name -> proto.AcknowledgeAssignedVehicles + 20, // [20:20] is the sub-list for method output_type + 20, // [20:20] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name +} + +func init() { file_client_proto_init() } +func file_client_proto_init() { + if File_client_proto != nil { + return + } + file_service_activation_proto_init() + file_user_events_proto_init() + file_vehicle_commands_proto_init() + file_vehicle_events_proto_init() + file_vehicleapi_proto_init() + if !protoimpl.UnsafeEnabled { + file_client_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_client_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Logout); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_client_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*ClientMessage_UnsubscribeRequest)(nil), + (*ClientMessage_CommandRequest)(nil), + (*ClientMessage_TrackingEvent)(nil), + (*ClientMessage_PingInterval)(nil), + (*ClientMessage_AcknowledgeVepRequest)(nil), + (*ClientMessage_AcknowledgeServiceStatusUpdatesByVin)(nil), + (*ClientMessage_AcknowledgeServiceStatusUpdate)(nil), + (*ClientMessage_AcknowledgeUserDataUpdate)(nil), + (*ClientMessage_AcknowledgeUserPictureUpdate)(nil), + (*ClientMessage_AcknowledgeUserPinUpdate)(nil), + (*ClientMessage_UpdateUserJwtRequest)(nil), + (*ClientMessage_AcknowledgeUserVehicleAuthChangedUpdate)(nil), + (*ClientMessage_AcknowledgeAbilityToGetVehicleMasterDataFromRestApi)(nil), + (*ClientMessage_AcknowledgeVehicleUpdated)(nil), + (*ClientMessage_AcknowledgePreferredDealerChange)(nil), + (*ClientMessage_AcknowledgeApptwinCommandStatusUpdateByVin)(nil), + (*ClientMessage_Logout)(nil), + (*ClientMessage_ApptwinPendingCommandsResponse)(nil), + (*ClientMessage_AcknowledgeVepUpdatesByVin)(nil), + (*ClientMessage_AcknowledgeAssignedVehicles)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_client_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_client_proto_goTypes, + DependencyIndexes: file_client_proto_depIdxs, + MessageInfos: file_client_proto_msgTypes, + }.Build() + File_client_proto = out.File + file_client_proto_rawDesc = nil + file_client_proto_goTypes = nil + file_client_proto_depIdxs = nil +} diff --git a/vehicle/mercedes/pb/cluster.pb.go b/vehicle/mercedes/pb/cluster.pb.go new file mode 100644 index 000000000..6362f621f --- /dev/null +++ b/vehicle/mercedes/pb/cluster.pb.go @@ -0,0 +1,214 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v3.21.12 +// source: cluster.proto + +package protos + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type MemberStatus int32 + +const ( + MemberStatus_UNKNOWN_MEMBER_STATUS MemberStatus = 0 + MemberStatus_STARTING MemberStatus = 1 + MemberStatus_READY MemberStatus = 2 + MemberStatus_STOPPING MemberStatus = 3 +) + +// Enum value maps for MemberStatus. +var ( + MemberStatus_name = map[int32]string{ + 0: "UNKNOWN_MEMBER_STATUS", + 1: "STARTING", + 2: "READY", + 3: "STOPPING", + } + MemberStatus_value = map[string]int32{ + "UNKNOWN_MEMBER_STATUS": 0, + "STARTING": 1, + "READY": 2, + "STOPPING": 3, + } +) + +func (x MemberStatus) Enum() *MemberStatus { + p := new(MemberStatus) + *p = x + return p +} + +func (x MemberStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MemberStatus) Descriptor() protoreflect.EnumDescriptor { + return file_cluster_proto_enumTypes[0].Descriptor() +} + +func (MemberStatus) Type() protoreflect.EnumType { + return &file_cluster_proto_enumTypes[0] +} + +func (x MemberStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MemberStatus.Descriptor instead. +func (MemberStatus) EnumDescriptor() ([]byte, []int) { + return file_cluster_proto_rawDescGZIP(), []int{0} +} + +type AppTwinMemberStatusValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status MemberStatus `protobuf:"varint,1,opt,name=status,proto3,enum=proto.MemberStatus" json:"status,omitempty"` + ApptwinCount uint32 `protobuf:"varint,2,opt,name=apptwin_count,json=apptwinCount,proto3" json:"apptwin_count,omitempty"` +} + +func (x *AppTwinMemberStatusValue) Reset() { + *x = AppTwinMemberStatusValue{} + if protoimpl.UnsafeEnabled { + mi := &file_cluster_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppTwinMemberStatusValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppTwinMemberStatusValue) ProtoMessage() {} + +func (x *AppTwinMemberStatusValue) ProtoReflect() protoreflect.Message { + mi := &file_cluster_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AppTwinMemberStatusValue.ProtoReflect.Descriptor instead. +func (*AppTwinMemberStatusValue) Descriptor() ([]byte, []int) { + return file_cluster_proto_rawDescGZIP(), []int{0} +} + +func (x *AppTwinMemberStatusValue) GetStatus() MemberStatus { + if x != nil { + return x.Status + } + return MemberStatus_UNKNOWN_MEMBER_STATUS +} + +func (x *AppTwinMemberStatusValue) GetApptwinCount() uint32 { + if x != nil { + return x.ApptwinCount + } + return 0 +} + +var File_cluster_proto protoreflect.FileDescriptor + +var file_cluster_proto_rawDesc = []byte{ + 0x0a, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6c, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x54, 0x77, 0x69, + 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x23, 0x0a, 0x0d, 0x61, 0x70, 0x70, 0x74, 0x77, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x74, 0x77, 0x69, 0x6e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x2a, 0x50, 0x0a, 0x0c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, + 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x00, 0x12, + 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x09, 0x0a, + 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x4f, 0x50, + 0x50, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_cluster_proto_rawDescOnce sync.Once + file_cluster_proto_rawDescData = file_cluster_proto_rawDesc +) + +func file_cluster_proto_rawDescGZIP() []byte { + file_cluster_proto_rawDescOnce.Do(func() { + file_cluster_proto_rawDescData = protoimpl.X.CompressGZIP(file_cluster_proto_rawDescData) + }) + return file_cluster_proto_rawDescData +} + +var file_cluster_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_cluster_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_cluster_proto_goTypes = []interface{}{ + (MemberStatus)(0), // 0: proto.MemberStatus + (*AppTwinMemberStatusValue)(nil), // 1: proto.AppTwinMemberStatusValue +} +var file_cluster_proto_depIdxs = []int32{ + 0, // 0: proto.AppTwinMemberStatusValue.status:type_name -> proto.MemberStatus + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_cluster_proto_init() } +func file_cluster_proto_init() { + if File_cluster_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_cluster_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppTwinMemberStatusValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_cluster_proto_rawDesc, + NumEnums: 1, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_cluster_proto_goTypes, + DependencyIndexes: file_cluster_proto_depIdxs, + EnumInfos: file_cluster_proto_enumTypes, + MessageInfos: file_cluster_proto_msgTypes, + }.Build() + File_cluster_proto = out.File + file_cluster_proto_rawDesc = nil + file_cluster_proto_goTypes = nil + file_cluster_proto_depIdxs = nil +} diff --git a/vehicle/mercedes/pb/eventpush.pb.go b/vehicle/mercedes/pb/eventpush.pb.go new file mode 100644 index 000000000..4731a1b2a --- /dev/null +++ b/vehicle/mercedes/pb/eventpush.pb.go @@ -0,0 +1,245 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v3.21.12 +// source: eventpush.proto + +package protos + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type EventPushCommand struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Vin string `protobuf:"bytes,1,opt,name=vin,proto3" json:"vin,omitempty"` + State VVA_CommandState `protobuf:"varint,2,opt,name=state,json=acpState,proto3,enum=proto.VVA_CommandState" json:"state,omitempty"` + Condition VVA_CommandCondition `protobuf:"varint,3,opt,name=condition,json=acpCondition,proto3,enum=proto.VVA_CommandCondition" json:"condition,omitempty"` + Type ACP_CommandType `protobuf:"varint,4,opt,name=type,json=acpCommandType,proto3,enum=proto.ACP_CommandType" json:"type,omitempty"` + ProcessId int64 `protobuf:"varint,5,opt,name=process_id,json=pid,proto3" json:"process_id,omitempty"` + TrackingId string `protobuf:"bytes,6,opt,name=tracking_id,json=trackingId,proto3" json:"tracking_id,omitempty"` + CorrelationId string `protobuf:"bytes,7,opt,name=correlation_id,json=correlationId,proto3" json:"correlation_id,omitempty"` + ErrorCodes []int32 `protobuf:"varint,8,rep,packed,name=error_codes,json=errorCodes,proto3" json:"error_codes,omitempty"` + Guid string `protobuf:"bytes,9,opt,name=guid,proto3" json:"guid,omitempty"` + TimestampInS int64 `protobuf:"varint,10,opt,name=timestamp_in_s,json=timestamp,proto3" json:"timestamp_in_s,omitempty"` +} + +func (x *EventPushCommand) Reset() { + *x = EventPushCommand{} + if protoimpl.UnsafeEnabled { + mi := &file_eventpush_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventPushCommand) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventPushCommand) ProtoMessage() {} + +func (x *EventPushCommand) ProtoReflect() protoreflect.Message { + mi := &file_eventpush_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EventPushCommand.ProtoReflect.Descriptor instead. +func (*EventPushCommand) Descriptor() ([]byte, []int) { + return file_eventpush_proto_rawDescGZIP(), []int{0} +} + +func (x *EventPushCommand) GetVin() string { + if x != nil { + return x.Vin + } + return "" +} + +func (x *EventPushCommand) GetState() VVA_CommandState { + if x != nil { + return x.State + } + return VVA_UNKNOWN_COMMAND_STATE +} + +func (x *EventPushCommand) GetCondition() VVA_CommandCondition { + if x != nil { + return x.Condition + } + return VVA_UNKNWON_COMMAND_CONDITION +} + +func (x *EventPushCommand) GetType() ACP_CommandType { + if x != nil { + return x.Type + } + return ACP_UNKNOWNCOMMANDTYPE +} + +func (x *EventPushCommand) GetProcessId() int64 { + if x != nil { + return x.ProcessId + } + return 0 +} + +func (x *EventPushCommand) GetTrackingId() string { + if x != nil { + return x.TrackingId + } + return "" +} + +func (x *EventPushCommand) GetCorrelationId() string { + if x != nil { + return x.CorrelationId + } + return "" +} + +func (x *EventPushCommand) GetErrorCodes() []int32 { + if x != nil { + return x.ErrorCodes + } + return nil +} + +func (x *EventPushCommand) GetGuid() string { + if x != nil { + return x.Guid + } + return "" +} + +func (x *EventPushCommand) GetTimestampInS() int64 { + if x != nil { + return x.TimestampInS + } + return 0 +} + +var File_eventpush_proto protoreflect.FileDescriptor + +var file_eventpush_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x70, 0x75, 0x73, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x09, 0x61, 0x63, 0x70, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0x83, 0x03, 0x0a, 0x10, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x76, 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x56, + 0x41, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, + 0x61, 0x63, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x56, 0x41, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x43, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x63, 0x70, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x43, 0x50, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x61, 0x63, + 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, + 0x67, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x63, + 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, + 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x75, + 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, + 0x69, 0x6e, 0x5f, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x20, 0xd0, 0xe1, 0x1e, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, + 0x2e, 0x64, 0x61, 0x69, 0x6d, 0x6c, 0x65, 0x72, 0x2e, 0x6d, 0x62, 0x63, 0x61, 0x72, 0x6b, 0x69, + 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_eventpush_proto_rawDescOnce sync.Once + file_eventpush_proto_rawDescData = file_eventpush_proto_rawDesc +) + +func file_eventpush_proto_rawDescGZIP() []byte { + file_eventpush_proto_rawDescOnce.Do(func() { + file_eventpush_proto_rawDescData = protoimpl.X.CompressGZIP(file_eventpush_proto_rawDescData) + }) + return file_eventpush_proto_rawDescData +} + +var file_eventpush_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_eventpush_proto_goTypes = []interface{}{ + (*EventPushCommand)(nil), // 0: proto.EventPushCommand + (VVA_CommandState)(0), // 1: proto.VVA.CommandState + (VVA_CommandCondition)(0), // 2: proto.VVA.CommandCondition + (ACP_CommandType)(0), // 3: proto.ACP.CommandType +} +var file_eventpush_proto_depIdxs = []int32{ + 1, // 0: proto.EventPushCommand.state:type_name -> proto.VVA.CommandState + 2, // 1: proto.EventPushCommand.condition:type_name -> proto.VVA.CommandCondition + 3, // 2: proto.EventPushCommand.type:type_name -> proto.ACP.CommandType + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_eventpush_proto_init() } +func file_eventpush_proto_init() { + if File_eventpush_proto != nil { + return + } + file_acp_proto_init() + if !protoimpl.UnsafeEnabled { + file_eventpush_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventPushCommand); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_eventpush_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_eventpush_proto_goTypes, + DependencyIndexes: file_eventpush_proto_depIdxs, + MessageInfos: file_eventpush_proto_msgTypes, + }.Build() + File_eventpush_proto = out.File + file_eventpush_proto_rawDesc = nil + file_eventpush_proto_goTypes = nil + file_eventpush_proto_depIdxs = nil +} diff --git a/vehicle/mercedes/pb/protos/protos.pb.go b/vehicle/mercedes/pb/protos/protos.pb.go new file mode 100644 index 000000000..9f942912e --- /dev/null +++ b/vehicle/mercedes/pb/protos/protos.pb.go @@ -0,0 +1,1392 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v3.21.12 +// source: protos.proto + +package protos + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type SubscriptionErrorType int32 + +const ( + SubscriptionErrorType_UNKNOWN SubscriptionErrorType = 0 + SubscriptionErrorType_INVALID_JWT SubscriptionErrorType = 1 +) + +// Enum value maps for SubscriptionErrorType. +var ( + SubscriptionErrorType_name = map[int32]string{ + 0: "UNKNOWN", + 1: "INVALID_JWT", + } + SubscriptionErrorType_value = map[string]int32{ + "UNKNOWN": 0, + "INVALID_JWT": 1, + } +) + +func (x SubscriptionErrorType) Enum() *SubscriptionErrorType { + p := new(SubscriptionErrorType) + *p = x + return p +} + +func (x SubscriptionErrorType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SubscriptionErrorType) Descriptor() protoreflect.EnumDescriptor { + return file_protos_proto_enumTypes[0].Descriptor() +} + +func (SubscriptionErrorType) Type() protoreflect.EnumType { + return &file_protos_proto_enumTypes[0] +} + +func (x SubscriptionErrorType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SubscriptionErrorType.Descriptor instead. +func (SubscriptionErrorType) EnumDescriptor() ([]byte, []int) { + return file_protos_proto_rawDescGZIP(), []int{0} +} + +type OperatingSystemName int32 + +const ( + OperatingSystemName_UNKNOWN_OPERATING_SYSTEM OperatingSystemName = 0 + OperatingSystemName_IOS OperatingSystemName = 1 + OperatingSystemName_ANDROID OperatingSystemName = 2 + OperatingSystemName_INT_TEST OperatingSystemName = 3 + OperatingSystemName_MANUAL_TEST OperatingSystemName = 4 + OperatingSystemName_WEB OperatingSystemName = 5 +) + +// Enum value maps for OperatingSystemName. +var ( + OperatingSystemName_name = map[int32]string{ + 0: "UNKNOWN_OPERATING_SYSTEM", + 1: "IOS", + 2: "ANDROID", + 3: "INT_TEST", + 4: "MANUAL_TEST", + 5: "WEB", + } + OperatingSystemName_value = map[string]int32{ + "UNKNOWN_OPERATING_SYSTEM": 0, + "IOS": 1, + "ANDROID": 2, + "INT_TEST": 3, + "MANUAL_TEST": 4, + "WEB": 5, + } +) + +func (x OperatingSystemName) Enum() *OperatingSystemName { + p := new(OperatingSystemName) + *p = x + return p +} + +func (x OperatingSystemName) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OperatingSystemName) Descriptor() protoreflect.EnumDescriptor { + return file_protos_proto_enumTypes[1].Descriptor() +} + +func (OperatingSystemName) Type() protoreflect.EnumType { + return &file_protos_proto_enumTypes[1] +} + +func (x OperatingSystemName) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OperatingSystemName.Descriptor instead. +func (OperatingSystemName) EnumDescriptor() ([]byte, []int) { + return file_protos_proto_rawDescGZIP(), []int{1} +} + +type ResubscribeToAppTwinResponse_ResubscribeResult int32 + +const ( + ResubscribeToAppTwinResponse_UNKNOWN_ERROR ResubscribeToAppTwinResponse_ResubscribeResult = 0 + ResubscribeToAppTwinResponse_SUCCESS ResubscribeToAppTwinResponse_ResubscribeResult = 1 + ResubscribeToAppTwinResponse_INVALID_JWT_ERROR ResubscribeToAppTwinResponse_ResubscribeResult = 2 + ResubscribeToAppTwinResponse_TARGET_DOES_NOT_EXIST ResubscribeToAppTwinResponse_ResubscribeResult = 3 +) + +// Enum value maps for ResubscribeToAppTwinResponse_ResubscribeResult. +var ( + ResubscribeToAppTwinResponse_ResubscribeResult_name = map[int32]string{ + 0: "UNKNOWN_ERROR", + 1: "SUCCESS", + 2: "INVALID_JWT_ERROR", + 3: "TARGET_DOES_NOT_EXIST", + } + ResubscribeToAppTwinResponse_ResubscribeResult_value = map[string]int32{ + "UNKNOWN_ERROR": 0, + "SUCCESS": 1, + "INVALID_JWT_ERROR": 2, + "TARGET_DOES_NOT_EXIST": 3, + } +) + +func (x ResubscribeToAppTwinResponse_ResubscribeResult) Enum() *ResubscribeToAppTwinResponse_ResubscribeResult { + p := new(ResubscribeToAppTwinResponse_ResubscribeResult) + *p = x + return p +} + +func (x ResubscribeToAppTwinResponse_ResubscribeResult) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ResubscribeToAppTwinResponse_ResubscribeResult) Descriptor() protoreflect.EnumDescriptor { + return file_protos_proto_enumTypes[2].Descriptor() +} + +func (ResubscribeToAppTwinResponse_ResubscribeResult) Type() protoreflect.EnumType { + return &file_protos_proto_enumTypes[2] +} + +func (x ResubscribeToAppTwinResponse_ResubscribeResult) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ResubscribeToAppTwinResponse_ResubscribeResult.Descriptor instead. +func (ResubscribeToAppTwinResponse_ResubscribeResult) EnumDescriptor() ([]byte, []int) { + return file_protos_proto_rawDescGZIP(), []int{7, 0} +} + +// SubscriptionRequest is sent to an actor to indicate that the sender wants to subscribe +// to events of specific topics. By convention the "Sender" property of the actor message is the +// Subscriber and will receive the events. +type SubscribeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An array of topics for which the Subscriber wants to be notified from the Receiver of this message + Topics []string `protobuf:"bytes,1,rep,name=topics,proto3" json:"topics,omitempty"` + // indicates whether the previous set of topics should be replaced or whether the content of + // topics should be merged into the already existing set of topics in the publisher actor. E.g. You're already + // subscribed to topics A and B. If you send a SubscribeRequest with B and C: + // replace = true -> you are subscribed to B and C + // replace = false -> you are subscribed to A, B and C + Replace bool `protobuf:"varint,2,opt,name=replace,proto3" json:"replace,omitempty"` +} + +func (x *SubscribeRequest) Reset() { + *x = SubscribeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubscribeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubscribeRequest) ProtoMessage() {} + +func (x *SubscribeRequest) ProtoReflect() protoreflect.Message { + mi := &file_protos_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubscribeRequest.ProtoReflect.Descriptor instead. +func (*SubscribeRequest) Descriptor() ([]byte, []int) { + return file_protos_proto_rawDescGZIP(), []int{0} +} + +func (x *SubscribeRequest) GetTopics() []string { + if x != nil { + return x.Topics + } + return nil +} + +func (x *SubscribeRequest) GetReplace() bool { + if x != nil { + return x.Replace + } + return false +} + +// SubscribeResponse is returned by the actor which received a SubscribeRequest. In case of a successful subscription +// success will be true and error_codes empty/nil. In case of an error the errors map will contain +// information that points to the reason for failure. The error map's keys are topics that have resulted in an error. +// The message also contains all successfully subscribed topics under the `subscribed_topics` key. +// By convention if an SubscribeRequest is sent for topics that have already been subscribed to, the SubscribeResponse +// will be successful and no error will be returned. +type SubscribeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + Errors map[string]*SubscriptionError `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + SubscribedTopics []string `protobuf:"bytes,3,rep,name=subscribed_topics,json=subscribedTopics,proto3" json:"subscribed_topics,omitempty"` +} + +func (x *SubscribeResponse) Reset() { + *x = SubscribeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubscribeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubscribeResponse) ProtoMessage() {} + +func (x *SubscribeResponse) ProtoReflect() protoreflect.Message { + mi := &file_protos_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubscribeResponse.ProtoReflect.Descriptor instead. +func (*SubscribeResponse) Descriptor() ([]byte, []int) { + return file_protos_proto_rawDescGZIP(), []int{1} +} + +func (x *SubscribeResponse) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +func (x *SubscribeResponse) GetErrors() map[string]*SubscriptionError { + if x != nil { + return x.Errors + } + return nil +} + +func (x *SubscribeResponse) GetSubscribedTopics() []string { + if x != nil { + return x.SubscribedTopics + } + return nil +} + +// UnsubscribeRequest is sent to an actor to indicate that the sender wants to unsubscribe +// from events specified by the topics array. +type UnsubscribeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An array of topics for which the Subscriber does not want to receive any more messages + Topics []string `protobuf:"bytes,1,rep,name=topics,proto3" json:"topics,omitempty"` + // Whether the publisher should respond + AnticipateResponse bool `protobuf:"varint,2,opt,name=anticipate_response,json=anticipateResponse,proto3" json:"anticipate_response,omitempty"` +} + +func (x *UnsubscribeRequest) Reset() { + *x = UnsubscribeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnsubscribeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnsubscribeRequest) ProtoMessage() {} + +func (x *UnsubscribeRequest) ProtoReflect() protoreflect.Message { + mi := &file_protos_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UnsubscribeRequest.ProtoReflect.Descriptor instead. +func (*UnsubscribeRequest) Descriptor() ([]byte, []int) { + return file_protos_proto_rawDescGZIP(), []int{2} +} + +func (x *UnsubscribeRequest) GetTopics() []string { + if x != nil { + return x.Topics + } + return nil +} + +func (x *UnsubscribeRequest) GetAnticipateResponse() bool { + if x != nil { + return x.AnticipateResponse + } + return false +} + +// UnsubscribeResponse is returned by the actor which received a UnsubscribeRequest. In case of a successful removal, +// success will be true and error_codes empty/nil. In case of an error the errors map will contain +// information that points to the reason for failure. The error map's keys are topics that have resulted in an error. +// The message also contains all successfully subscribed topics under the `unsubscribed_topics` key. +// By convention if an UnsubscribeRequest is sent for topics that have already been unsubscribed from the UnsubscribeResponse +// will be successful and no error will be returned. +type UnsubscribeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + Errors map[string]*SubscriptionError `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + UnsubscribedTopics []string `protobuf:"bytes,3,rep,name=unsubscribed_topics,json=unsubscribedTopics,proto3" json:"unsubscribed_topics,omitempty"` +} + +func (x *UnsubscribeResponse) Reset() { + *x = UnsubscribeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnsubscribeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnsubscribeResponse) ProtoMessage() {} + +func (x *UnsubscribeResponse) ProtoReflect() protoreflect.Message { + mi := &file_protos_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UnsubscribeResponse.ProtoReflect.Descriptor instead. +func (*UnsubscribeResponse) Descriptor() ([]byte, []int) { + return file_protos_proto_rawDescGZIP(), []int{3} +} + +func (x *UnsubscribeResponse) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +func (x *UnsubscribeResponse) GetErrors() map[string]*SubscriptionError { + if x != nil { + return x.Errors + } + return nil +} + +func (x *UnsubscribeResponse) GetUnsubscribedTopics() []string { + if x != nil { + return x.UnsubscribedTopics + } + return nil +} + +type SubscriptionError struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code []SubscriptionErrorType `protobuf:"varint,1,rep,packed,name=code,proto3,enum=proto.SubscriptionErrorType" json:"code,omitempty"` + Message []string `protobuf:"bytes,2,rep,name=message,proto3" json:"message,omitempty"` // Optional +} + +func (x *SubscriptionError) Reset() { + *x = SubscriptionError{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubscriptionError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubscriptionError) ProtoMessage() {} + +func (x *SubscriptionError) ProtoReflect() protoreflect.Message { + mi := &file_protos_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubscriptionError.ProtoReflect.Descriptor instead. +func (*SubscriptionError) Descriptor() ([]byte, []int) { + return file_protos_proto_rawDescGZIP(), []int{4} +} + +func (x *SubscriptionError) GetCode() []SubscriptionErrorType { + if x != nil { + return x.Code + } + return nil +} + +func (x *SubscriptionError) GetMessage() []string { + if x != nil { + return x.Message + } + return nil +} + +// Sent from Websocket-Service -> AppTwin +type SubscribeToAppTwinRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + CiamId string `protobuf:"bytes,2,opt,name=ciam_id,json=ciamId,proto3" json:"ciam_id,omitempty"` + // additional data + DeviceLocale string `protobuf:"bytes,3,opt,name=device_locale,json=deviceLocale,proto3" json:"device_locale,omitempty"` + AppId string `protobuf:"bytes,4,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` + AppVersion string `protobuf:"bytes,5,opt,name=app_version,json=appVersion,proto3" json:"app_version,omitempty"` + OsName OperatingSystemName `protobuf:"varint,6,opt,name=os_name,json=osName,proto3,enum=proto.OperatingSystemName" json:"os_name,omitempty"` + OsVersion string `protobuf:"bytes,7,opt,name=os_version,json=osVersion,proto3" json:"os_version,omitempty"` + DeviceModel string `protobuf:"bytes,8,opt,name=device_model,json=deviceModel,proto3" json:"device_model,omitempty"` + NetworkCarrier string `protobuf:"bytes,9,opt,name=network_carrier,json=networkCarrier,proto3" json:"network_carrier,omitempty"` + SdkVersion string `protobuf:"bytes,10,opt,name=sdk_version,json=sdkVersion,proto3" json:"sdk_version,omitempty"` +} + +func (x *SubscribeToAppTwinRequest) Reset() { + *x = SubscribeToAppTwinRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubscribeToAppTwinRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubscribeToAppTwinRequest) ProtoMessage() {} + +func (x *SubscribeToAppTwinRequest) ProtoReflect() protoreflect.Message { + mi := &file_protos_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubscribeToAppTwinRequest.ProtoReflect.Descriptor instead. +func (*SubscribeToAppTwinRequest) Descriptor() ([]byte, []int) { + return file_protos_proto_rawDescGZIP(), []int{5} +} + +func (x *SubscribeToAppTwinRequest) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +func (x *SubscribeToAppTwinRequest) GetCiamId() string { + if x != nil { + return x.CiamId + } + return "" +} + +func (x *SubscribeToAppTwinRequest) GetDeviceLocale() string { + if x != nil { + return x.DeviceLocale + } + return "" +} + +func (x *SubscribeToAppTwinRequest) GetAppId() string { + if x != nil { + return x.AppId + } + return "" +} + +func (x *SubscribeToAppTwinRequest) GetAppVersion() string { + if x != nil { + return x.AppVersion + } + return "" +} + +func (x *SubscribeToAppTwinRequest) GetOsName() OperatingSystemName { + if x != nil { + return x.OsName + } + return OperatingSystemName_UNKNOWN_OPERATING_SYSTEM +} + +func (x *SubscribeToAppTwinRequest) GetOsVersion() string { + if x != nil { + return x.OsVersion + } + return "" +} + +func (x *SubscribeToAppTwinRequest) GetDeviceModel() string { + if x != nil { + return x.DeviceModel + } + return "" +} + +func (x *SubscribeToAppTwinRequest) GetNetworkCarrier() string { + if x != nil { + return x.NetworkCarrier + } + return "" +} + +func (x *SubscribeToAppTwinRequest) GetSdkVersion() string { + if x != nil { + return x.SdkVersion + } + return "" +} + +type ResubscribeToAppTwinRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + CiamId string `protobuf:"bytes,2,opt,name=ciam_id,json=ciamId,proto3" json:"ciam_id,omitempty"` +} + +func (x *ResubscribeToAppTwinRequest) Reset() { + *x = ResubscribeToAppTwinRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResubscribeToAppTwinRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResubscribeToAppTwinRequest) ProtoMessage() {} + +func (x *ResubscribeToAppTwinRequest) ProtoReflect() protoreflect.Message { + mi := &file_protos_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResubscribeToAppTwinRequest.ProtoReflect.Descriptor instead. +func (*ResubscribeToAppTwinRequest) Descriptor() ([]byte, []int) { + return file_protos_proto_rawDescGZIP(), []int{6} +} + +func (x *ResubscribeToAppTwinRequest) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +func (x *ResubscribeToAppTwinRequest) GetCiamId() string { + if x != nil { + return x.CiamId + } + return "" +} + +type ResubscribeToAppTwinResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Result ResubscribeToAppTwinResponse_ResubscribeResult `protobuf:"varint,1,opt,name=result,proto3,enum=proto.ResubscribeToAppTwinResponse_ResubscribeResult" json:"result,omitempty"` +} + +func (x *ResubscribeToAppTwinResponse) Reset() { + *x = ResubscribeToAppTwinResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResubscribeToAppTwinResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResubscribeToAppTwinResponse) ProtoMessage() {} + +func (x *ResubscribeToAppTwinResponse) ProtoReflect() protoreflect.Message { + mi := &file_protos_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResubscribeToAppTwinResponse.ProtoReflect.Descriptor instead. +func (*ResubscribeToAppTwinResponse) Descriptor() ([]byte, []int) { + return file_protos_proto_rawDescGZIP(), []int{7} +} + +func (x *ResubscribeToAppTwinResponse) GetResult() ResubscribeToAppTwinResponse_ResubscribeResult { + if x != nil { + return x.Result + } + return ResubscribeToAppTwinResponse_UNKNOWN_ERROR +} + +// Sent from AppTwin -> Websocket-Service +type SubscribeToAppTwinResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + ErrorCode SubscriptionErrorType `protobuf:"varint,2,opt,name=error_code,json=errorCode,proto3,enum=proto.SubscriptionErrorType" json:"error_code,omitempty"` +} + +func (x *SubscribeToAppTwinResponse) Reset() { + *x = SubscribeToAppTwinResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubscribeToAppTwinResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubscribeToAppTwinResponse) ProtoMessage() {} + +func (x *SubscribeToAppTwinResponse) ProtoReflect() protoreflect.Message { + mi := &file_protos_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubscribeToAppTwinResponse.ProtoReflect.Descriptor instead. +func (*SubscribeToAppTwinResponse) Descriptor() ([]byte, []int) { + return file_protos_proto_rawDescGZIP(), []int{8} +} + +func (x *SubscribeToAppTwinResponse) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +func (x *SubscribeToAppTwinResponse) GetErrorCode() SubscriptionErrorType { + if x != nil { + return x.ErrorCode + } + return SubscriptionErrorType_UNKNOWN +} + +type UnsubscribeFromAppTwinRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` +} + +func (x *UnsubscribeFromAppTwinRequest) Reset() { + *x = UnsubscribeFromAppTwinRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnsubscribeFromAppTwinRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnsubscribeFromAppTwinRequest) ProtoMessage() {} + +func (x *UnsubscribeFromAppTwinRequest) ProtoReflect() protoreflect.Message { + mi := &file_protos_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UnsubscribeFromAppTwinRequest.ProtoReflect.Descriptor instead. +func (*UnsubscribeFromAppTwinRequest) Descriptor() ([]byte, []int) { + return file_protos_proto_rawDescGZIP(), []int{9} +} + +func (x *UnsubscribeFromAppTwinRequest) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +type UnsubscribeFromAppTwinResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + Errors map[string]*SubscriptionError `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *UnsubscribeFromAppTwinResponse) Reset() { + *x = UnsubscribeFromAppTwinResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnsubscribeFromAppTwinResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnsubscribeFromAppTwinResponse) ProtoMessage() {} + +func (x *UnsubscribeFromAppTwinResponse) ProtoReflect() protoreflect.Message { + mi := &file_protos_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UnsubscribeFromAppTwinResponse.ProtoReflect.Descriptor instead. +func (*UnsubscribeFromAppTwinResponse) Descriptor() ([]byte, []int) { + return file_protos_proto_rawDescGZIP(), []int{10} +} + +func (x *UnsubscribeFromAppTwinResponse) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +func (x *UnsubscribeFromAppTwinResponse) GetErrors() map[string]*SubscriptionError { + if x != nil { + return x.Errors + } + return nil +} + +type Heartbeat struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *Heartbeat) Reset() { + *x = Heartbeat{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Heartbeat) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Heartbeat) ProtoMessage() {} + +func (x *Heartbeat) ProtoReflect() protoreflect.Message { + mi := &file_protos_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Heartbeat.ProtoReflect.Descriptor instead. +func (*Heartbeat) Descriptor() ([]byte, []int) { + return file_protos_proto_rawDescGZIP(), []int{11} +} + +// This message is used to tell the App which vehicles are assigned to the current user. +// The message is sent when the AppTwin is fully initialized (i.e. when it received the first vcb-response) +// +// The list of VINs is needed when a user gets unassigned from a vehicle while not connected to an AppTwin +// In this case the vehicle would still show in the app the next time the user starts it (see https://appsfactory.atlassian.net/browse/DAIM-3831) +// To prevent this, we tell the App which VINs are assigned via this message +type AssignedVehicles struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Vins []string `protobuf:"bytes,1,rep,name=vins,proto3" json:"vins,omitempty"` +} + +func (x *AssignedVehicles) Reset() { + *x = AssignedVehicles{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AssignedVehicles) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AssignedVehicles) ProtoMessage() {} + +func (x *AssignedVehicles) ProtoReflect() protoreflect.Message { + mi := &file_protos_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AssignedVehicles.ProtoReflect.Descriptor instead. +func (*AssignedVehicles) Descriptor() ([]byte, []int) { + return file_protos_proto_rawDescGZIP(), []int{12} +} + +func (x *AssignedVehicles) GetVins() []string { + if x != nil { + return x.Vins + } + return nil +} + +type AcknowledgeAssignedVehicles struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AcknowledgeAssignedVehicles) Reset() { + *x = AcknowledgeAssignedVehicles{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcknowledgeAssignedVehicles) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeAssignedVehicles) ProtoMessage() {} + +func (x *AcknowledgeAssignedVehicles) ProtoReflect() protoreflect.Message { + mi := &file_protos_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcknowledgeAssignedVehicles.ProtoReflect.Descriptor instead. +func (*AcknowledgeAssignedVehicles) Descriptor() ([]byte, []int) { + return file_protos_proto_rawDescGZIP(), []int{13} +} + +var File_protos_proto protoreflect.FileDescriptor + +var file_protos_proto_rawDesc = []byte{ + 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x44, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x70, + 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x11, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x1a, 0x53, 0x0a, 0x0b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5d, 0x0a, 0x12, 0x55, + 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x6e, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf5, 0x01, 0x0a, 0x13, 0x55, + 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3e, 0x0a, 0x06, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x13, + 0x75, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x70, + 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x75, 0x6e, 0x73, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x1a, 0x53, 0x0a, + 0x0b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2e, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x5f, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x22, 0xf1, 0x02, 0x0a, 0x19, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x54, 0x6f, 0x41, 0x70, 0x70, 0x54, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x12, 0x17, 0x0a, 0x07, 0x63, 0x69, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x63, 0x69, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x15, + 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x07, 0x6f, 0x73, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, + 0x61, 0x6d, 0x65, 0x52, 0x06, 0x6f, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, + 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6f, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x27, 0x0a, + 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x61, 0x72, 0x72, 0x69, 0x65, 0x72, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, + 0x61, 0x72, 0x72, 0x69, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x64, 0x6b, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x55, 0x0a, 0x1b, 0x52, 0x65, 0x73, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x41, 0x70, 0x70, 0x54, 0x77, 0x69, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x69, 0x61, 0x6d, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x69, 0x61, 0x6d, 0x49, 0x64, 0x22, 0xd4, + 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, + 0x41, 0x70, 0x70, 0x54, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x4d, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x35, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x54, 0x6f, 0x41, 0x70, 0x70, 0x54, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x65, + 0x0a, 0x11, 0x52, 0x65, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, + 0x53, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x4a, + 0x57, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x41, + 0x52, 0x47, 0x45, 0x54, 0x5f, 0x44, 0x4f, 0x45, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x58, + 0x49, 0x53, 0x54, 0x10, 0x03, 0x22, 0x73, 0x0a, 0x1a, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x54, 0x6f, 0x41, 0x70, 0x70, 0x54, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3b, 0x0a, + 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x3e, 0x0a, 0x1d, 0x55, 0x6e, + 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x41, 0x70, 0x70, + 0x54, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xda, 0x01, 0x0a, 0x1e, 0x55, + 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x41, 0x70, + 0x70, 0x54, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x41, + 0x70, 0x70, 0x54, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x1a, 0x53, 0x0a, 0x0b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x0b, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, + 0x62, 0x65, 0x61, 0x74, 0x22, 0x26, 0x0a, 0x10, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x76, 0x69, 0x6e, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x76, 0x69, 0x6e, 0x73, 0x22, 0x1d, 0x0a, 0x1b, + 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2a, 0x35, 0x0a, 0x15, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, + 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x4a, 0x57, 0x54, + 0x10, 0x01, 0x2a, 0x71, 0x0a, 0x13, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x4e, 0x4b, + 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, + 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x4f, 0x53, 0x10, 0x01, + 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x4e, 0x44, 0x52, 0x4f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x0c, 0x0a, + 0x08, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, + 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, + 0x57, 0x45, 0x42, 0x10, 0x05, 0x42, 0x1c, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x61, 0x69, + 0x6d, 0x6c, 0x65, 0x72, 0x2e, 0x6d, 0x62, 0x63, 0x61, 0x72, 0x6b, 0x69, 0x74, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_protos_proto_rawDescOnce sync.Once + file_protos_proto_rawDescData = file_protos_proto_rawDesc +) + +func file_protos_proto_rawDescGZIP() []byte { + file_protos_proto_rawDescOnce.Do(func() { + file_protos_proto_rawDescData = protoimpl.X.CompressGZIP(file_protos_proto_rawDescData) + }) + return file_protos_proto_rawDescData +} + +var file_protos_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_protos_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_protos_proto_goTypes = []interface{}{ + (SubscriptionErrorType)(0), // 0: proto.SubscriptionErrorType + (OperatingSystemName)(0), // 1: proto.OperatingSystemName + (ResubscribeToAppTwinResponse_ResubscribeResult)(0), // 2: proto.ResubscribeToAppTwinResponse.ResubscribeResult + (*SubscribeRequest)(nil), // 3: proto.SubscribeRequest + (*SubscribeResponse)(nil), // 4: proto.SubscribeResponse + (*UnsubscribeRequest)(nil), // 5: proto.UnsubscribeRequest + (*UnsubscribeResponse)(nil), // 6: proto.UnsubscribeResponse + (*SubscriptionError)(nil), // 7: proto.SubscriptionError + (*SubscribeToAppTwinRequest)(nil), // 8: proto.SubscribeToAppTwinRequest + (*ResubscribeToAppTwinRequest)(nil), // 9: proto.ResubscribeToAppTwinRequest + (*ResubscribeToAppTwinResponse)(nil), // 10: proto.ResubscribeToAppTwinResponse + (*SubscribeToAppTwinResponse)(nil), // 11: proto.SubscribeToAppTwinResponse + (*UnsubscribeFromAppTwinRequest)(nil), // 12: proto.UnsubscribeFromAppTwinRequest + (*UnsubscribeFromAppTwinResponse)(nil), // 13: proto.UnsubscribeFromAppTwinResponse + (*Heartbeat)(nil), // 14: proto.Heartbeat + (*AssignedVehicles)(nil), // 15: proto.AssignedVehicles + (*AcknowledgeAssignedVehicles)(nil), // 16: proto.AcknowledgeAssignedVehicles + nil, // 17: proto.SubscribeResponse.ErrorsEntry + nil, // 18: proto.UnsubscribeResponse.ErrorsEntry + nil, // 19: proto.UnsubscribeFromAppTwinResponse.ErrorsEntry +} +var file_protos_proto_depIdxs = []int32{ + 17, // 0: proto.SubscribeResponse.errors:type_name -> proto.SubscribeResponse.ErrorsEntry + 18, // 1: proto.UnsubscribeResponse.errors:type_name -> proto.UnsubscribeResponse.ErrorsEntry + 0, // 2: proto.SubscriptionError.code:type_name -> proto.SubscriptionErrorType + 1, // 3: proto.SubscribeToAppTwinRequest.os_name:type_name -> proto.OperatingSystemName + 2, // 4: proto.ResubscribeToAppTwinResponse.result:type_name -> proto.ResubscribeToAppTwinResponse.ResubscribeResult + 0, // 5: proto.SubscribeToAppTwinResponse.error_code:type_name -> proto.SubscriptionErrorType + 19, // 6: proto.UnsubscribeFromAppTwinResponse.errors:type_name -> proto.UnsubscribeFromAppTwinResponse.ErrorsEntry + 7, // 7: proto.SubscribeResponse.ErrorsEntry.value:type_name -> proto.SubscriptionError + 7, // 8: proto.UnsubscribeResponse.ErrorsEntry.value:type_name -> proto.SubscriptionError + 7, // 9: proto.UnsubscribeFromAppTwinResponse.ErrorsEntry.value:type_name -> proto.SubscriptionError + 10, // [10:10] is the sub-list for method output_type + 10, // [10:10] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name +} + +func init() { file_protos_proto_init() } +func file_protos_proto_init() { + if File_protos_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protos_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubscribeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protos_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubscribeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protos_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnsubscribeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protos_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnsubscribeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protos_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubscriptionError); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protos_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubscribeToAppTwinRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protos_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResubscribeToAppTwinRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protos_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResubscribeToAppTwinResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protos_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubscribeToAppTwinResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protos_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnsubscribeFromAppTwinRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protos_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnsubscribeFromAppTwinResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protos_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Heartbeat); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protos_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AssignedVehicles); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protos_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcknowledgeAssignedVehicles); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protos_proto_rawDesc, + NumEnums: 3, + NumMessages: 17, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protos_proto_goTypes, + DependencyIndexes: file_protos_proto_depIdxs, + EnumInfos: file_protos_proto_enumTypes, + MessageInfos: file_protos_proto_msgTypes, + }.Build() + File_protos_proto = out.File + file_protos_proto_rawDesc = nil + file_protos_proto_goTypes = nil + file_protos_proto_depIdxs = nil +} diff --git a/vehicle/mercedes/pb/service-activation.pb.go b/vehicle/mercedes/pb/service-activation.pb.go new file mode 100644 index 000000000..627d01074 --- /dev/null +++ b/vehicle/mercedes/pb/service-activation.pb.go @@ -0,0 +1,496 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v3.21.12 +// source: service-activation.proto + +package protos + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ServiceStatus int32 + +const ( + ServiceStatus_SERVICE_STATUS_UNKNOWN ServiceStatus = 0 + ServiceStatus_SERVICE_STATUS_ACTIVE ServiceStatus = 1 + ServiceStatus_SERVICE_STATUS_INACTIVE ServiceStatus = 2 + ServiceStatus_SERVICE_STATUS_ACTIVATION_PENDING ServiceStatus = 3 + ServiceStatus_SERVICE_STATUS_DEACTIVATION_PENDING ServiceStatus = 4 +) + +// Enum value maps for ServiceStatus. +var ( + ServiceStatus_name = map[int32]string{ + 0: "SERVICE_STATUS_UNKNOWN", + 1: "SERVICE_STATUS_ACTIVE", + 2: "SERVICE_STATUS_INACTIVE", + 3: "SERVICE_STATUS_ACTIVATION_PENDING", + 4: "SERVICE_STATUS_DEACTIVATION_PENDING", + } + ServiceStatus_value = map[string]int32{ + "SERVICE_STATUS_UNKNOWN": 0, + "SERVICE_STATUS_ACTIVE": 1, + "SERVICE_STATUS_INACTIVE": 2, + "SERVICE_STATUS_ACTIVATION_PENDING": 3, + "SERVICE_STATUS_DEACTIVATION_PENDING": 4, + } +) + +func (x ServiceStatus) Enum() *ServiceStatus { + p := new(ServiceStatus) + *p = x + return p +} + +func (x ServiceStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ServiceStatus) Descriptor() protoreflect.EnumDescriptor { + return file_service_activation_proto_enumTypes[0].Descriptor() +} + +func (ServiceStatus) Type() protoreflect.EnumType { + return &file_service_activation_proto_enumTypes[0] +} + +func (x ServiceStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ServiceStatus.Descriptor instead. +func (ServiceStatus) EnumDescriptor() ([]byte, []int) { + return file_service_activation_proto_rawDescGZIP(), []int{0} +} + +type AcknowledgeServiceStatusUpdatesByVIN struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` +} + +func (x *AcknowledgeServiceStatusUpdatesByVIN) Reset() { + *x = AcknowledgeServiceStatusUpdatesByVIN{} + if protoimpl.UnsafeEnabled { + mi := &file_service_activation_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcknowledgeServiceStatusUpdatesByVIN) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeServiceStatusUpdatesByVIN) ProtoMessage() {} + +func (x *AcknowledgeServiceStatusUpdatesByVIN) ProtoReflect() protoreflect.Message { + mi := &file_service_activation_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcknowledgeServiceStatusUpdatesByVIN.ProtoReflect.Descriptor instead. +func (*AcknowledgeServiceStatusUpdatesByVIN) Descriptor() ([]byte, []int) { + return file_service_activation_proto_rawDescGZIP(), []int{0} +} + +func (x *AcknowledgeServiceStatusUpdatesByVIN) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +type AcknowledgeServiceStatusUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` +} + +func (x *AcknowledgeServiceStatusUpdate) Reset() { + *x = AcknowledgeServiceStatusUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_service_activation_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcknowledgeServiceStatusUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeServiceStatusUpdate) ProtoMessage() {} + +func (x *AcknowledgeServiceStatusUpdate) ProtoReflect() protoreflect.Message { + mi := &file_service_activation_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcknowledgeServiceStatusUpdate.ProtoReflect.Descriptor instead. +func (*AcknowledgeServiceStatusUpdate) Descriptor() ([]byte, []int) { + return file_service_activation_proto_rawDescGZIP(), []int{1} +} + +func (x *AcknowledgeServiceStatusUpdate) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +type ServiceStatusUpdatesByVIN struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + // Updates with VinOrFins + Updates map[string]*ServiceStatusUpdate `protobuf:"bytes,2,rep,name=updates,proto3" json:"updates,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *ServiceStatusUpdatesByVIN) Reset() { + *x = ServiceStatusUpdatesByVIN{} + if protoimpl.UnsafeEnabled { + mi := &file_service_activation_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServiceStatusUpdatesByVIN) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServiceStatusUpdatesByVIN) ProtoMessage() {} + +func (x *ServiceStatusUpdatesByVIN) ProtoReflect() protoreflect.Message { + mi := &file_service_activation_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServiceStatusUpdatesByVIN.ProtoReflect.Descriptor instead. +func (*ServiceStatusUpdatesByVIN) Descriptor() ([]byte, []int) { + return file_service_activation_proto_rawDescGZIP(), []int{2} +} + +func (x *ServiceStatusUpdatesByVIN) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +func (x *ServiceStatusUpdatesByVIN) GetUpdates() map[string]*ServiceStatusUpdate { + if x != nil { + return x.Updates + } + return nil +} + +type ServiceStatusUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + CiamId string `protobuf:"bytes,7,opt,name=ciam_id,json=ciamId,proto3" json:"ciam_id,omitempty"` + // FinOrVin + Vin string `protobuf:"bytes,5,opt,name=vin,proto3" json:"vin,omitempty"` + // when was the event emitted? This is the time of the update, + // not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp + EmitTimestamp int64 `protobuf:"varint,2,opt,name=emit_timestamp,json=emitTimestamp,proto3" json:"emit_timestamp,omitempty"` + // When was the event emitted (milliseconds in Unix time) + EmitTimestampInMs int64 `protobuf:"varint,8,opt,name=emit_timestamp_in_ms,json=emitTimestampInMs,proto3" json:"emit_timestamp_in_ms,omitempty"` + // serviceID -> Status + Updates map[int32]ServiceStatus `protobuf:"bytes,6,rep,name=updates,proto3" json:"updates,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=proto.ServiceStatus"` +} + +func (x *ServiceStatusUpdate) Reset() { + *x = ServiceStatusUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_service_activation_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServiceStatusUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServiceStatusUpdate) ProtoMessage() {} + +func (x *ServiceStatusUpdate) ProtoReflect() protoreflect.Message { + mi := &file_service_activation_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServiceStatusUpdate.ProtoReflect.Descriptor instead. +func (*ServiceStatusUpdate) Descriptor() ([]byte, []int) { + return file_service_activation_proto_rawDescGZIP(), []int{3} +} + +func (x *ServiceStatusUpdate) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +func (x *ServiceStatusUpdate) GetCiamId() string { + if x != nil { + return x.CiamId + } + return "" +} + +func (x *ServiceStatusUpdate) GetVin() string { + if x != nil { + return x.Vin + } + return "" +} + +func (x *ServiceStatusUpdate) GetEmitTimestamp() int64 { + if x != nil { + return x.EmitTimestamp + } + return 0 +} + +func (x *ServiceStatusUpdate) GetEmitTimestampInMs() int64 { + if x != nil { + return x.EmitTimestampInMs + } + return 0 +} + +func (x *ServiceStatusUpdate) GetUpdates() map[int32]ServiceStatus { + if x != nil { + return x.Updates + } + return nil +} + +var File_service_activation_proto protoreflect.FileDescriptor + +var file_service_activation_proto_rawDesc = []byte{ + 0x0a, 0x18, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x4f, 0x0a, 0x24, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x56, 0x49, 0x4e, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x22, 0x49, 0x0a, 0x1e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, + 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xe5, 0x01, + 0x0a, 0x19, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x56, 0x49, 0x4e, 0x12, 0x27, 0x0a, 0x0f, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x42, 0x79, 0x56, 0x49, 0x4e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x56, 0x0a, + 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd6, 0x02, 0x0a, 0x13, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, + 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x69, 0x61, 0x6d, 0x5f, 0x69, + 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x69, 0x61, 0x6d, 0x49, 0x64, 0x12, + 0x10, 0x0a, 0x03, 0x76, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x69, + 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x65, 0x6d, 0x69, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2f, 0x0a, 0x14, 0x65, 0x6d, 0x69, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x65, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x49, 0x6e, 0x4d, 0x73, 0x12, 0x41, 0x0a, 0x07, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x50, 0x0a, 0x0c, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0xb3, + 0x01, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, + 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x45, 0x52, 0x56, 0x49, + 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, + 0x56, 0x45, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x53, + 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x45, + 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, + 0x4e, 0x47, 0x10, 0x04, 0x42, 0x1c, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x61, 0x69, 0x6d, + 0x6c, 0x65, 0x72, 0x2e, 0x6d, 0x62, 0x63, 0x61, 0x72, 0x6b, 0x69, 0x74, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_service_activation_proto_rawDescOnce sync.Once + file_service_activation_proto_rawDescData = file_service_activation_proto_rawDesc +) + +func file_service_activation_proto_rawDescGZIP() []byte { + file_service_activation_proto_rawDescOnce.Do(func() { + file_service_activation_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_activation_proto_rawDescData) + }) + return file_service_activation_proto_rawDescData +} + +var file_service_activation_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_service_activation_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_service_activation_proto_goTypes = []interface{}{ + (ServiceStatus)(0), // 0: proto.ServiceStatus + (*AcknowledgeServiceStatusUpdatesByVIN)(nil), // 1: proto.AcknowledgeServiceStatusUpdatesByVIN + (*AcknowledgeServiceStatusUpdate)(nil), // 2: proto.AcknowledgeServiceStatusUpdate + (*ServiceStatusUpdatesByVIN)(nil), // 3: proto.ServiceStatusUpdatesByVIN + (*ServiceStatusUpdate)(nil), // 4: proto.ServiceStatusUpdate + nil, // 5: proto.ServiceStatusUpdatesByVIN.UpdatesEntry + nil, // 6: proto.ServiceStatusUpdate.UpdatesEntry +} +var file_service_activation_proto_depIdxs = []int32{ + 5, // 0: proto.ServiceStatusUpdatesByVIN.updates:type_name -> proto.ServiceStatusUpdatesByVIN.UpdatesEntry + 6, // 1: proto.ServiceStatusUpdate.updates:type_name -> proto.ServiceStatusUpdate.UpdatesEntry + 4, // 2: proto.ServiceStatusUpdatesByVIN.UpdatesEntry.value:type_name -> proto.ServiceStatusUpdate + 0, // 3: proto.ServiceStatusUpdate.UpdatesEntry.value:type_name -> proto.ServiceStatus + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_service_activation_proto_init() } +func file_service_activation_proto_init() { + if File_service_activation_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_service_activation_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcknowledgeServiceStatusUpdatesByVIN); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_activation_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcknowledgeServiceStatusUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_activation_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServiceStatusUpdatesByVIN); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_activation_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServiceStatusUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_service_activation_proto_rawDesc, + NumEnums: 1, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_service_activation_proto_goTypes, + DependencyIndexes: file_service_activation_proto_depIdxs, + EnumInfos: file_service_activation_proto_enumTypes, + MessageInfos: file_service_activation_proto_msgTypes, + }.Build() + File_service_activation_proto = out.File + file_service_activation_proto_rawDesc = nil + file_service_activation_proto_goTypes = nil + file_service_activation_proto_depIdxs = nil +} diff --git a/vehicle/mercedes/pb/user-events.pb.go b/vehicle/mercedes/pb/user-events.pb.go new file mode 100644 index 000000000..96129a869 --- /dev/null +++ b/vehicle/mercedes/pb/user-events.pb.go @@ -0,0 +1,1573 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v3.21.12 +// source: user-events.proto + +package protos + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type AcknowledgeUserDataUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` +} + +func (x *AcknowledgeUserDataUpdate) Reset() { + *x = AcknowledgeUserDataUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_user_events_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcknowledgeUserDataUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeUserDataUpdate) ProtoMessage() {} + +func (x *AcknowledgeUserDataUpdate) ProtoReflect() protoreflect.Message { + mi := &file_user_events_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcknowledgeUserDataUpdate.ProtoReflect.Descriptor instead. +func (*AcknowledgeUserDataUpdate) Descriptor() ([]byte, []int) { + return file_user_events_proto_rawDescGZIP(), []int{0} +} + +func (x *AcknowledgeUserDataUpdate) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +type UserDataUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + CiamId string `protobuf:"bytes,2,opt,name=ciam_id,json=ciamId,proto3" json:"ciam_id,omitempty"` + // when was the event emitted? This is the time of the update, + // not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp + EmitTimestamp int64 `protobuf:"varint,3,opt,name=emit_timestamp,json=emitTimestamp,proto3" json:"emit_timestamp,omitempty"` + // When was the event emitted (milliseconds in Unix time) + EmitTimestampInMs int64 `protobuf:"varint,8,opt,name=emit_timestamp_in_ms,json=emitTimestampInMs,proto3" json:"emit_timestamp_in_ms,omitempty"` + OldData *CPDUserData `protobuf:"bytes,6,opt,name=old_data,json=oldData,proto3" json:"old_data,omitempty"` + NewData *CPDUserData `protobuf:"bytes,7,opt,name=new_data,json=newData,proto3" json:"new_data,omitempty"` +} + +func (x *UserDataUpdate) Reset() { + *x = UserDataUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_user_events_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserDataUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserDataUpdate) ProtoMessage() {} + +func (x *UserDataUpdate) ProtoReflect() protoreflect.Message { + mi := &file_user_events_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserDataUpdate.ProtoReflect.Descriptor instead. +func (*UserDataUpdate) Descriptor() ([]byte, []int) { + return file_user_events_proto_rawDescGZIP(), []int{1} +} + +func (x *UserDataUpdate) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +func (x *UserDataUpdate) GetCiamId() string { + if x != nil { + return x.CiamId + } + return "" +} + +func (x *UserDataUpdate) GetEmitTimestamp() int64 { + if x != nil { + return x.EmitTimestamp + } + return 0 +} + +func (x *UserDataUpdate) GetEmitTimestampInMs() int64 { + if x != nil { + return x.EmitTimestampInMs + } + return 0 +} + +func (x *UserDataUpdate) GetOldData() *CPDUserData { + if x != nil { + return x.OldData + } + return nil +} + +func (x *UserDataUpdate) GetNewData() *CPDUserData { + if x != nil { + return x.NewData + } + return nil +} + +type AcknowledgeUserVehicleAuthChangedUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` +} + +func (x *AcknowledgeUserVehicleAuthChangedUpdate) Reset() { + *x = AcknowledgeUserVehicleAuthChangedUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_user_events_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcknowledgeUserVehicleAuthChangedUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeUserVehicleAuthChangedUpdate) ProtoMessage() {} + +func (x *AcknowledgeUserVehicleAuthChangedUpdate) ProtoReflect() protoreflect.Message { + mi := &file_user_events_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcknowledgeUserVehicleAuthChangedUpdate.ProtoReflect.Descriptor instead. +func (*AcknowledgeUserVehicleAuthChangedUpdate) Descriptor() ([]byte, []int) { + return file_user_events_proto_rawDescGZIP(), []int{2} +} + +func (x *AcknowledgeUserVehicleAuthChangedUpdate) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +type AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` +} + +func (x *AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) Reset() { + *x = AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI{} + if protoimpl.UnsafeEnabled { + mi := &file_user_events_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) ProtoMessage() {} + +func (x *AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) ProtoReflect() protoreflect.Message { + mi := &file_user_events_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.ProtoReflect.Descriptor instead. +func (*AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) Descriptor() ([]byte, []int) { + return file_user_events_proto_rawDescGZIP(), []int{3} +} + +func (x *AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +type UserVehicleAuthChangedUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + CiamId string `protobuf:"bytes,2,opt,name=ciam_id,json=ciamId,proto3" json:"ciam_id,omitempty"` + // when was the event emitted? This is the time of the update, + // not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp + EmitTimestamp int64 `protobuf:"varint,3,opt,name=emit_timestamp,json=emitTimestamp,proto3" json:"emit_timestamp,omitempty"` + // When was the event emitted (milliseconds in Unix time) + EmitTimestampInMs int64 `protobuf:"varint,8,opt,name=emit_timestamp_in_ms,json=emitTimestampInMs,proto3" json:"emit_timestamp_in_ms,omitempty"` +} + +func (x *UserVehicleAuthChangedUpdate) Reset() { + *x = UserVehicleAuthChangedUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_user_events_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserVehicleAuthChangedUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserVehicleAuthChangedUpdate) ProtoMessage() {} + +func (x *UserVehicleAuthChangedUpdate) ProtoReflect() protoreflect.Message { + mi := &file_user_events_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserVehicleAuthChangedUpdate.ProtoReflect.Descriptor instead. +func (*UserVehicleAuthChangedUpdate) Descriptor() ([]byte, []int) { + return file_user_events_proto_rawDescGZIP(), []int{4} +} + +func (x *UserVehicleAuthChangedUpdate) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +func (x *UserVehicleAuthChangedUpdate) GetCiamId() string { + if x != nil { + return x.CiamId + } + return "" +} + +func (x *UserVehicleAuthChangedUpdate) GetEmitTimestamp() int64 { + if x != nil { + return x.EmitTimestamp + } + return 0 +} + +func (x *UserVehicleAuthChangedUpdate) GetEmitTimestampInMs() int64 { + if x != nil { + return x.EmitTimestampInMs + } + return 0 +} + +type CPDUserData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CiamId string `protobuf:"bytes,1,opt,name=ciam_id,json=ciamId,proto3" json:"ciam_id,omitempty"` + UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + FirstName string `protobuf:"bytes,3,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName1 string `protobuf:"bytes,4,opt,name=last_name1,json=lastName1,proto3" json:"last_name1,omitempty"` + LastName2 string `protobuf:"bytes,5,opt,name=last_name2,json=lastName2,proto3" json:"last_name2,omitempty"` + Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title,omitempty"` + NamePrefix string `protobuf:"bytes,7,opt,name=name_prefix,json=namePrefix,proto3" json:"name_prefix,omitempty"` + MiddleInitial string `protobuf:"bytes,8,opt,name=middle_initial,json=middleInitial,proto3" json:"middle_initial,omitempty"` + SalutationCode string `protobuf:"bytes,9,opt,name=salutation_code,json=salutationCode,proto3" json:"salutation_code,omitempty"` + Email string `protobuf:"bytes,10,opt,name=email,proto3" json:"email,omitempty"` + LandlinePhone string `protobuf:"bytes,11,opt,name=landline_phone,json=landlinePhone,proto3" json:"landline_phone,omitempty"` + MobilePhoneNumber string `protobuf:"bytes,12,opt,name=mobile_phone_number,json=mobilePhoneNumber,proto3" json:"mobile_phone_number,omitempty"` + CreatedAt string `protobuf:"bytes,13,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + CreatedBy string `protobuf:"bytes,14,opt,name=created_by,json=createdBy,proto3" json:"created_by,omitempty"` + UpdatedAt string `protobuf:"bytes,15,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + Birthday string `protobuf:"bytes,28,opt,name=birthday,proto3" json:"birthday,omitempty"` + PreferredLanguageCode string `protobuf:"bytes,29,opt,name=preferred_language_code,json=preferredLanguageCode,proto3" json:"preferred_language_code,omitempty"` + AccountCountryCode string `protobuf:"bytes,30,opt,name=account_country_code,json=accountCountryCode,proto3" json:"account_country_code,omitempty"` + // doc says: TODO + UcId string `protobuf:"bytes,31,opt,name=uc_id,json=ucId,proto3" json:"uc_id,omitempty"` + Vip bool `protobuf:"varint,32,opt,name=vip,proto3" json:"vip,omitempty"` + Address *CPDUserAddress `protobuf:"bytes,33,opt,name=address,proto3" json:"address,omitempty"` + CommunicationPreference *CPDUserCommunicationPreference `protobuf:"bytes,34,opt,name=communication_preference,json=communicationPreference,proto3" json:"communication_preference,omitempty"` +} + +func (x *CPDUserData) Reset() { + *x = CPDUserData{} + if protoimpl.UnsafeEnabled { + mi := &file_user_events_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CPDUserData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CPDUserData) ProtoMessage() {} + +func (x *CPDUserData) ProtoReflect() protoreflect.Message { + mi := &file_user_events_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CPDUserData.ProtoReflect.Descriptor instead. +func (*CPDUserData) Descriptor() ([]byte, []int) { + return file_user_events_proto_rawDescGZIP(), []int{5} +} + +func (x *CPDUserData) GetCiamId() string { + if x != nil { + return x.CiamId + } + return "" +} + +func (x *CPDUserData) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *CPDUserData) GetFirstName() string { + if x != nil { + return x.FirstName + } + return "" +} + +func (x *CPDUserData) GetLastName1() string { + if x != nil { + return x.LastName1 + } + return "" +} + +func (x *CPDUserData) GetLastName2() string { + if x != nil { + return x.LastName2 + } + return "" +} + +func (x *CPDUserData) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *CPDUserData) GetNamePrefix() string { + if x != nil { + return x.NamePrefix + } + return "" +} + +func (x *CPDUserData) GetMiddleInitial() string { + if x != nil { + return x.MiddleInitial + } + return "" +} + +func (x *CPDUserData) GetSalutationCode() string { + if x != nil { + return x.SalutationCode + } + return "" +} + +func (x *CPDUserData) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *CPDUserData) GetLandlinePhone() string { + if x != nil { + return x.LandlinePhone + } + return "" +} + +func (x *CPDUserData) GetMobilePhoneNumber() string { + if x != nil { + return x.MobilePhoneNumber + } + return "" +} + +func (x *CPDUserData) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +func (x *CPDUserData) GetCreatedBy() string { + if x != nil { + return x.CreatedBy + } + return "" +} + +func (x *CPDUserData) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" +} + +func (x *CPDUserData) GetBirthday() string { + if x != nil { + return x.Birthday + } + return "" +} + +func (x *CPDUserData) GetPreferredLanguageCode() string { + if x != nil { + return x.PreferredLanguageCode + } + return "" +} + +func (x *CPDUserData) GetAccountCountryCode() string { + if x != nil { + return x.AccountCountryCode + } + return "" +} + +func (x *CPDUserData) GetUcId() string { + if x != nil { + return x.UcId + } + return "" +} + +func (x *CPDUserData) GetVip() bool { + if x != nil { + return x.Vip + } + return false +} + +func (x *CPDUserData) GetAddress() *CPDUserAddress { + if x != nil { + return x.Address + } + return nil +} + +func (x *CPDUserData) GetCommunicationPreference() *CPDUserCommunicationPreference { + if x != nil { + return x.CommunicationPreference + } + return nil +} + +type CPDUserAddress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CountryCode string `protobuf:"bytes,1,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"` + State string `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"` + Province string `protobuf:"bytes,3,opt,name=province,proto3" json:"province,omitempty"` + Street string `protobuf:"bytes,4,opt,name=street,proto3" json:"street,omitempty"` + HouseNo string `protobuf:"bytes,5,opt,name=house_no,json=houseNo,proto3" json:"house_no,omitempty"` + ZipCode string `protobuf:"bytes,6,opt,name=zip_code,json=zipCode,proto3" json:"zip_code,omitempty"` + City string `protobuf:"bytes,7,opt,name=city,proto3" json:"city,omitempty"` + StreetType string `protobuf:"bytes,8,opt,name=street_type,json=streetType,proto3" json:"street_type,omitempty"` + HouseName string `protobuf:"bytes,9,opt,name=house_name,json=houseName,proto3" json:"house_name,omitempty"` + FloorNo string `protobuf:"bytes,10,opt,name=floor_no,json=floorNo,proto3" json:"floor_no,omitempty"` + DoorNo string `protobuf:"bytes,11,opt,name=door_no,json=doorNo,proto3" json:"door_no,omitempty"` + AddressLine1 string `protobuf:"bytes,12,opt,name=address_line1,json=addressLine1,proto3" json:"address_line1,omitempty"` + AddressLine2 string `protobuf:"bytes,13,opt,name=address_line2,json=addressLine2,proto3" json:"address_line2,omitempty"` + AddressLine3 string `protobuf:"bytes,14,opt,name=address_line3,json=addressLine3,proto3" json:"address_line3,omitempty"` + PostOfficeBox string `protobuf:"bytes,15,opt,name=post_office_box,json=postOfficeBox,proto3" json:"post_office_box,omitempty"` +} + +func (x *CPDUserAddress) Reset() { + *x = CPDUserAddress{} + if protoimpl.UnsafeEnabled { + mi := &file_user_events_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CPDUserAddress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CPDUserAddress) ProtoMessage() {} + +func (x *CPDUserAddress) ProtoReflect() protoreflect.Message { + mi := &file_user_events_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CPDUserAddress.ProtoReflect.Descriptor instead. +func (*CPDUserAddress) Descriptor() ([]byte, []int) { + return file_user_events_proto_rawDescGZIP(), []int{6} +} + +func (x *CPDUserAddress) GetCountryCode() string { + if x != nil { + return x.CountryCode + } + return "" +} + +func (x *CPDUserAddress) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *CPDUserAddress) GetProvince() string { + if x != nil { + return x.Province + } + return "" +} + +func (x *CPDUserAddress) GetStreet() string { + if x != nil { + return x.Street + } + return "" +} + +func (x *CPDUserAddress) GetHouseNo() string { + if x != nil { + return x.HouseNo + } + return "" +} + +func (x *CPDUserAddress) GetZipCode() string { + if x != nil { + return x.ZipCode + } + return "" +} + +func (x *CPDUserAddress) GetCity() string { + if x != nil { + return x.City + } + return "" +} + +func (x *CPDUserAddress) GetStreetType() string { + if x != nil { + return x.StreetType + } + return "" +} + +func (x *CPDUserAddress) GetHouseName() string { + if x != nil { + return x.HouseName + } + return "" +} + +func (x *CPDUserAddress) GetFloorNo() string { + if x != nil { + return x.FloorNo + } + return "" +} + +func (x *CPDUserAddress) GetDoorNo() string { + if x != nil { + return x.DoorNo + } + return "" +} + +func (x *CPDUserAddress) GetAddressLine1() string { + if x != nil { + return x.AddressLine1 + } + return "" +} + +func (x *CPDUserAddress) GetAddressLine2() string { + if x != nil { + return x.AddressLine2 + } + return "" +} + +func (x *CPDUserAddress) GetAddressLine3() string { + if x != nil { + return x.AddressLine3 + } + return "" +} + +func (x *CPDUserAddress) GetPostOfficeBox() string { + if x != nil { + return x.PostOfficeBox + } + return "" +} + +type CPDUserCommunicationPreference struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ContactedByPhone bool `protobuf:"varint,1,opt,name=contacted_by_phone,json=contactedByPhone,proto3" json:"contacted_by_phone,omitempty"` + ContactedByLetter bool `protobuf:"varint,2,opt,name=contacted_by_letter,json=contactedByLetter,proto3" json:"contacted_by_letter,omitempty"` + ContactedByEmail bool `protobuf:"varint,3,opt,name=contacted_by_email,json=contactedByEmail,proto3" json:"contacted_by_email,omitempty"` + ContactedBySms bool `protobuf:"varint,4,opt,name=contacted_by_sms,json=contactedBySms,proto3" json:"contacted_by_sms,omitempty"` +} + +func (x *CPDUserCommunicationPreference) Reset() { + *x = CPDUserCommunicationPreference{} + if protoimpl.UnsafeEnabled { + mi := &file_user_events_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CPDUserCommunicationPreference) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CPDUserCommunicationPreference) ProtoMessage() {} + +func (x *CPDUserCommunicationPreference) ProtoReflect() protoreflect.Message { + mi := &file_user_events_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CPDUserCommunicationPreference.ProtoReflect.Descriptor instead. +func (*CPDUserCommunicationPreference) Descriptor() ([]byte, []int) { + return file_user_events_proto_rawDescGZIP(), []int{7} +} + +func (x *CPDUserCommunicationPreference) GetContactedByPhone() bool { + if x != nil { + return x.ContactedByPhone + } + return false +} + +func (x *CPDUserCommunicationPreference) GetContactedByLetter() bool { + if x != nil { + return x.ContactedByLetter + } + return false +} + +func (x *CPDUserCommunicationPreference) GetContactedByEmail() bool { + if x != nil { + return x.ContactedByEmail + } + return false +} + +func (x *CPDUserCommunicationPreference) GetContactedBySms() bool { + if x != nil { + return x.ContactedBySms + } + return false +} + +type AcknowledgeUserPictureUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` +} + +func (x *AcknowledgeUserPictureUpdate) Reset() { + *x = AcknowledgeUserPictureUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_user_events_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcknowledgeUserPictureUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeUserPictureUpdate) ProtoMessage() {} + +func (x *AcknowledgeUserPictureUpdate) ProtoReflect() protoreflect.Message { + mi := &file_user_events_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcknowledgeUserPictureUpdate.ProtoReflect.Descriptor instead. +func (*AcknowledgeUserPictureUpdate) Descriptor() ([]byte, []int) { + return file_user_events_proto_rawDescGZIP(), []int{8} +} + +func (x *AcknowledgeUserPictureUpdate) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +// Sent after a picture upload/change +type UserPictureUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + // ciam ID + CiamId string `protobuf:"bytes,5,opt,name=ciam_id,json=ciamId,proto3" json:"ciam_id,omitempty"` + // when was the event emitted? This is the time of the update + EmitTimestamp int64 `protobuf:"varint,2,opt,name=emit_timestamp,json=emitTimestamp,proto3" json:"emit_timestamp,omitempty"` + // When was the event emitted (milliseconds in Unix time) + EmitTimestampInMs int64 `protobuf:"varint,6,opt,name=emit_timestamp_in_ms,json=emitTimestampInMs,proto3" json:"emit_timestamp_in_ms,omitempty"` + // this timestamp indicates when a message was read from the eventhub + EventhubReceiveTimestamp int64 `protobuf:"varint,3,opt,name=eventhub_receive_timestamp,json=eventhubReceiveTimestamp,proto3" json:"eventhub_receive_timestamp,omitempty"` + // this timestamp indicates when a message was processed in the app twin + ApptwinReceiveTimestamp int64 `protobuf:"varint,4,opt,name=apptwin_receive_timestamp,json=apptwinReceiveTimestamp,proto3" json:"apptwin_receive_timestamp,omitempty"` +} + +func (x *UserPictureUpdate) Reset() { + *x = UserPictureUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_user_events_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserPictureUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserPictureUpdate) ProtoMessage() {} + +func (x *UserPictureUpdate) ProtoReflect() protoreflect.Message { + mi := &file_user_events_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserPictureUpdate.ProtoReflect.Descriptor instead. +func (*UserPictureUpdate) Descriptor() ([]byte, []int) { + return file_user_events_proto_rawDescGZIP(), []int{9} +} + +func (x *UserPictureUpdate) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +func (x *UserPictureUpdate) GetCiamId() string { + if x != nil { + return x.CiamId + } + return "" +} + +func (x *UserPictureUpdate) GetEmitTimestamp() int64 { + if x != nil { + return x.EmitTimestamp + } + return 0 +} + +func (x *UserPictureUpdate) GetEmitTimestampInMs() int64 { + if x != nil { + return x.EmitTimestampInMs + } + return 0 +} + +func (x *UserPictureUpdate) GetEventhubReceiveTimestamp() int64 { + if x != nil { + return x.EventhubReceiveTimestamp + } + return 0 +} + +func (x *UserPictureUpdate) GetApptwinReceiveTimestamp() int64 { + if x != nil { + return x.ApptwinReceiveTimestamp + } + return 0 +} + +type AcknowledgeUserPINUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` +} + +func (x *AcknowledgeUserPINUpdate) Reset() { + *x = AcknowledgeUserPINUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_user_events_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcknowledgeUserPINUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeUserPINUpdate) ProtoMessage() {} + +func (x *AcknowledgeUserPINUpdate) ProtoReflect() protoreflect.Message { + mi := &file_user_events_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcknowledgeUserPINUpdate.ProtoReflect.Descriptor instead. +func (*AcknowledgeUserPINUpdate) Descriptor() ([]byte, []int) { + return file_user_events_proto_rawDescGZIP(), []int{10} +} + +func (x *AcknowledgeUserPINUpdate) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +// Sent after a PIN update +type UserPINUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + // ciam ID + CiamId string `protobuf:"bytes,5,opt,name=ciam_id,json=ciamId,proto3" json:"ciam_id,omitempty"` + // when was the event emitted? This is the time of the update + EmitTimestamp int64 `protobuf:"varint,2,opt,name=emit_timestamp,json=emitTimestamp,proto3" json:"emit_timestamp,omitempty"` + // When was the event emitted (milliseconds in Unix time) + EmitTimestampInMs int64 `protobuf:"varint,6,opt,name=emit_timestamp_in_ms,json=emitTimestampInMs,proto3" json:"emit_timestamp_in_ms,omitempty"` + // this timestamp indicates when a message was read from the eventhub + EventhubReceiveTimestamp int64 `protobuf:"varint,3,opt,name=eventhub_receive_timestamp,json=eventhubReceiveTimestamp,proto3" json:"eventhub_receive_timestamp,omitempty"` + // this timestamp indicates when a message was processed in the app twin + ApptwinReceiveTimestamp int64 `protobuf:"varint,4,opt,name=apptwin_receive_timestamp,json=apptwinReceiveTimestamp,proto3" json:"apptwin_receive_timestamp,omitempty"` +} + +func (x *UserPINUpdate) Reset() { + *x = UserPINUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_user_events_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserPINUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserPINUpdate) ProtoMessage() {} + +func (x *UserPINUpdate) ProtoReflect() protoreflect.Message { + mi := &file_user_events_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserPINUpdate.ProtoReflect.Descriptor instead. +func (*UserPINUpdate) Descriptor() ([]byte, []int) { + return file_user_events_proto_rawDescGZIP(), []int{11} +} + +func (x *UserPINUpdate) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +func (x *UserPINUpdate) GetCiamId() string { + if x != nil { + return x.CiamId + } + return "" +} + +func (x *UserPINUpdate) GetEmitTimestamp() int64 { + if x != nil { + return x.EmitTimestamp + } + return 0 +} + +func (x *UserPINUpdate) GetEmitTimestampInMs() int64 { + if x != nil { + return x.EmitTimestampInMs + } + return 0 +} + +func (x *UserPINUpdate) GetEventhubReceiveTimestamp() int64 { + if x != nil { + return x.EventhubReceiveTimestamp + } + return 0 +} + +func (x *UserPINUpdate) GetApptwinReceiveTimestamp() int64 { + if x != nil { + return x.ApptwinReceiveTimestamp + } + return 0 +} + +// Contains the refreshed jwt of the user +type UpdateUserJWTRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Jwt string `protobuf:"bytes,1,opt,name=jwt,proto3" json:"jwt,omitempty"` +} + +func (x *UpdateUserJWTRequest) Reset() { + *x = UpdateUserJWTRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_events_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateUserJWTRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUserJWTRequest) ProtoMessage() {} + +func (x *UpdateUserJWTRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_events_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateUserJWTRequest.ProtoReflect.Descriptor instead. +func (*UpdateUserJWTRequest) Descriptor() ([]byte, []int) { + return file_user_events_proto_rawDescGZIP(), []int{12} +} + +func (x *UpdateUserJWTRequest) GetJwt() string { + if x != nil { + return x.Jwt + } + return "" +} + +// Ack for the UpdateUserJWTRequest +type AcknowledgeUpdateUserJWTRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AcknowledgeUpdateUserJWTRequest) Reset() { + *x = AcknowledgeUpdateUserJWTRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_events_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcknowledgeUpdateUserJWTRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeUpdateUserJWTRequest) ProtoMessage() {} + +func (x *AcknowledgeUpdateUserJWTRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_events_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcknowledgeUpdateUserJWTRequest.ProtoReflect.Descriptor instead. +func (*AcknowledgeUpdateUserJWTRequest) Descriptor() ([]byte, []int) { + return file_user_events_proto_rawDescGZIP(), []int{13} +} + +var File_user_events_proto protoreflect.FileDescriptor + +var file_user_events_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x44, 0x0a, 0x19, 0x41, 0x63, + 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, + 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x88, 0x02, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, + 0x63, 0x69, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, + 0x69, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x65, + 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2f, 0x0a, 0x14, + 0x65, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x69, + 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x65, 0x6d, 0x69, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x49, 0x6e, 0x4d, 0x73, 0x12, 0x2d, 0x0a, + 0x08, 0x6f, 0x6c, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x50, 0x44, 0x55, 0x73, 0x65, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x07, 0x6f, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x08, + 0x6e, 0x65, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x50, 0x44, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x22, 0x52, 0x0a, 0x27, 0x41, + 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x56, 0x65, + 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, + 0x5e, 0x0a, 0x33, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x41, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x47, 0x65, 0x74, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, + 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x52, + 0x65, 0x73, 0x74, 0x41, 0x50, 0x49, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, + 0xb8, 0x01, 0x0a, 0x1c, 0x55, 0x73, 0x65, 0x72, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, + 0x75, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x69, 0x61, + 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x69, 0x61, 0x6d, + 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x65, 0x6d, 0x69, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2f, 0x0a, 0x14, 0x65, 0x6d, 0x69, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x65, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x49, 0x6e, 0x4d, 0x73, 0x22, 0xad, 0x06, 0x0a, 0x0b, 0x43, + 0x50, 0x44, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x69, + 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x69, 0x61, + 0x6d, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6c, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, + 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6c, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, + 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x61, 0x6c, 0x75, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x73, 0x61, 0x6c, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x61, 0x6e, 0x64, 0x6c, 0x69, + 0x6e, 0x65, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x6c, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2e, 0x0a, + 0x13, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x6f, 0x62, 0x69, + 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, + 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, + 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0x36, 0x0a, 0x17, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, + 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x30, + 0x0a, 0x14, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, + 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x13, 0x0a, 0x05, 0x75, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x75, 0x63, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x69, 0x70, 0x18, 0x20, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x03, 0x76, 0x69, 0x70, 0x12, 0x2f, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x43, 0x50, 0x44, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x60, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x43, 0x50, 0x44, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x52, 0x17, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xd2, 0x03, 0x0a, 0x0e, 0x43, + 0x50, 0x44, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, + 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, + 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, + 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x6f, + 0x75, 0x73, 0x65, 0x5f, 0x6e, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x6f, + 0x75, 0x73, 0x65, 0x4e, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x7a, 0x69, 0x70, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x7a, 0x69, 0x70, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x65, 0x65, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x6f, 0x75, 0x73, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x5f, 0x6e, 0x6f, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x4e, 0x6f, 0x12, + 0x17, 0x0a, 0x07, 0x64, 0x6f, 0x6f, 0x72, 0x5f, 0x6e, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x64, 0x6f, 0x6f, 0x72, 0x4e, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x31, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x6e, 0x65, 0x31, 0x12, 0x23, 0x0a, + 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x32, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x6e, + 0x65, 0x32, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, + 0x6e, 0x65, 0x33, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x4c, 0x69, 0x6e, 0x65, 0x33, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x6f, 0x73, 0x74, 0x5f, + 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x5f, 0x62, 0x6f, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x74, 0x4f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x42, 0x6f, 0x78, 0x22, + 0xd6, 0x01, 0x0a, 0x1e, 0x43, 0x50, 0x44, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x65, 0x64, 0x5f, + 0x62, 0x79, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x65, 0x64, 0x42, 0x79, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, + 0x5f, 0x6c, 0x65, 0x74, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x65, 0x64, 0x42, 0x79, 0x4c, 0x65, 0x74, 0x74, 0x65, 0x72, + 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, + 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x63, 0x74, 0x65, 0x64, 0x42, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x28, + 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x73, + 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x53, 0x6d, 0x73, 0x22, 0x47, 0x0a, 0x1c, 0x41, 0x63, 0x6b, 0x6e, + 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x69, 0x63, 0x74, 0x75, + 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x22, 0xa7, 0x02, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, + 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x17, 0x0a, 0x07, 0x63, 0x69, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x63, 0x69, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6d, 0x69, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0d, 0x65, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x2f, 0x0a, 0x14, 0x65, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, + 0x65, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x49, 0x6e, 0x4d, + 0x73, 0x12, 0x3c, 0x0a, 0x1a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x68, 0x75, 0x62, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x68, 0x75, 0x62, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, + 0x3a, 0x0a, 0x19, 0x61, 0x70, 0x70, 0x74, 0x77, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x17, 0x61, 0x70, 0x70, 0x74, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x43, 0x0a, 0x18, 0x41, + 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x49, + 0x4e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0xa3, 0x02, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x50, 0x49, 0x4e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x63, + 0x69, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x69, + 0x61, 0x6d, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x65, 0x6d, + 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2f, 0x0a, 0x14, 0x65, + 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x69, 0x6e, + 0x5f, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x65, 0x6d, 0x69, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x49, 0x6e, 0x4d, 0x73, 0x12, 0x3c, 0x0a, 0x1a, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x68, 0x75, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x18, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x68, 0x75, 0x62, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3a, 0x0a, 0x19, 0x61, 0x70, + 0x70, 0x74, 0x77, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x61, + 0x70, 0x70, 0x74, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x28, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x4a, 0x57, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6a, 0x77, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6a, 0x77, 0x74, + 0x22, 0x21, 0x0a, 0x1f, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4a, 0x57, 0x54, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x42, 0x1c, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x61, 0x69, 0x6d, 0x6c, + 0x65, 0x72, 0x2e, 0x6d, 0x62, 0x63, 0x61, 0x72, 0x6b, 0x69, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_user_events_proto_rawDescOnce sync.Once + file_user_events_proto_rawDescData = file_user_events_proto_rawDesc +) + +func file_user_events_proto_rawDescGZIP() []byte { + file_user_events_proto_rawDescOnce.Do(func() { + file_user_events_proto_rawDescData = protoimpl.X.CompressGZIP(file_user_events_proto_rawDescData) + }) + return file_user_events_proto_rawDescData +} + +var file_user_events_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_user_events_proto_goTypes = []interface{}{ + (*AcknowledgeUserDataUpdate)(nil), // 0: proto.AcknowledgeUserDataUpdate + (*UserDataUpdate)(nil), // 1: proto.UserDataUpdate + (*AcknowledgeUserVehicleAuthChangedUpdate)(nil), // 2: proto.AcknowledgeUserVehicleAuthChangedUpdate + (*AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI)(nil), // 3: proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI + (*UserVehicleAuthChangedUpdate)(nil), // 4: proto.UserVehicleAuthChangedUpdate + (*CPDUserData)(nil), // 5: proto.CPDUserData + (*CPDUserAddress)(nil), // 6: proto.CPDUserAddress + (*CPDUserCommunicationPreference)(nil), // 7: proto.CPDUserCommunicationPreference + (*AcknowledgeUserPictureUpdate)(nil), // 8: proto.AcknowledgeUserPictureUpdate + (*UserPictureUpdate)(nil), // 9: proto.UserPictureUpdate + (*AcknowledgeUserPINUpdate)(nil), // 10: proto.AcknowledgeUserPINUpdate + (*UserPINUpdate)(nil), // 11: proto.UserPINUpdate + (*UpdateUserJWTRequest)(nil), // 12: proto.UpdateUserJWTRequest + (*AcknowledgeUpdateUserJWTRequest)(nil), // 13: proto.AcknowledgeUpdateUserJWTRequest +} +var file_user_events_proto_depIdxs = []int32{ + 5, // 0: proto.UserDataUpdate.old_data:type_name -> proto.CPDUserData + 5, // 1: proto.UserDataUpdate.new_data:type_name -> proto.CPDUserData + 6, // 2: proto.CPDUserData.address:type_name -> proto.CPDUserAddress + 7, // 3: proto.CPDUserData.communication_preference:type_name -> proto.CPDUserCommunicationPreference + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_user_events_proto_init() } +func file_user_events_proto_init() { + if File_user_events_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_user_events_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcknowledgeUserDataUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_events_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserDataUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_events_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcknowledgeUserVehicleAuthChangedUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_events_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_events_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserVehicleAuthChangedUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_events_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CPDUserData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_events_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CPDUserAddress); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_events_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CPDUserCommunicationPreference); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_events_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcknowledgeUserPictureUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_events_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserPictureUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_events_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcknowledgeUserPINUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_events_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserPINUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_events_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserJWTRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_events_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcknowledgeUpdateUserJWTRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_user_events_proto_rawDesc, + NumEnums: 0, + NumMessages: 14, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_user_events_proto_goTypes, + DependencyIndexes: file_user_events_proto_depIdxs, + MessageInfos: file_user_events_proto_msgTypes, + }.Build() + File_user_events_proto = out.File + file_user_events_proto_rawDesc = nil + file_user_events_proto_goTypes = nil + file_user_events_proto_depIdxs = nil +} diff --git a/vehicle/mercedes/pb/vehicle-commands.pb.go b/vehicle/mercedes/pb/vehicle-commands.pb.go new file mode 100644 index 000000000..e40ce5c3f --- /dev/null +++ b/vehicle/mercedes/pb/vehicle-commands.pb.go @@ -0,0 +1,5921 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v3.21.12 +// source: vehicle-commands.proto + +package protos + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Door int32 + +const ( + // the lowercase versions are for json (de)serialization purposes only. The upper case version should be the preferred + // enum values to be used in code. + // These definitions need to come before upper case versions + Door_unknown_door Door = 0 + Door_frontleft Door = 1 + Door_frontright Door = 2 + Door_rearleft Door = 3 + Door_rearright Door = 4 + Door_trunk Door = 5 + Door_fuelflap Door = 6 + Door_chargeflap Door = 7 + Door_chargecoupler Door = 8 + Door_UNKNOWN_DOOR Door = 0 + Door_FRONT_LEFT Door = 1 + Door_FRONT_RIGHT Door = 2 + Door_REAR_LEFT Door = 3 + Door_REAR_RIGHT Door = 4 + Door_TRUNK Door = 5 + Door_FUEL_FLAP Door = 6 + Door_CHARGE_FLAP Door = 7 + Door_CHARGE_COUPLER Door = 8 +) + +// Enum value maps for Door. +var ( + Door_name = map[int32]string{ + 0: "unknown_door", + 1: "frontleft", + 2: "frontright", + 3: "rearleft", + 4: "rearright", + 5: "trunk", + 6: "fuelflap", + 7: "chargeflap", + 8: "chargecoupler", + // Duplicate value: 0: "UNKNOWN_DOOR", + // Duplicate value: 1: "FRONT_LEFT", + // Duplicate value: 2: "FRONT_RIGHT", + // Duplicate value: 3: "REAR_LEFT", + // Duplicate value: 4: "REAR_RIGHT", + // Duplicate value: 5: "TRUNK", + // Duplicate value: 6: "FUEL_FLAP", + // Duplicate value: 7: "CHARGE_FLAP", + // Duplicate value: 8: "CHARGE_COUPLER", + } + Door_value = map[string]int32{ + "unknown_door": 0, + "frontleft": 1, + "frontright": 2, + "rearleft": 3, + "rearright": 4, + "trunk": 5, + "fuelflap": 6, + "chargeflap": 7, + "chargecoupler": 8, + "UNKNOWN_DOOR": 0, + "FRONT_LEFT": 1, + "FRONT_RIGHT": 2, + "REAR_LEFT": 3, + "REAR_RIGHT": 4, + "TRUNK": 5, + "FUEL_FLAP": 6, + "CHARGE_FLAP": 7, + "CHARGE_COUPLER": 8, + } +) + +func (x Door) Enum() *Door { + p := new(Door) + *p = x + return p +} + +func (x Door) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Door) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_commands_proto_enumTypes[0].Descriptor() +} + +func (Door) Type() protoreflect.EnumType { + return &file_vehicle_commands_proto_enumTypes[0] +} + +func (x Door) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Door.Descriptor instead. +func (Door) EnumDescriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{0} +} + +type ZEVPreconditioningType int32 + +const ( + // the lowercase versions are for json parsing purposes only. The upper case version should be the preferred + // enum values to be used in code. + // These definitions need to come before upper case versions + ZEVPreconditioningType_unknown_zev_preconditioning_command_type ZEVPreconditioningType = 0 + ZEVPreconditioningType_immediate ZEVPreconditioningType = 1 + ZEVPreconditioningType_departure ZEVPreconditioningType = 2 + ZEVPreconditioningType_now ZEVPreconditioningType = 3 + ZEVPreconditioningType_departureWeekly ZEVPreconditioningType = 4 + // the uppercase versions are here to have exported values + // The given preconditioning command type is unknown + ZEVPreconditioningType_UNKNOWN_ZEV_PRECONDITIONING_COMMAND_TYPE ZEVPreconditioningType = 0 + // starts immediate preconditioning + ZEVPreconditioningType_IMMEDIATE ZEVPreconditioningType = 1 + // starts preconditioning at departure time (requires a departure time to be provided in ZEVPreconditioningStart) + ZEVPreconditioningType_DEPARTURE ZEVPreconditioningType = 2 + // start right away (departure time is ignored) + ZEVPreconditioningType_NOW ZEVPreconditioningType = 3 + // starts preconditioning for a configured weekly profile (does NOT require a departure time to be provided) + ZEVPreconditioningType_DEPARTURE_WEEKLY ZEVPreconditioningType = 4 +) + +// Enum value maps for ZEVPreconditioningType. +var ( + ZEVPreconditioningType_name = map[int32]string{ + 0: "unknown_zev_preconditioning_command_type", + 1: "immediate", + 2: "departure", + 3: "now", + 4: "departureWeekly", + // Duplicate value: 0: "UNKNOWN_ZEV_PRECONDITIONING_COMMAND_TYPE", + // Duplicate value: 1: "IMMEDIATE", + // Duplicate value: 2: "DEPARTURE", + // Duplicate value: 3: "NOW", + // Duplicate value: 4: "DEPARTURE_WEEKLY", + } + ZEVPreconditioningType_value = map[string]int32{ + "unknown_zev_preconditioning_command_type": 0, + "immediate": 1, + "departure": 2, + "now": 3, + "departureWeekly": 4, + "UNKNOWN_ZEV_PRECONDITIONING_COMMAND_TYPE": 0, + "IMMEDIATE": 1, + "DEPARTURE": 2, + "NOW": 3, + "DEPARTURE_WEEKLY": 4, + } +) + +func (x ZEVPreconditioningType) Enum() *ZEVPreconditioningType { + p := new(ZEVPreconditioningType) + *p = x + return p +} + +func (x ZEVPreconditioningType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ZEVPreconditioningType) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_commands_proto_enumTypes[1].Descriptor() +} + +func (ZEVPreconditioningType) Type() protoreflect.EnumType { + return &file_vehicle_commands_proto_enumTypes[1] +} + +func (x ZEVPreconditioningType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ZEVPreconditioningType.Descriptor instead. +func (ZEVPreconditioningType) EnumDescriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{1} +} + +type TimeProfileDay int32 + +const ( + // the short versions are for json (en)coding purposes only. The upper case version should be the preferred + // enum values to be used in code. + // These definitions need to come before upper case versions + TimeProfileDay_Mo TimeProfileDay = 0 + TimeProfileDay_Tu TimeProfileDay = 1 + TimeProfileDay_We TimeProfileDay = 2 + TimeProfileDay_Th TimeProfileDay = 3 + TimeProfileDay_Fr TimeProfileDay = 4 + TimeProfileDay_Sa TimeProfileDay = 5 + TimeProfileDay_Su TimeProfileDay = 6 + TimeProfileDay_MONDAY TimeProfileDay = 0 + TimeProfileDay_TUESDAY TimeProfileDay = 1 + TimeProfileDay_WEDNESDAY TimeProfileDay = 2 + TimeProfileDay_THURSDAY TimeProfileDay = 3 + TimeProfileDay_FRIDAY TimeProfileDay = 4 + TimeProfileDay_SATURDAY TimeProfileDay = 5 + TimeProfileDay_SUNDAY TimeProfileDay = 6 +) + +// Enum value maps for TimeProfileDay. +var ( + TimeProfileDay_name = map[int32]string{ + 0: "Mo", + 1: "Tu", + 2: "We", + 3: "Th", + 4: "Fr", + 5: "Sa", + 6: "Su", + // Duplicate value: 0: "MONDAY", + // Duplicate value: 1: "TUESDAY", + // Duplicate value: 2: "WEDNESDAY", + // Duplicate value: 3: "THURSDAY", + // Duplicate value: 4: "FRIDAY", + // Duplicate value: 5: "SATURDAY", + // Duplicate value: 6: "SUNDAY", + } + TimeProfileDay_value = map[string]int32{ + "Mo": 0, + "Tu": 1, + "We": 2, + "Th": 3, + "Fr": 4, + "Sa": 5, + "Su": 6, + "MONDAY": 0, + "TUESDAY": 1, + "WEDNESDAY": 2, + "THURSDAY": 3, + "FRIDAY": 4, + "SATURDAY": 5, + "SUNDAY": 6, + } +) + +func (x TimeProfileDay) Enum() *TimeProfileDay { + p := new(TimeProfileDay) + *p = x + return p +} + +func (x TimeProfileDay) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TimeProfileDay) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_commands_proto_enumTypes[2].Descriptor() +} + +func (TimeProfileDay) Type() protoreflect.EnumType { + return &file_vehicle_commands_proto_enumTypes[2] +} + +func (x TimeProfileDay) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TimeProfileDay.Descriptor instead. +func (TimeProfileDay) EnumDescriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{2} +} + +type DriveType int32 + +const ( + DriveType_UNKNOWN_DRIVE_TYPE DriveType = 0 + DriveType_PICK_UP DriveType = 1 + DriveType_DROP_OFF DriveType = 2 +) + +// Enum value maps for DriveType. +var ( + DriveType_name = map[int32]string{ + 0: "UNKNOWN_DRIVE_TYPE", + 1: "PICK_UP", + 2: "DROP_OFF", + } + DriveType_value = map[string]int32{ + "UNKNOWN_DRIVE_TYPE": 0, + "PICK_UP": 1, + "DROP_OFF": 2, + } +) + +func (x DriveType) Enum() *DriveType { + p := new(DriveType) + *p = x + return p +} + +func (x DriveType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DriveType) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_commands_proto_enumTypes[3].Descriptor() +} + +func (DriveType) Type() protoreflect.EnumType { + return &file_vehicle_commands_proto_enumTypes[3] +} + +func (x DriveType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DriveType.Descriptor instead. +func (DriveType) EnumDescriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{3} +} + +// Temporary backend switch field. Will be removed as soon as all commands are migrated to the VehicleAPI +// This field only needs to be set if the command is supported by both API from our backend. If this field is removed +// don't forget to set the field 36 to reserved. +type CommandRequest_Backend int32 + +const ( + CommandRequest_VVA CommandRequest_Backend = 0 // default value + CommandRequest_VehicleAPI CommandRequest_Backend = 1 +) + +// Enum value maps for CommandRequest_Backend. +var ( + CommandRequest_Backend_name = map[int32]string{ + 0: "VVA", + 1: "VehicleAPI", + } + CommandRequest_Backend_value = map[string]int32{ + "VVA": 0, + "VehicleAPI": 1, + } +) + +func (x CommandRequest_Backend) Enum() *CommandRequest_Backend { + p := new(CommandRequest_Backend) + *p = x + return p +} + +func (x CommandRequest_Backend) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CommandRequest_Backend) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_commands_proto_enumTypes[4].Descriptor() +} + +func (CommandRequest_Backend) Type() protoreflect.EnumType { + return &file_vehicle_commands_proto_enumTypes[4] +} + +func (x CommandRequest_Backend) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CommandRequest_Backend.Descriptor instead. +func (CommandRequest_Backend) EnumDescriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{1, 0} +} + +type AuxheatConfigure_Selection int32 + +const ( + AuxheatConfigure_NO_SELECTION AuxheatConfigure_Selection = 0 + AuxheatConfigure_TIME_1 AuxheatConfigure_Selection = 1 + AuxheatConfigure_TIME_2 AuxheatConfigure_Selection = 2 + AuxheatConfigure_TIME_3 AuxheatConfigure_Selection = 3 +) + +// Enum value maps for AuxheatConfigure_Selection. +var ( + AuxheatConfigure_Selection_name = map[int32]string{ + 0: "NO_SELECTION", + 1: "TIME_1", + 2: "TIME_2", + 3: "TIME_3", + } + AuxheatConfigure_Selection_value = map[string]int32{ + "NO_SELECTION": 0, + "TIME_1": 1, + "TIME_2": 2, + "TIME_3": 3, + } +) + +func (x AuxheatConfigure_Selection) Enum() *AuxheatConfigure_Selection { + p := new(AuxheatConfigure_Selection) + *p = x + return p +} + +func (x AuxheatConfigure_Selection) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AuxheatConfigure_Selection) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_commands_proto_enumTypes[5].Descriptor() +} + +func (AuxheatConfigure_Selection) Type() protoreflect.EnumType { + return &file_vehicle_commands_proto_enumTypes[5] +} + +func (x AuxheatConfigure_Selection) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AuxheatConfigure_Selection.Descriptor instead. +func (AuxheatConfigure_Selection) EnumDescriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{6, 0} +} + +type ZEVPreconditioningConfigure_DepartureTimeMode int32 + +const ( + ZEVPreconditioningConfigure_DISABLED ZEVPreconditioningConfigure_DepartureTimeMode = 0 + ZEVPreconditioningConfigure_SINGLE_DEPARTURE ZEVPreconditioningConfigure_DepartureTimeMode = 1 + ZEVPreconditioningConfigure_WEEKLY_DEPARTURE ZEVPreconditioningConfigure_DepartureTimeMode = 2 +) + +// Enum value maps for ZEVPreconditioningConfigure_DepartureTimeMode. +var ( + ZEVPreconditioningConfigure_DepartureTimeMode_name = map[int32]string{ + 0: "DISABLED", + 1: "SINGLE_DEPARTURE", + 2: "WEEKLY_DEPARTURE", + } + ZEVPreconditioningConfigure_DepartureTimeMode_value = map[string]int32{ + "DISABLED": 0, + "SINGLE_DEPARTURE": 1, + "WEEKLY_DEPARTURE": 2, + } +) + +func (x ZEVPreconditioningConfigure_DepartureTimeMode) Enum() *ZEVPreconditioningConfigure_DepartureTimeMode { + p := new(ZEVPreconditioningConfigure_DepartureTimeMode) + *p = x + return p +} + +func (x ZEVPreconditioningConfigure_DepartureTimeMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ZEVPreconditioningConfigure_DepartureTimeMode) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_commands_proto_enumTypes[6].Descriptor() +} + +func (ZEVPreconditioningConfigure_DepartureTimeMode) Type() protoreflect.EnumType { + return &file_vehicle_commands_proto_enumTypes[6] +} + +func (x ZEVPreconditioningConfigure_DepartureTimeMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ZEVPreconditioningConfigure_DepartureTimeMode.Descriptor instead. +func (ZEVPreconditioningConfigure_DepartureTimeMode) EnumDescriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{23, 0} +} + +type BatteryChargeProgramConfigure_ChargeProgram int32 + +const ( + BatteryChargeProgramConfigure_DEFAULT BatteryChargeProgramConfigure_ChargeProgram = 0 + BatteryChargeProgramConfigure_INSTANT BatteryChargeProgramConfigure_ChargeProgram = 1 +) + +// Enum value maps for BatteryChargeProgramConfigure_ChargeProgram. +var ( + BatteryChargeProgramConfigure_ChargeProgram_name = map[int32]string{ + 0: "DEFAULT", + 1: "INSTANT", + } + BatteryChargeProgramConfigure_ChargeProgram_value = map[string]int32{ + "DEFAULT": 0, + "INSTANT": 1, + } +) + +func (x BatteryChargeProgramConfigure_ChargeProgram) Enum() *BatteryChargeProgramConfigure_ChargeProgram { + p := new(BatteryChargeProgramConfigure_ChargeProgram) + *p = x + return p +} + +func (x BatteryChargeProgramConfigure_ChargeProgram) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BatteryChargeProgramConfigure_ChargeProgram) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_commands_proto_enumTypes[7].Descriptor() +} + +func (BatteryChargeProgramConfigure_ChargeProgram) Type() protoreflect.EnumType { + return &file_vehicle_commands_proto_enumTypes[7] +} + +func (x BatteryChargeProgramConfigure_ChargeProgram) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BatteryChargeProgramConfigure_ChargeProgram.Descriptor instead. +func (BatteryChargeProgramConfigure_ChargeProgram) EnumDescriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{25, 0} +} + +type ChargeProgramConfigure_ChargeProgram int32 + +const ( + ChargeProgramConfigure_DEFAULT_CHARGE_PROGRAM ChargeProgramConfigure_ChargeProgram = 0 + // Instant charge program should not be used + // INSTANT_CHARGE_PROGRAM = 1; + ChargeProgramConfigure_HOME_CHARGE_PROGRAM ChargeProgramConfigure_ChargeProgram = 2 + ChargeProgramConfigure_WORK_CHARGE_PROGRAM ChargeProgramConfigure_ChargeProgram = 3 +) + +// Enum value maps for ChargeProgramConfigure_ChargeProgram. +var ( + ChargeProgramConfigure_ChargeProgram_name = map[int32]string{ + 0: "DEFAULT_CHARGE_PROGRAM", + 2: "HOME_CHARGE_PROGRAM", + 3: "WORK_CHARGE_PROGRAM", + } + ChargeProgramConfigure_ChargeProgram_value = map[string]int32{ + "DEFAULT_CHARGE_PROGRAM": 0, + "HOME_CHARGE_PROGRAM": 2, + "WORK_CHARGE_PROGRAM": 3, + } +) + +func (x ChargeProgramConfigure_ChargeProgram) Enum() *ChargeProgramConfigure_ChargeProgram { + p := new(ChargeProgramConfigure_ChargeProgram) + *p = x + return p +} + +func (x ChargeProgramConfigure_ChargeProgram) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ChargeProgramConfigure_ChargeProgram) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_commands_proto_enumTypes[8].Descriptor() +} + +func (ChargeProgramConfigure_ChargeProgram) Type() protoreflect.EnumType { + return &file_vehicle_commands_proto_enumTypes[8] +} + +func (x ChargeProgramConfigure_ChargeProgram) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ChargeProgramConfigure_ChargeProgram.Descriptor instead. +func (ChargeProgramConfigure_ChargeProgram) EnumDescriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{27, 0} +} + +type ChargeOptConfigure_Tariff_Rate int32 + +const ( + ChargeOptConfigure_Tariff_INVALID_PRICE ChargeOptConfigure_Tariff_Rate = 0 + ChargeOptConfigure_Tariff_LOW_PRICE ChargeOptConfigure_Tariff_Rate = 33 + ChargeOptConfigure_Tariff_NORMAL_PRICE ChargeOptConfigure_Tariff_Rate = 44 + ChargeOptConfigure_Tariff_HIGH_PRICE ChargeOptConfigure_Tariff_Rate = 66 +) + +// Enum value maps for ChargeOptConfigure_Tariff_Rate. +var ( + ChargeOptConfigure_Tariff_Rate_name = map[int32]string{ + 0: "INVALID_PRICE", + 33: "LOW_PRICE", + 44: "NORMAL_PRICE", + 66: "HIGH_PRICE", + } + ChargeOptConfigure_Tariff_Rate_value = map[string]int32{ + "INVALID_PRICE": 0, + "LOW_PRICE": 33, + "NORMAL_PRICE": 44, + "HIGH_PRICE": 66, + } +) + +func (x ChargeOptConfigure_Tariff_Rate) Enum() *ChargeOptConfigure_Tariff_Rate { + p := new(ChargeOptConfigure_Tariff_Rate) + *p = x + return p +} + +func (x ChargeOptConfigure_Tariff_Rate) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ChargeOptConfigure_Tariff_Rate) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_commands_proto_enumTypes[9].Descriptor() +} + +func (ChargeOptConfigure_Tariff_Rate) Type() protoreflect.EnumType { + return &file_vehicle_commands_proto_enumTypes[9] +} + +func (x ChargeOptConfigure_Tariff_Rate) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ChargeOptConfigure_Tariff_Rate.Descriptor instead. +func (ChargeOptConfigure_Tariff_Rate) EnumDescriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{29, 0, 0} +} + +type TemperatureConfigure_TemperaturePoint_Zone int32 + +const ( + // the lowercase versions are for json parsing purposes only. The upper case version should be the preferred + // enum values to be used in code. + // These definitions need to come before upper case versions + TemperatureConfigure_TemperaturePoint_unknown TemperatureConfigure_TemperaturePoint_Zone = 0 + TemperatureConfigure_TemperaturePoint_frontLeft TemperatureConfigure_TemperaturePoint_Zone = 1 + TemperatureConfigure_TemperaturePoint_frontRight TemperatureConfigure_TemperaturePoint_Zone = 2 + TemperatureConfigure_TemperaturePoint_frontCenter TemperatureConfigure_TemperaturePoint_Zone = 3 + TemperatureConfigure_TemperaturePoint_rearLeft TemperatureConfigure_TemperaturePoint_Zone = 4 + TemperatureConfigure_TemperaturePoint_rearRight TemperatureConfigure_TemperaturePoint_Zone = 5 + TemperatureConfigure_TemperaturePoint_rearCenter TemperatureConfigure_TemperaturePoint_Zone = 6 + TemperatureConfigure_TemperaturePoint_rear2Left TemperatureConfigure_TemperaturePoint_Zone = 7 + TemperatureConfigure_TemperaturePoint_rear2Right TemperatureConfigure_TemperaturePoint_Zone = 8 + TemperatureConfigure_TemperaturePoint_rear2Center TemperatureConfigure_TemperaturePoint_Zone = 9 + TemperatureConfigure_TemperaturePoint_UNKNOWN_ZONE TemperatureConfigure_TemperaturePoint_Zone = 0 + TemperatureConfigure_TemperaturePoint_FRONT_LEFT TemperatureConfigure_TemperaturePoint_Zone = 1 + TemperatureConfigure_TemperaturePoint_FRONT_RIGHT TemperatureConfigure_TemperaturePoint_Zone = 2 + TemperatureConfigure_TemperaturePoint_FRONT_CENTER TemperatureConfigure_TemperaturePoint_Zone = 3 + TemperatureConfigure_TemperaturePoint_REAR_LEFT TemperatureConfigure_TemperaturePoint_Zone = 4 + TemperatureConfigure_TemperaturePoint_REAR_RIGHT TemperatureConfigure_TemperaturePoint_Zone = 5 + TemperatureConfigure_TemperaturePoint_REAR_CENTER TemperatureConfigure_TemperaturePoint_Zone = 6 + TemperatureConfigure_TemperaturePoint_REAR_2_LEFT TemperatureConfigure_TemperaturePoint_Zone = 7 + TemperatureConfigure_TemperaturePoint_REAR_2_RIGHT TemperatureConfigure_TemperaturePoint_Zone = 8 + TemperatureConfigure_TemperaturePoint_REAR_2_CENTER TemperatureConfigure_TemperaturePoint_Zone = 9 +) + +// Enum value maps for TemperatureConfigure_TemperaturePoint_Zone. +var ( + TemperatureConfigure_TemperaturePoint_Zone_name = map[int32]string{ + 0: "unknown", + 1: "frontLeft", + 2: "frontRight", + 3: "frontCenter", + 4: "rearLeft", + 5: "rearRight", + 6: "rearCenter", + 7: "rear2Left", + 8: "rear2Right", + 9: "rear2Center", + // Duplicate value: 0: "UNKNOWN_ZONE", + // Duplicate value: 1: "FRONT_LEFT", + // Duplicate value: 2: "FRONT_RIGHT", + // Duplicate value: 3: "FRONT_CENTER", + // Duplicate value: 4: "REAR_LEFT", + // Duplicate value: 5: "REAR_RIGHT", + // Duplicate value: 6: "REAR_CENTER", + // Duplicate value: 7: "REAR_2_LEFT", + // Duplicate value: 8: "REAR_2_RIGHT", + // Duplicate value: 9: "REAR_2_CENTER", + } + TemperatureConfigure_TemperaturePoint_Zone_value = map[string]int32{ + "unknown": 0, + "frontLeft": 1, + "frontRight": 2, + "frontCenter": 3, + "rearLeft": 4, + "rearRight": 5, + "rearCenter": 6, + "rear2Left": 7, + "rear2Right": 8, + "rear2Center": 9, + "UNKNOWN_ZONE": 0, + "FRONT_LEFT": 1, + "FRONT_RIGHT": 2, + "FRONT_CENTER": 3, + "REAR_LEFT": 4, + "REAR_RIGHT": 5, + "REAR_CENTER": 6, + "REAR_2_LEFT": 7, + "REAR_2_RIGHT": 8, + "REAR_2_CENTER": 9, + } +) + +func (x TemperatureConfigure_TemperaturePoint_Zone) Enum() *TemperatureConfigure_TemperaturePoint_Zone { + p := new(TemperatureConfigure_TemperaturePoint_Zone) + *p = x + return p +} + +func (x TemperatureConfigure_TemperaturePoint_Zone) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TemperatureConfigure_TemperaturePoint_Zone) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_commands_proto_enumTypes[10].Descriptor() +} + +func (TemperatureConfigure_TemperaturePoint_Zone) Type() protoreflect.EnumType { + return &file_vehicle_commands_proto_enumTypes[10] +} + +func (x TemperatureConfigure_TemperaturePoint_Zone) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TemperatureConfigure_TemperaturePoint_Zone.Descriptor instead. +func (TemperatureConfigure_TemperaturePoint_Zone) EnumDescriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{32, 0, 0} +} + +type WeekProfileConfigure_WeeklySetHU_Day int32 + +const ( + WeekProfileConfigure_WeeklySetHU_MONDAY WeekProfileConfigure_WeeklySetHU_Day = 0 + WeekProfileConfigure_WeeklySetHU_TUESDAY WeekProfileConfigure_WeeklySetHU_Day = 1 + WeekProfileConfigure_WeeklySetHU_WEDNESDAY WeekProfileConfigure_WeeklySetHU_Day = 2 + WeekProfileConfigure_WeeklySetHU_THURSDAY WeekProfileConfigure_WeeklySetHU_Day = 3 + WeekProfileConfigure_WeeklySetHU_FRIDAY WeekProfileConfigure_WeeklySetHU_Day = 4 + WeekProfileConfigure_WeeklySetHU_SATURDAY WeekProfileConfigure_WeeklySetHU_Day = 5 + WeekProfileConfigure_WeeklySetHU_SUNDAY WeekProfileConfigure_WeeklySetHU_Day = 6 +) + +// Enum value maps for WeekProfileConfigure_WeeklySetHU_Day. +var ( + WeekProfileConfigure_WeeklySetHU_Day_name = map[int32]string{ + 0: "MONDAY", + 1: "TUESDAY", + 2: "WEDNESDAY", + 3: "THURSDAY", + 4: "FRIDAY", + 5: "SATURDAY", + 6: "SUNDAY", + } + WeekProfileConfigure_WeeklySetHU_Day_value = map[string]int32{ + "MONDAY": 0, + "TUESDAY": 1, + "WEDNESDAY": 2, + "THURSDAY": 3, + "FRIDAY": 4, + "SATURDAY": 5, + "SUNDAY": 6, + } +) + +func (x WeekProfileConfigure_WeeklySetHU_Day) Enum() *WeekProfileConfigure_WeeklySetHU_Day { + p := new(WeekProfileConfigure_WeeklySetHU_Day) + *p = x + return p +} + +func (x WeekProfileConfigure_WeeklySetHU_Day) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WeekProfileConfigure_WeeklySetHU_Day) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_commands_proto_enumTypes[11].Descriptor() +} + +func (WeekProfileConfigure_WeeklySetHU_Day) Type() protoreflect.EnumType { + return &file_vehicle_commands_proto_enumTypes[11] +} + +func (x WeekProfileConfigure_WeeklySetHU_Day) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WeekProfileConfigure_WeeklySetHU_Day.Descriptor instead. +func (WeekProfileConfigure_WeeklySetHU_Day) EnumDescriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{33, 0, 0} +} + +// Only allowed for RAMSES +type SigPosStart_HornType int32 + +const ( + SigPosStart_HORN_OFF SigPosStart_HornType = 0 + SigPosStart_HORN_LOW_VOLUME SigPosStart_HornType = 1 + SigPosStart_HORN_HIGH_VOLUME SigPosStart_HornType = 2 +) + +// Enum value maps for SigPosStart_HornType. +var ( + SigPosStart_HornType_name = map[int32]string{ + 0: "HORN_OFF", + 1: "HORN_LOW_VOLUME", + 2: "HORN_HIGH_VOLUME", + } + SigPosStart_HornType_value = map[string]int32{ + "HORN_OFF": 0, + "HORN_LOW_VOLUME": 1, + "HORN_HIGH_VOLUME": 2, + } +) + +func (x SigPosStart_HornType) Enum() *SigPosStart_HornType { + p := new(SigPosStart_HornType) + *p = x + return p +} + +func (x SigPosStart_HornType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SigPosStart_HornType) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_commands_proto_enumTypes[12].Descriptor() +} + +func (SigPosStart_HornType) Type() protoreflect.EnumType { + return &file_vehicle_commands_proto_enumTypes[12] +} + +func (x SigPosStart_HornType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SigPosStart_HornType.Descriptor instead. +func (SigPosStart_HornType) EnumDescriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{36, 0} +} + +// Only allowed for RAMSES +type SigPosStart_LightType int32 + +const ( + SigPosStart_LIGHT_OFF SigPosStart_LightType = 0 + SigPosStart_DIPPED_HEAD_LIGHT SigPosStart_LightType = 1 + SigPosStart_WARNING_LIGHT SigPosStart_LightType = 2 +) + +// Enum value maps for SigPosStart_LightType. +var ( + SigPosStart_LightType_name = map[int32]string{ + 0: "LIGHT_OFF", + 1: "DIPPED_HEAD_LIGHT", + 2: "WARNING_LIGHT", + } + SigPosStart_LightType_value = map[string]int32{ + "LIGHT_OFF": 0, + "DIPPED_HEAD_LIGHT": 1, + "WARNING_LIGHT": 2, + } +) + +func (x SigPosStart_LightType) Enum() *SigPosStart_LightType { + p := new(SigPosStart_LightType) + *p = x + return p +} + +func (x SigPosStart_LightType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SigPosStart_LightType) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_commands_proto_enumTypes[13].Descriptor() +} + +func (SigPosStart_LightType) Type() protoreflect.EnumType { + return &file_vehicle_commands_proto_enumTypes[13] +} + +func (x SigPosStart_LightType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SigPosStart_LightType.Descriptor instead. +func (SigPosStart_LightType) EnumDescriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{36, 1} +} + +type SigPosStart_SigposType int32 + +const ( + SigPosStart_LIGHT_ONLY SigPosStart_SigposType = 0 + SigPosStart_HORN_ONLY SigPosStart_SigposType = 1 // Only allowed for RAMSES + SigPosStart_LIGHT_AND_HORN SigPosStart_SigposType = 2 // Only allowed for RAMSES + SigPosStart_PANIC_ALARM SigPosStart_SigposType = 3 // Only allowed for HERMES +) + +// Enum value maps for SigPosStart_SigposType. +var ( + SigPosStart_SigposType_name = map[int32]string{ + 0: "LIGHT_ONLY", + 1: "HORN_ONLY", + 2: "LIGHT_AND_HORN", + 3: "PANIC_ALARM", + } + SigPosStart_SigposType_value = map[string]int32{ + "LIGHT_ONLY": 0, + "HORN_ONLY": 1, + "LIGHT_AND_HORN": 2, + "PANIC_ALARM": 3, + } +) + +func (x SigPosStart_SigposType) Enum() *SigPosStart_SigposType { + p := new(SigPosStart_SigposType) + *p = x + return p +} + +func (x SigPosStart_SigposType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SigPosStart_SigposType) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_commands_proto_enumTypes[14].Descriptor() +} + +func (SigPosStart_SigposType) Type() protoreflect.EnumType { + return &file_vehicle_commands_proto_enumTypes[14] +} + +func (x SigPosStart_SigposType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SigPosStart_SigposType.Descriptor instead. +func (SigPosStart_SigposType) EnumDescriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{36, 2} +} + +// Acknowledge the CommandRequest reached the apptwin actor +// Websocket <- Apptwin +type AcknowledgeCommandRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *AcknowledgeCommandRequest) Reset() { + *x = AcknowledgeCommandRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcknowledgeCommandRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeCommandRequest) ProtoMessage() {} + +func (x *AcknowledgeCommandRequest) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcknowledgeCommandRequest.ProtoReflect.Descriptor instead. +func (*AcknowledgeCommandRequest) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{0} +} + +func (x *AcknowledgeCommandRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// After the command was issued at VVA based on this +// command request the call will get a command request +// correlation message which matches the request id +// with the process id. +// Sending direction: App - BFF -> AppTwin +type CommandRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Vin string `protobuf:"bytes,1,opt,name=vin,proto3" json:"vin,omitempty"` + // Set this id to correlate a CommandStatus + // with this command request. + RequestId string `protobuf:"bytes,7,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + Backend CommandRequest_Backend `protobuf:"varint,36,opt,name=backend,proto3,enum=proto.CommandRequest_Backend" json:"backend,omitempty"` + // Types that are assignable to Command: + // + // *CommandRequest_AuxheatStart + // *CommandRequest_AuxheatStop + // *CommandRequest_AuxheatConfigure + // *CommandRequest_DoorsLock + // *CommandRequest_DoorsUnlock + // *CommandRequest_SunroofOpen + // *CommandRequest_SunroofClose + // *CommandRequest_SunroofLift + // *CommandRequest_SunroofMove + // *CommandRequest_WindowsOpen + // *CommandRequest_WindowsClose + // *CommandRequest_WindowsVentilate + // *CommandRequest_WindowsMove + // *CommandRequest_EngineStart + // *CommandRequest_EngineStop + // *CommandRequest_ZevPreconditioningStart + // *CommandRequest_ZevPreconditioningStop + // *CommandRequest_ZevPreconditionConfigure + // *CommandRequest_ZevPreconditionConfigureSeats + // *CommandRequest_SpeedalertStart + // *CommandRequest_SpeedalertStop + // *CommandRequest_BatteryChargeProgram + // *CommandRequest_BatteryMaxSoc + // *CommandRequest_ChargeProgramConfigure + // *CommandRequest_ChargeControlConfigure + // *CommandRequest_ChargeOptConfigure + // *CommandRequest_ChargeOptStart + // *CommandRequest_ChargeOptStop + // *CommandRequest_TemperatureConfigure + // *CommandRequest_WeekProfileConfigure + // *CommandRequest_WeekProfileConfigureV2 + // *CommandRequest_SigposStart + // *CommandRequest_TheftalarmConfirmDamagedetection + // *CommandRequest_TheftalarmDeselectDamagedetection + // *CommandRequest_TheftalarmDeselectInterior + // *CommandRequest_TheftalarmDeselectTow + // *CommandRequest_TheftalarmSelectDamagedetection + // *CommandRequest_TheftalarmSelectInterior + // *CommandRequest_TheftalarmSelectTow + // *CommandRequest_TheftalarmStart + // *CommandRequest_TheftalarmStop + // *CommandRequest_AutomaticValetParkingActivate + // *CommandRequest_ChargeFlapUnlock + // *CommandRequest_ChargeCouplerUnlock + // *CommandRequest_DeactivateVehicleKeys + // *CommandRequest_ActivateVehicleKeys + Command isCommandRequest_Command `protobuf_oneof:"command"` +} + +func (x *CommandRequest) Reset() { + *x = CommandRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommandRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommandRequest) ProtoMessage() {} + +func (x *CommandRequest) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CommandRequest.ProtoReflect.Descriptor instead. +func (*CommandRequest) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{1} +} + +func (x *CommandRequest) GetVin() string { + if x != nil { + return x.Vin + } + return "" +} + +func (x *CommandRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *CommandRequest) GetBackend() CommandRequest_Backend { + if x != nil { + return x.Backend + } + return CommandRequest_VVA +} + +func (m *CommandRequest) GetCommand() isCommandRequest_Command { + if m != nil { + return m.Command + } + return nil +} + +func (x *CommandRequest) GetAuxheatStart() *AuxheatStart { + if x, ok := x.GetCommand().(*CommandRequest_AuxheatStart); ok { + return x.AuxheatStart + } + return nil +} + +func (x *CommandRequest) GetAuxheatStop() *AuxheatStop { + if x, ok := x.GetCommand().(*CommandRequest_AuxheatStop); ok { + return x.AuxheatStop + } + return nil +} + +func (x *CommandRequest) GetAuxheatConfigure() *AuxheatConfigure { + if x, ok := x.GetCommand().(*CommandRequest_AuxheatConfigure); ok { + return x.AuxheatConfigure + } + return nil +} + +func (x *CommandRequest) GetDoorsLock() *DoorsLock { + if x, ok := x.GetCommand().(*CommandRequest_DoorsLock); ok { + return x.DoorsLock + } + return nil +} + +func (x *CommandRequest) GetDoorsUnlock() *DoorsUnlock { + if x, ok := x.GetCommand().(*CommandRequest_DoorsUnlock); ok { + return x.DoorsUnlock + } + return nil +} + +func (x *CommandRequest) GetSunroofOpen() *SunroofOpen { + if x, ok := x.GetCommand().(*CommandRequest_SunroofOpen); ok { + return x.SunroofOpen + } + return nil +} + +func (x *CommandRequest) GetSunroofClose() *SunroofClose { + if x, ok := x.GetCommand().(*CommandRequest_SunroofClose); ok { + return x.SunroofClose + } + return nil +} + +func (x *CommandRequest) GetSunroofLift() *SunroofLift { + if x, ok := x.GetCommand().(*CommandRequest_SunroofLift); ok { + return x.SunroofLift + } + return nil +} + +func (x *CommandRequest) GetSunroofMove() *SunroofMove { + if x, ok := x.GetCommand().(*CommandRequest_SunroofMove); ok { + return x.SunroofMove + } + return nil +} + +func (x *CommandRequest) GetWindowsOpen() *WindowsOpen { + if x, ok := x.GetCommand().(*CommandRequest_WindowsOpen); ok { + return x.WindowsOpen + } + return nil +} + +func (x *CommandRequest) GetWindowsClose() *WindowsClose { + if x, ok := x.GetCommand().(*CommandRequest_WindowsClose); ok { + return x.WindowsClose + } + return nil +} + +func (x *CommandRequest) GetWindowsVentilate() *WindowsVentilate { + if x, ok := x.GetCommand().(*CommandRequest_WindowsVentilate); ok { + return x.WindowsVentilate + } + return nil +} + +func (x *CommandRequest) GetWindowsMove() *WindowsMove { + if x, ok := x.GetCommand().(*CommandRequest_WindowsMove); ok { + return x.WindowsMove + } + return nil +} + +func (x *CommandRequest) GetEngineStart() *EngineStart { + if x, ok := x.GetCommand().(*CommandRequest_EngineStart); ok { + return x.EngineStart + } + return nil +} + +func (x *CommandRequest) GetEngineStop() *EngineStop { + if x, ok := x.GetCommand().(*CommandRequest_EngineStop); ok { + return x.EngineStop + } + return nil +} + +func (x *CommandRequest) GetZevPreconditioningStart() *ZEVPreconditioningStart { + if x, ok := x.GetCommand().(*CommandRequest_ZevPreconditioningStart); ok { + return x.ZevPreconditioningStart + } + return nil +} + +func (x *CommandRequest) GetZevPreconditioningStop() *ZEVPreconditioningStop { + if x, ok := x.GetCommand().(*CommandRequest_ZevPreconditioningStop); ok { + return x.ZevPreconditioningStop + } + return nil +} + +func (x *CommandRequest) GetZevPreconditionConfigure() *ZEVPreconditioningConfigure { + if x, ok := x.GetCommand().(*CommandRequest_ZevPreconditionConfigure); ok { + return x.ZevPreconditionConfigure + } + return nil +} + +func (x *CommandRequest) GetZevPreconditionConfigureSeats() *ZEVPreconditioningConfigureSeats { + if x, ok := x.GetCommand().(*CommandRequest_ZevPreconditionConfigureSeats); ok { + return x.ZevPreconditionConfigureSeats + } + return nil +} + +func (x *CommandRequest) GetSpeedalertStart() *SpeedalertStart { + if x, ok := x.GetCommand().(*CommandRequest_SpeedalertStart); ok { + return x.SpeedalertStart + } + return nil +} + +func (x *CommandRequest) GetSpeedalertStop() *SpeedalertStop { + if x, ok := x.GetCommand().(*CommandRequest_SpeedalertStop); ok { + return x.SpeedalertStop + } + return nil +} + +func (x *CommandRequest) GetBatteryChargeProgram() *BatteryChargeProgramConfigure { + if x, ok := x.GetCommand().(*CommandRequest_BatteryChargeProgram); ok { + return x.BatteryChargeProgram + } + return nil +} + +func (x *CommandRequest) GetBatteryMaxSoc() *BatteryMaxSocConfigure { + if x, ok := x.GetCommand().(*CommandRequest_BatteryMaxSoc); ok { + return x.BatteryMaxSoc + } + return nil +} + +func (x *CommandRequest) GetChargeProgramConfigure() *ChargeProgramConfigure { + if x, ok := x.GetCommand().(*CommandRequest_ChargeProgramConfigure); ok { + return x.ChargeProgramConfigure + } + return nil +} + +func (x *CommandRequest) GetChargeControlConfigure() *ChargeControlConfigure { + if x, ok := x.GetCommand().(*CommandRequest_ChargeControlConfigure); ok { + return x.ChargeControlConfigure + } + return nil +} + +func (x *CommandRequest) GetChargeOptConfigure() *ChargeOptConfigure { + if x, ok := x.GetCommand().(*CommandRequest_ChargeOptConfigure); ok { + return x.ChargeOptConfigure + } + return nil +} + +func (x *CommandRequest) GetChargeOptStart() *ChargeOptStart { + if x, ok := x.GetCommand().(*CommandRequest_ChargeOptStart); ok { + return x.ChargeOptStart + } + return nil +} + +func (x *CommandRequest) GetChargeOptStop() *ChargeOptStop { + if x, ok := x.GetCommand().(*CommandRequest_ChargeOptStop); ok { + return x.ChargeOptStop + } + return nil +} + +func (x *CommandRequest) GetTemperatureConfigure() *TemperatureConfigure { + if x, ok := x.GetCommand().(*CommandRequest_TemperatureConfigure); ok { + return x.TemperatureConfigure + } + return nil +} + +func (x *CommandRequest) GetWeekProfileConfigure() *WeekProfileConfigure { + if x, ok := x.GetCommand().(*CommandRequest_WeekProfileConfigure); ok { + return x.WeekProfileConfigure + } + return nil +} + +func (x *CommandRequest) GetWeekProfileConfigureV2() *WeekProfileConfigureV2 { + if x, ok := x.GetCommand().(*CommandRequest_WeekProfileConfigureV2); ok { + return x.WeekProfileConfigureV2 + } + return nil +} + +func (x *CommandRequest) GetSigposStart() *SigPosStart { + if x, ok := x.GetCommand().(*CommandRequest_SigposStart); ok { + return x.SigposStart + } + return nil +} + +func (x *CommandRequest) GetTheftalarmConfirmDamagedetection() *TheftalarmConfirmDamagedetection { + if x, ok := x.GetCommand().(*CommandRequest_TheftalarmConfirmDamagedetection); ok { + return x.TheftalarmConfirmDamagedetection + } + return nil +} + +func (x *CommandRequest) GetTheftalarmDeselectDamagedetection() *TheftalarmDeselectDamagedetection { + if x, ok := x.GetCommand().(*CommandRequest_TheftalarmDeselectDamagedetection); ok { + return x.TheftalarmDeselectDamagedetection + } + return nil +} + +func (x *CommandRequest) GetTheftalarmDeselectInterior() *TheftalarmDeselectInterior { + if x, ok := x.GetCommand().(*CommandRequest_TheftalarmDeselectInterior); ok { + return x.TheftalarmDeselectInterior + } + return nil +} + +func (x *CommandRequest) GetTheftalarmDeselectTow() *TheftalarmDeselectTow { + if x, ok := x.GetCommand().(*CommandRequest_TheftalarmDeselectTow); ok { + return x.TheftalarmDeselectTow + } + return nil +} + +func (x *CommandRequest) GetTheftalarmSelectDamagedetection() *TheftalarmSelectDamagedetection { + if x, ok := x.GetCommand().(*CommandRequest_TheftalarmSelectDamagedetection); ok { + return x.TheftalarmSelectDamagedetection + } + return nil +} + +func (x *CommandRequest) GetTheftalarmSelectInterior() *TheftalarmSelectInterior { + if x, ok := x.GetCommand().(*CommandRequest_TheftalarmSelectInterior); ok { + return x.TheftalarmSelectInterior + } + return nil +} + +func (x *CommandRequest) GetTheftalarmSelectTow() *TheftalarmSelectTow { + if x, ok := x.GetCommand().(*CommandRequest_TheftalarmSelectTow); ok { + return x.TheftalarmSelectTow + } + return nil +} + +func (x *CommandRequest) GetTheftalarmStart() *TheftalarmStart { + if x, ok := x.GetCommand().(*CommandRequest_TheftalarmStart); ok { + return x.TheftalarmStart + } + return nil +} + +func (x *CommandRequest) GetTheftalarmStop() *TheftalarmStop { + if x, ok := x.GetCommand().(*CommandRequest_TheftalarmStop); ok { + return x.TheftalarmStop + } + return nil +} + +func (x *CommandRequest) GetAutomaticValetParkingActivate() *AutomaticValetParkingActivate { + if x, ok := x.GetCommand().(*CommandRequest_AutomaticValetParkingActivate); ok { + return x.AutomaticValetParkingActivate + } + return nil +} + +func (x *CommandRequest) GetChargeFlapUnlock() *ChargeFlapUnlock { + if x, ok := x.GetCommand().(*CommandRequest_ChargeFlapUnlock); ok { + return x.ChargeFlapUnlock + } + return nil +} + +func (x *CommandRequest) GetChargeCouplerUnlock() *ChargeCouplerUnlock { + if x, ok := x.GetCommand().(*CommandRequest_ChargeCouplerUnlock); ok { + return x.ChargeCouplerUnlock + } + return nil +} + +func (x *CommandRequest) GetDeactivateVehicleKeys() *DeactivateVehicleKeys { + if x, ok := x.GetCommand().(*CommandRequest_DeactivateVehicleKeys); ok { + return x.DeactivateVehicleKeys + } + return nil +} + +func (x *CommandRequest) GetActivateVehicleKeys() *ActivateVehicleKeys { + if x, ok := x.GetCommand().(*CommandRequest_ActivateVehicleKeys); ok { + return x.ActivateVehicleKeys + } + return nil +} + +type isCommandRequest_Command interface { + isCommandRequest_Command() +} + +type CommandRequest_AuxheatStart struct { + AuxheatStart *AuxheatStart `protobuf:"bytes,2,opt,name=auxheat_start,json=auxheatStart,proto3,oneof"` +} + +type CommandRequest_AuxheatStop struct { + AuxheatStop *AuxheatStop `protobuf:"bytes,3,opt,name=auxheat_stop,json=auxheatStop,proto3,oneof"` +} + +type CommandRequest_AuxheatConfigure struct { + AuxheatConfigure *AuxheatConfigure `protobuf:"bytes,4,opt,name=auxheat_configure,json=auxheatConfigure,proto3,oneof"` +} + +type CommandRequest_DoorsLock struct { + DoorsLock *DoorsLock `protobuf:"bytes,5,opt,name=doors_lock,json=doorsLock,proto3,oneof"` +} + +type CommandRequest_DoorsUnlock struct { + DoorsUnlock *DoorsUnlock `protobuf:"bytes,6,opt,name=doors_unlock,json=doorsUnlock,proto3,oneof"` +} + +type CommandRequest_SunroofOpen struct { + SunroofOpen *SunroofOpen `protobuf:"bytes,9,opt,name=sunroof_open,json=sunroofOpen,proto3,oneof"` +} + +type CommandRequest_SunroofClose struct { + SunroofClose *SunroofClose `protobuf:"bytes,10,opt,name=sunroof_close,json=sunroofClose,proto3,oneof"` +} + +type CommandRequest_SunroofLift struct { + SunroofLift *SunroofLift `protobuf:"bytes,11,opt,name=sunroof_lift,json=sunroofLift,proto3,oneof"` +} + +type CommandRequest_SunroofMove struct { + SunroofMove *SunroofMove `protobuf:"bytes,47,opt,name=sunroof_move,json=sunroofMove,proto3,oneof"` +} + +type CommandRequest_WindowsOpen struct { + WindowsOpen *WindowsOpen `protobuf:"bytes,12,opt,name=windows_open,json=windowsOpen,proto3,oneof"` +} + +type CommandRequest_WindowsClose struct { + WindowsClose *WindowsClose `protobuf:"bytes,13,opt,name=windows_close,json=windowsClose,proto3,oneof"` +} + +type CommandRequest_WindowsVentilate struct { + WindowsVentilate *WindowsVentilate `protobuf:"bytes,43,opt,name=windows_ventilate,json=windowsVentilate,proto3,oneof"` +} + +type CommandRequest_WindowsMove struct { + WindowsMove *WindowsMove `protobuf:"bytes,44,opt,name=windows_move,json=windowsMove,proto3,oneof"` +} + +type CommandRequest_EngineStart struct { + EngineStart *EngineStart `protobuf:"bytes,19,opt,name=engine_start,json=engineStart,proto3,oneof"` +} + +type CommandRequest_EngineStop struct { + EngineStop *EngineStop `protobuf:"bytes,20,opt,name=engine_stop,json=engineStop,proto3,oneof"` +} + +type CommandRequest_ZevPreconditioningStart struct { + ZevPreconditioningStart *ZEVPreconditioningStart `protobuf:"bytes,21,opt,name=zev_preconditioning_start,json=zevPreconditioningStart,proto3,oneof"` +} + +type CommandRequest_ZevPreconditioningStop struct { + ZevPreconditioningStop *ZEVPreconditioningStop `protobuf:"bytes,22,opt,name=zev_preconditioning_stop,json=zevPreconditioningStop,proto3,oneof"` +} + +type CommandRequest_ZevPreconditionConfigure struct { + ZevPreconditionConfigure *ZEVPreconditioningConfigure `protobuf:"bytes,25,opt,name=zev_precondition_configure,json=zevPreconditionConfigure,proto3,oneof"` +} + +type CommandRequest_ZevPreconditionConfigureSeats struct { + ZevPreconditionConfigureSeats *ZEVPreconditioningConfigureSeats `protobuf:"bytes,26,opt,name=zev_precondition_configure_seats,json=zevPreconditionConfigureSeats,proto3,oneof"` +} + +type CommandRequest_SpeedalertStart struct { + SpeedalertStart *SpeedalertStart `protobuf:"bytes,23,opt,name=speedalert_start,json=speedalertStart,proto3,oneof"` +} + +type CommandRequest_SpeedalertStop struct { + SpeedalertStop *SpeedalertStop `protobuf:"bytes,24,opt,name=speedalert_stop,json=speedalertStop,proto3,oneof"` +} + +type CommandRequest_BatteryChargeProgram struct { + BatteryChargeProgram *BatteryChargeProgramConfigure `protobuf:"bytes,27,opt,name=battery_charge_program,json=batteryChargeProgram,proto3,oneof"` +} + +type CommandRequest_BatteryMaxSoc struct { + BatteryMaxSoc *BatteryMaxSocConfigure `protobuf:"bytes,28,opt,name=battery_max_soc,json=batteryMaxSoc,proto3,oneof"` +} + +type CommandRequest_ChargeProgramConfigure struct { + ChargeProgramConfigure *ChargeProgramConfigure `protobuf:"bytes,34,opt,name=charge_program_configure,json=chargeProgramConfigure,proto3,oneof"` +} + +type CommandRequest_ChargeControlConfigure struct { + ChargeControlConfigure *ChargeControlConfigure `protobuf:"bytes,40,opt,name=charge_control_configure,json=chargeControlConfigure,proto3,oneof"` +} + +type CommandRequest_ChargeOptConfigure struct { + ChargeOptConfigure *ChargeOptConfigure `protobuf:"bytes,29,opt,name=charge_opt_configure,json=chargeOptConfigure,proto3,oneof"` +} + +type CommandRequest_ChargeOptStart struct { + ChargeOptStart *ChargeOptStart `protobuf:"bytes,30,opt,name=charge_opt_start,json=chargeOptStart,proto3,oneof"` +} + +type CommandRequest_ChargeOptStop struct { + ChargeOptStop *ChargeOptStop `protobuf:"bytes,31,opt,name=charge_opt_stop,json=chargeOptStop,proto3,oneof"` +} + +type CommandRequest_TemperatureConfigure struct { + TemperatureConfigure *TemperatureConfigure `protobuf:"bytes,32,opt,name=temperature_configure,json=temperatureConfigure,proto3,oneof"` +} + +type CommandRequest_WeekProfileConfigure struct { + WeekProfileConfigure *WeekProfileConfigure `protobuf:"bytes,33,opt,name=week_profile_configure,json=weekProfileConfigure,proto3,oneof"` +} + +type CommandRequest_WeekProfileConfigureV2 struct { + WeekProfileConfigureV2 *WeekProfileConfigureV2 `protobuf:"bytes,41,opt,name=week_profile_configure_v2,json=weekProfileConfigureV2,proto3,oneof"` +} + +type CommandRequest_SigposStart struct { + SigposStart *SigPosStart `protobuf:"bytes,35,opt,name=sigpos_start,json=sigposStart,proto3,oneof"` +} + +type CommandRequest_TheftalarmConfirmDamagedetection struct { + TheftalarmConfirmDamagedetection *TheftalarmConfirmDamagedetection `protobuf:"bytes,8,opt,name=theftalarm_confirm_damagedetection,json=theftalarmConfirmDamagedetection,proto3,oneof"` +} + +type CommandRequest_TheftalarmDeselectDamagedetection struct { + TheftalarmDeselectDamagedetection *TheftalarmDeselectDamagedetection `protobuf:"bytes,14,opt,name=theftalarm_deselect_damagedetection,json=theftalarmDeselectDamagedetection,proto3,oneof"` +} + +type CommandRequest_TheftalarmDeselectInterior struct { + TheftalarmDeselectInterior *TheftalarmDeselectInterior `protobuf:"bytes,15,opt,name=theftalarm_deselect_interior,json=theftalarmDeselectInterior,proto3,oneof"` +} + +type CommandRequest_TheftalarmDeselectTow struct { + TheftalarmDeselectTow *TheftalarmDeselectTow `protobuf:"bytes,16,opt,name=theftalarm_deselect_tow,json=theftalarmDeselectTow,proto3,oneof"` +} + +type CommandRequest_TheftalarmSelectDamagedetection struct { + TheftalarmSelectDamagedetection *TheftalarmSelectDamagedetection `protobuf:"bytes,17,opt,name=theftalarm_select_damagedetection,json=theftalarmSelectDamagedetection,proto3,oneof"` +} + +type CommandRequest_TheftalarmSelectInterior struct { + TheftalarmSelectInterior *TheftalarmSelectInterior `protobuf:"bytes,18,opt,name=theftalarm_select_interior,json=theftalarmSelectInterior,proto3,oneof"` +} + +type CommandRequest_TheftalarmSelectTow struct { + TheftalarmSelectTow *TheftalarmSelectTow `protobuf:"bytes,37,opt,name=theftalarm_select_tow,json=theftalarmSelectTow,proto3,oneof"` +} + +type CommandRequest_TheftalarmStart struct { + TheftalarmStart *TheftalarmStart `protobuf:"bytes,38,opt,name=theftalarm_start,json=theftalarmStart,proto3,oneof"` +} + +type CommandRequest_TheftalarmStop struct { + TheftalarmStop *TheftalarmStop `protobuf:"bytes,39,opt,name=theftalarm_stop,json=theftalarmStop,proto3,oneof"` +} + +type CommandRequest_AutomaticValetParkingActivate struct { + AutomaticValetParkingActivate *AutomaticValetParkingActivate `protobuf:"bytes,42,opt,name=automatic_valet_parking_activate,json=automaticValetParkingActivate,proto3,oneof"` +} + +type CommandRequest_ChargeFlapUnlock struct { + ChargeFlapUnlock *ChargeFlapUnlock `protobuf:"bytes,45,opt,name=charge_flap_unlock,json=chargeFlapUnlock,proto3,oneof"` +} + +type CommandRequest_ChargeCouplerUnlock struct { + ChargeCouplerUnlock *ChargeCouplerUnlock `protobuf:"bytes,46,opt,name=charge_coupler_unlock,json=chargeCouplerUnlock,proto3,oneof"` +} + +type CommandRequest_DeactivateVehicleKeys struct { + DeactivateVehicleKeys *DeactivateVehicleKeys `protobuf:"bytes,48,opt,name=deactivate_vehicle_keys,json=deactivateVehicleKeys,proto3,oneof"` +} + +type CommandRequest_ActivateVehicleKeys struct { + ActivateVehicleKeys *ActivateVehicleKeys `protobuf:"bytes,49,opt,name=activate_vehicle_keys,json=activateVehicleKeys,proto3,oneof"` +} + +func (*CommandRequest_AuxheatStart) isCommandRequest_Command() {} + +func (*CommandRequest_AuxheatStop) isCommandRequest_Command() {} + +func (*CommandRequest_AuxheatConfigure) isCommandRequest_Command() {} + +func (*CommandRequest_DoorsLock) isCommandRequest_Command() {} + +func (*CommandRequest_DoorsUnlock) isCommandRequest_Command() {} + +func (*CommandRequest_SunroofOpen) isCommandRequest_Command() {} + +func (*CommandRequest_SunroofClose) isCommandRequest_Command() {} + +func (*CommandRequest_SunroofLift) isCommandRequest_Command() {} + +func (*CommandRequest_SunroofMove) isCommandRequest_Command() {} + +func (*CommandRequest_WindowsOpen) isCommandRequest_Command() {} + +func (*CommandRequest_WindowsClose) isCommandRequest_Command() {} + +func (*CommandRequest_WindowsVentilate) isCommandRequest_Command() {} + +func (*CommandRequest_WindowsMove) isCommandRequest_Command() {} + +func (*CommandRequest_EngineStart) isCommandRequest_Command() {} + +func (*CommandRequest_EngineStop) isCommandRequest_Command() {} + +func (*CommandRequest_ZevPreconditioningStart) isCommandRequest_Command() {} + +func (*CommandRequest_ZevPreconditioningStop) isCommandRequest_Command() {} + +func (*CommandRequest_ZevPreconditionConfigure) isCommandRequest_Command() {} + +func (*CommandRequest_ZevPreconditionConfigureSeats) isCommandRequest_Command() {} + +func (*CommandRequest_SpeedalertStart) isCommandRequest_Command() {} + +func (*CommandRequest_SpeedalertStop) isCommandRequest_Command() {} + +func (*CommandRequest_BatteryChargeProgram) isCommandRequest_Command() {} + +func (*CommandRequest_BatteryMaxSoc) isCommandRequest_Command() {} + +func (*CommandRequest_ChargeProgramConfigure) isCommandRequest_Command() {} + +func (*CommandRequest_ChargeControlConfigure) isCommandRequest_Command() {} + +func (*CommandRequest_ChargeOptConfigure) isCommandRequest_Command() {} + +func (*CommandRequest_ChargeOptStart) isCommandRequest_Command() {} + +func (*CommandRequest_ChargeOptStop) isCommandRequest_Command() {} + +func (*CommandRequest_TemperatureConfigure) isCommandRequest_Command() {} + +func (*CommandRequest_WeekProfileConfigure) isCommandRequest_Command() {} + +func (*CommandRequest_WeekProfileConfigureV2) isCommandRequest_Command() {} + +func (*CommandRequest_SigposStart) isCommandRequest_Command() {} + +func (*CommandRequest_TheftalarmConfirmDamagedetection) isCommandRequest_Command() {} + +func (*CommandRequest_TheftalarmDeselectDamagedetection) isCommandRequest_Command() {} + +func (*CommandRequest_TheftalarmDeselectInterior) isCommandRequest_Command() {} + +func (*CommandRequest_TheftalarmDeselectTow) isCommandRequest_Command() {} + +func (*CommandRequest_TheftalarmSelectDamagedetection) isCommandRequest_Command() {} + +func (*CommandRequest_TheftalarmSelectInterior) isCommandRequest_Command() {} + +func (*CommandRequest_TheftalarmSelectTow) isCommandRequest_Command() {} + +func (*CommandRequest_TheftalarmStart) isCommandRequest_Command() {} + +func (*CommandRequest_TheftalarmStop) isCommandRequest_Command() {} + +func (*CommandRequest_AutomaticValetParkingActivate) isCommandRequest_Command() {} + +func (*CommandRequest_ChargeFlapUnlock) isCommandRequest_Command() {} + +func (*CommandRequest_ChargeCouplerUnlock) isCommandRequest_Command() {} + +func (*CommandRequest_DeactivateVehicleKeys) isCommandRequest_Command() {} + +func (*CommandRequest_ActivateVehicleKeys) isCommandRequest_Command() {} + +type DeactivateVehicleKeys struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pin string `protobuf:"bytes,1,opt,name=pin,proto3" json:"pin,omitempty"` + ExpirationUnix int64 `protobuf:"varint,2,opt,name=expiration_unix,json=expirationUnix,proto3" json:"expiration_unix,omitempty"` + ExpirationSeconds string `protobuf:"bytes,3,opt,name=expiration_seconds,json=expirationSeconds,proto3" json:"expiration_seconds,omitempty"` + ExpirationMilliseconds string `protobuf:"bytes,4,opt,name=expiration_milliseconds,json=expirationMilliseconds,proto3" json:"expiration_milliseconds,omitempty"` +} + +func (x *DeactivateVehicleKeys) Reset() { + *x = DeactivateVehicleKeys{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeactivateVehicleKeys) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeactivateVehicleKeys) ProtoMessage() {} + +func (x *DeactivateVehicleKeys) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeactivateVehicleKeys.ProtoReflect.Descriptor instead. +func (*DeactivateVehicleKeys) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{2} +} + +func (x *DeactivateVehicleKeys) GetPin() string { + if x != nil { + return x.Pin + } + return "" +} + +func (x *DeactivateVehicleKeys) GetExpirationUnix() int64 { + if x != nil { + return x.ExpirationUnix + } + return 0 +} + +func (x *DeactivateVehicleKeys) GetExpirationSeconds() string { + if x != nil { + return x.ExpirationSeconds + } + return "" +} + +func (x *DeactivateVehicleKeys) GetExpirationMilliseconds() string { + if x != nil { + return x.ExpirationMilliseconds + } + return "" +} + +type ActivateVehicleKeys struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pin string `protobuf:"bytes,1,opt,name=pin,proto3" json:"pin,omitempty"` + ExpirationUnix int64 `protobuf:"varint,2,opt,name=expiration_unix,json=expirationUnix,proto3" json:"expiration_unix,omitempty"` + ExpirationSeconds string `protobuf:"bytes,3,opt,name=expiration_seconds,json=expirationSeconds,proto3" json:"expiration_seconds,omitempty"` + ExpirationMilliseconds string `protobuf:"bytes,4,opt,name=expiration_milliseconds,json=expirationMilliseconds,proto3" json:"expiration_milliseconds,omitempty"` +} + +func (x *ActivateVehicleKeys) Reset() { + *x = ActivateVehicleKeys{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ActivateVehicleKeys) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActivateVehicleKeys) ProtoMessage() {} + +func (x *ActivateVehicleKeys) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ActivateVehicleKeys.ProtoReflect.Descriptor instead. +func (*ActivateVehicleKeys) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{3} +} + +func (x *ActivateVehicleKeys) GetPin() string { + if x != nil { + return x.Pin + } + return "" +} + +func (x *ActivateVehicleKeys) GetExpirationUnix() int64 { + if x != nil { + return x.ExpirationUnix + } + return 0 +} + +func (x *ActivateVehicleKeys) GetExpirationSeconds() string { + if x != nil { + return x.ExpirationSeconds + } + return "" +} + +func (x *ActivateVehicleKeys) GetExpirationMilliseconds() string { + if x != nil { + return x.ExpirationMilliseconds + } + return "" +} + +type AuxheatStart struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AuxheatStart) Reset() { + *x = AuxheatStart{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuxheatStart) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuxheatStart) ProtoMessage() {} + +func (x *AuxheatStart) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AuxheatStart.ProtoReflect.Descriptor instead. +func (*AuxheatStart) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{4} +} + +type AuxheatStop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AuxheatStop) Reset() { + *x = AuxheatStop{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuxheatStop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuxheatStop) ProtoMessage() {} + +func (x *AuxheatStop) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AuxheatStop.ProtoReflect.Descriptor instead. +func (*AuxheatStop) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{5} +} + +type AuxheatConfigure struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TimeSelection AuxheatConfigure_Selection `protobuf:"varint,1,opt,name=time_selection,json=auxheattimeselection,proto3,enum=proto.AuxheatConfigure_Selection" json:"time_selection,omitempty"` + // Minutes from midnight. + Time_1 int32 `protobuf:"varint,2,opt,name=time_1,json=auxheattime1,proto3" json:"time_1,omitempty"` + // Minutes from midnight. + Time_2 int32 `protobuf:"varint,3,opt,name=time_2,json=auxheattime2,proto3" json:"time_2,omitempty"` + // Minutes from midnight. + Time_3 int32 `protobuf:"varint,4,opt,name=time_3,json=auxheattime3,proto3" json:"time_3,omitempty"` +} + +func (x *AuxheatConfigure) Reset() { + *x = AuxheatConfigure{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuxheatConfigure) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuxheatConfigure) ProtoMessage() {} + +func (x *AuxheatConfigure) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AuxheatConfigure.ProtoReflect.Descriptor instead. +func (*AuxheatConfigure) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{6} +} + +func (x *AuxheatConfigure) GetTimeSelection() AuxheatConfigure_Selection { + if x != nil { + return x.TimeSelection + } + return AuxheatConfigure_NO_SELECTION +} + +func (x *AuxheatConfigure) GetTime_1() int32 { + if x != nil { + return x.Time_1 + } + return 0 +} + +func (x *AuxheatConfigure) GetTime_2() int32 { + if x != nil { + return x.Time_2 + } + return 0 +} + +func (x *AuxheatConfigure) GetTime_3() int32 { + if x != nil { + return x.Time_3 + } + return 0 +} + +type DoorsLock struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // doors / flaps to unlock (only supported by TCU type RAMSES) + // leave empty to target all doors + Doors []Door `protobuf:"varint,1,rep,packed,name=doors,proto3,enum=proto.Door" json:"doors,omitempty"` +} + +func (x *DoorsLock) Reset() { + *x = DoorsLock{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DoorsLock) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DoorsLock) ProtoMessage() {} + +func (x *DoorsLock) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DoorsLock.ProtoReflect.Descriptor instead. +func (*DoorsLock) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{7} +} + +func (x *DoorsLock) GetDoors() []Door { + if x != nil { + return x.Doors + } + return nil +} + +type DoorsUnlock struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pin string `protobuf:"bytes,1,opt,name=pin,proto3" json:"pin,omitempty"` + // doors / flaps to unlock (only supported by TCU type RAMSES) + // leave empty to target all doors + Doors []Door `protobuf:"varint,2,rep,packed,name=doors,proto3,enum=proto.Door" json:"doors,omitempty"` +} + +func (x *DoorsUnlock) Reset() { + *x = DoorsUnlock{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DoorsUnlock) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DoorsUnlock) ProtoMessage() {} + +func (x *DoorsUnlock) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DoorsUnlock.ProtoReflect.Descriptor instead. +func (*DoorsUnlock) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{8} +} + +func (x *DoorsUnlock) GetPin() string { + if x != nil { + return x.Pin + } + return "" +} + +func (x *DoorsUnlock) GetDoors() []Door { + if x != nil { + return x.Doors + } + return nil +} + +type EngineStart struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pin string `protobuf:"bytes,1,opt,name=pin,proto3" json:"pin,omitempty"` +} + +func (x *EngineStart) Reset() { + *x = EngineStart{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EngineStart) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EngineStart) ProtoMessage() {} + +func (x *EngineStart) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EngineStart.ProtoReflect.Descriptor instead. +func (*EngineStart) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{9} +} + +func (x *EngineStart) GetPin() string { + if x != nil { + return x.Pin + } + return "" +} + +type EngineStop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *EngineStop) Reset() { + *x = EngineStop{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EngineStop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EngineStop) ProtoMessage() {} + +func (x *EngineStop) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EngineStop.ProtoReflect.Descriptor instead. +func (*EngineStop) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{10} +} + +type SunroofOpen struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pin string `protobuf:"bytes,1,opt,name=pin,proto3" json:"pin,omitempty"` +} + +func (x *SunroofOpen) Reset() { + *x = SunroofOpen{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SunroofOpen) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SunroofOpen) ProtoMessage() {} + +func (x *SunroofOpen) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SunroofOpen.ProtoReflect.Descriptor instead. +func (*SunroofOpen) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{11} +} + +func (x *SunroofOpen) GetPin() string { + if x != nil { + return x.Pin + } + return "" +} + +type SunroofClose struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SunroofClose) Reset() { + *x = SunroofClose{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SunroofClose) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SunroofClose) ProtoMessage() {} + +func (x *SunroofClose) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SunroofClose.ProtoReflect.Descriptor instead. +func (*SunroofClose) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{12} +} + +type SunroofLift struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pin string `protobuf:"bytes,1,opt,name=pin,proto3" json:"pin,omitempty"` +} + +func (x *SunroofLift) Reset() { + *x = SunroofLift{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SunroofLift) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SunroofLift) ProtoMessage() {} + +func (x *SunroofLift) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SunroofLift.ProtoReflect.Descriptor instead. +func (*SunroofLift) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{13} +} + +func (x *SunroofLift) GetPin() string { + if x != nil { + return x.Pin + } + return "" +} + +type SunroofMove struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pin string `protobuf:"bytes,1,opt,name=pin,proto3" json:"pin,omitempty"` + Sunroof *wrapperspb.Int32Value `protobuf:"bytes,2,opt,name=sunroof,proto3" json:"sunroof,omitempty"` + SunroofBlindFront *wrapperspb.Int32Value `protobuf:"bytes,3,opt,name=sunroof_blind_front,json=sunroofblindfront,proto3" json:"sunroof_blind_front,omitempty"` + SunroofBlindRear *wrapperspb.Int32Value `protobuf:"bytes,4,opt,name=sunroof_blind_rear,json=sunroofblindrear,proto3" json:"sunroof_blind_rear,omitempty"` +} + +func (x *SunroofMove) Reset() { + *x = SunroofMove{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SunroofMove) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SunroofMove) ProtoMessage() {} + +func (x *SunroofMove) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SunroofMove.ProtoReflect.Descriptor instead. +func (*SunroofMove) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{14} +} + +func (x *SunroofMove) GetPin() string { + if x != nil { + return x.Pin + } + return "" +} + +func (x *SunroofMove) GetSunroof() *wrapperspb.Int32Value { + if x != nil { + return x.Sunroof + } + return nil +} + +func (x *SunroofMove) GetSunroofBlindFront() *wrapperspb.Int32Value { + if x != nil { + return x.SunroofBlindFront + } + return nil +} + +func (x *SunroofMove) GetSunroofBlindRear() *wrapperspb.Int32Value { + if x != nil { + return x.SunroofBlindRear + } + return nil +} + +type WindowsOpen struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pin string `protobuf:"bytes,1,opt,name=pin,proto3" json:"pin,omitempty"` +} + +func (x *WindowsOpen) Reset() { + *x = WindowsOpen{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WindowsOpen) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WindowsOpen) ProtoMessage() {} + +func (x *WindowsOpen) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WindowsOpen.ProtoReflect.Descriptor instead. +func (*WindowsOpen) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{15} +} + +func (x *WindowsOpen) GetPin() string { + if x != nil { + return x.Pin + } + return "" +} + +type WindowsClose struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *WindowsClose) Reset() { + *x = WindowsClose{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WindowsClose) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WindowsClose) ProtoMessage() {} + +func (x *WindowsClose) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WindowsClose.ProtoReflect.Descriptor instead. +func (*WindowsClose) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{16} +} + +type WindowsVentilate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pin string `protobuf:"bytes,1,opt,name=pin,proto3" json:"pin,omitempty"` +} + +func (x *WindowsVentilate) Reset() { + *x = WindowsVentilate{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WindowsVentilate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WindowsVentilate) ProtoMessage() {} + +func (x *WindowsVentilate) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WindowsVentilate.ProtoReflect.Descriptor instead. +func (*WindowsVentilate) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{17} +} + +func (x *WindowsVentilate) GetPin() string { + if x != nil { + return x.Pin + } + return "" +} + +type WindowsMove struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pin string `protobuf:"bytes,1,opt,name=pin,proto3" json:"pin,omitempty"` + FrontLeft *wrapperspb.Int32Value `protobuf:"bytes,2,opt,name=front_left,json=windowfrontleft,proto3" json:"front_left,omitempty"` + FrontRight *wrapperspb.Int32Value `protobuf:"bytes,3,opt,name=front_right,json=windowfrontright,proto3" json:"front_right,omitempty"` + RearBlind *wrapperspb.Int32Value `protobuf:"bytes,4,opt,name=rear_blind,json=windowrearblind,proto3" json:"rear_blind,omitempty"` + RearLeft *wrapperspb.Int32Value `protobuf:"bytes,5,opt,name=rear_left,json=windowrearleft,proto3" json:"rear_left,omitempty"` + RearLeftBlind *wrapperspb.Int32Value `protobuf:"bytes,6,opt,name=rear_left_blind,json=windowrearleftblind,proto3" json:"rear_left_blind,omitempty"` + RearRight *wrapperspb.Int32Value `protobuf:"bytes,7,opt,name=rear_right,json=windowrearright,proto3" json:"rear_right,omitempty"` + RearRightBlind *wrapperspb.Int32Value `protobuf:"bytes,8,opt,name=rear_right_blind,json=windowrearrightblind,proto3" json:"rear_right_blind,omitempty"` +} + +func (x *WindowsMove) Reset() { + *x = WindowsMove{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WindowsMove) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WindowsMove) ProtoMessage() {} + +func (x *WindowsMove) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WindowsMove.ProtoReflect.Descriptor instead. +func (*WindowsMove) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{18} +} + +func (x *WindowsMove) GetPin() string { + if x != nil { + return x.Pin + } + return "" +} + +func (x *WindowsMove) GetFrontLeft() *wrapperspb.Int32Value { + if x != nil { + return x.FrontLeft + } + return nil +} + +func (x *WindowsMove) GetFrontRight() *wrapperspb.Int32Value { + if x != nil { + return x.FrontRight + } + return nil +} + +func (x *WindowsMove) GetRearBlind() *wrapperspb.Int32Value { + if x != nil { + return x.RearBlind + } + return nil +} + +func (x *WindowsMove) GetRearLeft() *wrapperspb.Int32Value { + if x != nil { + return x.RearLeft + } + return nil +} + +func (x *WindowsMove) GetRearLeftBlind() *wrapperspb.Int32Value { + if x != nil { + return x.RearLeftBlind + } + return nil +} + +func (x *WindowsMove) GetRearRight() *wrapperspb.Int32Value { + if x != nil { + return x.RearRight + } + return nil +} + +func (x *WindowsMove) GetRearRightBlind() *wrapperspb.Int32Value { + if x != nil { + return x.RearRightBlind + } + return nil +} + +type SpeedalertStart struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Threshold int32 `protobuf:"varint,1,opt,name=threshold,json=speedAlertThreshold,proto3" json:"threshold,omitempty"` + AlertEndTime int64 `protobuf:"varint,2,opt,name=alert_end_time,json=speedAlertEndTime,proto3" json:"alert_end_time,omitempty"` +} + +func (x *SpeedalertStart) Reset() { + *x = SpeedalertStart{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpeedalertStart) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpeedalertStart) ProtoMessage() {} + +func (x *SpeedalertStart) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SpeedalertStart.ProtoReflect.Descriptor instead. +func (*SpeedalertStart) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{19} +} + +func (x *SpeedalertStart) GetThreshold() int32 { + if x != nil { + return x.Threshold + } + return 0 +} + +func (x *SpeedalertStart) GetAlertEndTime() int64 { + if x != nil { + return x.AlertEndTime + } + return 0 +} + +type SpeedalertStop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SpeedalertStop) Reset() { + *x = SpeedalertStop{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpeedalertStop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpeedalertStop) ProtoMessage() {} + +func (x *SpeedalertStop) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SpeedalertStop.ProtoReflect.Descriptor instead. +func (*SpeedalertStop) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{20} +} + +type ZEVPreconditioningStart struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DepartureTime int32 `protobuf:"varint,1,opt,name=departure_time,json=departuretime,proto3" json:"departure_time,omitempty"` + Type ZEVPreconditioningType `protobuf:"varint,2,opt,name=type,proto3,enum=proto.ZEVPreconditioningType" json:"type,omitempty"` +} + +func (x *ZEVPreconditioningStart) Reset() { + *x = ZEVPreconditioningStart{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ZEVPreconditioningStart) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ZEVPreconditioningStart) ProtoMessage() {} + +func (x *ZEVPreconditioningStart) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ZEVPreconditioningStart.ProtoReflect.Descriptor instead. +func (*ZEVPreconditioningStart) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{21} +} + +func (x *ZEVPreconditioningStart) GetDepartureTime() int32 { + if x != nil { + return x.DepartureTime + } + return 0 +} + +func (x *ZEVPreconditioningStart) GetType() ZEVPreconditioningType { + if x != nil { + return x.Type + } + return ZEVPreconditioningType_unknown_zev_preconditioning_command_type +} + +type ZEVPreconditioningStop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type ZEVPreconditioningType `protobuf:"varint,2,opt,name=type,proto3,enum=proto.ZEVPreconditioningType" json:"type,omitempty"` +} + +func (x *ZEVPreconditioningStop) Reset() { + *x = ZEVPreconditioningStop{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ZEVPreconditioningStop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ZEVPreconditioningStop) ProtoMessage() {} + +func (x *ZEVPreconditioningStop) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ZEVPreconditioningStop.ProtoReflect.Descriptor instead. +func (*ZEVPreconditioningStop) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{22} +} + +func (x *ZEVPreconditioningStop) GetType() ZEVPreconditioningType { + if x != nil { + return x.Type + } + return ZEVPreconditioningType_unknown_zev_preconditioning_command_type +} + +// Configure preconditioning +type ZEVPreconditioningConfigure struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DepartureTimeMode ZEVPreconditioningConfigure_DepartureTimeMode `protobuf:"varint,1,opt,name=departure_time_mode,json=departureTimeMode,proto3,enum=proto.ZEVPreconditioningConfigure_DepartureTimeMode" json:"departure_time_mode,omitempty"` + DepartureTime int32 `protobuf:"varint,3,opt,name=departure_time,json=departuretime,proto3" json:"departure_time,omitempty"` +} + +func (x *ZEVPreconditioningConfigure) Reset() { + *x = ZEVPreconditioningConfigure{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ZEVPreconditioningConfigure) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ZEVPreconditioningConfigure) ProtoMessage() {} + +func (x *ZEVPreconditioningConfigure) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ZEVPreconditioningConfigure.ProtoReflect.Descriptor instead. +func (*ZEVPreconditioningConfigure) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{23} +} + +func (x *ZEVPreconditioningConfigure) GetDepartureTimeMode() ZEVPreconditioningConfigure_DepartureTimeMode { + if x != nil { + return x.DepartureTimeMode + } + return ZEVPreconditioningConfigure_DISABLED +} + +func (x *ZEVPreconditioningConfigure) GetDepartureTime() int32 { + if x != nil { + return x.DepartureTime + } + return 0 +} + +// Configure which seats should be preconditioned. +// Currently, the only available options are to precondition all seats or only the front-left seat +type ZEVPreconditioningConfigureSeats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FrontLeft bool `protobuf:"varint,1,opt,name=front_left,json=precondSeatFrontLeft,proto3" json:"front_left,omitempty"` + FrontRight bool `protobuf:"varint,2,opt,name=front_right,json=precondSeatFrontRight,proto3" json:"front_right,omitempty"` + RearLeft bool `protobuf:"varint,3,opt,name=rear_left,json=precondSeatRearLeft,proto3" json:"rear_left,omitempty"` + RearRight bool `protobuf:"varint,4,opt,name=rear_right,json=precondSeatRearRight,proto3" json:"rear_right,omitempty"` +} + +func (x *ZEVPreconditioningConfigureSeats) Reset() { + *x = ZEVPreconditioningConfigureSeats{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ZEVPreconditioningConfigureSeats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ZEVPreconditioningConfigureSeats) ProtoMessage() {} + +func (x *ZEVPreconditioningConfigureSeats) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ZEVPreconditioningConfigureSeats.ProtoReflect.Descriptor instead. +func (*ZEVPreconditioningConfigureSeats) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{24} +} + +func (x *ZEVPreconditioningConfigureSeats) GetFrontLeft() bool { + if x != nil { + return x.FrontLeft + } + return false +} + +func (x *ZEVPreconditioningConfigureSeats) GetFrontRight() bool { + if x != nil { + return x.FrontRight + } + return false +} + +func (x *ZEVPreconditioningConfigureSeats) GetRearLeft() bool { + if x != nil { + return x.RearLeft + } + return false +} + +func (x *ZEVPreconditioningConfigureSeats) GetRearRight() bool { + if x != nil { + return x.RearRight + } + return false +} + +// Configure the charge program +type BatteryChargeProgramConfigure struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChargeProgram BatteryChargeProgramConfigure_ChargeProgram `protobuf:"varint,1,opt,name=charge_program,json=chargeprogram,proto3,enum=proto.BatteryChargeProgramConfigure_ChargeProgram" json:"charge_program,omitempty"` +} + +func (x *BatteryChargeProgramConfigure) Reset() { + *x = BatteryChargeProgramConfigure{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatteryChargeProgramConfigure) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatteryChargeProgramConfigure) ProtoMessage() {} + +func (x *BatteryChargeProgramConfigure) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatteryChargeProgramConfigure.ProtoReflect.Descriptor instead. +func (*BatteryChargeProgramConfigure) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{25} +} + +func (x *BatteryChargeProgramConfigure) GetChargeProgram() BatteryChargeProgramConfigure_ChargeProgram { + if x != nil { + return x.ChargeProgram + } + return BatteryChargeProgramConfigure_DEFAULT +} + +// Configure the maximum value for the state of charge of the HV battery +type BatteryMaxSocConfigure struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Values need to be between 50 and 100 and divisible by ten + MaxSoc int32 `protobuf:"varint,1,opt,name=max_soc,json=maxsoc,proto3" json:"max_soc,omitempty"` +} + +func (x *BatteryMaxSocConfigure) Reset() { + *x = BatteryMaxSocConfigure{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatteryMaxSocConfigure) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatteryMaxSocConfigure) ProtoMessage() {} + +func (x *BatteryMaxSocConfigure) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatteryMaxSocConfigure.ProtoReflect.Descriptor instead. +func (*BatteryMaxSocConfigure) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{26} +} + +func (x *BatteryMaxSocConfigure) GetMaxSoc() int32 { + if x != nil { + return x.MaxSoc + } + return 0 +} + +// Select the given charge program and enables the consumer to configure it. +type ChargeProgramConfigure struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChargeProgram ChargeProgramConfigure_ChargeProgram `protobuf:"varint,1,opt,name=charge_program,json=chargeprogram,proto3,enum=proto.ChargeProgramConfigure_ChargeProgram" json:"charge_program,omitempty"` + // Values need to be between 50 and 100 and divisible by ten + // Maximum value for the state of charge of the HV battery [in %]. + // Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] + MaxSoc *wrapperspb.Int32Value `protobuf:"bytes,2,opt,name=max_soc,json=maxsoc,proto3" json:"max_soc,omitempty"` + // unlock the plug after charging is finished + // Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value. + // true - unlock automatically, false - do not unlock automatically + // can only be used if chargeprogram is set to home or work. Otherwise it will be ignored. + AutoUnlock *wrapperspb.BoolValue `protobuf:"bytes,3,opt,name=auto_unlock,json=autounlock,proto3" json:"auto_unlock,omitempty"` + // automatically switch between home and work program, based on the location of the car + // Denotes whether location based charging should be used. + // true - use location based charging, false - do not use location based charging + // can only be used if chargeprogram is set to home or work. Otherwise it will be ignored. + LocationBasedCharging *wrapperspb.BoolValue `protobuf:"bytes,4,opt,name=location_based_charging,json=locationbasedcharging,proto3" json:"location_based_charging,omitempty"` + // enable or disable clocktimer + ClockTimer *wrapperspb.BoolValue `protobuf:"bytes,6,opt,name=clock_timer,json=clocktimer,proto3" json:"clock_timer,omitempty"` + // enable or disable ecocharging + EcoCharging *wrapperspb.BoolValue `protobuf:"bytes,7,opt,name=eco_charging,json=ecocharging,proto3" json:"eco_charging,omitempty"` +} + +func (x *ChargeProgramConfigure) Reset() { + *x = ChargeProgramConfigure{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChargeProgramConfigure) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChargeProgramConfigure) ProtoMessage() {} + +func (x *ChargeProgramConfigure) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChargeProgramConfigure.ProtoReflect.Descriptor instead. +func (*ChargeProgramConfigure) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{27} +} + +func (x *ChargeProgramConfigure) GetChargeProgram() ChargeProgramConfigure_ChargeProgram { + if x != nil { + return x.ChargeProgram + } + return ChargeProgramConfigure_DEFAULT_CHARGE_PROGRAM +} + +func (x *ChargeProgramConfigure) GetMaxSoc() *wrapperspb.Int32Value { + if x != nil { + return x.MaxSoc + } + return nil +} + +func (x *ChargeProgramConfigure) GetAutoUnlock() *wrapperspb.BoolValue { + if x != nil { + return x.AutoUnlock + } + return nil +} + +func (x *ChargeProgramConfigure) GetLocationBasedCharging() *wrapperspb.BoolValue { + if x != nil { + return x.LocationBasedCharging + } + return nil +} + +func (x *ChargeProgramConfigure) GetClockTimer() *wrapperspb.BoolValue { + if x != nil { + return x.ClockTimer + } + return nil +} + +func (x *ChargeProgramConfigure) GetEcoCharging() *wrapperspb.BoolValue { + if x != nil { + return x.EcoCharging + } + return nil +} + +// This is an experimental command +type ChargeControlConfigure struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Enables/Disables bidrectional charging + BiChargingEnabled *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=bi_charging_enabled,json=bidichargingenabled,proto3" json:"bi_charging_enabled,omitempty"` + // Sets the charging power in kW with a resolution of 0.1 kW. The value has an offset of -100 kW. So + // a value of 0 is equivalent to -100 kW. + ChargingPower *wrapperspb.FloatValue `protobuf:"bytes,2,opt,name=charging_power,json=chargingpower,proto3" json:"charging_power,omitempty"` + // must not be above max_soc + MinSoc *wrapperspb.Int32Value `protobuf:"bytes,3,opt,name=min_soc,json=minsoc,proto3" json:"min_soc,omitempty"` +} + +func (x *ChargeControlConfigure) Reset() { + *x = ChargeControlConfigure{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChargeControlConfigure) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChargeControlConfigure) ProtoMessage() {} + +func (x *ChargeControlConfigure) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChargeControlConfigure.ProtoReflect.Descriptor instead. +func (*ChargeControlConfigure) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{28} +} + +func (x *ChargeControlConfigure) GetBiChargingEnabled() *wrapperspb.BoolValue { + if x != nil { + return x.BiChargingEnabled + } + return nil +} + +func (x *ChargeControlConfigure) GetChargingPower() *wrapperspb.FloatValue { + if x != nil { + return x.ChargingPower + } + return nil +} + +func (x *ChargeControlConfigure) GetMinSoc() *wrapperspb.Int32Value { + if x != nil { + return x.MinSoc + } + return nil +} + +// Provide functionality to initiate a charge optimization configuration +type ChargeOptConfigure struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WeekdayTariff []*ChargeOptConfigure_Tariff `protobuf:"bytes,1,rep,name=weekday_tariff,json=weekdaytariff,proto3" json:"weekday_tariff,omitempty"` + WeekendTariff []*ChargeOptConfigure_Tariff `protobuf:"bytes,2,rep,name=weekend_tariff,json=weekendtariff,proto3" json:"weekend_tariff,omitempty"` +} + +func (x *ChargeOptConfigure) Reset() { + *x = ChargeOptConfigure{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChargeOptConfigure) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChargeOptConfigure) ProtoMessage() {} + +func (x *ChargeOptConfigure) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChargeOptConfigure.ProtoReflect.Descriptor instead. +func (*ChargeOptConfigure) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{29} +} + +func (x *ChargeOptConfigure) GetWeekdayTariff() []*ChargeOptConfigure_Tariff { + if x != nil { + return x.WeekdayTariff + } + return nil +} + +func (x *ChargeOptConfigure) GetWeekendTariff() []*ChargeOptConfigure_Tariff { + if x != nil { + return x.WeekendTariff + } + return nil +} + +// Provide the functionality to start the charge optimization function in the vehicle +type ChargeOptStart struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ChargeOptStart) Reset() { + *x = ChargeOptStart{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChargeOptStart) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChargeOptStart) ProtoMessage() {} + +func (x *ChargeOptStart) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChargeOptStart.ProtoReflect.Descriptor instead. +func (*ChargeOptStart) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{30} +} + +// Provide the functionality to stop the charge optimization function in the vehicle +type ChargeOptStop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ChargeOptStop) Reset() { + *x = ChargeOptStop{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChargeOptStop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChargeOptStop) ProtoMessage() {} + +func (x *ChargeOptStop) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChargeOptStop.ProtoReflect.Descriptor instead. +func (*ChargeOptStop) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{31} +} + +// Set the temperature points of the vehicle +type TemperatureConfigure struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TemperaturePoints []*TemperatureConfigure_TemperaturePoint `protobuf:"bytes,1,rep,name=temperature_points,json=temperaturePoints,proto3" json:"temperature_points,omitempty"` +} + +func (x *TemperatureConfigure) Reset() { + *x = TemperatureConfigure{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TemperatureConfigure) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TemperatureConfigure) ProtoMessage() {} + +func (x *TemperatureConfigure) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TemperatureConfigure.ProtoReflect.Descriptor instead. +func (*TemperatureConfigure) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{32} +} + +func (x *TemperatureConfigure) GetTemperaturePoints() []*TemperatureConfigure_TemperaturePoint { + if x != nil { + return x.TemperaturePoints + } + return nil +} + +// Set the weekprofile for the weekly departure time settings +type WeekProfileConfigure struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WeeklySetHu []*WeekProfileConfigure_WeeklySetHU `protobuf:"bytes,1,rep,name=weekly_set_hu,json=weeklySetHU,proto3" json:"weekly_set_hu,omitempty"` +} + +func (x *WeekProfileConfigure) Reset() { + *x = WeekProfileConfigure{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WeekProfileConfigure) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WeekProfileConfigure) ProtoMessage() {} + +func (x *WeekProfileConfigure) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WeekProfileConfigure.ProtoReflect.Descriptor instead. +func (*WeekProfileConfigure) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{33} +} + +func (x *WeekProfileConfigure) GetWeeklySetHu() []*WeekProfileConfigure_WeeklySetHU { + if x != nil { + return x.WeeklySetHu + } + return nil +} + +// Set the week profile for the weekly departure time settings version 2 +type WeekProfileConfigureV2 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // * The whole list of timeProfiles must always be provided + TimeProfiles []*TimeProfile `protobuf:"bytes,1,rep,name=time_profiles,json=timeprofiles,proto3" json:"time_profiles,omitempty"` +} + +func (x *WeekProfileConfigureV2) Reset() { + *x = WeekProfileConfigureV2{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WeekProfileConfigureV2) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WeekProfileConfigureV2) ProtoMessage() {} + +func (x *WeekProfileConfigureV2) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WeekProfileConfigureV2.ProtoReflect.Descriptor instead. +func (*WeekProfileConfigureV2) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{34} +} + +func (x *WeekProfileConfigureV2) GetTimeProfiles() []*TimeProfile { + if x != nil { + return x.TimeProfiles + } + return nil +} + +type TimeProfile struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // => only if time profile entry is unchanged, do not provide attribute "id" if new profile entry shall be added + // + // If a new time profile shall be added: do not provide the ID => ID will be set by MIC / vehicle + Identifier *wrapperspb.Int32Value `protobuf:"bytes,1,opt,name=identifier,json=id,proto3" json:"identifier,omitempty"` + // Hour after midnight range [0, 23] + Hour *wrapperspb.Int32Value `protobuf:"bytes,2,opt,name=hour,proto3" json:"hour,omitempty"` + // Minute after full hour range [0, 59] + Minute *wrapperspb.Int32Value `protobuf:"bytes,3,opt,name=minute,json=min,proto3" json:"minute,omitempty"` + // Days for which the above time should be applied + Days []TimeProfileDay `protobuf:"varint,4,rep,packed,name=days,json=day,proto3,enum=proto.TimeProfileDay" json:"days,omitempty"` + // Whether this profile entry is active or not + Active *wrapperspb.BoolValue `protobuf:"bytes,5,opt,name=active,proto3" json:"active,omitempty"` + // If a timeProfile is changed or added the respective applicationId must be provided by the SDK + // + // 11 = Internal Apps + // 12 = External Apps + ApplicationIdentifier int32 `protobuf:"varint,6,opt,name=application_identifier,json=applicationId,proto3" json:"application_identifier,omitempty"` +} + +func (x *TimeProfile) Reset() { + *x = TimeProfile{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TimeProfile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TimeProfile) ProtoMessage() {} + +func (x *TimeProfile) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TimeProfile.ProtoReflect.Descriptor instead. +func (*TimeProfile) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{35} +} + +func (x *TimeProfile) GetIdentifier() *wrapperspb.Int32Value { + if x != nil { + return x.Identifier + } + return nil +} + +func (x *TimeProfile) GetHour() *wrapperspb.Int32Value { + if x != nil { + return x.Hour + } + return nil +} + +func (x *TimeProfile) GetMinute() *wrapperspb.Int32Value { + if x != nil { + return x.Minute + } + return nil +} + +func (x *TimeProfile) GetDays() []TimeProfileDay { + if x != nil { + return x.Days + } + return nil +} + +func (x *TimeProfile) GetActive() *wrapperspb.BoolValue { + if x != nil { + return x.Active + } + return nil +} + +func (x *TimeProfile) GetApplicationIdentifier() int32 { + if x != nil { + return x.ApplicationIdentifier + } + return 0 +} + +// Invoke the Remote Vehicle Finder for signalling the vehicle’s position with lights, horn or panic alarm. +type SigPosStart struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Value needs to be between 0 and 30. The default is 0. + // Only allowed for RAMSES + HornRepeat int32 `protobuf:"varint,1,opt,name=horn_repeat,json=hornRepeat,proto3" json:"horn_repeat,omitempty"` + HornType SigPosStart_HornType `protobuf:"varint,2,opt,name=horn_type,json=hornType,proto3,enum=proto.SigPosStart_HornType" json:"horn_type,omitempty"` + LightType SigPosStart_LightType `protobuf:"varint,3,opt,name=light_type,json=lightType,proto3,enum=proto.SigPosStart_LightType" json:"light_type,omitempty"` + // Value needs to be between 0 and 10. It indicates how long the light should be switched on. + SigposDuration int32 `protobuf:"varint,4,opt,name=sigpos_duration,json=sigposDuration,proto3" json:"sigpos_duration,omitempty"` + SigposType SigPosStart_SigposType `protobuf:"varint,5,opt,name=sigpos_type,json=sigposType,proto3,enum=proto.SigPosStart_SigposType" json:"sigpos_type,omitempty"` +} + +func (x *SigPosStart) Reset() { + *x = SigPosStart{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SigPosStart) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SigPosStart) ProtoMessage() {} + +func (x *SigPosStart) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SigPosStart.ProtoReflect.Descriptor instead. +func (*SigPosStart) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{36} +} + +func (x *SigPosStart) GetHornRepeat() int32 { + if x != nil { + return x.HornRepeat + } + return 0 +} + +func (x *SigPosStart) GetHornType() SigPosStart_HornType { + if x != nil { + return x.HornType + } + return SigPosStart_HORN_OFF +} + +func (x *SigPosStart) GetLightType() SigPosStart_LightType { + if x != nil { + return x.LightType + } + return SigPosStart_LIGHT_OFF +} + +func (x *SigPosStart) GetSigposDuration() int32 { + if x != nil { + return x.SigposDuration + } + return 0 +} + +func (x *SigPosStart) GetSigposType() SigPosStart_SigposType { + if x != nil { + return x.SigposType + } + return SigPosStart_LIGHT_ONLY +} + +// Confirm the detected parking bump +type TheftalarmConfirmDamagedetection struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *TheftalarmConfirmDamagedetection) Reset() { + *x = TheftalarmConfirmDamagedetection{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TheftalarmConfirmDamagedetection) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TheftalarmConfirmDamagedetection) ProtoMessage() {} + +func (x *TheftalarmConfirmDamagedetection) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TheftalarmConfirmDamagedetection.ProtoReflect.Descriptor instead. +func (*TheftalarmConfirmDamagedetection) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{37} +} + +// Provide the functionality to deselect the parking damage detection sensor +type TheftalarmDeselectDamagedetection struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *TheftalarmDeselectDamagedetection) Reset() { + *x = TheftalarmDeselectDamagedetection{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TheftalarmDeselectDamagedetection) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TheftalarmDeselectDamagedetection) ProtoMessage() {} + +func (x *TheftalarmDeselectDamagedetection) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TheftalarmDeselectDamagedetection.ProtoReflect.Descriptor instead. +func (*TheftalarmDeselectDamagedetection) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{38} +} + +// Provide the functionality to deselect the interior protection sensor +type TheftalarmDeselectInterior struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *TheftalarmDeselectInterior) Reset() { + *x = TheftalarmDeselectInterior{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TheftalarmDeselectInterior) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TheftalarmDeselectInterior) ProtoMessage() {} + +func (x *TheftalarmDeselectInterior) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TheftalarmDeselectInterior.ProtoReflect.Descriptor instead. +func (*TheftalarmDeselectInterior) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{39} +} + +// Provide the functionality to deselect the tow protection sensor +type TheftalarmDeselectTow struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *TheftalarmDeselectTow) Reset() { + *x = TheftalarmDeselectTow{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TheftalarmDeselectTow) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TheftalarmDeselectTow) ProtoMessage() {} + +func (x *TheftalarmDeselectTow) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TheftalarmDeselectTow.ProtoReflect.Descriptor instead. +func (*TheftalarmDeselectTow) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{40} +} + +// Provide the functionality to select the parking damage detection sensor +type TheftalarmSelectDamagedetection struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *TheftalarmSelectDamagedetection) Reset() { + *x = TheftalarmSelectDamagedetection{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TheftalarmSelectDamagedetection) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TheftalarmSelectDamagedetection) ProtoMessage() {} + +func (x *TheftalarmSelectDamagedetection) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TheftalarmSelectDamagedetection.ProtoReflect.Descriptor instead. +func (*TheftalarmSelectDamagedetection) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{41} +} + +// Provide the functionality to select the interior protection sensor +type TheftalarmSelectInterior struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *TheftalarmSelectInterior) Reset() { + *x = TheftalarmSelectInterior{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TheftalarmSelectInterior) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TheftalarmSelectInterior) ProtoMessage() {} + +func (x *TheftalarmSelectInterior) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TheftalarmSelectInterior.ProtoReflect.Descriptor instead. +func (*TheftalarmSelectInterior) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{42} +} + +// Provide the functionality to select the tow protection sensor +type TheftalarmSelectTow struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *TheftalarmSelectTow) Reset() { + *x = TheftalarmSelectTow{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TheftalarmSelectTow) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TheftalarmSelectTow) ProtoMessage() {} + +func (x *TheftalarmSelectTow) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TheftalarmSelectTow.ProtoReflect.Descriptor instead. +func (*TheftalarmSelectTow) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{43} +} + +// Provide the functionality to trigger an alarm that lasts for "alarm_duration" seconds +type TheftalarmStart struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Specify how many seconds the alarm should be switched on + AlarmDurationInSeconds int32 `protobuf:"varint,1,opt,name=alarm_duration_in_seconds,json=alarmduration,proto3" json:"alarm_duration_in_seconds,omitempty"` +} + +func (x *TheftalarmStart) Reset() { + *x = TheftalarmStart{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TheftalarmStart) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TheftalarmStart) ProtoMessage() {} + +func (x *TheftalarmStart) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TheftalarmStart.ProtoReflect.Descriptor instead. +func (*TheftalarmStart) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{44} +} + +func (x *TheftalarmStart) GetAlarmDurationInSeconds() int32 { + if x != nil { + return x.AlarmDurationInSeconds + } + return 0 +} + +// Provide the functionality to deactivate an active/ongoing alarm +type TheftalarmStop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *TheftalarmStop) Reset() { + *x = TheftalarmStop{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TheftalarmStop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TheftalarmStop) ProtoMessage() {} + +func (x *TheftalarmStop) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TheftalarmStop.ProtoReflect.Descriptor instead. +func (*TheftalarmStop) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{45} +} + +type AutomaticValetParkingActivate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BookingId string `protobuf:"bytes,1,opt,name=booking_id,json=bookingId,proto3" json:"booking_id,omitempty"` + DriveType DriveType `protobuf:"varint,2,opt,name=drive_type,json=driveType,proto3,enum=proto.DriveType" json:"drive_type,omitempty"` +} + +func (x *AutomaticValetParkingActivate) Reset() { + *x = AutomaticValetParkingActivate{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AutomaticValetParkingActivate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AutomaticValetParkingActivate) ProtoMessage() {} + +func (x *AutomaticValetParkingActivate) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AutomaticValetParkingActivate.ProtoReflect.Descriptor instead. +func (*AutomaticValetParkingActivate) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{46} +} + +func (x *AutomaticValetParkingActivate) GetBookingId() string { + if x != nil { + return x.BookingId + } + return "" +} + +func (x *AutomaticValetParkingActivate) GetDriveType() DriveType { + if x != nil { + return x.DriveType + } + return DriveType_UNKNOWN_DRIVE_TYPE +} + +type ChargeFlapUnlock struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ChargeFlapUnlock) Reset() { + *x = ChargeFlapUnlock{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChargeFlapUnlock) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChargeFlapUnlock) ProtoMessage() {} + +func (x *ChargeFlapUnlock) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChargeFlapUnlock.ProtoReflect.Descriptor instead. +func (*ChargeFlapUnlock) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{47} +} + +type ChargeCouplerUnlock struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ChargeCouplerUnlock) Reset() { + *x = ChargeCouplerUnlock{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChargeCouplerUnlock) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChargeCouplerUnlock) ProtoMessage() {} + +func (x *ChargeCouplerUnlock) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChargeCouplerUnlock.ProtoReflect.Descriptor instead. +func (*ChargeCouplerUnlock) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{48} +} + +type ChargeOptConfigure_Tariff struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Rate ChargeOptConfigure_Tariff_Rate `protobuf:"varint,1,opt,name=rate,proto3,enum=proto.ChargeOptConfigure_Tariff_Rate" json:"rate,omitempty"` + // Time in seconds after 00:00 + Time int32 `protobuf:"varint,2,opt,name=time,proto3" json:"time,omitempty"` +} + +func (x *ChargeOptConfigure_Tariff) Reset() { + *x = ChargeOptConfigure_Tariff{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChargeOptConfigure_Tariff) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChargeOptConfigure_Tariff) ProtoMessage() {} + +func (x *ChargeOptConfigure_Tariff) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChargeOptConfigure_Tariff.ProtoReflect.Descriptor instead. +func (*ChargeOptConfigure_Tariff) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{29, 0} +} + +func (x *ChargeOptConfigure_Tariff) GetRate() ChargeOptConfigure_Tariff_Rate { + if x != nil { + return x.Rate + } + return ChargeOptConfigure_Tariff_INVALID_PRICE +} + +func (x *ChargeOptConfigure_Tariff) GetTime() int32 { + if x != nil { + return x.Time + } + return 0 +} + +type TemperatureConfigure_TemperaturePoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Zone TemperatureConfigure_TemperaturePoint_Zone `protobuf:"varint,1,opt,name=zone,proto3,enum=proto.TemperatureConfigure_TemperaturePoint_Zone" json:"zone,omitempty"` + TemperatureInCelsius float64 `protobuf:"fixed64,3,opt,name=temperature_in_celsius,json=temp,proto3" json:"temperature_in_celsius,omitempty"` +} + +func (x *TemperatureConfigure_TemperaturePoint) Reset() { + *x = TemperatureConfigure_TemperaturePoint{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TemperatureConfigure_TemperaturePoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TemperatureConfigure_TemperaturePoint) ProtoMessage() {} + +func (x *TemperatureConfigure_TemperaturePoint) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TemperatureConfigure_TemperaturePoint.ProtoReflect.Descriptor instead. +func (*TemperatureConfigure_TemperaturePoint) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{32, 0} +} + +func (x *TemperatureConfigure_TemperaturePoint) GetZone() TemperatureConfigure_TemperaturePoint_Zone { + if x != nil { + return x.Zone + } + return TemperatureConfigure_TemperaturePoint_unknown +} + +func (x *TemperatureConfigure_TemperaturePoint) GetTemperatureInCelsius() float64 { + if x != nil { + return x.TemperatureInCelsius + } + return 0 +} + +type WeekProfileConfigure_WeeklySetHU struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Day WeekProfileConfigure_WeeklySetHU_Day `protobuf:"varint,1,opt,name=day,proto3,enum=proto.WeekProfileConfigure_WeeklySetHU_Day" json:"day,omitempty"` + // Time in minutes after 00:00 + Time int32 `protobuf:"varint,2,opt,name=time,proto3" json:"time,omitempty"` +} + +func (x *WeekProfileConfigure_WeeklySetHU) Reset() { + *x = WeekProfileConfigure_WeeklySetHU{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_commands_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WeekProfileConfigure_WeeklySetHU) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WeekProfileConfigure_WeeklySetHU) ProtoMessage() {} + +func (x *WeekProfileConfigure_WeeklySetHU) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_commands_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WeekProfileConfigure_WeeklySetHU.ProtoReflect.Descriptor instead. +func (*WeekProfileConfigure_WeeklySetHU) Descriptor() ([]byte, []int) { + return file_vehicle_commands_proto_rawDescGZIP(), []int{33, 0} +} + +func (x *WeekProfileConfigure_WeeklySetHU) GetDay() WeekProfileConfigure_WeeklySetHU_Day { + if x != nil { + return x.Day + } + return WeekProfileConfigure_WeeklySetHU_MONDAY +} + +func (x *WeekProfileConfigure_WeeklySetHU) GetTime() int32 { + if x != nil { + return x.Time + } + return 0 +} + +var File_vehicle_commands_proto protoreflect.FileDescriptor + +var file_vehicle_commands_proto_rawDesc = []byte{ + 0x0a, 0x16, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x2d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x0a, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3a, 0x0a, 0x19, 0x41, + 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xbd, 0x1d, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x69, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x69, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x07, 0x62, + 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x07, 0x62, 0x61, 0x63, + 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x3a, 0x0a, 0x0d, 0x61, 0x75, 0x78, 0x68, 0x65, 0x61, 0x74, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x75, 0x78, 0x68, 0x65, 0x61, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x48, 0x00, 0x52, 0x0c, 0x61, 0x75, 0x78, 0x68, 0x65, 0x61, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x37, 0x0a, 0x0c, 0x61, 0x75, 0x78, 0x68, 0x65, 0x61, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x70, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, + 0x75, 0x78, 0x68, 0x65, 0x61, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x75, + 0x78, 0x68, 0x65, 0x61, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x46, 0x0a, 0x11, 0x61, 0x75, 0x78, + 0x68, 0x65, 0x61, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x75, 0x78, + 0x68, 0x65, 0x61, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, + 0x10, 0x61, 0x75, 0x78, 0x68, 0x65, 0x61, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x64, 0x6f, 0x6f, 0x72, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x6f, + 0x6f, 0x72, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x09, 0x64, 0x6f, 0x6f, 0x72, 0x73, + 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x37, 0x0a, 0x0c, 0x64, 0x6f, 0x6f, 0x72, 0x73, 0x5f, 0x75, 0x6e, + 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x44, 0x6f, 0x6f, 0x72, 0x73, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, + 0x52, 0x0b, 0x64, 0x6f, 0x6f, 0x72, 0x73, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x37, 0x0a, + 0x0c, 0x73, 0x75, 0x6e, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x75, 0x6e, 0x72, + 0x6f, 0x6f, 0x66, 0x4f, 0x70, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x75, 0x6e, 0x72, 0x6f, + 0x6f, 0x66, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x3a, 0x0a, 0x0d, 0x73, 0x75, 0x6e, 0x72, 0x6f, 0x6f, + 0x66, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x75, 0x6e, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6c, 0x6f, + 0x73, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x75, 0x6e, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6c, 0x6f, + 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x73, 0x75, 0x6e, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x6c, 0x69, + 0x66, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x53, 0x75, 0x6e, 0x72, 0x6f, 0x6f, 0x66, 0x4c, 0x69, 0x66, 0x74, 0x48, 0x00, 0x52, 0x0b, + 0x73, 0x75, 0x6e, 0x72, 0x6f, 0x6f, 0x66, 0x4c, 0x69, 0x66, 0x74, 0x12, 0x37, 0x0a, 0x0c, 0x73, + 0x75, 0x6e, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x75, 0x6e, 0x72, 0x6f, 0x6f, + 0x66, 0x4d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x75, 0x6e, 0x72, 0x6f, 0x6f, 0x66, + 0x4d, 0x6f, 0x76, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, + 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x48, 0x00, + 0x52, 0x0b, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x3a, 0x0a, + 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x2b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x73, 0x56, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, + 0x10, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x56, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x61, 0x74, + 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x6d, 0x6f, 0x76, + 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x4d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x4d, 0x6f, 0x76, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x65, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x34, 0x0a, 0x0b, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, + 0x6f, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x48, 0x00, 0x52, 0x0a, 0x65, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x5c, 0x0a, 0x19, 0x7a, 0x65, 0x76, + 0x5f, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x5a, 0x45, 0x56, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x00, 0x52, 0x17, + 0x7a, 0x65, 0x76, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x69, + 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x59, 0x0a, 0x18, 0x7a, 0x65, 0x76, 0x5f, 0x70, + 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x73, + 0x74, 0x6f, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x5a, 0x45, 0x56, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x6f, 0x70, 0x48, 0x00, 0x52, 0x16, 0x7a, 0x65, 0x76, 0x50, + 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, + 0x6f, 0x70, 0x12, 0x62, 0x0a, 0x1a, 0x7a, 0x65, 0x76, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, + 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x5a, + 0x45, 0x56, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, + 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x18, 0x7a, 0x65, + 0x76, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x72, 0x0a, 0x20, 0x7a, 0x65, 0x76, 0x5f, 0x70, 0x72, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x61, 0x74, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x5a, 0x45, 0x56, 0x50, 0x72, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x65, 0x53, 0x65, 0x61, 0x74, 0x73, 0x48, 0x00, 0x52, 0x1d, 0x7a, 0x65, 0x76, + 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x65, 0x53, 0x65, 0x61, 0x74, 0x73, 0x12, 0x43, 0x0a, 0x10, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x70, 0x65, + 0x65, 0x64, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x00, 0x52, 0x0f, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, + 0x40, 0x0a, 0x0f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x73, 0x74, + 0x6f, 0x70, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x48, + 0x00, 0x52, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x53, 0x74, 0x6f, + 0x70, 0x12, 0x5c, 0x0a, 0x16, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x5f, 0x63, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x1b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x79, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x14, 0x62, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x79, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, + 0x47, 0x0a, 0x0f, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, + 0x6f, 0x63, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x42, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x53, 0x6f, 0x63, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x62, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x79, 0x4d, 0x61, 0x78, 0x53, 0x6f, 0x63, 0x12, 0x59, 0x0a, 0x18, 0x63, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x16, 0x63, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x65, 0x12, 0x59, 0x0a, 0x18, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x18, + 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x68, + 0x61, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x16, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x4d, + 0x0a, 0x14, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x12, 0x63, 0x68, 0x61, 0x72, 0x67, + 0x65, 0x4f, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x41, 0x0a, + 0x10, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x00, + 0x52, 0x0e, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x3e, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x5f, 0x73, + 0x74, 0x6f, 0x70, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x48, + 0x00, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x53, 0x74, 0x6f, 0x70, + 0x12, 0x52, 0x0a, 0x15, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x14, + 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x65, 0x12, 0x53, 0x0a, 0x16, 0x77, 0x65, 0x65, 0x6b, 0x5f, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x18, 0x21, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x65, + 0x6b, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x48, 0x00, 0x52, 0x14, 0x77, 0x65, 0x65, 0x6b, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x5a, 0x0a, 0x19, 0x77, 0x65, 0x65, + 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x65, 0x5f, 0x76, 0x32, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x65, 0x6b, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x56, 0x32, 0x48, 0x00, 0x52, 0x16, 0x77, + 0x65, 0x65, 0x6b, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x65, 0x56, 0x32, 0x12, 0x37, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x70, 0x6f, 0x73, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x50, 0x6f, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, + 0x00, 0x52, 0x0b, 0x73, 0x69, 0x67, 0x70, 0x6f, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x77, + 0x0a, 0x22, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x64, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x54, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x20, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, + 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x64, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7a, 0x0a, 0x23, 0x74, 0x68, 0x65, 0x66, 0x74, + 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x64, + 0x61, 0x6d, 0x61, 0x67, 0x65, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x68, 0x65, + 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x44, 0x65, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x44, + 0x61, 0x6d, 0x61, 0x67, 0x65, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x52, 0x21, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x44, 0x65, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x65, 0x0a, 0x1c, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, + 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x69, 0x6f, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x54, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x44, 0x65, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x1a, + 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x44, 0x65, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x12, 0x56, 0x0a, 0x17, 0x74, 0x68, + 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x5f, 0x74, 0x6f, 0x77, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x44, 0x65, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x15, 0x74, 0x68, 0x65, + 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x44, 0x65, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x54, + 0x6f, 0x77, 0x12, 0x74, 0x0a, 0x21, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, + 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x64, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x64, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1f, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, + 0x61, 0x72, 0x6d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x64, + 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x1a, 0x74, 0x68, 0x65, 0x66, + 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x48, 0x00, 0x52, + 0x18, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x12, 0x50, 0x0a, 0x15, 0x74, 0x68, 0x65, + 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x74, + 0x6f, 0x77, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x54, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x54, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x13, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, + 0x72, 0x6d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x77, 0x12, 0x43, 0x0a, 0x10, 0x74, + 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x68, + 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x00, 0x52, + 0x0f, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x40, 0x0a, 0x0f, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x5f, 0x73, + 0x74, 0x6f, 0x70, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x54, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x74, 0x6f, 0x70, + 0x48, 0x00, 0x52, 0x0e, 0x74, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x74, + 0x6f, 0x70, 0x12, 0x6f, 0x0a, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x5f, + 0x76, 0x61, 0x6c, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x56, 0x61, + 0x6c, 0x65, 0x74, 0x50, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x48, 0x00, 0x52, 0x1d, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x56, + 0x61, 0x6c, 0x65, 0x74, 0x50, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x12, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x66, 0x6c, + 0x61, 0x70, 0x5f, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x46, 0x6c, + 0x61, 0x70, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x10, 0x63, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x46, 0x6c, 0x61, 0x70, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x50, 0x0a, 0x15, + 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x72, 0x5f, 0x75, + 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x70, 0x6c, 0x65, + 0x72, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x13, 0x63, 0x68, 0x61, 0x72, 0x67, + 0x65, 0x43, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x72, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x56, + 0x0a, 0x17, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x65, 0x68, + 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x48, 0x00, 0x52, + 0x15, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, + 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x50, 0x0a, 0x15, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x5f, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, + 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4b, 0x65, 0x79, + 0x73, 0x48, 0x00, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x56, 0x65, 0x68, + 0x69, 0x63, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x22, 0x0a, 0x07, 0x42, 0x61, 0x63, 0x6b, + 0x65, 0x6e, 0x64, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x56, 0x41, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, + 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x50, 0x49, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x22, 0xba, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4b, 0x65, 0x79, + 0x73, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x70, 0x69, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x69, 0x78, 0x12, 0x2d, 0x0a, 0x12, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x37, 0x0a, 0x17, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x13, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x10, 0x0a, 0x03, + 0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x12, 0x27, + 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x6e, 0x69, + 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x69, 0x78, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x37, 0x0a, 0x17, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, + 0x0e, 0x0a, 0x0c, 0x41, 0x75, 0x78, 0x68, 0x65, 0x61, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, + 0x0d, 0x0a, 0x0b, 0x41, 0x75, 0x78, 0x68, 0x65, 0x61, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x22, 0x80, + 0x02, 0x0a, 0x10, 0x41, 0x75, 0x78, 0x68, 0x65, 0x61, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x65, 0x12, 0x4f, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x75, 0x78, 0x68, 0x65, 0x61, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, + 0x61, 0x75, 0x78, 0x68, 0x65, 0x61, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x06, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x31, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x75, 0x78, 0x68, 0x65, 0x61, 0x74, 0x74, 0x69, 0x6d, + 0x65, 0x31, 0x12, 0x1c, 0x0a, 0x06, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x32, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x61, 0x75, 0x78, 0x68, 0x65, 0x61, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x32, + 0x12, 0x1c, 0x0a, 0x06, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0c, 0x61, 0x75, 0x78, 0x68, 0x65, 0x61, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x33, 0x22, 0x41, + 0x0a, 0x09, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x0c, 0x4e, + 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, + 0x06, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x49, 0x4d, + 0x45, 0x5f, 0x32, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x33, 0x10, + 0x03, 0x22, 0x2e, 0x0a, 0x09, 0x44, 0x6f, 0x6f, 0x72, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x21, + 0x0a, 0x05, 0x64, 0x6f, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x0b, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x6f, 0x6f, 0x72, 0x52, 0x05, 0x64, 0x6f, 0x6f, 0x72, + 0x73, 0x22, 0x42, 0x0a, 0x0b, 0x44, 0x6f, 0x6f, 0x72, 0x73, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, + 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x05, 0x64, 0x6f, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x6f, 0x6f, 0x72, 0x52, 0x05, + 0x64, 0x6f, 0x6f, 0x72, 0x73, 0x22, 0x1f, 0x0a, 0x0b, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x22, 0x0c, 0x0a, 0x0a, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x53, 0x74, 0x6f, 0x70, 0x22, 0x1f, 0x0a, 0x0b, 0x53, 0x75, 0x6e, 0x72, 0x6f, 0x6f, 0x66, 0x4f, + 0x70, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x70, 0x69, 0x6e, 0x22, 0x0e, 0x0a, 0x0c, 0x53, 0x75, 0x6e, 0x72, 0x6f, 0x6f, 0x66, + 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x22, 0x1f, 0x0a, 0x0b, 0x53, 0x75, 0x6e, 0x72, 0x6f, 0x6f, 0x66, + 0x4c, 0x69, 0x66, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x22, 0xee, 0x01, 0x0a, 0x0b, 0x53, 0x75, 0x6e, 0x72, 0x6f, + 0x6f, 0x66, 0x4d, 0x6f, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x12, 0x35, 0x0a, 0x07, 0x73, 0x75, 0x6e, 0x72, + 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x73, 0x75, 0x6e, 0x72, 0x6f, 0x6f, 0x66, 0x12, + 0x4b, 0x0a, 0x13, 0x73, 0x75, 0x6e, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, + 0x5f, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x73, 0x75, 0x6e, 0x72, 0x6f, + 0x6f, 0x66, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x12, + 0x73, 0x75, 0x6e, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x5f, 0x72, 0x65, + 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x73, 0x75, 0x6e, 0x72, 0x6f, 0x6f, 0x66, 0x62, 0x6c, + 0x69, 0x6e, 0x64, 0x72, 0x65, 0x61, 0x72, 0x22, 0x1f, 0x0a, 0x0b, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x22, 0x0e, 0x0a, 0x0c, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x22, 0x24, 0x0a, 0x10, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x56, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x22, 0x81, + 0x04, 0x0a, 0x0b, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x4d, 0x6f, 0x76, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, + 0x12, 0x40, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x6c, 0x65, + 0x66, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x5f, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x66, 0x72, 0x6f, 0x6e, + 0x74, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x40, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x72, 0x5f, 0x62, + 0x6c, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x72, + 0x65, 0x61, 0x72, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x72, + 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x72, 0x65, 0x61, 0x72, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x49, 0x0a, 0x0f, 0x72, 0x65, 0x61, 0x72, + 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x72, 0x65, 0x61, 0x72, 0x6c, 0x65, 0x66, 0x74, 0x62, 0x6c, + 0x69, 0x6e, 0x64, 0x12, 0x40, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x72, 0x5f, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x72, 0x65, 0x61, 0x72, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x4b, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x72, 0x5f, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x72, 0x65, 0x61, 0x72, 0x72, 0x69, 0x67, 0x68, 0x74, 0x62, 0x6c, 0x69, + 0x6e, 0x64, 0x22, 0x64, 0x0a, 0x0f, 0x53, 0x70, 0x65, 0x65, 0x64, 0x61, 0x6c, 0x65, 0x72, 0x74, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x73, 0x70, 0x65, 0x65, 0x64, 0x41, + 0x6c, 0x65, 0x72, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x29, 0x0a, + 0x0e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x73, 0x70, 0x65, 0x65, 0x64, 0x41, 0x6c, 0x65, 0x72, + 0x74, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x53, 0x70, 0x65, 0x65, + 0x64, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x22, 0x73, 0x0a, 0x17, 0x5a, 0x45, + 0x56, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, + 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x64, + 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x5a, 0x45, 0x56, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x4b, 0x0a, 0x16, 0x5a, 0x45, 0x56, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x5a, 0x45, 0x56, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x69, + 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xf9, 0x01, 0x0a, + 0x1b, 0x5a, 0x45, 0x56, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x64, 0x0a, 0x13, + 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x5a, 0x45, 0x56, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x2e, 0x44, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, + 0x11, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x75, 0x72, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x4d, 0x0a, 0x11, 0x44, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0c, + 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, + 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x44, 0x45, 0x50, 0x41, 0x52, 0x54, 0x55, 0x52, 0x45, + 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x57, 0x45, 0x45, 0x4b, 0x4c, 0x59, 0x5f, 0x44, 0x45, 0x50, + 0x41, 0x52, 0x54, 0x55, 0x52, 0x45, 0x10, 0x02, 0x22, 0xca, 0x01, 0x0a, 0x20, 0x5a, 0x45, 0x56, + 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x53, 0x65, 0x61, 0x74, 0x73, 0x12, 0x28, 0x0a, + 0x0a, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x14, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x53, 0x65, 0x61, 0x74, 0x46, 0x72, + 0x6f, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x2a, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6e, 0x74, + 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x70, 0x72, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x53, 0x65, 0x61, 0x74, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x52, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x72, 0x5f, 0x6c, 0x65, 0x66, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x53, + 0x65, 0x61, 0x74, 0x52, 0x65, 0x61, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x28, 0x0a, 0x0a, 0x72, + 0x65, 0x61, 0x72, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x14, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x53, 0x65, 0x61, 0x74, 0x52, 0x65, 0x61, 0x72, + 0x52, 0x69, 0x67, 0x68, 0x74, 0x22, 0xa5, 0x01, 0x0a, 0x1d, 0x42, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x79, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x59, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x72, 0x67, + 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, + 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x61, 0x6d, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x70, 0x72, 0x6f, 0x67, 0x72, + 0x61, 0x6d, 0x22, 0x29, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x61, 0x6d, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, + 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x54, 0x10, 0x01, 0x22, 0x31, 0x0a, + 0x16, 0x42, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x53, 0x6f, 0x63, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x73, + 0x6f, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x73, 0x6f, 0x63, + 0x22, 0x8e, 0x04, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x52, 0x0a, 0x0e, 0x63, + 0x68, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, + 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, + 0x34, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x6f, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6d, + 0x61, 0x78, 0x73, 0x6f, 0x63, 0x12, 0x3b, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x75, 0x6e, + 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, + 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x75, 0x6e, 0x6c, 0x6f, + 0x63, 0x6b, 0x12, 0x52, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, + 0x61, 0x73, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x15, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x64, 0x63, 0x68, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, + 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, + 0x6d, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0c, 0x65, 0x63, 0x6f, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x65, 0x63, 0x6f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x67, 0x22, 0x5d, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x43, + 0x48, 0x41, 0x52, 0x47, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x10, 0x00, 0x12, + 0x17, 0x0a, 0x13, 0x48, 0x4f, 0x4d, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x5f, 0x50, + 0x52, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x57, 0x4f, 0x52, 0x4b, + 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x10, + 0x03, 0x22, 0xe0, 0x01, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x4c, 0x0a, 0x13, + 0x62, 0x69, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x62, 0x69, 0x64, 0x69, 0x63, 0x68, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x67, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x0e, 0x63, 0x68, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0d, 0x63, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x34, + 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x6f, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6d, 0x69, + 0x6e, 0x73, 0x6f, 0x63, 0x22, 0xcc, 0x02, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4f, + 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x77, + 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x69, 0x66, 0x66, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x4f, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x2e, 0x54, + 0x61, 0x72, 0x69, 0x66, 0x66, 0x52, 0x0d, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x74, 0x61, + 0x72, 0x69, 0x66, 0x66, 0x12, 0x47, 0x0a, 0x0e, 0x77, 0x65, 0x65, 0x6b, 0x65, 0x6e, 0x64, 0x5f, + 0x74, 0x61, 0x72, 0x69, 0x66, 0x66, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x2e, 0x54, 0x61, 0x72, 0x69, 0x66, 0x66, 0x52, 0x0d, + 0x77, 0x65, 0x65, 0x6b, 0x65, 0x6e, 0x64, 0x74, 0x61, 0x72, 0x69, 0x66, 0x66, 0x1a, 0xa3, 0x01, + 0x0a, 0x06, 0x54, 0x61, 0x72, 0x69, 0x66, 0x66, 0x12, 0x39, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, + 0x68, 0x61, 0x72, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x2e, 0x54, 0x61, 0x72, 0x69, 0x66, 0x66, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x52, 0x04, 0x72, + 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x4a, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x12, + 0x11, 0x0a, 0x0d, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x50, 0x52, 0x49, 0x43, 0x45, + 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x52, 0x49, 0x43, 0x45, 0x10, + 0x21, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x50, 0x52, 0x49, 0x43, + 0x45, 0x10, 0x2c, 0x12, 0x0e, 0x0a, 0x0a, 0x48, 0x49, 0x47, 0x48, 0x5f, 0x50, 0x52, 0x49, 0x43, + 0x45, 0x10, 0x42, 0x22, 0x10, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4f, 0x70, 0x74, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4f, + 0x70, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x22, 0xcd, 0x04, 0x0a, 0x14, 0x54, 0x65, 0x6d, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, + 0x5b, 0x0a, 0x12, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x11, 0x74, 0x65, 0x6d, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0xd7, 0x03, 0x0a, + 0x10, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x12, 0x45, 0x0a, 0x04, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x2e, 0x54, 0x65, 0x6d, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x5a, 0x6f, + 0x6e, 0x65, 0x52, 0x04, 0x7a, 0x6f, 0x6e, 0x65, 0x12, 0x24, 0x0a, 0x16, 0x74, 0x65, 0x6d, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x63, 0x65, 0x6c, 0x73, 0x69, + 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x65, 0x6d, 0x70, 0x22, 0xcf, + 0x02, 0x0a, 0x04, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x4c, 0x65, 0x66, + 0x74, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x52, 0x69, 0x67, 0x68, + 0x74, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x43, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x72, 0x4c, 0x65, 0x66, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x72, 0x52, 0x69, 0x67, 0x68, 0x74, 0x10, + 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x10, + 0x06, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x72, 0x32, 0x4c, 0x65, 0x66, 0x74, 0x10, 0x07, + 0x12, 0x0e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x72, 0x32, 0x52, 0x69, 0x67, 0x68, 0x74, 0x10, 0x08, + 0x12, 0x0f, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x72, 0x32, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x10, + 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x5a, 0x4f, 0x4e, + 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x52, 0x4f, 0x4e, 0x54, 0x5f, 0x4c, 0x45, 0x46, + 0x54, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x52, 0x4f, 0x4e, 0x54, 0x5f, 0x52, 0x49, 0x47, + 0x48, 0x54, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x52, 0x4f, 0x4e, 0x54, 0x5f, 0x43, 0x45, + 0x4e, 0x54, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x41, 0x52, 0x5f, 0x4c, + 0x45, 0x46, 0x54, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x41, 0x52, 0x5f, 0x52, 0x49, + 0x47, 0x48, 0x54, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x41, 0x52, 0x5f, 0x43, 0x45, + 0x4e, 0x54, 0x45, 0x52, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x41, 0x52, 0x5f, 0x32, + 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x45, 0x41, 0x52, 0x5f, + 0x32, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x45, 0x41, + 0x52, 0x5f, 0x32, 0x5f, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x09, 0x1a, 0x02, 0x10, 0x01, + 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0xa9, 0x02, 0x0a, 0x14, 0x57, 0x65, 0x65, 0x6b, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, + 0x4b, 0x0a, 0x0d, 0x77, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x68, 0x75, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, + 0x65, 0x65, 0x6b, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x65, 0x74, 0x48, 0x55, 0x52, + 0x0b, 0x77, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x65, 0x74, 0x48, 0x55, 0x1a, 0xc3, 0x01, 0x0a, + 0x0b, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x65, 0x74, 0x48, 0x55, 0x12, 0x3d, 0x0a, 0x03, + 0x64, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x57, 0x65, 0x65, 0x6b, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x65, 0x74, + 0x48, 0x55, 0x2e, 0x44, 0x61, 0x79, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, + 0x61, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x4f, 0x4e, 0x44, 0x41, 0x59, + 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x55, 0x45, 0x53, 0x44, 0x41, 0x59, 0x10, 0x01, 0x12, + 0x0d, 0x0a, 0x09, 0x57, 0x45, 0x44, 0x4e, 0x45, 0x53, 0x44, 0x41, 0x59, 0x10, 0x02, 0x12, 0x0c, + 0x0a, 0x08, 0x54, 0x48, 0x55, 0x52, 0x53, 0x44, 0x41, 0x59, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, + 0x46, 0x52, 0x49, 0x44, 0x41, 0x59, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x41, 0x54, 0x55, + 0x52, 0x44, 0x41, 0x59, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x55, 0x4e, 0x44, 0x41, 0x59, + 0x10, 0x06, 0x22, 0x51, 0x0a, 0x16, 0x57, 0x65, 0x65, 0x6b, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x56, 0x32, 0x12, 0x37, 0x0a, 0x0d, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0xb2, 0x02, 0x0a, 0x0b, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x04, 0x68, 0x6f, + 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x30, 0x0a, 0x06, 0x6d, + 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x0a, + 0x04, 0x64, 0x61, 0x79, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, + 0x61, 0x79, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x32, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2d, 0x0a, 0x16, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xeb, 0x03, 0x0a, 0x0b, 0x53, + 0x69, 0x67, 0x50, 0x6f, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x6f, + 0x72, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x68, 0x6f, 0x72, 0x6e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x68, + 0x6f, 0x72, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x50, 0x6f, 0x73, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x2e, 0x48, 0x6f, 0x72, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x68, 0x6f, 0x72, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x50, 0x6f, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x2e, 0x4c, 0x69, + 0x67, 0x68, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, 0x67, 0x70, 0x6f, 0x73, 0x5f, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x69, 0x67, + 0x70, 0x6f, 0x73, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0b, 0x73, + 0x69, 0x67, 0x70, 0x6f, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x50, 0x6f, 0x73, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x2e, 0x53, 0x69, 0x67, 0x70, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x0a, 0x73, 0x69, 0x67, 0x70, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x43, 0x0a, 0x08, 0x48, + 0x6f, 0x72, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x48, 0x4f, 0x52, 0x4e, 0x5f, + 0x4f, 0x46, 0x46, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x48, 0x4f, 0x52, 0x4e, 0x5f, 0x4c, 0x4f, + 0x57, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x4f, + 0x52, 0x4e, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x02, + 0x22, 0x44, 0x0a, 0x09, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, + 0x09, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, + 0x44, 0x49, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x4c, 0x49, 0x47, 0x48, + 0x54, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4c, + 0x49, 0x47, 0x48, 0x54, 0x10, 0x02, 0x22, 0x50, 0x0a, 0x0a, 0x53, 0x69, 0x67, 0x70, 0x6f, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x4f, 0x4e, + 0x4c, 0x59, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x4f, 0x52, 0x4e, 0x5f, 0x4f, 0x4e, 0x4c, + 0x59, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x41, 0x4e, 0x44, + 0x5f, 0x48, 0x4f, 0x52, 0x4e, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x41, 0x4e, 0x49, 0x43, + 0x5f, 0x41, 0x4c, 0x41, 0x52, 0x4d, 0x10, 0x03, 0x22, 0x22, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x66, + 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x44, 0x61, 0x6d, + 0x61, 0x67, 0x65, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x23, 0x0a, 0x21, + 0x54, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x44, 0x65, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x1c, 0x0a, 0x1a, 0x54, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x44, + 0x65, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x22, + 0x17, 0x0a, 0x15, 0x54, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x44, 0x65, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x77, 0x22, 0x21, 0x0a, 0x1f, 0x54, 0x68, 0x65, 0x66, + 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x44, 0x61, 0x6d, 0x61, + 0x67, 0x65, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x1a, 0x0a, 0x18, 0x54, + 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x22, 0x15, 0x0a, 0x13, 0x54, 0x68, 0x65, 0x66, 0x74, + 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x77, 0x22, 0x43, + 0x0a, 0x0f, 0x54, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x12, 0x30, 0x0a, 0x19, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x10, 0x0a, 0x0e, 0x54, 0x68, 0x65, 0x66, 0x74, 0x61, 0x6c, 0x61, 0x72, + 0x6d, 0x53, 0x74, 0x6f, 0x70, 0x22, 0x6f, 0x0a, 0x1d, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x69, 0x63, 0x56, 0x61, 0x6c, 0x65, 0x74, 0x50, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, + 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6b, + 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0a, 0x64, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x64, 0x72, 0x69, + 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, + 0x46, 0x6c, 0x61, 0x70, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x15, 0x0a, 0x13, 0x43, 0x68, + 0x61, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x72, 0x55, 0x6e, 0x6c, 0x6f, 0x63, + 0x6b, 0x2a, 0xa5, 0x02, 0x0a, 0x04, 0x44, 0x6f, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x0c, 0x75, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x64, 0x6f, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, + 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x6c, 0x65, 0x66, 0x74, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x66, + 0x72, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x67, 0x68, 0x74, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x72, + 0x65, 0x61, 0x72, 0x6c, 0x65, 0x66, 0x74, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x65, 0x61, + 0x72, 0x72, 0x69, 0x67, 0x68, 0x74, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x74, 0x72, 0x75, 0x6e, + 0x6b, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x66, 0x75, 0x65, 0x6c, 0x66, 0x6c, 0x61, 0x70, 0x10, + 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x66, 0x6c, 0x61, 0x70, 0x10, + 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x63, 0x6f, 0x75, 0x70, 0x6c, + 0x65, 0x72, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, + 0x44, 0x4f, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x52, 0x4f, 0x4e, 0x54, 0x5f, + 0x4c, 0x45, 0x46, 0x54, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x52, 0x4f, 0x4e, 0x54, 0x5f, + 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x41, 0x52, 0x5f, + 0x4c, 0x45, 0x46, 0x54, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x41, 0x52, 0x5f, 0x52, + 0x49, 0x47, 0x48, 0x54, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x52, 0x55, 0x4e, 0x4b, 0x10, + 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x55, 0x45, 0x4c, 0x5f, 0x46, 0x4c, 0x41, 0x50, 0x10, 0x06, + 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x5f, 0x46, 0x4c, 0x41, 0x50, 0x10, + 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x50, + 0x4c, 0x45, 0x52, 0x10, 0x08, 0x1a, 0x02, 0x10, 0x01, 0x2a, 0xf1, 0x01, 0x0a, 0x16, 0x5a, 0x45, + 0x56, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x28, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, + 0x7a, 0x65, 0x76, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x10, + 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x10, 0x02, + 0x12, 0x07, 0x0a, 0x03, 0x6e, 0x6f, 0x77, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x64, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x10, 0x04, 0x12, 0x2c, + 0x0a, 0x28, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x5a, 0x45, 0x56, 0x5f, 0x50, 0x52, + 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4f, + 0x4d, 0x4d, 0x41, 0x4e, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, + 0x49, 0x4d, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x44, + 0x45, 0x50, 0x41, 0x52, 0x54, 0x55, 0x52, 0x45, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x4f, + 0x57, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x45, 0x50, 0x41, 0x52, 0x54, 0x55, 0x52, 0x45, + 0x5f, 0x57, 0x45, 0x45, 0x4b, 0x4c, 0x59, 0x10, 0x04, 0x1a, 0x02, 0x10, 0x01, 0x2a, 0xa8, 0x01, + 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x79, + 0x12, 0x06, 0x0a, 0x02, 0x4d, 0x6f, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x54, 0x75, 0x10, 0x01, + 0x12, 0x06, 0x0a, 0x02, 0x57, 0x65, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x54, 0x68, 0x10, 0x03, + 0x12, 0x06, 0x0a, 0x02, 0x46, 0x72, 0x10, 0x04, 0x12, 0x06, 0x0a, 0x02, 0x53, 0x61, 0x10, 0x05, + 0x12, 0x06, 0x0a, 0x02, 0x53, 0x75, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x4f, 0x4e, 0x44, + 0x41, 0x59, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x55, 0x45, 0x53, 0x44, 0x41, 0x59, 0x10, + 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x45, 0x44, 0x4e, 0x45, 0x53, 0x44, 0x41, 0x59, 0x10, 0x02, + 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x48, 0x55, 0x52, 0x53, 0x44, 0x41, 0x59, 0x10, 0x03, 0x12, 0x0a, + 0x0a, 0x06, 0x46, 0x52, 0x49, 0x44, 0x41, 0x59, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x41, + 0x54, 0x55, 0x52, 0x44, 0x41, 0x59, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x55, 0x4e, 0x44, + 0x41, 0x59, 0x10, 0x06, 0x1a, 0x02, 0x10, 0x01, 0x2a, 0x3e, 0x0a, 0x09, 0x44, 0x72, 0x69, 0x76, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, + 0x07, 0x50, 0x49, 0x43, 0x4b, 0x5f, 0x55, 0x50, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x52, + 0x4f, 0x50, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x02, 0x42, 0x20, 0xd0, 0xe1, 0x1e, 0x01, 0x0a, 0x1a, + 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x61, 0x69, 0x6d, 0x6c, 0x65, 0x72, 0x2e, 0x6d, 0x62, 0x63, 0x61, + 0x72, 0x6b, 0x69, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_vehicle_commands_proto_rawDescOnce sync.Once + file_vehicle_commands_proto_rawDescData = file_vehicle_commands_proto_rawDesc +) + +func file_vehicle_commands_proto_rawDescGZIP() []byte { + file_vehicle_commands_proto_rawDescOnce.Do(func() { + file_vehicle_commands_proto_rawDescData = protoimpl.X.CompressGZIP(file_vehicle_commands_proto_rawDescData) + }) + return file_vehicle_commands_proto_rawDescData +} + +var file_vehicle_commands_proto_enumTypes = make([]protoimpl.EnumInfo, 15) +var file_vehicle_commands_proto_msgTypes = make([]protoimpl.MessageInfo, 52) +var file_vehicle_commands_proto_goTypes = []interface{}{ + (Door)(0), // 0: proto.Door + (ZEVPreconditioningType)(0), // 1: proto.ZEVPreconditioningType + (TimeProfileDay)(0), // 2: proto.TimeProfileDay + (DriveType)(0), // 3: proto.DriveType + (CommandRequest_Backend)(0), // 4: proto.CommandRequest.Backend + (AuxheatConfigure_Selection)(0), // 5: proto.AuxheatConfigure.Selection + (ZEVPreconditioningConfigure_DepartureTimeMode)(0), // 6: proto.ZEVPreconditioningConfigure.DepartureTimeMode + (BatteryChargeProgramConfigure_ChargeProgram)(0), // 7: proto.BatteryChargeProgramConfigure.ChargeProgram + (ChargeProgramConfigure_ChargeProgram)(0), // 8: proto.ChargeProgramConfigure.ChargeProgram + (ChargeOptConfigure_Tariff_Rate)(0), // 9: proto.ChargeOptConfigure.Tariff.Rate + (TemperatureConfigure_TemperaturePoint_Zone)(0), // 10: proto.TemperatureConfigure.TemperaturePoint.Zone + (WeekProfileConfigure_WeeklySetHU_Day)(0), // 11: proto.WeekProfileConfigure.WeeklySetHU.Day + (SigPosStart_HornType)(0), // 12: proto.SigPosStart.HornType + (SigPosStart_LightType)(0), // 13: proto.SigPosStart.LightType + (SigPosStart_SigposType)(0), // 14: proto.SigPosStart.SigposType + (*AcknowledgeCommandRequest)(nil), // 15: proto.AcknowledgeCommandRequest + (*CommandRequest)(nil), // 16: proto.CommandRequest + (*DeactivateVehicleKeys)(nil), // 17: proto.DeactivateVehicleKeys + (*ActivateVehicleKeys)(nil), // 18: proto.ActivateVehicleKeys + (*AuxheatStart)(nil), // 19: proto.AuxheatStart + (*AuxheatStop)(nil), // 20: proto.AuxheatStop + (*AuxheatConfigure)(nil), // 21: proto.AuxheatConfigure + (*DoorsLock)(nil), // 22: proto.DoorsLock + (*DoorsUnlock)(nil), // 23: proto.DoorsUnlock + (*EngineStart)(nil), // 24: proto.EngineStart + (*EngineStop)(nil), // 25: proto.EngineStop + (*SunroofOpen)(nil), // 26: proto.SunroofOpen + (*SunroofClose)(nil), // 27: proto.SunroofClose + (*SunroofLift)(nil), // 28: proto.SunroofLift + (*SunroofMove)(nil), // 29: proto.SunroofMove + (*WindowsOpen)(nil), // 30: proto.WindowsOpen + (*WindowsClose)(nil), // 31: proto.WindowsClose + (*WindowsVentilate)(nil), // 32: proto.WindowsVentilate + (*WindowsMove)(nil), // 33: proto.WindowsMove + (*SpeedalertStart)(nil), // 34: proto.SpeedalertStart + (*SpeedalertStop)(nil), // 35: proto.SpeedalertStop + (*ZEVPreconditioningStart)(nil), // 36: proto.ZEVPreconditioningStart + (*ZEVPreconditioningStop)(nil), // 37: proto.ZEVPreconditioningStop + (*ZEVPreconditioningConfigure)(nil), // 38: proto.ZEVPreconditioningConfigure + (*ZEVPreconditioningConfigureSeats)(nil), // 39: proto.ZEVPreconditioningConfigureSeats + (*BatteryChargeProgramConfigure)(nil), // 40: proto.BatteryChargeProgramConfigure + (*BatteryMaxSocConfigure)(nil), // 41: proto.BatteryMaxSocConfigure + (*ChargeProgramConfigure)(nil), // 42: proto.ChargeProgramConfigure + (*ChargeControlConfigure)(nil), // 43: proto.ChargeControlConfigure + (*ChargeOptConfigure)(nil), // 44: proto.ChargeOptConfigure + (*ChargeOptStart)(nil), // 45: proto.ChargeOptStart + (*ChargeOptStop)(nil), // 46: proto.ChargeOptStop + (*TemperatureConfigure)(nil), // 47: proto.TemperatureConfigure + (*WeekProfileConfigure)(nil), // 48: proto.WeekProfileConfigure + (*WeekProfileConfigureV2)(nil), // 49: proto.WeekProfileConfigureV2 + (*TimeProfile)(nil), // 50: proto.TimeProfile + (*SigPosStart)(nil), // 51: proto.SigPosStart + (*TheftalarmConfirmDamagedetection)(nil), // 52: proto.TheftalarmConfirmDamagedetection + (*TheftalarmDeselectDamagedetection)(nil), // 53: proto.TheftalarmDeselectDamagedetection + (*TheftalarmDeselectInterior)(nil), // 54: proto.TheftalarmDeselectInterior + (*TheftalarmDeselectTow)(nil), // 55: proto.TheftalarmDeselectTow + (*TheftalarmSelectDamagedetection)(nil), // 56: proto.TheftalarmSelectDamagedetection + (*TheftalarmSelectInterior)(nil), // 57: proto.TheftalarmSelectInterior + (*TheftalarmSelectTow)(nil), // 58: proto.TheftalarmSelectTow + (*TheftalarmStart)(nil), // 59: proto.TheftalarmStart + (*TheftalarmStop)(nil), // 60: proto.TheftalarmStop + (*AutomaticValetParkingActivate)(nil), // 61: proto.AutomaticValetParkingActivate + (*ChargeFlapUnlock)(nil), // 62: proto.ChargeFlapUnlock + (*ChargeCouplerUnlock)(nil), // 63: proto.ChargeCouplerUnlock + (*ChargeOptConfigure_Tariff)(nil), // 64: proto.ChargeOptConfigure.Tariff + (*TemperatureConfigure_TemperaturePoint)(nil), // 65: proto.TemperatureConfigure.TemperaturePoint + (*WeekProfileConfigure_WeeklySetHU)(nil), // 66: proto.WeekProfileConfigure.WeeklySetHU + (*wrapperspb.Int32Value)(nil), // 67: google.protobuf.Int32Value + (*wrapperspb.BoolValue)(nil), // 68: google.protobuf.BoolValue + (*wrapperspb.FloatValue)(nil), // 69: google.protobuf.FloatValue +} +var file_vehicle_commands_proto_depIdxs = []int32{ + 4, // 0: proto.CommandRequest.backend:type_name -> proto.CommandRequest.Backend + 19, // 1: proto.CommandRequest.auxheat_start:type_name -> proto.AuxheatStart + 20, // 2: proto.CommandRequest.auxheat_stop:type_name -> proto.AuxheatStop + 21, // 3: proto.CommandRequest.auxheat_configure:type_name -> proto.AuxheatConfigure + 22, // 4: proto.CommandRequest.doors_lock:type_name -> proto.DoorsLock + 23, // 5: proto.CommandRequest.doors_unlock:type_name -> proto.DoorsUnlock + 26, // 6: proto.CommandRequest.sunroof_open:type_name -> proto.SunroofOpen + 27, // 7: proto.CommandRequest.sunroof_close:type_name -> proto.SunroofClose + 28, // 8: proto.CommandRequest.sunroof_lift:type_name -> proto.SunroofLift + 29, // 9: proto.CommandRequest.sunroof_move:type_name -> proto.SunroofMove + 30, // 10: proto.CommandRequest.windows_open:type_name -> proto.WindowsOpen + 31, // 11: proto.CommandRequest.windows_close:type_name -> proto.WindowsClose + 32, // 12: proto.CommandRequest.windows_ventilate:type_name -> proto.WindowsVentilate + 33, // 13: proto.CommandRequest.windows_move:type_name -> proto.WindowsMove + 24, // 14: proto.CommandRequest.engine_start:type_name -> proto.EngineStart + 25, // 15: proto.CommandRequest.engine_stop:type_name -> proto.EngineStop + 36, // 16: proto.CommandRequest.zev_preconditioning_start:type_name -> proto.ZEVPreconditioningStart + 37, // 17: proto.CommandRequest.zev_preconditioning_stop:type_name -> proto.ZEVPreconditioningStop + 38, // 18: proto.CommandRequest.zev_precondition_configure:type_name -> proto.ZEVPreconditioningConfigure + 39, // 19: proto.CommandRequest.zev_precondition_configure_seats:type_name -> proto.ZEVPreconditioningConfigureSeats + 34, // 20: proto.CommandRequest.speedalert_start:type_name -> proto.SpeedalertStart + 35, // 21: proto.CommandRequest.speedalert_stop:type_name -> proto.SpeedalertStop + 40, // 22: proto.CommandRequest.battery_charge_program:type_name -> proto.BatteryChargeProgramConfigure + 41, // 23: proto.CommandRequest.battery_max_soc:type_name -> proto.BatteryMaxSocConfigure + 42, // 24: proto.CommandRequest.charge_program_configure:type_name -> proto.ChargeProgramConfigure + 43, // 25: proto.CommandRequest.charge_control_configure:type_name -> proto.ChargeControlConfigure + 44, // 26: proto.CommandRequest.charge_opt_configure:type_name -> proto.ChargeOptConfigure + 45, // 27: proto.CommandRequest.charge_opt_start:type_name -> proto.ChargeOptStart + 46, // 28: proto.CommandRequest.charge_opt_stop:type_name -> proto.ChargeOptStop + 47, // 29: proto.CommandRequest.temperature_configure:type_name -> proto.TemperatureConfigure + 48, // 30: proto.CommandRequest.week_profile_configure:type_name -> proto.WeekProfileConfigure + 49, // 31: proto.CommandRequest.week_profile_configure_v2:type_name -> proto.WeekProfileConfigureV2 + 51, // 32: proto.CommandRequest.sigpos_start:type_name -> proto.SigPosStart + 52, // 33: proto.CommandRequest.theftalarm_confirm_damagedetection:type_name -> proto.TheftalarmConfirmDamagedetection + 53, // 34: proto.CommandRequest.theftalarm_deselect_damagedetection:type_name -> proto.TheftalarmDeselectDamagedetection + 54, // 35: proto.CommandRequest.theftalarm_deselect_interior:type_name -> proto.TheftalarmDeselectInterior + 55, // 36: proto.CommandRequest.theftalarm_deselect_tow:type_name -> proto.TheftalarmDeselectTow + 56, // 37: proto.CommandRequest.theftalarm_select_damagedetection:type_name -> proto.TheftalarmSelectDamagedetection + 57, // 38: proto.CommandRequest.theftalarm_select_interior:type_name -> proto.TheftalarmSelectInterior + 58, // 39: proto.CommandRequest.theftalarm_select_tow:type_name -> proto.TheftalarmSelectTow + 59, // 40: proto.CommandRequest.theftalarm_start:type_name -> proto.TheftalarmStart + 60, // 41: proto.CommandRequest.theftalarm_stop:type_name -> proto.TheftalarmStop + 61, // 42: proto.CommandRequest.automatic_valet_parking_activate:type_name -> proto.AutomaticValetParkingActivate + 62, // 43: proto.CommandRequest.charge_flap_unlock:type_name -> proto.ChargeFlapUnlock + 63, // 44: proto.CommandRequest.charge_coupler_unlock:type_name -> proto.ChargeCouplerUnlock + 17, // 45: proto.CommandRequest.deactivate_vehicle_keys:type_name -> proto.DeactivateVehicleKeys + 18, // 46: proto.CommandRequest.activate_vehicle_keys:type_name -> proto.ActivateVehicleKeys + 5, // 47: proto.AuxheatConfigure.time_selection:type_name -> proto.AuxheatConfigure.Selection + 0, // 48: proto.DoorsLock.doors:type_name -> proto.Door + 0, // 49: proto.DoorsUnlock.doors:type_name -> proto.Door + 67, // 50: proto.SunroofMove.sunroof:type_name -> google.protobuf.Int32Value + 67, // 51: proto.SunroofMove.sunroof_blind_front:type_name -> google.protobuf.Int32Value + 67, // 52: proto.SunroofMove.sunroof_blind_rear:type_name -> google.protobuf.Int32Value + 67, // 53: proto.WindowsMove.front_left:type_name -> google.protobuf.Int32Value + 67, // 54: proto.WindowsMove.front_right:type_name -> google.protobuf.Int32Value + 67, // 55: proto.WindowsMove.rear_blind:type_name -> google.protobuf.Int32Value + 67, // 56: proto.WindowsMove.rear_left:type_name -> google.protobuf.Int32Value + 67, // 57: proto.WindowsMove.rear_left_blind:type_name -> google.protobuf.Int32Value + 67, // 58: proto.WindowsMove.rear_right:type_name -> google.protobuf.Int32Value + 67, // 59: proto.WindowsMove.rear_right_blind:type_name -> google.protobuf.Int32Value + 1, // 60: proto.ZEVPreconditioningStart.type:type_name -> proto.ZEVPreconditioningType + 1, // 61: proto.ZEVPreconditioningStop.type:type_name -> proto.ZEVPreconditioningType + 6, // 62: proto.ZEVPreconditioningConfigure.departure_time_mode:type_name -> proto.ZEVPreconditioningConfigure.DepartureTimeMode + 7, // 63: proto.BatteryChargeProgramConfigure.charge_program:type_name -> proto.BatteryChargeProgramConfigure.ChargeProgram + 8, // 64: proto.ChargeProgramConfigure.charge_program:type_name -> proto.ChargeProgramConfigure.ChargeProgram + 67, // 65: proto.ChargeProgramConfigure.max_soc:type_name -> google.protobuf.Int32Value + 68, // 66: proto.ChargeProgramConfigure.auto_unlock:type_name -> google.protobuf.BoolValue + 68, // 67: proto.ChargeProgramConfigure.location_based_charging:type_name -> google.protobuf.BoolValue + 68, // 68: proto.ChargeProgramConfigure.clock_timer:type_name -> google.protobuf.BoolValue + 68, // 69: proto.ChargeProgramConfigure.eco_charging:type_name -> google.protobuf.BoolValue + 68, // 70: proto.ChargeControlConfigure.bi_charging_enabled:type_name -> google.protobuf.BoolValue + 69, // 71: proto.ChargeControlConfigure.charging_power:type_name -> google.protobuf.FloatValue + 67, // 72: proto.ChargeControlConfigure.min_soc:type_name -> google.protobuf.Int32Value + 64, // 73: proto.ChargeOptConfigure.weekday_tariff:type_name -> proto.ChargeOptConfigure.Tariff + 64, // 74: proto.ChargeOptConfigure.weekend_tariff:type_name -> proto.ChargeOptConfigure.Tariff + 65, // 75: proto.TemperatureConfigure.temperature_points:type_name -> proto.TemperatureConfigure.TemperaturePoint + 66, // 76: proto.WeekProfileConfigure.weekly_set_hu:type_name -> proto.WeekProfileConfigure.WeeklySetHU + 50, // 77: proto.WeekProfileConfigureV2.time_profiles:type_name -> proto.TimeProfile + 67, // 78: proto.TimeProfile.identifier:type_name -> google.protobuf.Int32Value + 67, // 79: proto.TimeProfile.hour:type_name -> google.protobuf.Int32Value + 67, // 80: proto.TimeProfile.minute:type_name -> google.protobuf.Int32Value + 2, // 81: proto.TimeProfile.days:type_name -> proto.TimeProfileDay + 68, // 82: proto.TimeProfile.active:type_name -> google.protobuf.BoolValue + 12, // 83: proto.SigPosStart.horn_type:type_name -> proto.SigPosStart.HornType + 13, // 84: proto.SigPosStart.light_type:type_name -> proto.SigPosStart.LightType + 14, // 85: proto.SigPosStart.sigpos_type:type_name -> proto.SigPosStart.SigposType + 3, // 86: proto.AutomaticValetParkingActivate.drive_type:type_name -> proto.DriveType + 9, // 87: proto.ChargeOptConfigure.Tariff.rate:type_name -> proto.ChargeOptConfigure.Tariff.Rate + 10, // 88: proto.TemperatureConfigure.TemperaturePoint.zone:type_name -> proto.TemperatureConfigure.TemperaturePoint.Zone + 11, // 89: proto.WeekProfileConfigure.WeeklySetHU.day:type_name -> proto.WeekProfileConfigure.WeeklySetHU.Day + 90, // [90:90] is the sub-list for method output_type + 90, // [90:90] is the sub-list for method input_type + 90, // [90:90] is the sub-list for extension type_name + 90, // [90:90] is the sub-list for extension extendee + 0, // [0:90] is the sub-list for field type_name +} + +func init() { file_vehicle_commands_proto_init() } +func file_vehicle_commands_proto_init() { + if File_vehicle_commands_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_vehicle_commands_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcknowledgeCommandRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommandRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeactivateVehicleKeys); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActivateVehicleKeys); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuxheatStart); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuxheatStop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuxheatConfigure); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DoorsLock); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DoorsUnlock); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EngineStart); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EngineStop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SunroofOpen); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SunroofClose); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SunroofLift); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SunroofMove); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WindowsOpen); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WindowsClose); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WindowsVentilate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WindowsMove); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpeedalertStart); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpeedalertStop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ZEVPreconditioningStart); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ZEVPreconditioningStop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ZEVPreconditioningConfigure); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ZEVPreconditioningConfigureSeats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatteryChargeProgramConfigure); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatteryMaxSocConfigure); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChargeProgramConfigure); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChargeControlConfigure); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChargeOptConfigure); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChargeOptStart); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChargeOptStop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TemperatureConfigure); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WeekProfileConfigure); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WeekProfileConfigureV2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TimeProfile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SigPosStart); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TheftalarmConfirmDamagedetection); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TheftalarmDeselectDamagedetection); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TheftalarmDeselectInterior); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TheftalarmDeselectTow); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TheftalarmSelectDamagedetection); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TheftalarmSelectInterior); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TheftalarmSelectTow); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TheftalarmStart); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TheftalarmStop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AutomaticValetParkingActivate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChargeFlapUnlock); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChargeCouplerUnlock); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChargeOptConfigure_Tariff); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TemperatureConfigure_TemperaturePoint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_commands_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WeekProfileConfigure_WeeklySetHU); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_vehicle_commands_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*CommandRequest_AuxheatStart)(nil), + (*CommandRequest_AuxheatStop)(nil), + (*CommandRequest_AuxheatConfigure)(nil), + (*CommandRequest_DoorsLock)(nil), + (*CommandRequest_DoorsUnlock)(nil), + (*CommandRequest_SunroofOpen)(nil), + (*CommandRequest_SunroofClose)(nil), + (*CommandRequest_SunroofLift)(nil), + (*CommandRequest_SunroofMove)(nil), + (*CommandRequest_WindowsOpen)(nil), + (*CommandRequest_WindowsClose)(nil), + (*CommandRequest_WindowsVentilate)(nil), + (*CommandRequest_WindowsMove)(nil), + (*CommandRequest_EngineStart)(nil), + (*CommandRequest_EngineStop)(nil), + (*CommandRequest_ZevPreconditioningStart)(nil), + (*CommandRequest_ZevPreconditioningStop)(nil), + (*CommandRequest_ZevPreconditionConfigure)(nil), + (*CommandRequest_ZevPreconditionConfigureSeats)(nil), + (*CommandRequest_SpeedalertStart)(nil), + (*CommandRequest_SpeedalertStop)(nil), + (*CommandRequest_BatteryChargeProgram)(nil), + (*CommandRequest_BatteryMaxSoc)(nil), + (*CommandRequest_ChargeProgramConfigure)(nil), + (*CommandRequest_ChargeControlConfigure)(nil), + (*CommandRequest_ChargeOptConfigure)(nil), + (*CommandRequest_ChargeOptStart)(nil), + (*CommandRequest_ChargeOptStop)(nil), + (*CommandRequest_TemperatureConfigure)(nil), + (*CommandRequest_WeekProfileConfigure)(nil), + (*CommandRequest_WeekProfileConfigureV2)(nil), + (*CommandRequest_SigposStart)(nil), + (*CommandRequest_TheftalarmConfirmDamagedetection)(nil), + (*CommandRequest_TheftalarmDeselectDamagedetection)(nil), + (*CommandRequest_TheftalarmDeselectInterior)(nil), + (*CommandRequest_TheftalarmDeselectTow)(nil), + (*CommandRequest_TheftalarmSelectDamagedetection)(nil), + (*CommandRequest_TheftalarmSelectInterior)(nil), + (*CommandRequest_TheftalarmSelectTow)(nil), + (*CommandRequest_TheftalarmStart)(nil), + (*CommandRequest_TheftalarmStop)(nil), + (*CommandRequest_AutomaticValetParkingActivate)(nil), + (*CommandRequest_ChargeFlapUnlock)(nil), + (*CommandRequest_ChargeCouplerUnlock)(nil), + (*CommandRequest_DeactivateVehicleKeys)(nil), + (*CommandRequest_ActivateVehicleKeys)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_vehicle_commands_proto_rawDesc, + NumEnums: 15, + NumMessages: 52, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_vehicle_commands_proto_goTypes, + DependencyIndexes: file_vehicle_commands_proto_depIdxs, + EnumInfos: file_vehicle_commands_proto_enumTypes, + MessageInfos: file_vehicle_commands_proto_msgTypes, + }.Build() + File_vehicle_commands_proto = out.File + file_vehicle_commands_proto_rawDesc = nil + file_vehicle_commands_proto_goTypes = nil + file_vehicle_commands_proto_depIdxs = nil +} diff --git a/vehicle/mercedes/pb/vehicle-events.pb.go b/vehicle/mercedes/pb/vehicle-events.pb.go new file mode 100644 index 000000000..f6727b23a --- /dev/null +++ b/vehicle/mercedes/pb/vehicle-events.pb.go @@ -0,0 +1,4428 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v3.21.12 +// source: vehicle-events.proto + +package protos + +import ( + protos "github.com/evcc-io/evcc/vehicle/mercedes/pb/protos" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ChargeProgram int32 + +const ( + ChargeProgram_DEFAULT_CHARGE_PROGRAM ChargeProgram = 0 + ChargeProgram_INSTANT_CHARGE_PROGRAM ChargeProgram = 1 + ChargeProgram_HOME_CHARGE_PROGRAM ChargeProgram = 2 + ChargeProgram_WORK_CHARGE_PROGRAM ChargeProgram = 3 +) + +// Enum value maps for ChargeProgram. +var ( + ChargeProgram_name = map[int32]string{ + 0: "DEFAULT_CHARGE_PROGRAM", + 1: "INSTANT_CHARGE_PROGRAM", + 2: "HOME_CHARGE_PROGRAM", + 3: "WORK_CHARGE_PROGRAM", + } + ChargeProgram_value = map[string]int32{ + "DEFAULT_CHARGE_PROGRAM": 0, + "INSTANT_CHARGE_PROGRAM": 1, + "HOME_CHARGE_PROGRAM": 2, + "WORK_CHARGE_PROGRAM": 3, + } +) + +func (x ChargeProgram) Enum() *ChargeProgram { + p := new(ChargeProgram) + *p = x + return p +} + +func (x ChargeProgram) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ChargeProgram) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_events_proto_enumTypes[0].Descriptor() +} + +func (ChargeProgram) Type() protoreflect.EnumType { + return &file_vehicle_events_proto_enumTypes[0] +} + +func (x ChargeProgram) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ChargeProgram.Descriptor instead. +func (ChargeProgram) EnumDescriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{0} +} + +// Same as VehicleAPI.AttributeStatus but with slightly different names. The VehicleAPI.AttributeStatus enum values +// can't be changed because they are used to automatically parse the vehicleAPI responses. Adding type aliases would +// confuse the contributions developers, so we added another attribute status enum +type AttributeStatus int32 + +const ( + // Value is set and valid + AttributeStatus_VALUE_VALID AttributeStatus = 0 + // Value has not yet been received from the vehicle (but sensor etc. should be available) + AttributeStatus_VALUE_NOT_RECEIVED AttributeStatus = 1 + // Value has been retrieved from vehicle but is invalid (marked as invalid by DaiVB backend) + AttributeStatus_VALUE_INVALID AttributeStatus = 3 + // Vehicle does not support this attribute (e.g. does not have the sensor etc.) + AttributeStatus_VALUE_NOT_AVAILABLE AttributeStatus = 4 +) + +// Enum value maps for AttributeStatus. +var ( + AttributeStatus_name = map[int32]string{ + 0: "VALUE_VALID", + 1: "VALUE_NOT_RECEIVED", + 3: "VALUE_INVALID", + 4: "VALUE_NOT_AVAILABLE", + } + AttributeStatus_value = map[string]int32{ + "VALUE_VALID": 0, + "VALUE_NOT_RECEIVED": 1, + "VALUE_INVALID": 3, + "VALUE_NOT_AVAILABLE": 4, + } +) + +func (x AttributeStatus) Enum() *AttributeStatus { + p := new(AttributeStatus) + *p = x + return p +} + +func (x AttributeStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AttributeStatus) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_events_proto_enumTypes[1].Descriptor() +} + +func (AttributeStatus) Type() protoreflect.EnumType { + return &file_vehicle_events_proto_enumTypes[1] +} + +func (x AttributeStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AttributeStatus.Descriptor instead. +func (AttributeStatus) EnumDescriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{1} +} + +type VehicleAttributeStatus_CombustionConsumptionUnit int32 + +const ( + VehicleAttributeStatus_UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT VehicleAttributeStatus_CombustionConsumptionUnit = 0 + // Liter per 100 km + VehicleAttributeStatus_LITER_PER_100KM VehicleAttributeStatus_CombustionConsumptionUnit = 1 + // Kilometers per liter + VehicleAttributeStatus_KM_PER_LITER VehicleAttributeStatus_CombustionConsumptionUnit = 2 + // Miles Per imperial gallon + VehicleAttributeStatus_MPG_UK VehicleAttributeStatus_CombustionConsumptionUnit = 3 + // Miles Per US gallon + VehicleAttributeStatus_MPG_US VehicleAttributeStatus_CombustionConsumptionUnit = 4 +) + +// Enum value maps for VehicleAttributeStatus_CombustionConsumptionUnit. +var ( + VehicleAttributeStatus_CombustionConsumptionUnit_name = map[int32]string{ + 0: "UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT", + 1: "LITER_PER_100KM", + 2: "KM_PER_LITER", + 3: "MPG_UK", + 4: "MPG_US", + } + VehicleAttributeStatus_CombustionConsumptionUnit_value = map[string]int32{ + "UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT": 0, + "LITER_PER_100KM": 1, + "KM_PER_LITER": 2, + "MPG_UK": 3, + "MPG_US": 4, + } +) + +func (x VehicleAttributeStatus_CombustionConsumptionUnit) Enum() *VehicleAttributeStatus_CombustionConsumptionUnit { + p := new(VehicleAttributeStatus_CombustionConsumptionUnit) + *p = x + return p +} + +func (x VehicleAttributeStatus_CombustionConsumptionUnit) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VehicleAttributeStatus_CombustionConsumptionUnit) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_events_proto_enumTypes[2].Descriptor() +} + +func (VehicleAttributeStatus_CombustionConsumptionUnit) Type() protoreflect.EnumType { + return &file_vehicle_events_proto_enumTypes[2] +} + +func (x VehicleAttributeStatus_CombustionConsumptionUnit) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VehicleAttributeStatus_CombustionConsumptionUnit.Descriptor instead. +func (VehicleAttributeStatus_CombustionConsumptionUnit) EnumDescriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{1, 0} +} + +type VehicleAttributeStatus_ElectricityConsumptionUnit int32 + +const ( + VehicleAttributeStatus_UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT VehicleAttributeStatus_ElectricityConsumptionUnit = 0 + // kWh per 100 km + VehicleAttributeStatus_KWH_PER_100KM VehicleAttributeStatus_ElectricityConsumptionUnit = 1 + // Kilometers per kWh + VehicleAttributeStatus_KM_PER_KWH VehicleAttributeStatus_ElectricityConsumptionUnit = 2 + // kWh per 100 miles + VehicleAttributeStatus_KWH_PER_100MI VehicleAttributeStatus_ElectricityConsumptionUnit = 3 + // miles per kWh + VehicleAttributeStatus_M_PER_KWH VehicleAttributeStatus_ElectricityConsumptionUnit = 4 + // Miles per gallon gasoline equivalent + VehicleAttributeStatus_MPGE VehicleAttributeStatus_ElectricityConsumptionUnit = 5 +) + +// Enum value maps for VehicleAttributeStatus_ElectricityConsumptionUnit. +var ( + VehicleAttributeStatus_ElectricityConsumptionUnit_name = map[int32]string{ + 0: "UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT", + 1: "KWH_PER_100KM", + 2: "KM_PER_KWH", + 3: "KWH_PER_100MI", + 4: "M_PER_KWH", + 5: "MPGE", + } + VehicleAttributeStatus_ElectricityConsumptionUnit_value = map[string]int32{ + "UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT": 0, + "KWH_PER_100KM": 1, + "KM_PER_KWH": 2, + "KWH_PER_100MI": 3, + "M_PER_KWH": 4, + "MPGE": 5, + } +) + +func (x VehicleAttributeStatus_ElectricityConsumptionUnit) Enum() *VehicleAttributeStatus_ElectricityConsumptionUnit { + p := new(VehicleAttributeStatus_ElectricityConsumptionUnit) + *p = x + return p +} + +func (x VehicleAttributeStatus_ElectricityConsumptionUnit) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VehicleAttributeStatus_ElectricityConsumptionUnit) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_events_proto_enumTypes[3].Descriptor() +} + +func (VehicleAttributeStatus_ElectricityConsumptionUnit) Type() protoreflect.EnumType { + return &file_vehicle_events_proto_enumTypes[3] +} + +func (x VehicleAttributeStatus_ElectricityConsumptionUnit) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VehicleAttributeStatus_ElectricityConsumptionUnit.Descriptor instead. +func (VehicleAttributeStatus_ElectricityConsumptionUnit) EnumDescriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{1, 1} +} + +type VehicleAttributeStatus_GasConsumptionUnit int32 + +const ( + VehicleAttributeStatus_UNSPECIFIED_GAS_CONSUMPTION_UNIT VehicleAttributeStatus_GasConsumptionUnit = 0 + // kG per 100 km + VehicleAttributeStatus_KG_PER_100KM VehicleAttributeStatus_GasConsumptionUnit = 1 + // km per kg + VehicleAttributeStatus_KM_PER_KG VehicleAttributeStatus_GasConsumptionUnit = 2 + // miles per kg + VehicleAttributeStatus_M_PER_KG VehicleAttributeStatus_GasConsumptionUnit = 3 +) + +// Enum value maps for VehicleAttributeStatus_GasConsumptionUnit. +var ( + VehicleAttributeStatus_GasConsumptionUnit_name = map[int32]string{ + 0: "UNSPECIFIED_GAS_CONSUMPTION_UNIT", + 1: "KG_PER_100KM", + 2: "KM_PER_KG", + 3: "M_PER_KG", + } + VehicleAttributeStatus_GasConsumptionUnit_value = map[string]int32{ + "UNSPECIFIED_GAS_CONSUMPTION_UNIT": 0, + "KG_PER_100KM": 1, + "KM_PER_KG": 2, + "M_PER_KG": 3, + } +) + +func (x VehicleAttributeStatus_GasConsumptionUnit) Enum() *VehicleAttributeStatus_GasConsumptionUnit { + p := new(VehicleAttributeStatus_GasConsumptionUnit) + *p = x + return p +} + +func (x VehicleAttributeStatus_GasConsumptionUnit) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VehicleAttributeStatus_GasConsumptionUnit) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_events_proto_enumTypes[4].Descriptor() +} + +func (VehicleAttributeStatus_GasConsumptionUnit) Type() protoreflect.EnumType { + return &file_vehicle_events_proto_enumTypes[4] +} + +func (x VehicleAttributeStatus_GasConsumptionUnit) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VehicleAttributeStatus_GasConsumptionUnit.Descriptor instead. +func (VehicleAttributeStatus_GasConsumptionUnit) EnumDescriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{1, 2} +} + +// Deprecated: Marked as deprecated in vehicle-events.proto. +type VehicleAttributeStatus_SpeedDistanceUnit int32 + +const ( + VehicleAttributeStatus_UNSPECIFIED_SPEED_DISTANCE_UNIT VehicleAttributeStatus_SpeedDistanceUnit = 0 + // km/h, distance unit: km + VehicleAttributeStatus_KM_PER_H VehicleAttributeStatus_SpeedDistanceUnit = 1 + // mph, distance unit: miles + VehicleAttributeStatus_M_PER_H VehicleAttributeStatus_SpeedDistanceUnit = 2 +) + +// Enum value maps for VehicleAttributeStatus_SpeedDistanceUnit. +var ( + VehicleAttributeStatus_SpeedDistanceUnit_name = map[int32]string{ + 0: "UNSPECIFIED_SPEED_DISTANCE_UNIT", + 1: "KM_PER_H", + 2: "M_PER_H", + } + VehicleAttributeStatus_SpeedDistanceUnit_value = map[string]int32{ + "UNSPECIFIED_SPEED_DISTANCE_UNIT": 0, + "KM_PER_H": 1, + "M_PER_H": 2, + } +) + +func (x VehicleAttributeStatus_SpeedDistanceUnit) Enum() *VehicleAttributeStatus_SpeedDistanceUnit { + p := new(VehicleAttributeStatus_SpeedDistanceUnit) + *p = x + return p +} + +func (x VehicleAttributeStatus_SpeedDistanceUnit) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VehicleAttributeStatus_SpeedDistanceUnit) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_events_proto_enumTypes[5].Descriptor() +} + +func (VehicleAttributeStatus_SpeedDistanceUnit) Type() protoreflect.EnumType { + return &file_vehicle_events_proto_enumTypes[5] +} + +func (x VehicleAttributeStatus_SpeedDistanceUnit) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VehicleAttributeStatus_SpeedDistanceUnit.Descriptor instead. +func (VehicleAttributeStatus_SpeedDistanceUnit) EnumDescriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{1, 3} +} + +type VehicleAttributeStatus_SpeedUnit int32 + +const ( + VehicleAttributeStatus_UNSPECIFIED_SPEED_UNIT VehicleAttributeStatus_SpeedUnit = 0 + // kilometers per hour + VehicleAttributeStatus_KM_PER_HOUR VehicleAttributeStatus_SpeedUnit = 1 + // miles per hour + VehicleAttributeStatus_M_PER_HOUR VehicleAttributeStatus_SpeedUnit = 2 +) + +// Enum value maps for VehicleAttributeStatus_SpeedUnit. +var ( + VehicleAttributeStatus_SpeedUnit_name = map[int32]string{ + 0: "UNSPECIFIED_SPEED_UNIT", + 1: "KM_PER_HOUR", + 2: "M_PER_HOUR", + } + VehicleAttributeStatus_SpeedUnit_value = map[string]int32{ + "UNSPECIFIED_SPEED_UNIT": 0, + "KM_PER_HOUR": 1, + "M_PER_HOUR": 2, + } +) + +func (x VehicleAttributeStatus_SpeedUnit) Enum() *VehicleAttributeStatus_SpeedUnit { + p := new(VehicleAttributeStatus_SpeedUnit) + *p = x + return p +} + +func (x VehicleAttributeStatus_SpeedUnit) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VehicleAttributeStatus_SpeedUnit) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_events_proto_enumTypes[6].Descriptor() +} + +func (VehicleAttributeStatus_SpeedUnit) Type() protoreflect.EnumType { + return &file_vehicle_events_proto_enumTypes[6] +} + +func (x VehicleAttributeStatus_SpeedUnit) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VehicleAttributeStatus_SpeedUnit.Descriptor instead. +func (VehicleAttributeStatus_SpeedUnit) EnumDescriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{1, 4} +} + +type VehicleAttributeStatus_DistanceUnit int32 + +const ( + VehicleAttributeStatus_UNSPECIFIED_DISTANCE_UNIT VehicleAttributeStatus_DistanceUnit = 0 + VehicleAttributeStatus_KILOMETERS VehicleAttributeStatus_DistanceUnit = 1 + VehicleAttributeStatus_MILES VehicleAttributeStatus_DistanceUnit = 2 +) + +// Enum value maps for VehicleAttributeStatus_DistanceUnit. +var ( + VehicleAttributeStatus_DistanceUnit_name = map[int32]string{ + 0: "UNSPECIFIED_DISTANCE_UNIT", + 1: "KILOMETERS", + 2: "MILES", + } + VehicleAttributeStatus_DistanceUnit_value = map[string]int32{ + "UNSPECIFIED_DISTANCE_UNIT": 0, + "KILOMETERS": 1, + "MILES": 2, + } +) + +func (x VehicleAttributeStatus_DistanceUnit) Enum() *VehicleAttributeStatus_DistanceUnit { + p := new(VehicleAttributeStatus_DistanceUnit) + *p = x + return p +} + +func (x VehicleAttributeStatus_DistanceUnit) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VehicleAttributeStatus_DistanceUnit) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_events_proto_enumTypes[7].Descriptor() +} + +func (VehicleAttributeStatus_DistanceUnit) Type() protoreflect.EnumType { + return &file_vehicle_events_proto_enumTypes[7] +} + +func (x VehicleAttributeStatus_DistanceUnit) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VehicleAttributeStatus_DistanceUnit.Descriptor instead. +func (VehicleAttributeStatus_DistanceUnit) EnumDescriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{1, 5} +} + +type VehicleAttributeStatus_TemperatureUnit int32 + +const ( + VehicleAttributeStatus_UNSPECIFIED_TEMPERATURE_UNIT VehicleAttributeStatus_TemperatureUnit = 0 + VehicleAttributeStatus_CELSIUS VehicleAttributeStatus_TemperatureUnit = 1 + VehicleAttributeStatus_FAHRENHEIT VehicleAttributeStatus_TemperatureUnit = 2 +) + +// Enum value maps for VehicleAttributeStatus_TemperatureUnit. +var ( + VehicleAttributeStatus_TemperatureUnit_name = map[int32]string{ + 0: "UNSPECIFIED_TEMPERATURE_UNIT", + 1: "CELSIUS", + 2: "FAHRENHEIT", + } + VehicleAttributeStatus_TemperatureUnit_value = map[string]int32{ + "UNSPECIFIED_TEMPERATURE_UNIT": 0, + "CELSIUS": 1, + "FAHRENHEIT": 2, + } +) + +func (x VehicleAttributeStatus_TemperatureUnit) Enum() *VehicleAttributeStatus_TemperatureUnit { + p := new(VehicleAttributeStatus_TemperatureUnit) + *p = x + return p +} + +func (x VehicleAttributeStatus_TemperatureUnit) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VehicleAttributeStatus_TemperatureUnit) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_events_proto_enumTypes[8].Descriptor() +} + +func (VehicleAttributeStatus_TemperatureUnit) Type() protoreflect.EnumType { + return &file_vehicle_events_proto_enumTypes[8] +} + +func (x VehicleAttributeStatus_TemperatureUnit) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VehicleAttributeStatus_TemperatureUnit.Descriptor instead. +func (VehicleAttributeStatus_TemperatureUnit) EnumDescriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{1, 6} +} + +type VehicleAttributeStatus_PressureUnit int32 + +const ( + VehicleAttributeStatus_UNSPECIFIED_PRESSURE_UNIT VehicleAttributeStatus_PressureUnit = 0 + VehicleAttributeStatus_KPA VehicleAttributeStatus_PressureUnit = 1 + VehicleAttributeStatus_BAR VehicleAttributeStatus_PressureUnit = 2 + // Pounds per square inch + VehicleAttributeStatus_PSI VehicleAttributeStatus_PressureUnit = 3 +) + +// Enum value maps for VehicleAttributeStatus_PressureUnit. +var ( + VehicleAttributeStatus_PressureUnit_name = map[int32]string{ + 0: "UNSPECIFIED_PRESSURE_UNIT", + 1: "KPA", + 2: "BAR", + 3: "PSI", + } + VehicleAttributeStatus_PressureUnit_value = map[string]int32{ + "UNSPECIFIED_PRESSURE_UNIT": 0, + "KPA": 1, + "BAR": 2, + "PSI": 3, + } +) + +func (x VehicleAttributeStatus_PressureUnit) Enum() *VehicleAttributeStatus_PressureUnit { + p := new(VehicleAttributeStatus_PressureUnit) + *p = x + return p +} + +func (x VehicleAttributeStatus_PressureUnit) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VehicleAttributeStatus_PressureUnit) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_events_proto_enumTypes[9].Descriptor() +} + +func (VehicleAttributeStatus_PressureUnit) Type() protoreflect.EnumType { + return &file_vehicle_events_proto_enumTypes[9] +} + +func (x VehicleAttributeStatus_PressureUnit) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VehicleAttributeStatus_PressureUnit.Descriptor instead. +func (VehicleAttributeStatus_PressureUnit) EnumDescriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{1, 7} +} + +type VehicleAttributeStatus_RatioUnit int32 + +const ( + VehicleAttributeStatus_UNSPECIFIED_RATIO_UNIT VehicleAttributeStatus_RatioUnit = 0 + VehicleAttributeStatus_PERCENT VehicleAttributeStatus_RatioUnit = 1 +) + +// Enum value maps for VehicleAttributeStatus_RatioUnit. +var ( + VehicleAttributeStatus_RatioUnit_name = map[int32]string{ + 0: "UNSPECIFIED_RATIO_UNIT", + 1: "PERCENT", + } + VehicleAttributeStatus_RatioUnit_value = map[string]int32{ + "UNSPECIFIED_RATIO_UNIT": 0, + "PERCENT": 1, + } +) + +func (x VehicleAttributeStatus_RatioUnit) Enum() *VehicleAttributeStatus_RatioUnit { + p := new(VehicleAttributeStatus_RatioUnit) + *p = x + return p +} + +func (x VehicleAttributeStatus_RatioUnit) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VehicleAttributeStatus_RatioUnit) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_events_proto_enumTypes[10].Descriptor() +} + +func (VehicleAttributeStatus_RatioUnit) Type() protoreflect.EnumType { + return &file_vehicle_events_proto_enumTypes[10] +} + +func (x VehicleAttributeStatus_RatioUnit) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VehicleAttributeStatus_RatioUnit.Descriptor instead. +func (VehicleAttributeStatus_RatioUnit) EnumDescriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{1, 8} +} + +type VehicleAttributeStatus_ClockHourUnit int32 + +const ( + VehicleAttributeStatus_UNSPECIFIED_CLOCK_HOUR_UNIT VehicleAttributeStatus_ClockHourUnit = 0 + // 12h (AM/PM) + VehicleAttributeStatus_T12H VehicleAttributeStatus_ClockHourUnit = 1 + // 24h + VehicleAttributeStatus_T24H VehicleAttributeStatus_ClockHourUnit = 2 +) + +// Enum value maps for VehicleAttributeStatus_ClockHourUnit. +var ( + VehicleAttributeStatus_ClockHourUnit_name = map[int32]string{ + 0: "UNSPECIFIED_CLOCK_HOUR_UNIT", + 1: "T12H", + 2: "T24H", + } + VehicleAttributeStatus_ClockHourUnit_value = map[string]int32{ + "UNSPECIFIED_CLOCK_HOUR_UNIT": 0, + "T12H": 1, + "T24H": 2, + } +) + +func (x VehicleAttributeStatus_ClockHourUnit) Enum() *VehicleAttributeStatus_ClockHourUnit { + p := new(VehicleAttributeStatus_ClockHourUnit) + *p = x + return p +} + +func (x VehicleAttributeStatus_ClockHourUnit) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VehicleAttributeStatus_ClockHourUnit) Descriptor() protoreflect.EnumDescriptor { + return file_vehicle_events_proto_enumTypes[11].Descriptor() +} + +func (VehicleAttributeStatus_ClockHourUnit) Type() protoreflect.EnumType { + return &file_vehicle_events_proto_enumTypes[11] +} + +func (x VehicleAttributeStatus_ClockHourUnit) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VehicleAttributeStatus_ClockHourUnit.Descriptor instead. +func (VehicleAttributeStatus_ClockHourUnit) EnumDescriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{1, 9} +} + +// Sending direction: App <- BFF <- AppTwin +type VEPUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + Vin string `protobuf:"bytes,2,opt,name=vin,proto3" json:"vin,omitempty"` + // indicates whether this is a full update of VEP-attributes. + // All attributes cached in the FE should be erased and completely + // replaced by this push. + FullUpdate bool `protobuf:"varint,15,opt,name=full_update,json=fullUpdate,proto3" json:"full_update,omitempty"` + // when was the event emitted? This is the time of the update (unix timestamp in seconds), (deprecated) + // not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp + EmitTimestamp int64 `protobuf:"varint,10,opt,name=emit_timestamp,json=emitTimestamp,proto3" json:"emit_timestamp,omitempty"` + // when was the event emitted? This is the time of the update (unix timestamp in milliseconds), + EmitTimestampInMs int64 `protobuf:"varint,14,opt,name=emit_timestamp_in_ms,json=emitTimestampInMs,proto3" json:"emit_timestamp_in_ms,omitempty"` + // the attribute changes are a list of changed attributes + Attributes map[string]*VehicleAttributeStatus `protobuf:"bytes,11,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *VEPUpdate) Reset() { + *x = VEPUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VEPUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VEPUpdate) ProtoMessage() {} + +func (x *VEPUpdate) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VEPUpdate.ProtoReflect.Descriptor instead. +func (*VEPUpdate) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{0} +} + +func (x *VEPUpdate) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +func (x *VEPUpdate) GetVin() string { + if x != nil { + return x.Vin + } + return "" +} + +func (x *VEPUpdate) GetFullUpdate() bool { + if x != nil { + return x.FullUpdate + } + return false +} + +func (x *VEPUpdate) GetEmitTimestamp() int64 { + if x != nil { + return x.EmitTimestamp + } + return 0 +} + +func (x *VEPUpdate) GetEmitTimestampInMs() int64 { + if x != nil { + return x.EmitTimestampInMs + } + return 0 +} + +func (x *VEPUpdate) GetAttributes() map[string]*VehicleAttributeStatus { + if x != nil { + return x.Attributes + } + return nil +} + +// Part of a VEPUpdate +// Sending direction: App <- BFF <- AppTwin +type VehicleAttributeStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // time of the attribute change in the car as unix timestamp in seconds with UTC timezone (deprecated) + // + // Deprecated: Marked as deprecated in vehicle-events.proto. + Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + // time of the attribute change in the car as unix timestamp in milliseconds with UTC timezone + TimestampInMs int64 `protobuf:"varint,10,opt,name=timestamp_in_ms,json=timestampInMs,proto3" json:"timestamp_in_ms,omitempty"` + Changed bool `protobuf:"varint,2,opt,name=changed,proto3" json:"changed,omitempty"` + Status int32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` + // A list of service ids for which this attribute was sent + // this field ist just used backend internally and will always + // be empty when sent out to the client. + ServiceIds []int32 `protobuf:"varint,30,rep,packed,name=service_ids,json=serviceIds,proto3" json:"service_ids,omitempty"` + DisplayValue string `protobuf:"bytes,11,opt,name=display_value,json=displayValue,proto3" json:"display_value,omitempty"` + // Types that are assignable to DisplayUnit: + // + // *VehicleAttributeStatus_CombustionConsumptionUnit_ + // *VehicleAttributeStatus_GasConsumptionUnit_ + // *VehicleAttributeStatus_ElectricityConsumptionUnit_ + // *VehicleAttributeStatus_SpeedDistanceUnit_ + // *VehicleAttributeStatus_SpeedUnit_ + // *VehicleAttributeStatus_DistanceUnit_ + // *VehicleAttributeStatus_TemperatureUnit_ + // *VehicleAttributeStatus_PressureUnit_ + // *VehicleAttributeStatus_RatioUnit_ + // *VehicleAttributeStatus_ClockHourUnit_ + DisplayUnit isVehicleAttributeStatus_DisplayUnit `protobuf_oneof:"display_unit"` + // Types that are assignable to AttributeType: + // + // *VehicleAttributeStatus_IntValue + // *VehicleAttributeStatus_BoolValue + // *VehicleAttributeStatus_StringValue + // *VehicleAttributeStatus_DoubleValue + // *VehicleAttributeStatus_NilValue + // *VehicleAttributeStatus_UnsupportedValue + // *VehicleAttributeStatus_TemperaturePointsValue + // *VehicleAttributeStatus_WeekdayTariffValue + // *VehicleAttributeStatus_WeekendTariffValue + // *VehicleAttributeStatus_StateOfChargeProfileValue + // *VehicleAttributeStatus_WeeklySettingsHeadUnitValue + // *VehicleAttributeStatus_SpeedAlertConfigurationValue + // *VehicleAttributeStatus_EcoHistogramValue + // *VehicleAttributeStatus_WeeklyProfileValue + // *VehicleAttributeStatus_ChargeProgramsValue + AttributeType isVehicleAttributeStatus_AttributeType `protobuf_oneof:"attribute_type"` +} + +func (x *VehicleAttributeStatus) Reset() { + *x = VehicleAttributeStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VehicleAttributeStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VehicleAttributeStatus) ProtoMessage() {} + +func (x *VehicleAttributeStatus) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VehicleAttributeStatus.ProtoReflect.Descriptor instead. +func (*VehicleAttributeStatus) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{1} +} + +// Deprecated: Marked as deprecated in vehicle-events.proto. +func (x *VehicleAttributeStatus) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +func (x *VehicleAttributeStatus) GetTimestampInMs() int64 { + if x != nil { + return x.TimestampInMs + } + return 0 +} + +func (x *VehicleAttributeStatus) GetChanged() bool { + if x != nil { + return x.Changed + } + return false +} + +func (x *VehicleAttributeStatus) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *VehicleAttributeStatus) GetServiceIds() []int32 { + if x != nil { + return x.ServiceIds + } + return nil +} + +func (x *VehicleAttributeStatus) GetDisplayValue() string { + if x != nil { + return x.DisplayValue + } + return "" +} + +func (m *VehicleAttributeStatus) GetDisplayUnit() isVehicleAttributeStatus_DisplayUnit { + if m != nil { + return m.DisplayUnit + } + return nil +} + +func (x *VehicleAttributeStatus) GetCombustionConsumptionUnit() VehicleAttributeStatus_CombustionConsumptionUnit { + if x, ok := x.GetDisplayUnit().(*VehicleAttributeStatus_CombustionConsumptionUnit_); ok { + return x.CombustionConsumptionUnit + } + return VehicleAttributeStatus_UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT +} + +func (x *VehicleAttributeStatus) GetGasConsumptionUnit() VehicleAttributeStatus_GasConsumptionUnit { + if x, ok := x.GetDisplayUnit().(*VehicleAttributeStatus_GasConsumptionUnit_); ok { + return x.GasConsumptionUnit + } + return VehicleAttributeStatus_UNSPECIFIED_GAS_CONSUMPTION_UNIT +} + +func (x *VehicleAttributeStatus) GetElectricityConsumptionUnit() VehicleAttributeStatus_ElectricityConsumptionUnit { + if x, ok := x.GetDisplayUnit().(*VehicleAttributeStatus_ElectricityConsumptionUnit_); ok { + return x.ElectricityConsumptionUnit + } + return VehicleAttributeStatus_UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT +} + +// Deprecated: Marked as deprecated in vehicle-events.proto. +func (x *VehicleAttributeStatus) GetSpeedDistanceUnit() VehicleAttributeStatus_SpeedDistanceUnit { + if x, ok := x.GetDisplayUnit().(*VehicleAttributeStatus_SpeedDistanceUnit_); ok { + return x.SpeedDistanceUnit + } + return VehicleAttributeStatus_UNSPECIFIED_SPEED_DISTANCE_UNIT +} + +func (x *VehicleAttributeStatus) GetSpeedUnit() VehicleAttributeStatus_SpeedUnit { + if x, ok := x.GetDisplayUnit().(*VehicleAttributeStatus_SpeedUnit_); ok { + return x.SpeedUnit + } + return VehicleAttributeStatus_UNSPECIFIED_SPEED_UNIT +} + +func (x *VehicleAttributeStatus) GetDistanceUnit() VehicleAttributeStatus_DistanceUnit { + if x, ok := x.GetDisplayUnit().(*VehicleAttributeStatus_DistanceUnit_); ok { + return x.DistanceUnit + } + return VehicleAttributeStatus_UNSPECIFIED_DISTANCE_UNIT +} + +func (x *VehicleAttributeStatus) GetTemperatureUnit() VehicleAttributeStatus_TemperatureUnit { + if x, ok := x.GetDisplayUnit().(*VehicleAttributeStatus_TemperatureUnit_); ok { + return x.TemperatureUnit + } + return VehicleAttributeStatus_UNSPECIFIED_TEMPERATURE_UNIT +} + +func (x *VehicleAttributeStatus) GetPressureUnit() VehicleAttributeStatus_PressureUnit { + if x, ok := x.GetDisplayUnit().(*VehicleAttributeStatus_PressureUnit_); ok { + return x.PressureUnit + } + return VehicleAttributeStatus_UNSPECIFIED_PRESSURE_UNIT +} + +func (x *VehicleAttributeStatus) GetRatioUnit() VehicleAttributeStatus_RatioUnit { + if x, ok := x.GetDisplayUnit().(*VehicleAttributeStatus_RatioUnit_); ok { + return x.RatioUnit + } + return VehicleAttributeStatus_UNSPECIFIED_RATIO_UNIT +} + +func (x *VehicleAttributeStatus) GetClockHourUnit() VehicleAttributeStatus_ClockHourUnit { + if x, ok := x.GetDisplayUnit().(*VehicleAttributeStatus_ClockHourUnit_); ok { + return x.ClockHourUnit + } + return VehicleAttributeStatus_UNSPECIFIED_CLOCK_HOUR_UNIT +} + +func (m *VehicleAttributeStatus) GetAttributeType() isVehicleAttributeStatus_AttributeType { + if m != nil { + return m.AttributeType + } + return nil +} + +func (x *VehicleAttributeStatus) GetIntValue() int64 { + if x, ok := x.GetAttributeType().(*VehicleAttributeStatus_IntValue); ok { + return x.IntValue + } + return 0 +} + +func (x *VehicleAttributeStatus) GetBoolValue() bool { + if x, ok := x.GetAttributeType().(*VehicleAttributeStatus_BoolValue); ok { + return x.BoolValue + } + return false +} + +func (x *VehicleAttributeStatus) GetStringValue() string { + if x, ok := x.GetAttributeType().(*VehicleAttributeStatus_StringValue); ok { + return x.StringValue + } + return "" +} + +func (x *VehicleAttributeStatus) GetDoubleValue() float64 { + if x, ok := x.GetAttributeType().(*VehicleAttributeStatus_DoubleValue); ok { + return x.DoubleValue + } + return 0 +} + +func (x *VehicleAttributeStatus) GetNilValue() bool { + if x, ok := x.GetAttributeType().(*VehicleAttributeStatus_NilValue); ok { + return x.NilValue + } + return false +} + +func (x *VehicleAttributeStatus) GetUnsupportedValue() string { + if x, ok := x.GetAttributeType().(*VehicleAttributeStatus_UnsupportedValue); ok { + return x.UnsupportedValue + } + return "" +} + +func (x *VehicleAttributeStatus) GetTemperaturePointsValue() *TemperaturePointsValue { + if x, ok := x.GetAttributeType().(*VehicleAttributeStatus_TemperaturePointsValue); ok { + return x.TemperaturePointsValue + } + return nil +} + +func (x *VehicleAttributeStatus) GetWeekdayTariffValue() *WeekdayTariffValue { + if x, ok := x.GetAttributeType().(*VehicleAttributeStatus_WeekdayTariffValue); ok { + return x.WeekdayTariffValue + } + return nil +} + +func (x *VehicleAttributeStatus) GetWeekendTariffValue() *WeekendTariffValue { + if x, ok := x.GetAttributeType().(*VehicleAttributeStatus_WeekendTariffValue); ok { + return x.WeekendTariffValue + } + return nil +} + +func (x *VehicleAttributeStatus) GetStateOfChargeProfileValue() *StateOfChargeProfileValue { + if x, ok := x.GetAttributeType().(*VehicleAttributeStatus_StateOfChargeProfileValue); ok { + return x.StateOfChargeProfileValue + } + return nil +} + +func (x *VehicleAttributeStatus) GetWeeklySettingsHeadUnitValue() *WeeklySettingsHeadUnitValue { + if x, ok := x.GetAttributeType().(*VehicleAttributeStatus_WeeklySettingsHeadUnitValue); ok { + return x.WeeklySettingsHeadUnitValue + } + return nil +} + +func (x *VehicleAttributeStatus) GetSpeedAlertConfigurationValue() *SpeedAlertConfigurationValue { + if x, ok := x.GetAttributeType().(*VehicleAttributeStatus_SpeedAlertConfigurationValue); ok { + return x.SpeedAlertConfigurationValue + } + return nil +} + +func (x *VehicleAttributeStatus) GetEcoHistogramValue() *EcoHistogramValue { + if x, ok := x.GetAttributeType().(*VehicleAttributeStatus_EcoHistogramValue); ok { + return x.EcoHistogramValue + } + return nil +} + +func (x *VehicleAttributeStatus) GetWeeklyProfileValue() *WeeklyProfileValue { + if x, ok := x.GetAttributeType().(*VehicleAttributeStatus_WeeklyProfileValue); ok { + return x.WeeklyProfileValue + } + return nil +} + +func (x *VehicleAttributeStatus) GetChargeProgramsValue() *ChargeProgramsValue { + if x, ok := x.GetAttributeType().(*VehicleAttributeStatus_ChargeProgramsValue); ok { + return x.ChargeProgramsValue + } + return nil +} + +type isVehicleAttributeStatus_DisplayUnit interface { + isVehicleAttributeStatus_DisplayUnit() +} + +type VehicleAttributeStatus_CombustionConsumptionUnit_ struct { + CombustionConsumptionUnit VehicleAttributeStatus_CombustionConsumptionUnit `protobuf:"varint,12,opt,name=combustion_consumption_unit,json=combustionConsumptionUnit,proto3,enum=proto.VehicleAttributeStatus_CombustionConsumptionUnit,oneof"` +} + +type VehicleAttributeStatus_GasConsumptionUnit_ struct { + GasConsumptionUnit VehicleAttributeStatus_GasConsumptionUnit `protobuf:"varint,13,opt,name=gas_consumption_unit,json=gasConsumptionUnit,proto3,enum=proto.VehicleAttributeStatus_GasConsumptionUnit,oneof"` +} + +type VehicleAttributeStatus_ElectricityConsumptionUnit_ struct { + ElectricityConsumptionUnit VehicleAttributeStatus_ElectricityConsumptionUnit `protobuf:"varint,14,opt,name=electricity_consumption_unit,json=electricityConsumptionUnit,proto3,enum=proto.VehicleAttributeStatus_ElectricityConsumptionUnit,oneof"` +} + +type VehicleAttributeStatus_SpeedDistanceUnit_ struct { + // Deprecated: Marked as deprecated in vehicle-events.proto. + SpeedDistanceUnit VehicleAttributeStatus_SpeedDistanceUnit `protobuf:"varint,15,opt,name=speed_distance_unit,json=speedDistanceUnit,proto3,enum=proto.VehicleAttributeStatus_SpeedDistanceUnit,oneof"` // use speed unit / length unit instead +} + +type VehicleAttributeStatus_SpeedUnit_ struct { + SpeedUnit VehicleAttributeStatus_SpeedUnit `protobuf:"varint,25,opt,name=speed_unit,json=speedUnit,proto3,enum=proto.VehicleAttributeStatus_SpeedUnit,oneof"` +} + +type VehicleAttributeStatus_DistanceUnit_ struct { + DistanceUnit VehicleAttributeStatus_DistanceUnit `protobuf:"varint,26,opt,name=distance_unit,json=distanceUnit,proto3,enum=proto.VehicleAttributeStatus_DistanceUnit,oneof"` +} + +type VehicleAttributeStatus_TemperatureUnit_ struct { + TemperatureUnit VehicleAttributeStatus_TemperatureUnit `protobuf:"varint,16,opt,name=temperature_unit,json=temperatureUnit,proto3,enum=proto.VehicleAttributeStatus_TemperatureUnit,oneof"` +} + +type VehicleAttributeStatus_PressureUnit_ struct { + PressureUnit VehicleAttributeStatus_PressureUnit `protobuf:"varint,17,opt,name=pressure_unit,json=pressureUnit,proto3,enum=proto.VehicleAttributeStatus_PressureUnit,oneof"` +} + +type VehicleAttributeStatus_RatioUnit_ struct { + RatioUnit VehicleAttributeStatus_RatioUnit `protobuf:"varint,18,opt,name=ratio_unit,json=ratioUnit,proto3,enum=proto.VehicleAttributeStatus_RatioUnit,oneof"` +} + +type VehicleAttributeStatus_ClockHourUnit_ struct { + ClockHourUnit VehicleAttributeStatus_ClockHourUnit `protobuf:"varint,19,opt,name=clock_hour_unit,json=clockHourUnit,proto3,enum=proto.VehicleAttributeStatus_ClockHourUnit,oneof"` +} + +func (*VehicleAttributeStatus_CombustionConsumptionUnit_) isVehicleAttributeStatus_DisplayUnit() {} + +func (*VehicleAttributeStatus_GasConsumptionUnit_) isVehicleAttributeStatus_DisplayUnit() {} + +func (*VehicleAttributeStatus_ElectricityConsumptionUnit_) isVehicleAttributeStatus_DisplayUnit() {} + +func (*VehicleAttributeStatus_SpeedDistanceUnit_) isVehicleAttributeStatus_DisplayUnit() {} + +func (*VehicleAttributeStatus_SpeedUnit_) isVehicleAttributeStatus_DisplayUnit() {} + +func (*VehicleAttributeStatus_DistanceUnit_) isVehicleAttributeStatus_DisplayUnit() {} + +func (*VehicleAttributeStatus_TemperatureUnit_) isVehicleAttributeStatus_DisplayUnit() {} + +func (*VehicleAttributeStatus_PressureUnit_) isVehicleAttributeStatus_DisplayUnit() {} + +func (*VehicleAttributeStatus_RatioUnit_) isVehicleAttributeStatus_DisplayUnit() {} + +func (*VehicleAttributeStatus_ClockHourUnit_) isVehicleAttributeStatus_DisplayUnit() {} + +type isVehicleAttributeStatus_AttributeType interface { + isVehicleAttributeStatus_AttributeType() +} + +type VehicleAttributeStatus_IntValue struct { + IntValue int64 `protobuf:"varint,4,opt,name=int_value,json=intValue,proto3,oneof"` +} + +type VehicleAttributeStatus_BoolValue struct { + BoolValue bool `protobuf:"varint,5,opt,name=bool_value,json=boolValue,proto3,oneof"` +} + +type VehicleAttributeStatus_StringValue struct { + StringValue string `protobuf:"bytes,6,opt,name=string_value,json=stringValue,proto3,oneof"` +} + +type VehicleAttributeStatus_DoubleValue struct { + DoubleValue float64 `protobuf:"fixed64,7,opt,name=double_value,json=doubleValue,proto3,oneof"` +} + +type VehicleAttributeStatus_NilValue struct { + NilValue bool `protobuf:"varint,8,opt,name=nil_value,json=nilValue,proto3,oneof"` +} + +type VehicleAttributeStatus_UnsupportedValue struct { + UnsupportedValue string `protobuf:"bytes,9,opt,name=unsupported_value,json=unsupportedValue,proto3,oneof"` +} + +type VehicleAttributeStatus_TemperaturePointsValue struct { + TemperaturePointsValue *TemperaturePointsValue `protobuf:"bytes,20,opt,name=temperature_points_value,json=temperaturePointsValue,proto3,oneof"` +} + +type VehicleAttributeStatus_WeekdayTariffValue struct { + WeekdayTariffValue *WeekdayTariffValue `protobuf:"bytes,21,opt,name=weekday_tariff_value,json=weekdayTariffValue,proto3,oneof"` +} + +type VehicleAttributeStatus_WeekendTariffValue struct { + WeekendTariffValue *WeekendTariffValue `protobuf:"bytes,22,opt,name=weekend_tariff_value,json=weekendTariffValue,proto3,oneof"` +} + +type VehicleAttributeStatus_StateOfChargeProfileValue struct { + StateOfChargeProfileValue *StateOfChargeProfileValue `protobuf:"bytes,23,opt,name=state_of_charge_profile_value,json=stateOfChargeProfileValue,proto3,oneof"` +} + +type VehicleAttributeStatus_WeeklySettingsHeadUnitValue struct { + WeeklySettingsHeadUnitValue *WeeklySettingsHeadUnitValue `protobuf:"bytes,24,opt,name=weekly_settings_head_unit_value,json=weeklySettingsHeadUnitValue,proto3,oneof"` +} + +type VehicleAttributeStatus_SpeedAlertConfigurationValue struct { + SpeedAlertConfigurationValue *SpeedAlertConfigurationValue `protobuf:"bytes,27,opt,name=speed_alert_configuration_value,json=speedAlertConfigurationValue,proto3,oneof"` +} + +type VehicleAttributeStatus_EcoHistogramValue struct { + EcoHistogramValue *EcoHistogramValue `protobuf:"bytes,28,opt,name=eco_histogram_value,json=ecoHistogramValue,proto3,oneof"` +} + +type VehicleAttributeStatus_WeeklyProfileValue struct { + WeeklyProfileValue *WeeklyProfileValue `protobuf:"bytes,29,opt,name=weekly_profile_value,json=weeklyProfileValue,proto3,oneof"` +} + +type VehicleAttributeStatus_ChargeProgramsValue struct { + ChargeProgramsValue *ChargeProgramsValue `protobuf:"bytes,31,opt,name=charge_programs_value,json=chargeProgramsValue,proto3,oneof"` +} + +func (*VehicleAttributeStatus_IntValue) isVehicleAttributeStatus_AttributeType() {} + +func (*VehicleAttributeStatus_BoolValue) isVehicleAttributeStatus_AttributeType() {} + +func (*VehicleAttributeStatus_StringValue) isVehicleAttributeStatus_AttributeType() {} + +func (*VehicleAttributeStatus_DoubleValue) isVehicleAttributeStatus_AttributeType() {} + +func (*VehicleAttributeStatus_NilValue) isVehicleAttributeStatus_AttributeType() {} + +func (*VehicleAttributeStatus_UnsupportedValue) isVehicleAttributeStatus_AttributeType() {} + +func (*VehicleAttributeStatus_TemperaturePointsValue) isVehicleAttributeStatus_AttributeType() {} + +func (*VehicleAttributeStatus_WeekdayTariffValue) isVehicleAttributeStatus_AttributeType() {} + +func (*VehicleAttributeStatus_WeekendTariffValue) isVehicleAttributeStatus_AttributeType() {} + +func (*VehicleAttributeStatus_StateOfChargeProfileValue) isVehicleAttributeStatus_AttributeType() {} + +func (*VehicleAttributeStatus_WeeklySettingsHeadUnitValue) isVehicleAttributeStatus_AttributeType() {} + +func (*VehicleAttributeStatus_SpeedAlertConfigurationValue) isVehicleAttributeStatus_AttributeType() { +} + +func (*VehicleAttributeStatus_EcoHistogramValue) isVehicleAttributeStatus_AttributeType() {} + +func (*VehicleAttributeStatus_WeeklyProfileValue) isVehicleAttributeStatus_AttributeType() {} + +func (*VehicleAttributeStatus_ChargeProgramsValue) isVehicleAttributeStatus_AttributeType() {} + +type ChargeProgramsValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChargeProgramParameters []*ChargeProgramParameters `protobuf:"bytes,1,rep,name=charge_program_parameters,json=chargeProgramParameters,proto3" json:"charge_program_parameters,omitempty"` +} + +func (x *ChargeProgramsValue) Reset() { + *x = ChargeProgramsValue{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChargeProgramsValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChargeProgramsValue) ProtoMessage() {} + +func (x *ChargeProgramsValue) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChargeProgramsValue.ProtoReflect.Descriptor instead. +func (*ChargeProgramsValue) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{2} +} + +func (x *ChargeProgramsValue) GetChargeProgramParameters() []*ChargeProgramParameters { + if x != nil { + return x.ChargeProgramParameters + } + return nil +} + +type ChargeProgramParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChargeProgram ChargeProgram `protobuf:"varint,1,opt,name=charge_program,json=chargeprogram,proto3,enum=proto.ChargeProgram" json:"charge_program,omitempty"` + // Values need to be between 50 and 100 and divisible by ten + // Maximum value for the state of charge of the HV battery [in %]. + // Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] + MaxSoc int32 `protobuf:"varint,2,opt,name=max_soc,json=maxSoc,proto3" json:"max_soc,omitempty"` + // unlock the plug after charging is finished + // Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value. + // true - unlock automatically, false - do not unlock automatically + // can only be used if chargeprogram is set to home or work. Otherwise it will be ignored. + AutoUnlock bool `protobuf:"varint,3,opt,name=auto_unlock,json=autounlock,proto3" json:"auto_unlock,omitempty"` + // automatically switch between home and work program, based on the location of the car + // Denotes whether location based charging should be used. + // true - use location based charging, false - do not use location based charging + // can only be used if chargeprogram is set to home or work. Otherwise it will be ignored. + LocationBasedCharging bool `protobuf:"varint,4,opt,name=location_based_charging,json=locationbasedcharging,proto3" json:"location_based_charging,omitempty"` + WeeklyProfile bool `protobuf:"varint,5,opt,name=weekly_profile,json=weeklyprofile,proto3" json:"weekly_profile,omitempty"` + ClockTimer bool `protobuf:"varint,6,opt,name=clockTimer,proto3" json:"clockTimer,omitempty"` + MaxChargingCurrent int32 `protobuf:"varint,7,opt,name=max_charging_current,json=MaxChargingCurrent,proto3" json:"max_charging_current,omitempty"` + EcoCharging bool `protobuf:"varint,8,opt,name=eco_charging,json=EcoCharging,proto3" json:"eco_charging,omitempty"` +} + +func (x *ChargeProgramParameters) Reset() { + *x = ChargeProgramParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChargeProgramParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChargeProgramParameters) ProtoMessage() {} + +func (x *ChargeProgramParameters) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChargeProgramParameters.ProtoReflect.Descriptor instead. +func (*ChargeProgramParameters) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{3} +} + +func (x *ChargeProgramParameters) GetChargeProgram() ChargeProgram { + if x != nil { + return x.ChargeProgram + } + return ChargeProgram_DEFAULT_CHARGE_PROGRAM +} + +func (x *ChargeProgramParameters) GetMaxSoc() int32 { + if x != nil { + return x.MaxSoc + } + return 0 +} + +func (x *ChargeProgramParameters) GetAutoUnlock() bool { + if x != nil { + return x.AutoUnlock + } + return false +} + +func (x *ChargeProgramParameters) GetLocationBasedCharging() bool { + if x != nil { + return x.LocationBasedCharging + } + return false +} + +func (x *ChargeProgramParameters) GetWeeklyProfile() bool { + if x != nil { + return x.WeeklyProfile + } + return false +} + +func (x *ChargeProgramParameters) GetClockTimer() bool { + if x != nil { + return x.ClockTimer + } + return false +} + +func (x *ChargeProgramParameters) GetMaxChargingCurrent() int32 { + if x != nil { + return x.MaxChargingCurrent + } + return 0 +} + +func (x *ChargeProgramParameters) GetEcoCharging() bool { + if x != nil { + return x.EcoCharging + } + return false +} + +type WeeklyProfileValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SingleTimeProfileEntriesActivatable bool `protobuf:"varint,1,opt,name=single_time_profile_entries_activatable,json=singleTimeProfileEntriesActivatable,proto3" json:"single_time_profile_entries_activatable,omitempty"` + MaxNumberOfWeeklyTimeProfileSlots int32 `protobuf:"varint,2,opt,name=max_number_of_weekly_time_profile_slots,json=maxNumberOfWeeklyTimeProfileSlots,proto3" json:"max_number_of_weekly_time_profile_slots,omitempty"` + MaxNumberOfTimeProfiles int32 `protobuf:"varint,3,opt,name=max_number_of_time_profiles,json=maxNumberOfTimeProfiles,proto3" json:"max_number_of_time_profiles,omitempty"` + CurrentNumberOfTimeProfileSlots int32 `protobuf:"varint,4,opt,name=current_number_of_time_profile_slots,json=currentNumberOfTimeProfileSlots,proto3" json:"current_number_of_time_profile_slots,omitempty"` + CurrentNumberOfTimeProfiles int32 `protobuf:"varint,5,opt,name=current_number_of_time_profiles,json=currentNumberOfTimeProfiles,proto3" json:"current_number_of_time_profiles,omitempty"` + TimeProfiles []*VVRTimeProfile `protobuf:"bytes,6,rep,name=time_profiles,json=timeProfiles,proto3" json:"time_profiles,omitempty"` +} + +func (x *WeeklyProfileValue) Reset() { + *x = WeeklyProfileValue{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WeeklyProfileValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WeeklyProfileValue) ProtoMessage() {} + +func (x *WeeklyProfileValue) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WeeklyProfileValue.ProtoReflect.Descriptor instead. +func (*WeeklyProfileValue) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{4} +} + +func (x *WeeklyProfileValue) GetSingleTimeProfileEntriesActivatable() bool { + if x != nil { + return x.SingleTimeProfileEntriesActivatable + } + return false +} + +func (x *WeeklyProfileValue) GetMaxNumberOfWeeklyTimeProfileSlots() int32 { + if x != nil { + return x.MaxNumberOfWeeklyTimeProfileSlots + } + return 0 +} + +func (x *WeeklyProfileValue) GetMaxNumberOfTimeProfiles() int32 { + if x != nil { + return x.MaxNumberOfTimeProfiles + } + return 0 +} + +func (x *WeeklyProfileValue) GetCurrentNumberOfTimeProfileSlots() int32 { + if x != nil { + return x.CurrentNumberOfTimeProfileSlots + } + return 0 +} + +func (x *WeeklyProfileValue) GetCurrentNumberOfTimeProfiles() int32 { + if x != nil { + return x.CurrentNumberOfTimeProfiles + } + return 0 +} + +func (x *WeeklyProfileValue) GetTimeProfiles() []*VVRTimeProfile { + if x != nil { + return x.TimeProfiles + } + return nil +} + +// VVRTimeProfile is almost identical to the "TimeProfile" message with the exception that the identifier is not optional. +type VVRTimeProfile struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // unique id of this time profile entry + Identifier int32 `protobuf:"varint,1,opt,name=identifier,json=id,proto3" json:"identifier,omitempty"` + // Hour after midnight range [0, 23] + Hour int32 `protobuf:"varint,2,opt,name=hour,proto3" json:"hour,omitempty"` + // Minute after full hour range [0, 59] + Minute int32 `protobuf:"varint,3,opt,name=minute,json=min,proto3" json:"minute,omitempty"` + // Days for which the above time should be applied + Days []TimeProfileDay `protobuf:"varint,4,rep,packed,name=days,json=day,proto3,enum=proto.TimeProfileDay" json:"days,omitempty"` + // Whether this profile entry is active or not + Active bool `protobuf:"varint,5,opt,name=active,proto3" json:"active,omitempty"` + // If a timeProfile is changed or added the respective applicationId must be provided by SDK + // + // 11 = Internal Apps + // 12 = External Apps + ApplicationIdentifier int32 `protobuf:"varint,6,opt,name=application_identifier,json=applicationId,proto3" json:"application_identifier,omitempty"` +} + +func (x *VVRTimeProfile) Reset() { + *x = VVRTimeProfile{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VVRTimeProfile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VVRTimeProfile) ProtoMessage() {} + +func (x *VVRTimeProfile) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VVRTimeProfile.ProtoReflect.Descriptor instead. +func (*VVRTimeProfile) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{5} +} + +func (x *VVRTimeProfile) GetIdentifier() int32 { + if x != nil { + return x.Identifier + } + return 0 +} + +func (x *VVRTimeProfile) GetHour() int32 { + if x != nil { + return x.Hour + } + return 0 +} + +func (x *VVRTimeProfile) GetMinute() int32 { + if x != nil { + return x.Minute + } + return 0 +} + +func (x *VVRTimeProfile) GetDays() []TimeProfileDay { + if x != nil { + return x.Days + } + return nil +} + +func (x *VVRTimeProfile) GetActive() bool { + if x != nil { + return x.Active + } + return false +} + +func (x *VVRTimeProfile) GetApplicationIdentifier() int32 { + if x != nil { + return x.ApplicationIdentifier + } + return 0 +} + +type EcoHistogramValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EcoHistogramBins []*EcoHistogramBin `protobuf:"bytes,1,rep,name=eco_histogram_bins,json=ecoHistogramBins,proto3" json:"eco_histogram_bins,omitempty"` +} + +func (x *EcoHistogramValue) Reset() { + *x = EcoHistogramValue{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EcoHistogramValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EcoHistogramValue) ProtoMessage() {} + +func (x *EcoHistogramValue) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EcoHistogramValue.ProtoReflect.Descriptor instead. +func (*EcoHistogramValue) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{6} +} + +func (x *EcoHistogramValue) GetEcoHistogramBins() []*EcoHistogramBin { + if x != nil { + return x.EcoHistogramBins + } + return nil +} + +type EcoHistogramBin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Interval float64 `protobuf:"fixed64,1,opt,name=interval,proto3" json:"interval,omitempty"` + Value float64 `protobuf:"fixed64,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *EcoHistogramBin) Reset() { + *x = EcoHistogramBin{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EcoHistogramBin) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EcoHistogramBin) ProtoMessage() {} + +func (x *EcoHistogramBin) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EcoHistogramBin.ProtoReflect.Descriptor instead. +func (*EcoHistogramBin) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{7} +} + +func (x *EcoHistogramBin) GetInterval() float64 { + if x != nil { + return x.Interval + } + return 0 +} + +func (x *EcoHistogramBin) GetValue() float64 { + if x != nil { + return x.Value + } + return 0 +} + +type SpeedAlertConfigurationValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SpeedAlertConfigurations []*SpeedAlertConfiguration `protobuf:"bytes,1,rep,name=speed_alert_configurations,json=speedAlertConfigurations,proto3" json:"speed_alert_configurations,omitempty"` +} + +func (x *SpeedAlertConfigurationValue) Reset() { + *x = SpeedAlertConfigurationValue{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpeedAlertConfigurationValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpeedAlertConfigurationValue) ProtoMessage() {} + +func (x *SpeedAlertConfigurationValue) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SpeedAlertConfigurationValue.ProtoReflect.Descriptor instead. +func (*SpeedAlertConfigurationValue) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{8} +} + +func (x *SpeedAlertConfigurationValue) GetSpeedAlertConfigurations() []*SpeedAlertConfiguration { + if x != nil { + return x.SpeedAlertConfigurations + } + return nil +} + +type SpeedAlertConfiguration struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Unix timestamp in seconds + EndTimestampInS int64 `protobuf:"varint,1,opt,name=end_timestamp_in_s,json=endTimestampInS,proto3" json:"end_timestamp_in_s,omitempty"` + // Speed in kilometers per hour + ThresholdInKph int32 `protobuf:"varint,2,opt,name=threshold_in_kph,json=thresholdInKph,proto3" json:"threshold_in_kph,omitempty"` + // threshold value in the users preferred unit + ThresholdDisplayValue string `protobuf:"bytes,3,opt,name=threshold_display_value,json=thresholdDisplayValue,proto3" json:"threshold_display_value,omitempty"` +} + +func (x *SpeedAlertConfiguration) Reset() { + *x = SpeedAlertConfiguration{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpeedAlertConfiguration) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpeedAlertConfiguration) ProtoMessage() {} + +func (x *SpeedAlertConfiguration) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SpeedAlertConfiguration.ProtoReflect.Descriptor instead. +func (*SpeedAlertConfiguration) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{9} +} + +func (x *SpeedAlertConfiguration) GetEndTimestampInS() int64 { + if x != nil { + return x.EndTimestampInS + } + return 0 +} + +func (x *SpeedAlertConfiguration) GetThresholdInKph() int32 { + if x != nil { + return x.ThresholdInKph + } + return 0 +} + +func (x *SpeedAlertConfiguration) GetThresholdDisplayValue() string { + if x != nil { + return x.ThresholdDisplayValue + } + return "" +} + +type WeeklySettingsHeadUnitValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439) + WeeklySettings []*WeeklySetting `protobuf:"bytes,1,rep,name=weekly_settings,json=weeklySettings,proto3" json:"weekly_settings,omitempty"` +} + +func (x *WeeklySettingsHeadUnitValue) Reset() { + *x = WeeklySettingsHeadUnitValue{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WeeklySettingsHeadUnitValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WeeklySettingsHeadUnitValue) ProtoMessage() {} + +func (x *WeeklySettingsHeadUnitValue) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WeeklySettingsHeadUnitValue.ProtoReflect.Descriptor instead. +func (*WeeklySettingsHeadUnitValue) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{10} +} + +func (x *WeeklySettingsHeadUnitValue) GetWeeklySettings() []*WeeklySetting { + if x != nil { + return x.WeeklySettings + } + return nil +} + +type WeeklySetting struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Day int32 `protobuf:"varint,1,opt,name=day,proto3" json:"day,omitempty"` + MinutesSinceMidnight int32 `protobuf:"varint,2,opt,name=minutes_since_midnight,json=minutesSinceMidnight,proto3" json:"minutes_since_midnight,omitempty"` +} + +func (x *WeeklySetting) Reset() { + *x = WeeklySetting{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WeeklySetting) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WeeklySetting) ProtoMessage() {} + +func (x *WeeklySetting) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WeeklySetting.ProtoReflect.Descriptor instead. +func (*WeeklySetting) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{11} +} + +func (x *WeeklySetting) GetDay() int32 { + if x != nil { + return x.Day + } + return 0 +} + +func (x *WeeklySetting) GetMinutesSinceMidnight() int32 { + if x != nil { + return x.MinutesSinceMidnight + } + return 0 +} + +type TemperaturePointsValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center) + // and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH) + TemperaturePoints []*TemperaturePoint `protobuf:"bytes,1,rep,name=temperature_points,json=temperaturePoints,proto3" json:"temperature_points,omitempty"` +} + +func (x *TemperaturePointsValue) Reset() { + *x = TemperaturePointsValue{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TemperaturePointsValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TemperaturePointsValue) ProtoMessage() {} + +func (x *TemperaturePointsValue) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TemperaturePointsValue.ProtoReflect.Descriptor instead. +func (*TemperaturePointsValue) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{12} +} + +func (x *TemperaturePointsValue) GetTemperaturePoints() []*TemperaturePoint { + if x != nil { + return x.TemperaturePoints + } + return nil +} + +type TemperaturePoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Zone string `protobuf:"bytes,1,opt,name=zone,proto3" json:"zone,omitempty"` + Temperature float64 `protobuf:"fixed64,2,opt,name=temperature,proto3" json:"temperature,omitempty"` + TemperatureDisplayValue string `protobuf:"bytes,3,opt,name=temperature_display_value,json=temperatureDisplayValue,proto3" json:"temperature_display_value,omitempty"` +} + +func (x *TemperaturePoint) Reset() { + *x = TemperaturePoint{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TemperaturePoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TemperaturePoint) ProtoMessage() {} + +func (x *TemperaturePoint) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TemperaturePoint.ProtoReflect.Descriptor instead. +func (*TemperaturePoint) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{13} +} + +func (x *TemperaturePoint) GetZone() string { + if x != nil { + return x.Zone + } + return "" +} + +func (x *TemperaturePoint) GetTemperature() float64 { + if x != nil { + return x.Temperature + } + return 0 +} + +func (x *TemperaturePoint) GetTemperatureDisplayValue() string { + if x != nil { + return x.TemperatureDisplayValue + } + return "" +} + +type WeekdayTariffValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state. + Tariffs []*Tariff `protobuf:"bytes,1,rep,name=tariffs,proto3" json:"tariffs,omitempty"` +} + +func (x *WeekdayTariffValue) Reset() { + *x = WeekdayTariffValue{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WeekdayTariffValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WeekdayTariffValue) ProtoMessage() {} + +func (x *WeekdayTariffValue) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WeekdayTariffValue.ProtoReflect.Descriptor instead. +func (*WeekdayTariffValue) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{14} +} + +func (x *WeekdayTariffValue) GetTariffs() []*Tariff { + if x != nil { + return x.Tariffs + } + return nil +} + +type WeekendTariffValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state. + Tariffs []*Tariff `protobuf:"bytes,1,rep,name=tariffs,proto3" json:"tariffs,omitempty"` +} + +func (x *WeekendTariffValue) Reset() { + *x = WeekendTariffValue{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WeekendTariffValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WeekendTariffValue) ProtoMessage() {} + +func (x *WeekendTariffValue) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WeekendTariffValue.ProtoReflect.Descriptor instead. +func (*WeekendTariffValue) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{15} +} + +func (x *WeekendTariffValue) GetTariffs() []*Tariff { + if x != nil { + return x.Tariffs + } + return nil +} + +type Tariff struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 33 - off-peak, 44 - mid-peak, 66 - on-peak + Rate int32 `protobuf:"varint,1,opt,name=rate,proto3" json:"rate,omitempty"` + // Seconds from midnight + Time int32 `protobuf:"varint,2,opt,name=time,proto3" json:"time,omitempty"` +} + +func (x *Tariff) Reset() { + *x = Tariff{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Tariff) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Tariff) ProtoMessage() {} + +func (x *Tariff) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Tariff.ProtoReflect.Descriptor instead. +func (*Tariff) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{16} +} + +func (x *Tariff) GetRate() int32 { + if x != nil { + return x.Rate + } + return 0 +} + +func (x *Tariff) GetTime() int32 { + if x != nil { + return x.Time + } + return 0 +} + +type StateOfChargeProfileValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Array with tupels of state of charge and time offset related to the timestamp of the attribute, + // e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC) + StatesOfCharge []*StateOfCharge `protobuf:"bytes,1,rep,name=states_of_charge,json=statesOfCharge,proto3" json:"states_of_charge,omitempty"` +} + +func (x *StateOfChargeProfileValue) Reset() { + *x = StateOfChargeProfileValue{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StateOfChargeProfileValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StateOfChargeProfileValue) ProtoMessage() {} + +func (x *StateOfChargeProfileValue) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StateOfChargeProfileValue.ProtoReflect.Descriptor instead. +func (*StateOfChargeProfileValue) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{17} +} + +func (x *StateOfChargeProfileValue) GetStatesOfCharge() []*StateOfCharge { + if x != nil { + return x.StatesOfCharge + } + return nil +} + +type StateOfCharge struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // timestamp in seconds, UTC + TimestampInS int64 `protobuf:"varint,1,opt,name=timestamp_in_s,json=timestampInS,proto3" json:"timestamp_in_s,omitempty"` + // soc with value range 0..100 + StateOfCharge int32 `protobuf:"varint,2,opt,name=state_of_charge,json=stateOfCharge,proto3" json:"state_of_charge,omitempty"` +} + +func (x *StateOfCharge) Reset() { + *x = StateOfCharge{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StateOfCharge) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StateOfCharge) ProtoMessage() {} + +func (x *StateOfCharge) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StateOfCharge.ProtoReflect.Descriptor instead. +func (*StateOfCharge) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{18} +} + +func (x *StateOfCharge) GetTimestampInS() int64 { + if x != nil { + return x.TimestampInS + } + return 0 +} + +func (x *StateOfCharge) GetStateOfCharge() int32 { + if x != nil { + return x.StateOfCharge + } + return 0 +} + +// Sending direction: App <- BFF <- AppTwin +type VEPUpdatesByVIN struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,2,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + // VIN -> Update + Updates map[string]*VEPUpdate `protobuf:"bytes,1,rep,name=updates,proto3" json:"updates,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *VEPUpdatesByVIN) Reset() { + *x = VEPUpdatesByVIN{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VEPUpdatesByVIN) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VEPUpdatesByVIN) ProtoMessage() {} + +func (x *VEPUpdatesByVIN) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VEPUpdatesByVIN.ProtoReflect.Descriptor instead. +func (*VEPUpdatesByVIN) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{19} +} + +func (x *VEPUpdatesByVIN) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +func (x *VEPUpdatesByVIN) GetUpdates() map[string]*VEPUpdate { + if x != nil { + return x.Updates + } + return nil +} + +// Sending direction: App <- BFF +type DebugMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *DebugMessage) Reset() { + *x = DebugMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DebugMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DebugMessage) ProtoMessage() {} + +func (x *DebugMessage) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DebugMessage.ProtoReflect.Descriptor instead. +func (*DebugMessage) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{20} +} + +func (x *DebugMessage) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +// Represents a status response from the +// VVA backend for a given VIN and CIAM ID. +type VehicleStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Vin string `protobuf:"bytes,1,opt,name=vin,proto3" json:"vin,omitempty"` + Attributes map[string]*VehicleAttributeStatus `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *VehicleStatus) Reset() { + *x = VehicleStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VehicleStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VehicleStatus) ProtoMessage() {} + +func (x *VehicleStatus) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VehicleStatus.ProtoReflect.Descriptor instead. +func (*VehicleStatus) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{21} +} + +func (x *VehicleStatus) GetVin() string { + if x != nil { + return x.Vin + } + return "" +} + +func (x *VehicleStatus) GetAttributes() map[string]*VehicleAttributeStatus { + if x != nil { + return x.Attributes + } + return nil +} + +// message that is pushed from the vep status service +// Sending direction: App <- BFF +type PushMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TrackingId string `protobuf:"bytes,5,opt,name=tracking_id,json=trackingId,proto3" json:"tracking_id,omitempty"` + // Types that are assignable to Msg: + // + // *PushMessage_VepUpdate + // *PushMessage_VepUpdates + // *PushMessage_DebugMessage + // *PushMessage_ServiceStatusUpdates + // *PushMessage_ServiceStatusUpdate + // *PushMessage_UserDataUpdate + // *PushMessage_UserVehicleAuthChangedUpdate + // *PushMessage_UserPictureUpdate + // *PushMessage_UserPinUpdate + // *PushMessage_VehicleUpdated + // *PushMessage_PreferredDealerChange + // *PushMessage_ApptwinCommandStatusUpdatesByVin + // *PushMessage_ApptwinPendingCommandRequest + // *PushMessage_AssignedVehicles + Msg isPushMessage_Msg `protobuf_oneof:"msg"` +} + +func (x *PushMessage) Reset() { + *x = PushMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PushMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PushMessage) ProtoMessage() {} + +func (x *PushMessage) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PushMessage.ProtoReflect.Descriptor instead. +func (*PushMessage) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{22} +} + +func (x *PushMessage) GetTrackingId() string { + if x != nil { + return x.TrackingId + } + return "" +} + +func (m *PushMessage) GetMsg() isPushMessage_Msg { + if m != nil { + return m.Msg + } + return nil +} + +func (x *PushMessage) GetVepUpdate() *VEPUpdate { + if x, ok := x.GetMsg().(*PushMessage_VepUpdate); ok { + return x.VepUpdate + } + return nil +} + +func (x *PushMessage) GetVepUpdates() *VEPUpdatesByVIN { + if x, ok := x.GetMsg().(*PushMessage_VepUpdates); ok { + return x.VepUpdates + } + return nil +} + +func (x *PushMessage) GetDebugMessage() *DebugMessage { + if x, ok := x.GetMsg().(*PushMessage_DebugMessage); ok { + return x.DebugMessage + } + return nil +} + +func (x *PushMessage) GetServiceStatusUpdates() *ServiceStatusUpdatesByVIN { + if x, ok := x.GetMsg().(*PushMessage_ServiceStatusUpdates); ok { + return x.ServiceStatusUpdates + } + return nil +} + +func (x *PushMessage) GetServiceStatusUpdate() *ServiceStatusUpdate { + if x, ok := x.GetMsg().(*PushMessage_ServiceStatusUpdate); ok { + return x.ServiceStatusUpdate + } + return nil +} + +func (x *PushMessage) GetUserDataUpdate() *UserDataUpdate { + if x, ok := x.GetMsg().(*PushMessage_UserDataUpdate); ok { + return x.UserDataUpdate + } + return nil +} + +func (x *PushMessage) GetUserVehicleAuthChangedUpdate() *UserVehicleAuthChangedUpdate { + if x, ok := x.GetMsg().(*PushMessage_UserVehicleAuthChangedUpdate); ok { + return x.UserVehicleAuthChangedUpdate + } + return nil +} + +func (x *PushMessage) GetUserPictureUpdate() *UserPictureUpdate { + if x, ok := x.GetMsg().(*PushMessage_UserPictureUpdate); ok { + return x.UserPictureUpdate + } + return nil +} + +func (x *PushMessage) GetUserPinUpdate() *UserPINUpdate { + if x, ok := x.GetMsg().(*PushMessage_UserPinUpdate); ok { + return x.UserPinUpdate + } + return nil +} + +func (x *PushMessage) GetVehicleUpdated() *VehicleUpdated { + if x, ok := x.GetMsg().(*PushMessage_VehicleUpdated); ok { + return x.VehicleUpdated + } + return nil +} + +func (x *PushMessage) GetPreferredDealerChange() *PreferredDealerChange { + if x, ok := x.GetMsg().(*PushMessage_PreferredDealerChange); ok { + return x.PreferredDealerChange + } + return nil +} + +func (x *PushMessage) GetApptwinCommandStatusUpdatesByVin() *AppTwinCommandStatusUpdatesByVIN { + if x, ok := x.GetMsg().(*PushMessage_ApptwinCommandStatusUpdatesByVin); ok { + return x.ApptwinCommandStatusUpdatesByVin + } + return nil +} + +func (x *PushMessage) GetApptwinPendingCommandRequest() *AppTwinPendingCommandsRequest { + if x, ok := x.GetMsg().(*PushMessage_ApptwinPendingCommandRequest); ok { + return x.ApptwinPendingCommandRequest + } + return nil +} + +func (x *PushMessage) GetAssignedVehicles() *protos.AssignedVehicles { + if x, ok := x.GetMsg().(*PushMessage_AssignedVehicles); ok { + return x.AssignedVehicles + } + return nil +} + +type isPushMessage_Msg interface { + isPushMessage_Msg() +} + +type PushMessage_VepUpdate struct { + VepUpdate *VEPUpdate `protobuf:"bytes,1,opt,name=vepUpdate,proto3,oneof"` +} + +type PushMessage_VepUpdates struct { + VepUpdates *VEPUpdatesByVIN `protobuf:"bytes,2,opt,name=vepUpdates,proto3,oneof"` +} + +type PushMessage_DebugMessage struct { + DebugMessage *DebugMessage `protobuf:"bytes,3,opt,name=debugMessage,proto3,oneof"` +} + +type PushMessage_ServiceStatusUpdates struct { + ServiceStatusUpdates *ServiceStatusUpdatesByVIN `protobuf:"bytes,9,opt,name=service_status_updates,json=serviceStatusUpdates,proto3,oneof"` +} + +type PushMessage_ServiceStatusUpdate struct { + ServiceStatusUpdate *ServiceStatusUpdate `protobuf:"bytes,13,opt,name=service_status_update,json=serviceStatusUpdate,proto3,oneof"` +} + +type PushMessage_UserDataUpdate struct { + UserDataUpdate *UserDataUpdate `protobuf:"bytes,10,opt,name=user_data_update,json=userDataUpdate,proto3,oneof"` +} + +type PushMessage_UserVehicleAuthChangedUpdate struct { + UserVehicleAuthChangedUpdate *UserVehicleAuthChangedUpdate `protobuf:"bytes,14,opt,name=user_vehicle_auth_changed_update,json=userVehicleAuthChangedUpdate,proto3,oneof"` +} + +type PushMessage_UserPictureUpdate struct { + UserPictureUpdate *UserPictureUpdate `protobuf:"bytes,11,opt,name=user_picture_update,json=userPictureUpdate,proto3,oneof"` +} + +type PushMessage_UserPinUpdate struct { + UserPinUpdate *UserPINUpdate `protobuf:"bytes,12,opt,name=user_pin_update,json=userPinUpdate,proto3,oneof"` +} + +type PushMessage_VehicleUpdated struct { + VehicleUpdated *VehicleUpdated `protobuf:"bytes,15,opt,name=vehicle_updated,json=vehicleUpdated,proto3,oneof"` +} + +type PushMessage_PreferredDealerChange struct { + PreferredDealerChange *PreferredDealerChange `protobuf:"bytes,16,opt,name=preferred_dealer_change,json=preferredDealerChange,proto3,oneof"` +} + +type PushMessage_ApptwinCommandStatusUpdatesByVin struct { + ApptwinCommandStatusUpdatesByVin *AppTwinCommandStatusUpdatesByVIN `protobuf:"bytes,17,opt,name=apptwin_command_status_updates_by_vin,json=apptwinCommandStatusUpdatesByVin,proto3,oneof"` +} + +type PushMessage_ApptwinPendingCommandRequest struct { + ApptwinPendingCommandRequest *AppTwinPendingCommandsRequest `protobuf:"bytes,18,opt,name=apptwin_pending_command_request,json=apptwinPendingCommandRequest,proto3,oneof"` +} + +type PushMessage_AssignedVehicles struct { + AssignedVehicles *protos.AssignedVehicles `protobuf:"bytes,19,opt,name=assigned_vehicles,json=assignedVehicles,proto3,oneof"` +} + +func (*PushMessage_VepUpdate) isPushMessage_Msg() {} + +func (*PushMessage_VepUpdates) isPushMessage_Msg() {} + +func (*PushMessage_DebugMessage) isPushMessage_Msg() {} + +func (*PushMessage_ServiceStatusUpdates) isPushMessage_Msg() {} + +func (*PushMessage_ServiceStatusUpdate) isPushMessage_Msg() {} + +func (*PushMessage_UserDataUpdate) isPushMessage_Msg() {} + +func (*PushMessage_UserVehicleAuthChangedUpdate) isPushMessage_Msg() {} + +func (*PushMessage_UserPictureUpdate) isPushMessage_Msg() {} + +func (*PushMessage_UserPinUpdate) isPushMessage_Msg() {} + +func (*PushMessage_VehicleUpdated) isPushMessage_Msg() {} + +func (*PushMessage_PreferredDealerChange) isPushMessage_Msg() {} + +func (*PushMessage_ApptwinCommandStatusUpdatesByVin) isPushMessage_Msg() {} + +func (*PushMessage_ApptwinPendingCommandRequest) isPushMessage_Msg() {} + +func (*PushMessage_AssignedVehicles) isPushMessage_Msg() {} + +// message type to track an event, e.g. a user interaction with content +// Sending direction: App -> BFF +type TrackingEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // a unique id associated with this event + TrackingId string `protobuf:"bytes,1,opt,name=tracking_id,json=trackingId,proto3" json:"tracking_id,omitempty"` + // the unix epoch time in nanoseconds when the event occurred + Timestamp int64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + // a unique identifier describing a single interaction or event + EventType string `protobuf:"bytes,3,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"` + // additional meta data describing the event + Payload map[string]*PayloadValue `protobuf:"bytes,4,rep,name=payload,proto3" json:"payload,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *TrackingEvent) Reset() { + *x = TrackingEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrackingEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrackingEvent) ProtoMessage() {} + +func (x *TrackingEvent) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrackingEvent.ProtoReflect.Descriptor instead. +func (*TrackingEvent) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{23} +} + +func (x *TrackingEvent) GetTrackingId() string { + if x != nil { + return x.TrackingId + } + return "" +} + +func (x *TrackingEvent) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +func (x *TrackingEvent) GetEventType() string { + if x != nil { + return x.EventType + } + return "" +} + +func (x *TrackingEvent) GetPayload() map[string]*PayloadValue { + if x != nil { + return x.Payload + } + return nil +} + +type PayloadValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Msg: + // + // *PayloadValue_StringValue + // *PayloadValue_IntValue + // *PayloadValue_BoolValue + // *PayloadValue_DoubleValue + Msg isPayloadValue_Msg `protobuf_oneof:"msg"` +} + +func (x *PayloadValue) Reset() { + *x = PayloadValue{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PayloadValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PayloadValue) ProtoMessage() {} + +func (x *PayloadValue) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PayloadValue.ProtoReflect.Descriptor instead. +func (*PayloadValue) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{24} +} + +func (m *PayloadValue) GetMsg() isPayloadValue_Msg { + if m != nil { + return m.Msg + } + return nil +} + +func (x *PayloadValue) GetStringValue() string { + if x, ok := x.GetMsg().(*PayloadValue_StringValue); ok { + return x.StringValue + } + return "" +} + +func (x *PayloadValue) GetIntValue() int32 { + if x, ok := x.GetMsg().(*PayloadValue_IntValue); ok { + return x.IntValue + } + return 0 +} + +func (x *PayloadValue) GetBoolValue() bool { + if x, ok := x.GetMsg().(*PayloadValue_BoolValue); ok { + return x.BoolValue + } + return false +} + +func (x *PayloadValue) GetDoubleValue() float64 { + if x, ok := x.GetMsg().(*PayloadValue_DoubleValue); ok { + return x.DoubleValue + } + return 0 +} + +type isPayloadValue_Msg interface { + isPayloadValue_Msg() +} + +type PayloadValue_StringValue struct { + StringValue string `protobuf:"bytes,1,opt,name=string_value,json=stringValue,proto3,oneof"` +} + +type PayloadValue_IntValue struct { + IntValue int32 `protobuf:"varint,2,opt,name=int_value,json=intValue,proto3,oneof"` +} + +type PayloadValue_BoolValue struct { + BoolValue bool `protobuf:"varint,3,opt,name=bool_value,json=boolValue,proto3,oneof"` +} + +type PayloadValue_DoubleValue struct { + DoubleValue float64 `protobuf:"fixed64,4,opt,name=double_value,json=doubleValue,proto3,oneof"` +} + +func (*PayloadValue_StringValue) isPayloadValue_Msg() {} + +func (*PayloadValue_IntValue) isPayloadValue_Msg() {} + +func (*PayloadValue_BoolValue) isPayloadValue_Msg() {} + +func (*PayloadValue_DoubleValue) isPayloadValue_Msg() {} + +// acknowledge that the VEP updates of up to `sequenceNumber` have been received +// Sending direction: App -> BFF -> AppTwin +// +// Deprecated: Marked as deprecated in vehicle-events.proto. +type AcknowledgeVEPRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` +} + +func (x *AcknowledgeVEPRequest) Reset() { + *x = AcknowledgeVEPRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcknowledgeVEPRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeVEPRequest) ProtoMessage() {} + +func (x *AcknowledgeVEPRequest) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcknowledgeVEPRequest.ProtoReflect.Descriptor instead. +func (*AcknowledgeVEPRequest) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{25} +} + +func (x *AcknowledgeVEPRequest) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +// acknowledge that the VEP updates by vin of up to `sequenceNumber` have been received +// Sending direction: App -> BFF -> AppTwin +// This message should replace the AcknowledgeVEPRequest +type AcknowledgeVEPUpdatesByVIN struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` +} + +func (x *AcknowledgeVEPUpdatesByVIN) Reset() { + *x = AcknowledgeVEPUpdatesByVIN{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcknowledgeVEPUpdatesByVIN) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeVEPUpdatesByVIN) ProtoMessage() {} + +func (x *AcknowledgeVEPUpdatesByVIN) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcknowledgeVEPUpdatesByVIN.ProtoReflect.Descriptor instead. +func (*AcknowledgeVEPUpdatesByVIN) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{26} +} + +func (x *AcknowledgeVEPUpdatesByVIN) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +// the client can optionally send this message to reconfigure the ping interval +// Sending direction: App -> BFF +type ConfigurePingInterval struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PingTimeMillis int32 `protobuf:"varint,1,opt,name=ping_time_millis,json=pingTimeMillis,proto3" json:"ping_time_millis,omitempty"` +} + +func (x *ConfigurePingInterval) Reset() { + *x = ConfigurePingInterval{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigurePingInterval) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigurePingInterval) ProtoMessage() {} + +func (x *ConfigurePingInterval) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConfigurePingInterval.ProtoReflect.Descriptor instead. +func (*ConfigurePingInterval) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{27} +} + +func (x *ConfigurePingInterval) GetPingTimeMillis() int32 { + if x != nil { + return x.PingTimeMillis + } + return 0 +} + +type AcknowledgeVehicleUpdated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` +} + +func (x *AcknowledgeVehicleUpdated) Reset() { + *x = AcknowledgeVehicleUpdated{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcknowledgeVehicleUpdated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeVehicleUpdated) ProtoMessage() {} + +func (x *AcknowledgeVehicleUpdated) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcknowledgeVehicleUpdated.ProtoReflect.Descriptor instead. +func (*AcknowledgeVehicleUpdated) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{28} +} + +func (x *AcknowledgeVehicleUpdated) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +type AcknowledgePreferredDealerChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` +} + +func (x *AcknowledgePreferredDealerChange) Reset() { + *x = AcknowledgePreferredDealerChange{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcknowledgePreferredDealerChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgePreferredDealerChange) ProtoMessage() {} + +func (x *AcknowledgePreferredDealerChange) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcknowledgePreferredDealerChange.ProtoReflect.Descriptor instead. +func (*AcknowledgePreferredDealerChange) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{29} +} + +func (x *AcknowledgePreferredDealerChange) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +type VehicleUpdated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + CiamId string `protobuf:"bytes,2,opt,name=ciam_id,json=ciamId,proto3" json:"ciam_id,omitempty"` + Vin string `protobuf:"bytes,3,opt,name=vin,proto3" json:"vin,omitempty"` + // When was the event emitted (milliseconds in Unix time) + EmitTimestampInMs int64 `protobuf:"varint,10,opt,name=emit_timestamp_in_ms,json=emitTimestampInMs,proto3" json:"emit_timestamp_in_ms,omitempty"` +} + +func (x *VehicleUpdated) Reset() { + *x = VehicleUpdated{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VehicleUpdated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VehicleUpdated) ProtoMessage() {} + +func (x *VehicleUpdated) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VehicleUpdated.ProtoReflect.Descriptor instead. +func (*VehicleUpdated) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{30} +} + +func (x *VehicleUpdated) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +func (x *VehicleUpdated) GetCiamId() string { + if x != nil { + return x.CiamId + } + return "" +} + +func (x *VehicleUpdated) GetVin() string { + if x != nil { + return x.Vin + } + return "" +} + +func (x *VehicleUpdated) GetEmitTimestampInMs() int64 { + if x != nil { + return x.EmitTimestampInMs + } + return 0 +} + +type PreferredDealerChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + CiamId string `protobuf:"bytes,2,opt,name=ciam_id,json=ciamId,proto3" json:"ciam_id,omitempty"` + Vin string `protobuf:"bytes,3,opt,name=vin,proto3" json:"vin,omitempty"` + // When was the event emitted (milliseconds in Unix time) + EmitTimestampInMs int64 `protobuf:"varint,10,opt,name=emit_timestamp_in_ms,json=emitTimestampInMs,proto3" json:"emit_timestamp_in_ms,omitempty"` +} + +func (x *PreferredDealerChange) Reset() { + *x = PreferredDealerChange{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicle_events_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PreferredDealerChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PreferredDealerChange) ProtoMessage() {} + +func (x *PreferredDealerChange) ProtoReflect() protoreflect.Message { + mi := &file_vehicle_events_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PreferredDealerChange.ProtoReflect.Descriptor instead. +func (*PreferredDealerChange) Descriptor() ([]byte, []int) { + return file_vehicle_events_proto_rawDescGZIP(), []int{31} +} + +func (x *PreferredDealerChange) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +func (x *PreferredDealerChange) GetCiamId() string { + if x != nil { + return x.CiamId + } + return "" +} + +func (x *PreferredDealerChange) GetVin() string { + if x != nil { + return x.Vin + } + return "" +} + +func (x *PreferredDealerChange) GetEmitTimestampInMs() int64 { + if x != nil { + return x.EmitTimestampInMs + } + return 0 +} + +var File_vehicle_events_proto protoreflect.FileDescriptor + +var file_vehicle_events_proto_rawDesc = []byte{ + 0x0a, 0x14, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x2d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x76, 0x65, 0x68, 0x69, + 0x63, 0x6c, 0x65, 0x2d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x10, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0xdf, 0x02, 0x0a, 0x09, 0x56, 0x45, 0x50, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x69, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x69, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x66, + 0x75, 0x6c, 0x6c, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, + 0x65, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x65, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x2f, 0x0a, 0x14, 0x65, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x11, 0x65, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x49, 0x6e, 0x4d, 0x73, 0x12, 0x40, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x56, 0x45, 0x50, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x5c, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc3, 0x18, 0x0a, 0x16, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x20, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x69, + 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x49, 0x6e, 0x4d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x79, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x62, 0x75, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x74, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, + 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x62, 0x75, 0x73, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x69, 0x74, 0x48, + 0x00, 0x52, 0x19, 0x63, 0x6f, 0x6d, 0x62, 0x75, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x64, 0x0a, 0x14, + 0x67, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x75, 0x6e, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x12, + 0x67, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, + 0x69, 0x74, 0x12, 0x7c, 0x0a, 0x1c, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x69, 0x74, + 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x6e, + 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, + 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, + 0x69, 0x74, 0x48, 0x00, 0x52, 0x1a, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x69, 0x74, + 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x69, 0x74, + 0x12, 0x65, 0x0a, 0x13, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x70, 0x65, + 0x65, 0x64, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x42, 0x02, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x11, 0x73, 0x70, 0x65, 0x65, 0x64, 0x44, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x48, 0x0a, 0x0a, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, + 0x55, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x09, 0x73, 0x70, 0x65, 0x65, 0x64, 0x55, 0x6e, 0x69, + 0x74, 0x12, 0x51, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x6e, + 0x69, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x55, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x55, 0x6e, 0x69, 0x74, 0x12, 0x5a, 0x0a, 0x10, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x54, 0x65, + 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, + 0x0f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x55, 0x6e, 0x69, 0x74, + 0x12, 0x51, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x5f, 0x75, 0x6e, 0x69, + 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x55, + 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x55, + 0x6e, 0x69, 0x74, 0x12, 0x48, 0x0a, 0x0a, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x5f, 0x75, 0x6e, 0x69, + 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x55, 0x6e, 0x69, 0x74, + 0x48, 0x00, 0x52, 0x09, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x55, 0x0a, + 0x0f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x5f, 0x75, 0x6e, 0x69, 0x74, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, + 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x6f, 0x75, 0x72, 0x55, + 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x6f, 0x75, 0x72, + 0x55, 0x6e, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x48, + 0x01, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, + 0x0a, 0x09, 0x6e, 0x69, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x01, 0x52, 0x08, 0x6e, 0x69, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2d, 0x0a, + 0x11, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x10, 0x75, 0x6e, 0x73, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x59, 0x0a, 0x18, + 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x01, 0x52, + 0x16, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4d, 0x0a, 0x14, 0x77, 0x65, 0x65, 0x6b, 0x64, + 0x61, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x69, 0x66, 0x66, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, + 0x65, 0x6b, 0x64, 0x61, 0x79, 0x54, 0x61, 0x72, 0x69, 0x66, 0x66, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x48, 0x01, 0x52, 0x12, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x54, 0x61, 0x72, 0x69, 0x66, + 0x66, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4d, 0x0a, 0x14, 0x77, 0x65, 0x65, 0x6b, 0x65, 0x6e, + 0x64, 0x5f, 0x74, 0x61, 0x72, 0x69, 0x66, 0x66, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x65, + 0x6b, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x69, 0x66, 0x66, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, + 0x01, 0x52, 0x12, 0x77, 0x65, 0x65, 0x6b, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x69, 0x66, 0x66, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x64, 0x0a, 0x1d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6f, + 0x66, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x66, 0x43, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x01, + 0x52, 0x19, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x66, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x6a, 0x0a, 0x1f, 0x77, + 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x65, + 0x6b, 0x6c, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x48, 0x65, 0x61, 0x64, 0x55, + 0x6e, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x01, 0x52, 0x1b, 0x77, 0x65, 0x65, 0x6b, + 0x6c, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x48, 0x65, 0x61, 0x64, 0x55, 0x6e, + 0x69, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x6c, 0x0a, 0x1f, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x41, 0x6c, + 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x01, 0x52, 0x1c, 0x73, 0x70, 0x65, 0x65, 0x64, 0x41, 0x6c, + 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4a, 0x0a, 0x13, 0x65, 0x63, 0x6f, 0x5f, 0x68, 0x69, 0x73, + 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x63, 0x6f, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x01, 0x52, 0x11, + 0x65, 0x63, 0x6f, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x4d, 0x0a, 0x14, 0x77, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x01, 0x52, 0x12, 0x77, 0x65, + 0x65, 0x6b, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x50, 0x0a, 0x15, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, + 0x61, 0x6d, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, + 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x01, 0x52, 0x13, 0x63, + 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x73, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x43, 0x6f, 0x6d, 0x62, 0x75, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x69, 0x74, + 0x12, 0x2b, 0x0a, 0x27, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, + 0x43, 0x4f, 0x4d, 0x42, 0x55, 0x53, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, + 0x4d, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x10, 0x00, 0x12, 0x13, 0x0a, + 0x0f, 0x4c, 0x49, 0x54, 0x45, 0x52, 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x31, 0x30, 0x30, 0x4b, 0x4d, + 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4b, 0x4d, 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x54, + 0x45, 0x52, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x50, 0x47, 0x5f, 0x55, 0x4b, 0x10, 0x03, + 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x50, 0x47, 0x5f, 0x55, 0x53, 0x10, 0x04, 0x22, 0x99, 0x01, 0x0a, + 0x1a, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x28, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x45, 0x4c, 0x45, 0x43, 0x54, + 0x52, 0x49, 0x43, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x50, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4b, 0x57, 0x48, + 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x31, 0x30, 0x30, 0x4b, 0x4d, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, + 0x4b, 0x4d, 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x4b, 0x57, 0x48, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, + 0x4b, 0x57, 0x48, 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x31, 0x30, 0x30, 0x4d, 0x49, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x4d, 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x4b, 0x57, 0x48, 0x10, 0x04, 0x12, 0x08, + 0x0a, 0x04, 0x4d, 0x50, 0x47, 0x45, 0x10, 0x05, 0x22, 0x69, 0x0a, 0x12, 0x47, 0x61, 0x73, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x24, + 0x0a, 0x20, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x47, 0x41, + 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, + 0x49, 0x54, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x4b, 0x47, 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x31, + 0x30, 0x30, 0x4b, 0x4d, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4b, 0x4d, 0x5f, 0x50, 0x45, 0x52, + 0x5f, 0x4b, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x4b, + 0x47, 0x10, 0x03, 0x22, 0x57, 0x0a, 0x11, 0x53, 0x70, 0x65, 0x65, 0x64, 0x44, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x1f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x53, 0x50, 0x45, 0x45, 0x44, 0x5f, 0x44, 0x49, + 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, + 0x08, 0x4b, 0x4d, 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x48, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4d, + 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x48, 0x10, 0x02, 0x1a, 0x02, 0x18, 0x01, 0x22, 0x48, 0x0a, 0x09, + 0x53, 0x70, 0x65, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x53, 0x50, 0x45, 0x45, 0x44, 0x5f, 0x55, + 0x4e, 0x49, 0x54, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x4b, 0x4d, 0x5f, 0x50, 0x45, 0x52, 0x5f, + 0x48, 0x4f, 0x55, 0x52, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x5f, 0x50, 0x45, 0x52, 0x5f, + 0x48, 0x4f, 0x55, 0x52, 0x10, 0x02, 0x22, 0x48, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x44, 0x49, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x55, + 0x4e, 0x49, 0x54, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4b, 0x49, 0x4c, 0x4f, 0x4d, 0x45, 0x54, + 0x45, 0x52, 0x53, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x49, 0x4c, 0x45, 0x53, 0x10, 0x02, + 0x22, 0x50, 0x0a, 0x0f, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x55, + 0x6e, 0x69, 0x74, 0x12, 0x20, 0x0a, 0x1c, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x5f, 0x54, 0x45, 0x4d, 0x50, 0x45, 0x52, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x55, + 0x4e, 0x49, 0x54, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x45, 0x4c, 0x53, 0x49, 0x55, 0x53, + 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x41, 0x48, 0x52, 0x45, 0x4e, 0x48, 0x45, 0x49, 0x54, + 0x10, 0x02, 0x22, 0x48, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x55, 0x6e, + 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x53, 0x55, 0x52, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x10, + 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4b, 0x50, 0x41, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x41, + 0x52, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x53, 0x49, 0x10, 0x03, 0x22, 0x34, 0x0a, 0x09, + 0x52, 0x61, 0x74, 0x69, 0x6f, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x5f, 0x55, + 0x4e, 0x49, 0x54, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, + 0x10, 0x01, 0x22, 0x44, 0x0a, 0x0d, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x6f, 0x75, 0x72, 0x55, + 0x6e, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x1b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x4f, 0x55, 0x52, 0x5f, 0x55, 0x4e, + 0x49, 0x54, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x31, 0x32, 0x48, 0x10, 0x01, 0x12, 0x08, + 0x0a, 0x04, 0x54, 0x32, 0x34, 0x48, 0x10, 0x02, 0x42, 0x0e, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x71, 0x0a, 0x13, 0x43, 0x68, + 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x73, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x5a, 0x0a, 0x19, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x67, + 0x72, 0x61, 0x6d, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x52, 0x17, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x61, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xe4, 0x02, + 0x0a, 0x17, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0e, 0x63, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x70, + 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x6f, + 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x53, 0x6f, 0x63, 0x12, + 0x1f, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x36, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x73, + 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x15, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x64, + 0x63, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x65, 0x65, 0x6b, + 0x6c, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0d, 0x77, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x12, + 0x30, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x5f, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x4d, + 0x61, 0x78, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x63, 0x6f, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x45, 0x63, 0x6f, 0x43, 0x68, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x67, 0x22, 0xcd, 0x03, 0x0a, 0x12, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x54, 0x0a, 0x27, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x23, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x45, + 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x52, 0x0a, 0x27, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, + 0x6f, 0x66, 0x5f, 0x77, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x21, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x57, + 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x53, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x6d, 0x61, 0x78, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x24, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x1f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x4f, 0x66, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x6c, 0x6f, + 0x74, 0x73, 0x12, 0x44, 0x0a, 0x1f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1b, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x54, 0x69, 0x6d, 0x65, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x56, 0x52, 0x54, 0x69, 0x6d, 0x65, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x0e, 0x56, 0x56, 0x52, 0x54, 0x69, 0x6d, 0x65, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x68, + 0x6f, 0x75, 0x72, 0x12, 0x13, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x79, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x79, 0x52, 0x03, 0x64, + 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2d, 0x0a, 0x16, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x59, 0x0a, 0x11, 0x45, 0x63, 0x6f, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x44, + 0x0a, 0x12, 0x65, 0x63, 0x6f, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, + 0x62, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x45, 0x63, 0x6f, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, + 0x69, 0x6e, 0x52, 0x10, 0x65, 0x63, 0x6f, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, + 0x42, 0x69, 0x6e, 0x73, 0x22, 0x43, 0x0a, 0x0f, 0x45, 0x63, 0x6f, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x67, 0x72, 0x61, 0x6d, 0x42, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7c, 0x0a, 0x1c, 0x53, 0x70, 0x65, + 0x65, 0x64, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x5c, 0x0a, 0x1a, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x41, 0x6c, 0x65, 0x72, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x18, 0x73, + 0x70, 0x65, 0x65, 0x64, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa8, 0x01, 0x0a, 0x17, 0x53, 0x70, 0x65, 0x65, + 0x64, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x12, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0f, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x49, 0x6e, 0x53, + 0x12, 0x28, 0x0a, 0x10, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x69, 0x6e, + 0x5f, 0x6b, 0x70, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x49, 0x6e, 0x4b, 0x70, 0x68, 0x12, 0x36, 0x0a, 0x17, 0x74, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x5c, 0x0a, 0x1b, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x48, 0x65, 0x61, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x77, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x5f, 0x73, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x52, 0x0e, 0x77, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x22, 0x57, 0x0a, 0x0d, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x64, 0x61, 0x79, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x73, + 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x69, 0x64, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x14, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, 0x6e, 0x63, + 0x65, 0x4d, 0x69, 0x64, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x22, 0x60, 0x0a, 0x16, 0x54, 0x65, 0x6d, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x46, 0x0a, 0x12, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x11, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x10, + 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x7a, 0x6f, 0x6e, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x74, 0x65, 0x6d, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x3d, 0x0a, 0x12, 0x57, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x54, 0x61, 0x72, + 0x69, 0x66, 0x66, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x69, + 0x66, 0x66, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x54, 0x61, 0x72, 0x69, 0x66, 0x66, 0x52, 0x07, 0x74, 0x61, 0x72, 0x69, 0x66, 0x66, + 0x73, 0x22, 0x3d, 0x0a, 0x12, 0x57, 0x65, 0x65, 0x6b, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x69, + 0x66, 0x66, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x69, 0x66, + 0x66, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x54, 0x61, 0x72, 0x69, 0x66, 0x66, 0x52, 0x07, 0x74, 0x61, 0x72, 0x69, 0x66, 0x66, 0x73, + 0x22, 0x30, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x69, 0x66, 0x66, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, + 0x6d, 0x65, 0x22, 0x5b, 0x0a, 0x19, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x66, 0x43, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x3e, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x66, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, + 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x4f, 0x66, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x22, + 0x5d, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x66, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, + 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x69, 0x6e, + 0x5f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x49, 0x6e, 0x53, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, + 0x6f, 0x66, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x66, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x22, 0xc7, + 0x01, 0x0a, 0x0f, 0x56, 0x45, 0x50, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x56, + 0x49, 0x4e, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x07, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x45, 0x50, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, + 0x79, 0x56, 0x49, 0x4e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x4c, 0x0a, 0x0c, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x45, 0x50, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28, 0x0a, 0x0c, 0x44, 0x65, 0x62, 0x75, + 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x0d, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x76, 0x69, 0x6e, 0x12, 0x44, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x5c, 0x0a, 0x0f, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9f, 0x09, 0x0a, 0x0b, 0x50, + 0x75, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x72, + 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x76, + 0x65, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x45, 0x50, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x48, 0x00, 0x52, 0x09, 0x76, 0x65, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, + 0x0a, 0x76, 0x65, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x45, 0x50, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x56, 0x49, 0x4e, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x65, 0x70, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x58, 0x0a, 0x16, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, + 0x79, 0x56, 0x49, 0x4e, 0x48, 0x00, 0x52, 0x14, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x15, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x41, + 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, + 0x00, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x12, 0x6d, 0x0a, 0x20, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, + 0x65, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x5f, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, + 0x75, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x48, 0x00, 0x52, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, + 0x75, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x4a, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, + 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, + 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x50, + 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x0f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x69, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x50, 0x49, 0x4e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x75, + 0x73, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0f, + 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, + 0x68, 0x69, 0x63, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0e, + 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x56, + 0x0a, 0x17, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x61, 0x6c, + 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, + 0x64, 0x44, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, + 0x15, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x44, 0x65, 0x61, 0x6c, 0x65, 0x72, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x7a, 0x0a, 0x25, 0x61, 0x70, 0x70, 0x74, 0x77, 0x69, + 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x76, 0x69, 0x6e, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, + 0x70, 0x54, 0x77, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x56, 0x49, 0x4e, 0x48, 0x00, + 0x52, 0x20, 0x61, 0x70, 0x70, 0x74, 0x77, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x56, + 0x69, 0x6e, 0x12, 0x6d, 0x0a, 0x1f, 0x61, 0x70, 0x70, 0x74, 0x77, 0x69, 0x6e, 0x5f, 0x70, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x54, 0x77, 0x69, 0x6e, 0x50, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x48, 0x00, 0x52, 0x1c, 0x61, 0x70, 0x70, 0x74, 0x77, 0x69, 0x6e, 0x50, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x46, 0x0a, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x76, 0x65, + 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x65, 0x68, + 0x69, 0x63, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x42, 0x05, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x22, 0xfb, 0x01, 0x0a, + 0x0d, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1f, + 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d, 0x0a, + 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x07, + 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x4f, 0x0a, 0x0c, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9f, 0x01, 0x0a, 0x0c, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x44, 0x0a, 0x15, + 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x56, 0x45, 0x50, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x3a, 0x02, + 0x18, 0x01, 0x22, 0x45, 0x0a, 0x1a, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, + 0x65, 0x56, 0x45, 0x50, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x56, 0x49, 0x4e, + 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x41, 0x0a, 0x15, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x50, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x69, + 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x22, 0x44, 0x0a, 0x19, + 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, + 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x22, 0x4b, 0x0a, 0x20, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, + 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x44, 0x65, 0x61, 0x6c, 0x65, 0x72, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, + 0x95, 0x01, 0x0a, 0x0e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x63, + 0x69, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x69, + 0x61, 0x6d, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x76, 0x69, 0x6e, 0x12, 0x2f, 0x0a, 0x14, 0x65, 0x6d, 0x69, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x65, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x49, 0x6e, 0x4d, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x15, 0x50, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x72, 0x65, 0x64, 0x44, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x69, + 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x69, 0x61, + 0x6d, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x76, 0x69, 0x6e, 0x12, 0x2f, 0x0a, 0x14, 0x65, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x11, 0x65, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x49, 0x6e, 0x4d, 0x73, 0x2a, 0x79, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x45, 0x46, 0x41, 0x55, + 0x4c, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x41, + 0x4d, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x54, 0x5f, 0x43, + 0x48, 0x41, 0x52, 0x47, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x10, 0x01, 0x12, + 0x17, 0x0a, 0x13, 0x48, 0x4f, 0x4d, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x5f, 0x50, + 0x52, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x57, 0x4f, 0x52, 0x4b, + 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x10, + 0x03, 0x2a, 0x66, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x56, 0x41, + 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x4e, + 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x44, 0x10, 0x01, 0x12, 0x11, 0x0a, + 0x0d, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x03, + 0x12, 0x17, 0x0a, 0x13, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x41, 0x56, + 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x04, 0x42, 0x1c, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, + 0x2e, 0x64, 0x61, 0x69, 0x6d, 0x6c, 0x65, 0x72, 0x2e, 0x6d, 0x62, 0x63, 0x61, 0x72, 0x6b, 0x69, + 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_vehicle_events_proto_rawDescOnce sync.Once + file_vehicle_events_proto_rawDescData = file_vehicle_events_proto_rawDesc +) + +func file_vehicle_events_proto_rawDescGZIP() []byte { + file_vehicle_events_proto_rawDescOnce.Do(func() { + file_vehicle_events_proto_rawDescData = protoimpl.X.CompressGZIP(file_vehicle_events_proto_rawDescData) + }) + return file_vehicle_events_proto_rawDescData +} + +var file_vehicle_events_proto_enumTypes = make([]protoimpl.EnumInfo, 12) +var file_vehicle_events_proto_msgTypes = make([]protoimpl.MessageInfo, 36) +var file_vehicle_events_proto_goTypes = []interface{}{ + (ChargeProgram)(0), // 0: proto.ChargeProgram + (AttributeStatus)(0), // 1: proto.AttributeStatus + (VehicleAttributeStatus_CombustionConsumptionUnit)(0), // 2: proto.VehicleAttributeStatus.CombustionConsumptionUnit + (VehicleAttributeStatus_ElectricityConsumptionUnit)(0), // 3: proto.VehicleAttributeStatus.ElectricityConsumptionUnit + (VehicleAttributeStatus_GasConsumptionUnit)(0), // 4: proto.VehicleAttributeStatus.GasConsumptionUnit + (VehicleAttributeStatus_SpeedDistanceUnit)(0), // 5: proto.VehicleAttributeStatus.SpeedDistanceUnit + (VehicleAttributeStatus_SpeedUnit)(0), // 6: proto.VehicleAttributeStatus.SpeedUnit + (VehicleAttributeStatus_DistanceUnit)(0), // 7: proto.VehicleAttributeStatus.DistanceUnit + (VehicleAttributeStatus_TemperatureUnit)(0), // 8: proto.VehicleAttributeStatus.TemperatureUnit + (VehicleAttributeStatus_PressureUnit)(0), // 9: proto.VehicleAttributeStatus.PressureUnit + (VehicleAttributeStatus_RatioUnit)(0), // 10: proto.VehicleAttributeStatus.RatioUnit + (VehicleAttributeStatus_ClockHourUnit)(0), // 11: proto.VehicleAttributeStatus.ClockHourUnit + (*VEPUpdate)(nil), // 12: proto.VEPUpdate + (*VehicleAttributeStatus)(nil), // 13: proto.VehicleAttributeStatus + (*ChargeProgramsValue)(nil), // 14: proto.ChargeProgramsValue + (*ChargeProgramParameters)(nil), // 15: proto.ChargeProgramParameters + (*WeeklyProfileValue)(nil), // 16: proto.WeeklyProfileValue + (*VVRTimeProfile)(nil), // 17: proto.VVRTimeProfile + (*EcoHistogramValue)(nil), // 18: proto.EcoHistogramValue + (*EcoHistogramBin)(nil), // 19: proto.EcoHistogramBin + (*SpeedAlertConfigurationValue)(nil), // 20: proto.SpeedAlertConfigurationValue + (*SpeedAlertConfiguration)(nil), // 21: proto.SpeedAlertConfiguration + (*WeeklySettingsHeadUnitValue)(nil), // 22: proto.WeeklySettingsHeadUnitValue + (*WeeklySetting)(nil), // 23: proto.WeeklySetting + (*TemperaturePointsValue)(nil), // 24: proto.TemperaturePointsValue + (*TemperaturePoint)(nil), // 25: proto.TemperaturePoint + (*WeekdayTariffValue)(nil), // 26: proto.WeekdayTariffValue + (*WeekendTariffValue)(nil), // 27: proto.WeekendTariffValue + (*Tariff)(nil), // 28: proto.Tariff + (*StateOfChargeProfileValue)(nil), // 29: proto.StateOfChargeProfileValue + (*StateOfCharge)(nil), // 30: proto.StateOfCharge + (*VEPUpdatesByVIN)(nil), // 31: proto.VEPUpdatesByVIN + (*DebugMessage)(nil), // 32: proto.DebugMessage + (*VehicleStatus)(nil), // 33: proto.VehicleStatus + (*PushMessage)(nil), // 34: proto.PushMessage + (*TrackingEvent)(nil), // 35: proto.TrackingEvent + (*PayloadValue)(nil), // 36: proto.PayloadValue + (*AcknowledgeVEPRequest)(nil), // 37: proto.AcknowledgeVEPRequest + (*AcknowledgeVEPUpdatesByVIN)(nil), // 38: proto.AcknowledgeVEPUpdatesByVIN + (*ConfigurePingInterval)(nil), // 39: proto.ConfigurePingInterval + (*AcknowledgeVehicleUpdated)(nil), // 40: proto.AcknowledgeVehicleUpdated + (*AcknowledgePreferredDealerChange)(nil), // 41: proto.AcknowledgePreferredDealerChange + (*VehicleUpdated)(nil), // 42: proto.VehicleUpdated + (*PreferredDealerChange)(nil), // 43: proto.PreferredDealerChange + nil, // 44: proto.VEPUpdate.AttributesEntry + nil, // 45: proto.VEPUpdatesByVIN.UpdatesEntry + nil, // 46: proto.VehicleStatus.AttributesEntry + nil, // 47: proto.TrackingEvent.PayloadEntry + (TimeProfileDay)(0), // 48: proto.TimeProfileDay + (*ServiceStatusUpdatesByVIN)(nil), // 49: proto.ServiceStatusUpdatesByVIN + (*ServiceStatusUpdate)(nil), // 50: proto.ServiceStatusUpdate + (*UserDataUpdate)(nil), // 51: proto.UserDataUpdate + (*UserVehicleAuthChangedUpdate)(nil), // 52: proto.UserVehicleAuthChangedUpdate + (*UserPictureUpdate)(nil), // 53: proto.UserPictureUpdate + (*UserPINUpdate)(nil), // 54: proto.UserPINUpdate + (*AppTwinCommandStatusUpdatesByVIN)(nil), // 55: proto.AppTwinCommandStatusUpdatesByVIN + (*AppTwinPendingCommandsRequest)(nil), // 56: proto.AppTwinPendingCommandsRequest + (*protos.AssignedVehicles)(nil), // 57: proto.AssignedVehicles +} +var file_vehicle_events_proto_depIdxs = []int32{ + 44, // 0: proto.VEPUpdate.attributes:type_name -> proto.VEPUpdate.AttributesEntry + 2, // 1: proto.VehicleAttributeStatus.combustion_consumption_unit:type_name -> proto.VehicleAttributeStatus.CombustionConsumptionUnit + 4, // 2: proto.VehicleAttributeStatus.gas_consumption_unit:type_name -> proto.VehicleAttributeStatus.GasConsumptionUnit + 3, // 3: proto.VehicleAttributeStatus.electricity_consumption_unit:type_name -> proto.VehicleAttributeStatus.ElectricityConsumptionUnit + 5, // 4: proto.VehicleAttributeStatus.speed_distance_unit:type_name -> proto.VehicleAttributeStatus.SpeedDistanceUnit + 6, // 5: proto.VehicleAttributeStatus.speed_unit:type_name -> proto.VehicleAttributeStatus.SpeedUnit + 7, // 6: proto.VehicleAttributeStatus.distance_unit:type_name -> proto.VehicleAttributeStatus.DistanceUnit + 8, // 7: proto.VehicleAttributeStatus.temperature_unit:type_name -> proto.VehicleAttributeStatus.TemperatureUnit + 9, // 8: proto.VehicleAttributeStatus.pressure_unit:type_name -> proto.VehicleAttributeStatus.PressureUnit + 10, // 9: proto.VehicleAttributeStatus.ratio_unit:type_name -> proto.VehicleAttributeStatus.RatioUnit + 11, // 10: proto.VehicleAttributeStatus.clock_hour_unit:type_name -> proto.VehicleAttributeStatus.ClockHourUnit + 24, // 11: proto.VehicleAttributeStatus.temperature_points_value:type_name -> proto.TemperaturePointsValue + 26, // 12: proto.VehicleAttributeStatus.weekday_tariff_value:type_name -> proto.WeekdayTariffValue + 27, // 13: proto.VehicleAttributeStatus.weekend_tariff_value:type_name -> proto.WeekendTariffValue + 29, // 14: proto.VehicleAttributeStatus.state_of_charge_profile_value:type_name -> proto.StateOfChargeProfileValue + 22, // 15: proto.VehicleAttributeStatus.weekly_settings_head_unit_value:type_name -> proto.WeeklySettingsHeadUnitValue + 20, // 16: proto.VehicleAttributeStatus.speed_alert_configuration_value:type_name -> proto.SpeedAlertConfigurationValue + 18, // 17: proto.VehicleAttributeStatus.eco_histogram_value:type_name -> proto.EcoHistogramValue + 16, // 18: proto.VehicleAttributeStatus.weekly_profile_value:type_name -> proto.WeeklyProfileValue + 14, // 19: proto.VehicleAttributeStatus.charge_programs_value:type_name -> proto.ChargeProgramsValue + 15, // 20: proto.ChargeProgramsValue.charge_program_parameters:type_name -> proto.ChargeProgramParameters + 0, // 21: proto.ChargeProgramParameters.charge_program:type_name -> proto.ChargeProgram + 17, // 22: proto.WeeklyProfileValue.time_profiles:type_name -> proto.VVRTimeProfile + 48, // 23: proto.VVRTimeProfile.days:type_name -> proto.TimeProfileDay + 19, // 24: proto.EcoHistogramValue.eco_histogram_bins:type_name -> proto.EcoHistogramBin + 21, // 25: proto.SpeedAlertConfigurationValue.speed_alert_configurations:type_name -> proto.SpeedAlertConfiguration + 23, // 26: proto.WeeklySettingsHeadUnitValue.weekly_settings:type_name -> proto.WeeklySetting + 25, // 27: proto.TemperaturePointsValue.temperature_points:type_name -> proto.TemperaturePoint + 28, // 28: proto.WeekdayTariffValue.tariffs:type_name -> proto.Tariff + 28, // 29: proto.WeekendTariffValue.tariffs:type_name -> proto.Tariff + 30, // 30: proto.StateOfChargeProfileValue.states_of_charge:type_name -> proto.StateOfCharge + 45, // 31: proto.VEPUpdatesByVIN.updates:type_name -> proto.VEPUpdatesByVIN.UpdatesEntry + 46, // 32: proto.VehicleStatus.attributes:type_name -> proto.VehicleStatus.AttributesEntry + 12, // 33: proto.PushMessage.vepUpdate:type_name -> proto.VEPUpdate + 31, // 34: proto.PushMessage.vepUpdates:type_name -> proto.VEPUpdatesByVIN + 32, // 35: proto.PushMessage.debugMessage:type_name -> proto.DebugMessage + 49, // 36: proto.PushMessage.service_status_updates:type_name -> proto.ServiceStatusUpdatesByVIN + 50, // 37: proto.PushMessage.service_status_update:type_name -> proto.ServiceStatusUpdate + 51, // 38: proto.PushMessage.user_data_update:type_name -> proto.UserDataUpdate + 52, // 39: proto.PushMessage.user_vehicle_auth_changed_update:type_name -> proto.UserVehicleAuthChangedUpdate + 53, // 40: proto.PushMessage.user_picture_update:type_name -> proto.UserPictureUpdate + 54, // 41: proto.PushMessage.user_pin_update:type_name -> proto.UserPINUpdate + 42, // 42: proto.PushMessage.vehicle_updated:type_name -> proto.VehicleUpdated + 43, // 43: proto.PushMessage.preferred_dealer_change:type_name -> proto.PreferredDealerChange + 55, // 44: proto.PushMessage.apptwin_command_status_updates_by_vin:type_name -> proto.AppTwinCommandStatusUpdatesByVIN + 56, // 45: proto.PushMessage.apptwin_pending_command_request:type_name -> proto.AppTwinPendingCommandsRequest + 57, // 46: proto.PushMessage.assigned_vehicles:type_name -> proto.AssignedVehicles + 47, // 47: proto.TrackingEvent.payload:type_name -> proto.TrackingEvent.PayloadEntry + 13, // 48: proto.VEPUpdate.AttributesEntry.value:type_name -> proto.VehicleAttributeStatus + 12, // 49: proto.VEPUpdatesByVIN.UpdatesEntry.value:type_name -> proto.VEPUpdate + 13, // 50: proto.VehicleStatus.AttributesEntry.value:type_name -> proto.VehicleAttributeStatus + 36, // 51: proto.TrackingEvent.PayloadEntry.value:type_name -> proto.PayloadValue + 52, // [52:52] is the sub-list for method output_type + 52, // [52:52] is the sub-list for method input_type + 52, // [52:52] is the sub-list for extension type_name + 52, // [52:52] is the sub-list for extension extendee + 0, // [0:52] is the sub-list for field type_name +} + +func init() { file_vehicle_events_proto_init() } +func file_vehicle_events_proto_init() { + if File_vehicle_events_proto != nil { + return + } + file_service_activation_proto_init() + file_user_events_proto_init() + file_vehicle_commands_proto_init() + file_vehicleapi_proto_init() + if !protoimpl.UnsafeEnabled { + file_vehicle_events_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VEPUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VehicleAttributeStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChargeProgramsValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChargeProgramParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WeeklyProfileValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VVRTimeProfile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EcoHistogramValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EcoHistogramBin); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpeedAlertConfigurationValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpeedAlertConfiguration); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WeeklySettingsHeadUnitValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WeeklySetting); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TemperaturePointsValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TemperaturePoint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WeekdayTariffValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WeekendTariffValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Tariff); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateOfChargeProfileValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateOfCharge); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VEPUpdatesByVIN); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DebugMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VehicleStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PushMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrackingEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PayloadValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcknowledgeVEPRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcknowledgeVEPUpdatesByVIN); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigurePingInterval); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcknowledgeVehicleUpdated); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcknowledgePreferredDealerChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VehicleUpdated); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicle_events_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PreferredDealerChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_vehicle_events_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*VehicleAttributeStatus_CombustionConsumptionUnit_)(nil), + (*VehicleAttributeStatus_GasConsumptionUnit_)(nil), + (*VehicleAttributeStatus_ElectricityConsumptionUnit_)(nil), + (*VehicleAttributeStatus_SpeedDistanceUnit_)(nil), + (*VehicleAttributeStatus_SpeedUnit_)(nil), + (*VehicleAttributeStatus_DistanceUnit_)(nil), + (*VehicleAttributeStatus_TemperatureUnit_)(nil), + (*VehicleAttributeStatus_PressureUnit_)(nil), + (*VehicleAttributeStatus_RatioUnit_)(nil), + (*VehicleAttributeStatus_ClockHourUnit_)(nil), + (*VehicleAttributeStatus_IntValue)(nil), + (*VehicleAttributeStatus_BoolValue)(nil), + (*VehicleAttributeStatus_StringValue)(nil), + (*VehicleAttributeStatus_DoubleValue)(nil), + (*VehicleAttributeStatus_NilValue)(nil), + (*VehicleAttributeStatus_UnsupportedValue)(nil), + (*VehicleAttributeStatus_TemperaturePointsValue)(nil), + (*VehicleAttributeStatus_WeekdayTariffValue)(nil), + (*VehicleAttributeStatus_WeekendTariffValue)(nil), + (*VehicleAttributeStatus_StateOfChargeProfileValue)(nil), + (*VehicleAttributeStatus_WeeklySettingsHeadUnitValue)(nil), + (*VehicleAttributeStatus_SpeedAlertConfigurationValue)(nil), + (*VehicleAttributeStatus_EcoHistogramValue)(nil), + (*VehicleAttributeStatus_WeeklyProfileValue)(nil), + (*VehicleAttributeStatus_ChargeProgramsValue)(nil), + } + file_vehicle_events_proto_msgTypes[22].OneofWrappers = []interface{}{ + (*PushMessage_VepUpdate)(nil), + (*PushMessage_VepUpdates)(nil), + (*PushMessage_DebugMessage)(nil), + (*PushMessage_ServiceStatusUpdates)(nil), + (*PushMessage_ServiceStatusUpdate)(nil), + (*PushMessage_UserDataUpdate)(nil), + (*PushMessage_UserVehicleAuthChangedUpdate)(nil), + (*PushMessage_UserPictureUpdate)(nil), + (*PushMessage_UserPinUpdate)(nil), + (*PushMessage_VehicleUpdated)(nil), + (*PushMessage_PreferredDealerChange)(nil), + (*PushMessage_ApptwinCommandStatusUpdatesByVin)(nil), + (*PushMessage_ApptwinPendingCommandRequest)(nil), + (*PushMessage_AssignedVehicles)(nil), + } + file_vehicle_events_proto_msgTypes[24].OneofWrappers = []interface{}{ + (*PayloadValue_StringValue)(nil), + (*PayloadValue_IntValue)(nil), + (*PayloadValue_BoolValue)(nil), + (*PayloadValue_DoubleValue)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_vehicle_events_proto_rawDesc, + NumEnums: 12, + NumMessages: 36, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_vehicle_events_proto_goTypes, + DependencyIndexes: file_vehicle_events_proto_depIdxs, + EnumInfos: file_vehicle_events_proto_enumTypes, + MessageInfos: file_vehicle_events_proto_msgTypes, + }.Build() + File_vehicle_events_proto = out.File + file_vehicle_events_proto_rawDesc = nil + file_vehicle_events_proto_goTypes = nil + file_vehicle_events_proto_depIdxs = nil +} diff --git a/vehicle/mercedes/pb/vehicleapi.pb.go b/vehicle/mercedes/pb/vehicleapi.pb.go new file mode 100644 index 000000000..91af0ca85 --- /dev/null +++ b/vehicle/mercedes/pb/vehicleapi.pb.go @@ -0,0 +1,1322 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v3.21.12 +// source: vehicleapi.proto + +package protos + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + structpb "google.golang.org/protobuf/types/known/structpb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Sending direction: App -> BFF -> AppTwin +type AcknowledgeAppTwinCommandStatusUpdatesByVIN struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` +} + +func (x *AcknowledgeAppTwinCommandStatusUpdatesByVIN) Reset() { + *x = AcknowledgeAppTwinCommandStatusUpdatesByVIN{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicleapi_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcknowledgeAppTwinCommandStatusUpdatesByVIN) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeAppTwinCommandStatusUpdatesByVIN) ProtoMessage() {} + +func (x *AcknowledgeAppTwinCommandStatusUpdatesByVIN) ProtoReflect() protoreflect.Message { + mi := &file_vehicleapi_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcknowledgeAppTwinCommandStatusUpdatesByVIN.ProtoReflect.Descriptor instead. +func (*AcknowledgeAppTwinCommandStatusUpdatesByVIN) Descriptor() ([]byte, []int) { + return file_vehicleapi_proto_rawDescGZIP(), []int{0} +} + +func (x *AcknowledgeAppTwinCommandStatusUpdatesByVIN) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +// Sending direction: App <- BFF <- AppTwin +type AppTwinCommandStatusUpdatesByVIN struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SequenceNumber int32 `protobuf:"varint,1,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + // VIN -> Update + UpdatesByVin map[string]*AppTwinCommandStatusUpdatesByPID `protobuf:"bytes,2,rep,name=updates_by_vin,json=updatesByVin,proto3" json:"updates_by_vin,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *AppTwinCommandStatusUpdatesByVIN) Reset() { + *x = AppTwinCommandStatusUpdatesByVIN{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicleapi_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppTwinCommandStatusUpdatesByVIN) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppTwinCommandStatusUpdatesByVIN) ProtoMessage() {} + +func (x *AppTwinCommandStatusUpdatesByVIN) ProtoReflect() protoreflect.Message { + mi := &file_vehicleapi_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AppTwinCommandStatusUpdatesByVIN.ProtoReflect.Descriptor instead. +func (*AppTwinCommandStatusUpdatesByVIN) Descriptor() ([]byte, []int) { + return file_vehicleapi_proto_rawDescGZIP(), []int{1} +} + +func (x *AppTwinCommandStatusUpdatesByVIN) GetSequenceNumber() int32 { + if x != nil { + return x.SequenceNumber + } + return 0 +} + +func (x *AppTwinCommandStatusUpdatesByVIN) GetUpdatesByVin() map[string]*AppTwinCommandStatusUpdatesByPID { + if x != nil { + return x.UpdatesByVin + } + return nil +} + +// Sending direction: App <- BFF <- AppTwin as part of an AppTwinCommandStatusUpdatesByVIN +type AppTwinCommandStatusUpdatesByPID struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Vin string `protobuf:"bytes,1,opt,name=vin,proto3" json:"vin,omitempty"` + // Process ID -> Status + UpdatesByPid map[int64]*AppTwinCommandStatus `protobuf:"bytes,2,rep,name=updates_by_pid,json=updatesByPid,proto3" json:"updates_by_pid,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *AppTwinCommandStatusUpdatesByPID) Reset() { + *x = AppTwinCommandStatusUpdatesByPID{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicleapi_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppTwinCommandStatusUpdatesByPID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppTwinCommandStatusUpdatesByPID) ProtoMessage() {} + +func (x *AppTwinCommandStatusUpdatesByPID) ProtoReflect() protoreflect.Message { + mi := &file_vehicleapi_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AppTwinCommandStatusUpdatesByPID.ProtoReflect.Descriptor instead. +func (*AppTwinCommandStatusUpdatesByPID) Descriptor() ([]byte, []int) { + return file_vehicleapi_proto_rawDescGZIP(), []int{2} +} + +func (x *AppTwinCommandStatusUpdatesByPID) GetVin() string { + if x != nil { + return x.Vin + } + return "" +} + +func (x *AppTwinCommandStatusUpdatesByPID) GetUpdatesByPid() map[int64]*AppTwinCommandStatus { + if x != nil { + return x.UpdatesByPid + } + return nil +} + +// Sending direction: App <- BFF <- AppTwin as part of an AppTwinCommandStatusUpdatesByPID +type AppTwinCommandStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The remote vehicleAPI process id of the command. + ProcessId int64 `protobuf:"varint,1,opt,name=process_id,json=processId,proto3" json:"process_id,omitempty"` + // The id of the command with which the app created it. Only guaranteed to be + // set on the first transmission to the app. + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // The initial CommandStatus from the response of the vehicleAPI has a timestamp of + // -1 + TimestampInMs int64 `protobuf:"varint,3,opt,name=timestamp_in_ms,json=timestampInMs,proto3" json:"timestamp_in_ms,omitempty"` + // Potential ACP error if the command request could not be fulfilled + Errors []*VehicleAPIError `protobuf:"bytes,4,rep,name=errors,proto3" json:"errors,omitempty"` + // Potential timestamp until user cannot send login requests. Data in seconds + // since Unix epoch + // + // Deprecated: Marked as deprecated in vehicleapi.proto. + BlockingTimeSeconds int64 `protobuf:"varint,5,opt,name=blocking_time_seconds,json=blockingTimeSeconds,proto3" json:"blocking_time_seconds,omitempty"` + // Potential amount of failed pin attempts. + // + // Deprecated: Marked as deprecated in vehicleapi.proto. + PinAttempts int32 `protobuf:"varint,6,opt,name=pin_attempts,json=pinAttempts,proto3" json:"pin_attempts,omitempty"` + // The type of command the AppTwinCommandStatus belongs to + Type ACP_CommandType `protobuf:"varint,7,opt,name=type,proto3,enum=proto.ACP_CommandType" json:"type,omitempty"` + // The command state + State VehicleAPI_CommandState `protobuf:"varint,8,opt,name=state,proto3,enum=proto.VehicleAPI_CommandState" json:"state,omitempty"` +} + +func (x *AppTwinCommandStatus) Reset() { + *x = AppTwinCommandStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicleapi_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppTwinCommandStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppTwinCommandStatus) ProtoMessage() {} + +func (x *AppTwinCommandStatus) ProtoReflect() protoreflect.Message { + mi := &file_vehicleapi_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AppTwinCommandStatus.ProtoReflect.Descriptor instead. +func (*AppTwinCommandStatus) Descriptor() ([]byte, []int) { + return file_vehicleapi_proto_rawDescGZIP(), []int{3} +} + +func (x *AppTwinCommandStatus) GetProcessId() int64 { + if x != nil { + return x.ProcessId + } + return 0 +} + +func (x *AppTwinCommandStatus) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *AppTwinCommandStatus) GetTimestampInMs() int64 { + if x != nil { + return x.TimestampInMs + } + return 0 +} + +func (x *AppTwinCommandStatus) GetErrors() []*VehicleAPIError { + if x != nil { + return x.Errors + } + return nil +} + +// Deprecated: Marked as deprecated in vehicleapi.proto. +func (x *AppTwinCommandStatus) GetBlockingTimeSeconds() int64 { + if x != nil { + return x.BlockingTimeSeconds + } + return 0 +} + +// Deprecated: Marked as deprecated in vehicleapi.proto. +func (x *AppTwinCommandStatus) GetPinAttempts() int32 { + if x != nil { + return x.PinAttempts + } + return 0 +} + +func (x *AppTwinCommandStatus) GetType() ACP_CommandType { + if x != nil { + return x.Type + } + return ACP_UNKNOWNCOMMANDTYPE +} + +func (x *AppTwinCommandStatus) GetState() VehicleAPI_CommandState { + if x != nil { + return x.State + } + return VehicleAPI_UNKNOWN_COMMAND_STATE +} + +// VehicleAPICommandPostResult is a message type that can be unmarshaled from a POST request against the vehicle API +// for issuing commands. +type VehicleAPICommandPostResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The remote VVA process id of the command. + ProcessId int64 `protobuf:"varint,1,opt,name=process_id,json=processid,proto3" json:"process_id,omitempty"` + // Potential ACP error if the command request could not be fulfilled + Errors []*VehicleAPIError `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"` + // The command state + State VehicleAPI_CommandState `protobuf:"varint,3,opt,name=state,proto3,enum=proto.VehicleAPI_CommandState" json:"state,omitempty"` +} + +func (x *VehicleAPICommandPostResult) Reset() { + *x = VehicleAPICommandPostResult{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicleapi_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VehicleAPICommandPostResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VehicleAPICommandPostResult) ProtoMessage() {} + +func (x *VehicleAPICommandPostResult) ProtoReflect() protoreflect.Message { + mi := &file_vehicleapi_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VehicleAPICommandPostResult.ProtoReflect.Descriptor instead. +func (*VehicleAPICommandPostResult) Descriptor() ([]byte, []int) { + return file_vehicleapi_proto_rawDescGZIP(), []int{4} +} + +func (x *VehicleAPICommandPostResult) GetProcessId() int64 { + if x != nil { + return x.ProcessId + } + return 0 +} + +func (x *VehicleAPICommandPostResult) GetErrors() []*VehicleAPIError { + if x != nil { + return x.Errors + } + return nil +} + +func (x *VehicleAPICommandPostResult) GetState() VehicleAPI_CommandState { + if x != nil { + return x.State + } + return VehicleAPI_UNKNOWN_COMMAND_STATE +} + +type VehicleAPICommandGetResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of processes + Process []*VehicleAPICommandProcessStatus `protobuf:"bytes,1,rep,name=process,proto3" json:"process,omitempty"` + // Number of enqueued commands in related command queue + QueueCount int32 `protobuf:"varint,2,opt,name=queue_count,json=queuecount,proto3" json:"queue_count,omitempty"` + // Name of related command queue type + QueueType VehicleAPI_QueueType `protobuf:"varint,3,opt,name=queue_type,json=queuetype,proto3,enum=proto.VehicleAPI_QueueType" json:"queue_type,omitempty"` +} + +func (x *VehicleAPICommandGetResult) Reset() { + *x = VehicleAPICommandGetResult{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicleapi_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VehicleAPICommandGetResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VehicleAPICommandGetResult) ProtoMessage() {} + +func (x *VehicleAPICommandGetResult) ProtoReflect() protoreflect.Message { + mi := &file_vehicleapi_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VehicleAPICommandGetResult.ProtoReflect.Descriptor instead. +func (*VehicleAPICommandGetResult) Descriptor() ([]byte, []int) { + return file_vehicleapi_proto_rawDescGZIP(), []int{5} +} + +func (x *VehicleAPICommandGetResult) GetProcess() []*VehicleAPICommandProcessStatus { + if x != nil { + return x.Process + } + return nil +} + +func (x *VehicleAPICommandGetResult) GetQueueCount() int32 { + if x != nil { + return x.QueueCount + } + return 0 +} + +func (x *VehicleAPICommandGetResult) GetQueueType() VehicleAPI_QueueType { + if x != nil { + return x.QueueType + } + return VehicleAPI_UNKNOWNCOMMANDQUEUETYPE +} + +type VehicleAPIDataGetResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data map[string]*VehicleAPIAttributeStatus `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *VehicleAPIDataGetResult) Reset() { + *x = VehicleAPIDataGetResult{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicleapi_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VehicleAPIDataGetResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VehicleAPIDataGetResult) ProtoMessage() {} + +func (x *VehicleAPIDataGetResult) ProtoReflect() protoreflect.Message { + mi := &file_vehicleapi_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VehicleAPIDataGetResult.ProtoReflect.Descriptor instead. +func (*VehicleAPIDataGetResult) Descriptor() ([]byte, []int) { + return file_vehicleapi_proto_rawDescGZIP(), []int{6} +} + +func (x *VehicleAPIDataGetResult) GetData() map[string]*VehicleAPIAttributeStatus { + if x != nil { + return x.Data + } + return nil +} + +type VehicleAPIAttributeStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Value of the attribute (can be anything) + Value *structpb.Value `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` + // UTC timestamp in milliseconds + TimestampInMs int64 `protobuf:"varint,2,opt,name=timestamp_in_ms,json=ts,proto3" json:"timestamp_in_ms,omitempty"` + // Status of the attribute + Status VehicleAPI_AttributeStatus `protobuf:"varint,1,opt,name=Status,json=status,proto3,enum=proto.VehicleAPI_AttributeStatus" json:"Status,omitempty"` +} + +func (x *VehicleAPIAttributeStatus) Reset() { + *x = VehicleAPIAttributeStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicleapi_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VehicleAPIAttributeStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VehicleAPIAttributeStatus) ProtoMessage() {} + +func (x *VehicleAPIAttributeStatus) ProtoReflect() protoreflect.Message { + mi := &file_vehicleapi_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VehicleAPIAttributeStatus.ProtoReflect.Descriptor instead. +func (*VehicleAPIAttributeStatus) Descriptor() ([]byte, []int) { + return file_vehicleapi_proto_rawDescGZIP(), []int{7} +} + +func (x *VehicleAPIAttributeStatus) GetValue() *structpb.Value { + if x != nil { + return x.Value + } + return nil +} + +func (x *VehicleAPIAttributeStatus) GetTimestampInMs() int64 { + if x != nil { + return x.TimestampInMs + } + return 0 +} + +func (x *VehicleAPIAttributeStatus) GetStatus() VehicleAPI_AttributeStatus { + if x != nil { + return x.Status + } + return VehicleAPI_VALUE_SET +} + +type VehicleAPICommandProcessStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Errors []*VehicleAPIError `protobuf:"bytes,1,rep,name=errors,proto3" json:"errors,omitempty"` + // GUID (RFC 4122) + InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceid,proto3" json:"instance_id,omitempty"` + // Name of the command + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // Process ID + ProcessId int64 `protobuf:"varint,4,opt,name=process_id,json=processid,proto3" json:"process_id,omitempty"` + // Response parameters as defined by the command + ResponseParameters *structpb.Value `protobuf:"bytes,6,opt,name=response_parameters,json=responseparameters,proto3" json:"response_parameters,omitempty"` + // Current processing state + State VehicleAPI_CommandState `protobuf:"varint,7,opt,name=state,proto3,enum=proto.VehicleAPI_CommandState" json:"state,omitempty"` + // UTC timestamp in seconds (ISO 9945) + TimestampInS int64 `protobuf:"varint,8,opt,name=timestamp_in_s,json=timestamp,proto3" json:"timestamp_in_s,omitempty"` + // Tracking ID. SHOULD be a GUID (RFC 4122) + TrackingId string `protobuf:"bytes,9,opt,name=tracking_id,json=trackingid,proto3" json:"tracking_id,omitempty"` +} + +func (x *VehicleAPICommandProcessStatus) Reset() { + *x = VehicleAPICommandProcessStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicleapi_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VehicleAPICommandProcessStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VehicleAPICommandProcessStatus) ProtoMessage() {} + +func (x *VehicleAPICommandProcessStatus) ProtoReflect() protoreflect.Message { + mi := &file_vehicleapi_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VehicleAPICommandProcessStatus.ProtoReflect.Descriptor instead. +func (*VehicleAPICommandProcessStatus) Descriptor() ([]byte, []int) { + return file_vehicleapi_proto_rawDescGZIP(), []int{8} +} + +func (x *VehicleAPICommandProcessStatus) GetErrors() []*VehicleAPIError { + if x != nil { + return x.Errors + } + return nil +} + +func (x *VehicleAPICommandProcessStatus) GetInstanceId() string { + if x != nil { + return x.InstanceId + } + return "" +} + +func (x *VehicleAPICommandProcessStatus) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *VehicleAPICommandProcessStatus) GetProcessId() int64 { + if x != nil { + return x.ProcessId + } + return 0 +} + +func (x *VehicleAPICommandProcessStatus) GetResponseParameters() *structpb.Value { + if x != nil { + return x.ResponseParameters + } + return nil +} + +func (x *VehicleAPICommandProcessStatus) GetState() VehicleAPI_CommandState { + if x != nil { + return x.State + } + return VehicleAPI_UNKNOWN_COMMAND_STATE +} + +func (x *VehicleAPICommandProcessStatus) GetTimestampInS() int64 { + if x != nil { + return x.TimestampInS + } + return 0 +} + +func (x *VehicleAPICommandProcessStatus) GetTrackingId() string { + if x != nil { + return x.TrackingId + } + return "" +} + +type VehicleAPIError struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code string `protobuf:"bytes,1,opt,name=code,json=error-code,proto3" json:"code,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,json=error-message,proto3" json:"message,omitempty"` + Attributes map[string]*structpb.Value `protobuf:"bytes,3,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + SubErrors []*VehicleAPIError `protobuf:"bytes,4,rep,name=sub_errors,json=sub-errors,proto3" json:"sub_errors,omitempty"` +} + +func (x *VehicleAPIError) Reset() { + *x = VehicleAPIError{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicleapi_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VehicleAPIError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VehicleAPIError) ProtoMessage() {} + +func (x *VehicleAPIError) ProtoReflect() protoreflect.Message { + mi := &file_vehicleapi_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VehicleAPIError.ProtoReflect.Descriptor instead. +func (*VehicleAPIError) Descriptor() ([]byte, []int) { + return file_vehicleapi_proto_rawDescGZIP(), []int{9} +} + +func (x *VehicleAPIError) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *VehicleAPIError) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *VehicleAPIError) GetAttributes() map[string]*structpb.Value { + if x != nil { + return x.Attributes + } + return nil +} + +func (x *VehicleAPIError) GetSubErrors() []*VehicleAPIError { + if x != nil { + return x.SubErrors + } + return nil +} + +// AppTwinPendingCommandsRequest is sent from the AppTwin to the app to ask for commands that the app has not yet +// received a finished state for. This request MUST eventually be answered with AppTwinPendingCommandsResponse. +type AppTwinPendingCommandsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AppTwinPendingCommandsRequest) Reset() { + *x = AppTwinPendingCommandsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicleapi_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppTwinPendingCommandsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppTwinPendingCommandsRequest) ProtoMessage() {} + +func (x *AppTwinPendingCommandsRequest) ProtoReflect() protoreflect.Message { + mi := &file_vehicleapi_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AppTwinPendingCommandsRequest.ProtoReflect.Descriptor instead. +func (*AppTwinPendingCommandsRequest) Descriptor() ([]byte, []int) { + return file_vehicleapi_proto_rawDescGZIP(), []int{10} +} + +// AppTwinPendingCommandsResponse is sent from the app to the AppTwin to tell it the commands that haven't been +// "resolved yet" (are not in a finished state). The delivery of this message to the AppTwin will trigger a command +// actor that polls the state for the specified command type and PID. +type AppTwinPendingCommandsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PendingCommands []*PendingCommand `protobuf:"bytes,1,rep,name=pending_commands,json=pendingCommands,proto3" json:"pending_commands,omitempty"` +} + +func (x *AppTwinPendingCommandsResponse) Reset() { + *x = AppTwinPendingCommandsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicleapi_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppTwinPendingCommandsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppTwinPendingCommandsResponse) ProtoMessage() {} + +func (x *AppTwinPendingCommandsResponse) ProtoReflect() protoreflect.Message { + mi := &file_vehicleapi_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AppTwinPendingCommandsResponse.ProtoReflect.Descriptor instead. +func (*AppTwinPendingCommandsResponse) Descriptor() ([]byte, []int) { + return file_vehicleapi_proto_rawDescGZIP(), []int{11} +} + +func (x *AppTwinPendingCommandsResponse) GetPendingCommands() []*PendingCommand { + if x != nil { + return x.PendingCommands + } + return nil +} + +type PendingCommand struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Vin string `protobuf:"bytes,1,opt,name=vin,proto3" json:"vin,omitempty"` + ProcessId int64 `protobuf:"varint,2,opt,name=process_id,json=processId,proto3" json:"process_id,omitempty"` + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + Type ACP_CommandType `protobuf:"varint,4,opt,name=type,proto3,enum=proto.ACP_CommandType" json:"type,omitempty"` +} + +func (x *PendingCommand) Reset() { + *x = PendingCommand{} + if protoimpl.UnsafeEnabled { + mi := &file_vehicleapi_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PendingCommand) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PendingCommand) ProtoMessage() {} + +func (x *PendingCommand) ProtoReflect() protoreflect.Message { + mi := &file_vehicleapi_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PendingCommand.ProtoReflect.Descriptor instead. +func (*PendingCommand) Descriptor() ([]byte, []int) { + return file_vehicleapi_proto_rawDescGZIP(), []int{12} +} + +func (x *PendingCommand) GetVin() string { + if x != nil { + return x.Vin + } + return "" +} + +func (x *PendingCommand) GetProcessId() int64 { + if x != nil { + return x.ProcessId + } + return 0 +} + +func (x *PendingCommand) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *PendingCommand) GetType() ACP_CommandType { + if x != nil { + return x.Type + } + return ACP_UNKNOWNCOMMANDTYPE +} + +var File_vehicleapi_proto protoreflect.FileDescriptor + +var file_vehicleapi_proto_rawDesc = []byte{ + 0x0a, 0x10, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x09, 0x61, 0x63, 0x70, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x0a, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x56, + 0x0a, 0x2b, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x41, 0x70, 0x70, + 0x54, 0x77, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x56, 0x49, 0x4e, 0x12, 0x27, 0x0a, + 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x96, 0x02, 0x0a, 0x20, 0x41, 0x70, 0x70, 0x54, 0x77, + 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x56, 0x49, 0x4e, 0x12, 0x27, 0x0a, 0x0f, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x5f, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, + 0x62, 0x79, 0x5f, 0x76, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x54, 0x77, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, + 0x42, 0x79, 0x56, 0x49, 0x4e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, 0x79, 0x56, + 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, + 0x42, 0x79, 0x56, 0x69, 0x6e, 0x1a, 0x68, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, + 0x42, 0x79, 0x56, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3d, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x54, 0x77, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, + 0x79, 0x50, 0x49, 0x44, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0xf3, 0x01, 0x0a, 0x20, 0x41, 0x70, 0x70, 0x54, 0x77, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, + 0x79, 0x50, 0x49, 0x44, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x76, 0x69, 0x6e, 0x12, 0x5f, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x54, 0x77, 0x69, 0x6e, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x42, 0x79, 0x50, 0x49, 0x44, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, + 0x79, 0x50, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x42, 0x79, 0x50, 0x69, 0x64, 0x1a, 0x5c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x42, 0x79, 0x50, 0x69, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x54, 0x77, 0x69, 0x6e, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xed, 0x02, 0x0a, 0x14, 0x41, 0x70, 0x70, 0x54, 0x77, 0x69, + 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, + 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x49, 0x6e, 0x4d, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, + 0x69, 0x63, 0x6c, 0x65, 0x41, 0x50, 0x49, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x15, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x13, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, + 0x67, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0c, + 0x70, 0x69, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x70, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x6d, + 0x70, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x43, 0x50, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x34, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x50, + 0x49, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x1b, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, + 0x65, 0x41, 0x50, 0x49, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, + 0x69, 0x63, 0x6c, 0x65, 0x41, 0x50, 0x49, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, 0x69, + 0x63, 0x6c, 0x65, 0x41, 0x50, 0x49, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x1a, 0x56, + 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x50, 0x49, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3f, 0x0a, 0x07, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x50, 0x49, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x0a, 0x71, + 0x75, 0x65, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, + 0x50, 0x49, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x17, 0x56, 0x65, 0x68, 0x69, + 0x63, 0x6c, 0x65, 0x41, 0x50, 0x49, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, + 0x65, 0x41, 0x50, 0x49, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x1a, 0x59, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x36, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, + 0x50, 0x49, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa1, 0x01, 0x0a, + 0x19, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x50, 0x49, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x02, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, + 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x50, 0x49, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0xe7, 0x02, 0x0a, 0x1e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x50, 0x49, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, 0x69, + 0x63, 0x6c, 0x65, 0x41, 0x50, 0x49, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x64, 0x12, 0x47, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x12, 0x34, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, + 0x50, 0x49, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x72, 0x61, + 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x69, 0x64, 0x22, 0xa2, 0x02, 0x0a, 0x0f, 0x56, + 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x50, 0x49, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, + 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x2d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x46, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x50, 0x49, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x12, 0x36, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x68, + 0x69, 0x63, 0x6c, 0x65, 0x41, 0x50, 0x49, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0a, 0x73, 0x75, + 0x62, 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x1a, 0x55, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x1f, 0x0a, 0x1d, 0x41, 0x70, 0x70, 0x54, 0x77, 0x69, 0x6e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x62, 0x0a, 0x1e, 0x41, 0x70, 0x70, 0x54, 0x77, 0x69, 0x6e, 0x50, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x40, 0x0a, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x52, 0x0f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x73, 0x22, 0x8c, 0x01, 0x0a, 0x0e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x69, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x69, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x43, + 0x50, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x20, 0xd0, 0xe1, 0x1e, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x64, + 0x61, 0x69, 0x6d, 0x6c, 0x65, 0x72, 0x2e, 0x6d, 0x62, 0x63, 0x61, 0x72, 0x6b, 0x69, 0x74, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_vehicleapi_proto_rawDescOnce sync.Once + file_vehicleapi_proto_rawDescData = file_vehicleapi_proto_rawDesc +) + +func file_vehicleapi_proto_rawDescGZIP() []byte { + file_vehicleapi_proto_rawDescOnce.Do(func() { + file_vehicleapi_proto_rawDescData = protoimpl.X.CompressGZIP(file_vehicleapi_proto_rawDescData) + }) + return file_vehicleapi_proto_rawDescData +} + +var file_vehicleapi_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_vehicleapi_proto_goTypes = []interface{}{ + (*AcknowledgeAppTwinCommandStatusUpdatesByVIN)(nil), // 0: proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN + (*AppTwinCommandStatusUpdatesByVIN)(nil), // 1: proto.AppTwinCommandStatusUpdatesByVIN + (*AppTwinCommandStatusUpdatesByPID)(nil), // 2: proto.AppTwinCommandStatusUpdatesByPID + (*AppTwinCommandStatus)(nil), // 3: proto.AppTwinCommandStatus + (*VehicleAPICommandPostResult)(nil), // 4: proto.VehicleAPICommandPostResult + (*VehicleAPICommandGetResult)(nil), // 5: proto.VehicleAPICommandGetResult + (*VehicleAPIDataGetResult)(nil), // 6: proto.VehicleAPIDataGetResult + (*VehicleAPIAttributeStatus)(nil), // 7: proto.VehicleAPIAttributeStatus + (*VehicleAPICommandProcessStatus)(nil), // 8: proto.VehicleAPICommandProcessStatus + (*VehicleAPIError)(nil), // 9: proto.VehicleAPIError + (*AppTwinPendingCommandsRequest)(nil), // 10: proto.AppTwinPendingCommandsRequest + (*AppTwinPendingCommandsResponse)(nil), // 11: proto.AppTwinPendingCommandsResponse + (*PendingCommand)(nil), // 12: proto.PendingCommand + nil, // 13: proto.AppTwinCommandStatusUpdatesByVIN.UpdatesByVinEntry + nil, // 14: proto.AppTwinCommandStatusUpdatesByPID.UpdatesByPidEntry + nil, // 15: proto.VehicleAPIDataGetResult.DataEntry + nil, // 16: proto.VehicleAPIError.AttributesEntry + (ACP_CommandType)(0), // 17: proto.ACP.CommandType + (VehicleAPI_CommandState)(0), // 18: proto.VehicleAPI.CommandState + (VehicleAPI_QueueType)(0), // 19: proto.VehicleAPI.QueueType + (*structpb.Value)(nil), // 20: google.protobuf.Value + (VehicleAPI_AttributeStatus)(0), // 21: proto.VehicleAPI.AttributeStatus +} +var file_vehicleapi_proto_depIdxs = []int32{ + 13, // 0: proto.AppTwinCommandStatusUpdatesByVIN.updates_by_vin:type_name -> proto.AppTwinCommandStatusUpdatesByVIN.UpdatesByVinEntry + 14, // 1: proto.AppTwinCommandStatusUpdatesByPID.updates_by_pid:type_name -> proto.AppTwinCommandStatusUpdatesByPID.UpdatesByPidEntry + 9, // 2: proto.AppTwinCommandStatus.errors:type_name -> proto.VehicleAPIError + 17, // 3: proto.AppTwinCommandStatus.type:type_name -> proto.ACP.CommandType + 18, // 4: proto.AppTwinCommandStatus.state:type_name -> proto.VehicleAPI.CommandState + 9, // 5: proto.VehicleAPICommandPostResult.errors:type_name -> proto.VehicleAPIError + 18, // 6: proto.VehicleAPICommandPostResult.state:type_name -> proto.VehicleAPI.CommandState + 8, // 7: proto.VehicleAPICommandGetResult.process:type_name -> proto.VehicleAPICommandProcessStatus + 19, // 8: proto.VehicleAPICommandGetResult.queue_type:type_name -> proto.VehicleAPI.QueueType + 15, // 9: proto.VehicleAPIDataGetResult.data:type_name -> proto.VehicleAPIDataGetResult.DataEntry + 20, // 10: proto.VehicleAPIAttributeStatus.value:type_name -> google.protobuf.Value + 21, // 11: proto.VehicleAPIAttributeStatus.Status:type_name -> proto.VehicleAPI.AttributeStatus + 9, // 12: proto.VehicleAPICommandProcessStatus.errors:type_name -> proto.VehicleAPIError + 20, // 13: proto.VehicleAPICommandProcessStatus.response_parameters:type_name -> google.protobuf.Value + 18, // 14: proto.VehicleAPICommandProcessStatus.state:type_name -> proto.VehicleAPI.CommandState + 16, // 15: proto.VehicleAPIError.attributes:type_name -> proto.VehicleAPIError.AttributesEntry + 9, // 16: proto.VehicleAPIError.sub_errors:type_name -> proto.VehicleAPIError + 12, // 17: proto.AppTwinPendingCommandsResponse.pending_commands:type_name -> proto.PendingCommand + 17, // 18: proto.PendingCommand.type:type_name -> proto.ACP.CommandType + 2, // 19: proto.AppTwinCommandStatusUpdatesByVIN.UpdatesByVinEntry.value:type_name -> proto.AppTwinCommandStatusUpdatesByPID + 3, // 20: proto.AppTwinCommandStatusUpdatesByPID.UpdatesByPidEntry.value:type_name -> proto.AppTwinCommandStatus + 7, // 21: proto.VehicleAPIDataGetResult.DataEntry.value:type_name -> proto.VehicleAPIAttributeStatus + 20, // 22: proto.VehicleAPIError.AttributesEntry.value:type_name -> google.protobuf.Value + 23, // [23:23] is the sub-list for method output_type + 23, // [23:23] is the sub-list for method input_type + 23, // [23:23] is the sub-list for extension type_name + 23, // [23:23] is the sub-list for extension extendee + 0, // [0:23] is the sub-list for field type_name +} + +func init() { file_vehicleapi_proto_init() } +func file_vehicleapi_proto_init() { + if File_vehicleapi_proto != nil { + return + } + file_acp_proto_init() + if !protoimpl.UnsafeEnabled { + file_vehicleapi_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcknowledgeAppTwinCommandStatusUpdatesByVIN); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicleapi_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppTwinCommandStatusUpdatesByVIN); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicleapi_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppTwinCommandStatusUpdatesByPID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicleapi_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppTwinCommandStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicleapi_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VehicleAPICommandPostResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicleapi_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VehicleAPICommandGetResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicleapi_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VehicleAPIDataGetResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicleapi_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VehicleAPIAttributeStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicleapi_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VehicleAPICommandProcessStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicleapi_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VehicleAPIError); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicleapi_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppTwinPendingCommandsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicleapi_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppTwinPendingCommandsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vehicleapi_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PendingCommand); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_vehicleapi_proto_rawDesc, + NumEnums: 0, + NumMessages: 17, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_vehicleapi_proto_goTypes, + DependencyIndexes: file_vehicleapi_proto_depIdxs, + MessageInfos: file_vehicleapi_proto_msgTypes, + }.Build() + File_vehicleapi_proto = out.File + file_vehicleapi_proto_rawDesc = nil + file_vehicleapi_proto_goTypes = nil + file_vehicleapi_proto_depIdxs = nil +} diff --git a/vehicle/mercedes/pb/vin-events.pb.go b/vehicle/mercedes/pb/vin-events.pb.go new file mode 100644 index 000000000..a9235e9df --- /dev/null +++ b/vehicle/mercedes/pb/vin-events.pb.go @@ -0,0 +1,153 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v3.21.12 +// source: vin-events.proto + +package protos + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type VINUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AddedVINs []string `protobuf:"bytes,1,rep,name=addedVINs,proto3" json:"addedVINs,omitempty"` + DeletedVINs []string `protobuf:"bytes,2,rep,name=deletedVINs,proto3" json:"deletedVINs,omitempty"` +} + +func (x *VINUpdate) Reset() { + *x = VINUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_vin_events_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VINUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VINUpdate) ProtoMessage() {} + +func (x *VINUpdate) ProtoReflect() protoreflect.Message { + mi := &file_vin_events_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VINUpdate.ProtoReflect.Descriptor instead. +func (*VINUpdate) Descriptor() ([]byte, []int) { + return file_vin_events_proto_rawDescGZIP(), []int{0} +} + +func (x *VINUpdate) GetAddedVINs() []string { + if x != nil { + return x.AddedVINs + } + return nil +} + +func (x *VINUpdate) GetDeletedVINs() []string { + if x != nil { + return x.DeletedVINs + } + return nil +} + +var File_vin_events_proto protoreflect.FileDescriptor + +var file_vin_events_proto_rawDesc = []byte{ + 0x0a, 0x10, 0x76, 0x69, 0x6e, 0x2d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4b, 0x0a, 0x09, 0x56, 0x49, 0x4e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x65, 0x64, 0x56, + 0x49, 0x4e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x65, 0x64, + 0x56, 0x49, 0x4e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x56, + 0x49, 0x4e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x56, 0x49, 0x4e, 0x73, 0x42, 0x1c, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x61, + 0x69, 0x6d, 0x6c, 0x65, 0x72, 0x2e, 0x6d, 0x62, 0x63, 0x61, 0x72, 0x6b, 0x69, 0x74, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_vin_events_proto_rawDescOnce sync.Once + file_vin_events_proto_rawDescData = file_vin_events_proto_rawDesc +) + +func file_vin_events_proto_rawDescGZIP() []byte { + file_vin_events_proto_rawDescOnce.Do(func() { + file_vin_events_proto_rawDescData = protoimpl.X.CompressGZIP(file_vin_events_proto_rawDescData) + }) + return file_vin_events_proto_rawDescData +} + +var file_vin_events_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_vin_events_proto_goTypes = []interface{}{ + (*VINUpdate)(nil), // 0: proto.VINUpdate +} +var file_vin_events_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_vin_events_proto_init() } +func file_vin_events_proto_init() { + if File_vin_events_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_vin_events_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VINUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_vin_events_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_vin_events_proto_goTypes, + DependencyIndexes: file_vin_events_proto_depIdxs, + MessageInfos: file_vin_events_proto_msgTypes, + }.Build() + File_vin_events_proto = out.File + file_vin_events_proto_rawDesc = nil + file_vin_events_proto_goTypes = nil + file_vin_events_proto_depIdxs = nil +} diff --git a/vehicle/mercedes/provider.go b/vehicle/mercedes/provider.go new file mode 100644 index 000000000..de2f5fc97 --- /dev/null +++ b/vehicle/mercedes/provider.go @@ -0,0 +1,110 @@ +package mercedes + +import ( + "time" + + "github.com/evcc-io/evcc/api" + "github.com/evcc-io/evcc/provider" +) + +type Provider struct { + dataG func() (StatusResponse, error) +} + +func NewProvider(api *API, vin string, cache time.Duration) *Provider { + impl := &Provider{ + dataG: provider.Cached(func() (StatusResponse, error) { + return api.Status(vin) + }, cache), + } + return impl +} + +// Soc implements the api.Vehicle interface +func (v *Provider) Soc() (float64, error) { + res, err := v.dataG() + return res.EvInfo.Battery.StateOfCharge, err +} + +var _ api.VehicleRange = (*Provider)(nil) + +// Range implements the api.VehicleRange interface +func (v *Provider) Range() (int64, error) { + res, err := v.dataG() + return int64(res.EvInfo.Battery.DistanceToEmpty.Value), err +} + +var _ api.VehicleOdometer = (*Provider)(nil) + +// Odometer implements the api.VehicleOdometer interface +func (v *Provider) Odometer() (float64, error) { + res, err := v.dataG() + return float64(res.VehicleInfo.Odometer.Value), err +} + +var _ api.ChargeState = (*Provider)(nil) + +// Status implements the api.ChargeState interface +func (v *Provider) Status() (api.ChargeStatus, error) { + status := api.StatusA // disconnected + + res, err := v.dataG() + if err == nil { + status = MapChargeStatus(res.EvInfo.Battery.ChargingStatus) + } + + return status, err +} + +var _ api.VehiclePosition = (*Provider)(nil) + +// Position implements the api.VehiclePosition interface +func (v *Provider) Position() (float64, float64, error) { + res, err := v.dataG() + return res.LocationResponse.Latitude, res.LocationResponse.Longitude, err +} + +var _ api.VehicleFinishTimer = (*Provider)(nil) + +// FinishTime implements the api.VehicleFinishTimer interface +func (v *Provider) FinishTime() (time.Time, error) { + data, err := v.dataG() + if err != nil { + return time.Time{}, err + } + + now := time.Now() + res := time.Date(now.Year(), now.Month(), now.Day(), 0, data.EvInfo.Battery.EndOfChargeTime, 0, 0, now.Location()) + + if res.Before(now) { + res = res.Add(24 * time.Hour) + } + return res, nil +} + +// Charging Status +// 0=CHARGING +// 1=CHARGING_ENDS +// 2=CHARGE_BREAK +// 3=UNPLUGGED +// 4=FAILURE +// 5=SLOW +// 6=FAST +// 7=DISCHARGING +// 8=NO_CHARGING +// 9=SLOW_CHARGING_AFTER_REACHING_TRIP_TARGET +// 10=CHARGING_AFTER_REACHING_TRIP_TARGET +// 11=FAST_CHARGING_AFTER_REACHING_TRIP_TARGET +// 12=UNKNOWN + +func MapChargeStatus(lookup int) api.ChargeStatus { + switch lookup { + case + 0, 5, 6, 9, 10, 11: + return api.StatusC + case + 1, 2, 4, 7, 8: + return api.StatusB + } + return api.StatusA +} diff --git a/vehicle/mercedes/setupapi.go b/vehicle/mercedes/setupapi.go new file mode 100644 index 000000000..605533c24 --- /dev/null +++ b/vehicle/mercedes/setupapi.go @@ -0,0 +1,94 @@ +package mercedes + +import ( + "fmt" + "net/http" + "net/url" + "strings" + + "github.com/evcc-io/evcc/util" + "github.com/evcc-io/evcc/util/oauth" + "github.com/evcc-io/evcc/util/request" + "github.com/evcc-io/evcc/util/transport" + "github.com/google/uuid" + "golang.org/x/oauth2" +) + +type SetupAPI struct { + log *util.Logger + account string + region string + *request.Helper +} + +func NewSetupAPI(log *util.Logger, account string, region string) *SetupAPI { + client := request.NewHelper(log) + + client.Transport = &transport.Decorator{ + Base: client.Transport, + Decorator: transport.DecorateHeaders(mbheaders(true, region)), + } + + return &SetupAPI{ + Helper: client, + log: log, + region: region, + account: account, + } +} + +func (vs *SetupAPI) RequestPin() (bool, *string, error) { + client := request.NewHelper(vs.log) + + client.Transport = &transport.Decorator{ + Base: client.Transport, + Decorator: transport.DecorateHeaders(mbheaders(false, vs.region)), + } + + // Preflight request required to get a pin + uri := fmt.Sprintf("%s/v1/config", getBffUri(vs.region)) + if _, err := client.GetBody(uri); err != nil { + return false, nil, err + } + + nonce := uuid.New().String() + data := PinRequest{ + EmailOrPhoneNumber: vs.account, + CountryCode: "EN", + Nonce: nonce, + } + + uri = fmt.Sprintf("%s/v1/login", getBffUri(vs.region)) + req, err := request.New(http.MethodPost, uri, request.MarshalJSON(data)) + if err != nil { + return false, nil, err + } + + var res PinResponse + if err := client.DoJSON(req, &res); err != nil { + return false, nil, err + } + + // Only if the response field email is the same like the account an email is send by the servers. + return res.UserName == vs.account, &nonce, nil +} + +func (vs *SetupAPI) RequestAccessToken(nonce string, pin string) (*oauth2.Token, error) { + data := url.Values{ + "client_id": []string{ClientId}, + "grant_type": []string{"password"}, + "password": []string{fmt.Sprintf("%s:%s", nonce, pin)}, + "scope": []string{"openid email phone profile offline_access ciam-uid"}, + "username": []string{vs.account}, + } + + uri := fmt.Sprintf("%s/as/token.oauth2", IdUri) + req, _ := request.New(http.MethodPost, uri, strings.NewReader(data.Encode()), mbheaders(true, vs.region)) + + var res oauth.Token + if err := vs.DoJSON(req, &res); err != nil { + return nil, err + } + + return (*oauth2.Token)(&res), nil +} diff --git a/vehicle/mercedes/types.go b/vehicle/mercedes/types.go new file mode 100644 index 000000000..ae47a470a --- /dev/null +++ b/vehicle/mercedes/types.go @@ -0,0 +1,74 @@ +package mercedes + +import ( + "fmt" + "html" + "time" +) + +var Regions = map[string]string{ + "apac": "Asia-Pacific", + "ece": "ECE", + "noram": "North-America", +} + +type ErrorInfo struct { + ErrorCode int + ErrorMessage string + ErrorDetails string +} + +func (e ErrorInfo) Error() error { + if e.ErrorCode == 0 { + return nil + } + return fmt.Errorf("%s: %s", e.ErrorMessage, html.UnescapeString(e.ErrorDetails)) +} + +type PinRequest struct { + EmailOrPhoneNumber string `json:"emailOrPhoneNumber"` + CountryCode string `json:"countryCode"` + Nonce string `json:"nonce"` +} + +type PinResponse struct { + IsEmail bool `json:"isEmail"` + UserName string `json:"username"` +} + +type VehiclesResponse struct { + AssignedVehicles []Vehicle +} + +type Vehicle struct { + Fin string +} + +type StatusResponse struct { + VehicleInfo struct { + Odometer struct { + Value int + Unit string + } + Timestamp time.Time + } + EvInfo struct { + Battery struct { + ChargingStatus int + DistanceToEmpty struct { + Value int + Unit string + } + StateOfCharge float64 // 75 + EndOfChargeTime int // Minutes after midnight + TotalRange int // 17 + } + Timestamp time.Time + } + LocationResponse struct { + TimeStamp time.Time + Longitude float64 + Latitude float64 + } + Timestamp time.Time +}