mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-02-10 14:26:59 +01:00
646 lines
19 KiB
Protocol Buffer
646 lines
19 KiB
Protocol Buffer
syntax = "proto3";
|
|
package proto;
|
|
import "service-activation.proto";
|
|
import "user-events.proto";
|
|
import "vehicle-commands.proto";
|
|
import "protos.proto";
|
|
import "vehicleapi.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
option java_package = "com.daimler.mbcarkit.proto";
|
|
|
|
// Sending direction: App <- BFF <- AppTwin
|
|
message VEPUpdate {
|
|
|
|
int32 sequence_number = 1;
|
|
|
|
string vin = 2;
|
|
|
|
// 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.
|
|
bool full_update = 15;
|
|
|
|
// 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
|
|
int64 emit_timestamp = 10;
|
|
|
|
// when was the event emitted? This is the time of the update (unix timestamp in milliseconds),
|
|
int64 emit_timestamp_in_ms = 14;
|
|
|
|
// the attribute changes are a list of changed attributes
|
|
map<string, VehicleAttributeStatus> attributes = 11;
|
|
|
|
}
|
|
|
|
// Part of a VEPUpdate
|
|
// Sending direction: App <- BFF <- AppTwin
|
|
message VehicleAttributeStatus {
|
|
// time of the attribute change in the car as unix timestamp in seconds with UTC timezone (deprecated)
|
|
int64 timestamp = 1 [ deprecated = true ];
|
|
// time of the attribute change in the car as unix timestamp in milliseconds with UTC timezone
|
|
int64 timestamp_in_ms = 10;
|
|
bool changed = 2;
|
|
int32 status = 3;
|
|
|
|
enum CombustionConsumptionUnit {
|
|
UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT = 0;
|
|
// Liter per 100 km
|
|
LITER_PER_100KM = 1;
|
|
// Kilometers per liter
|
|
KM_PER_LITER = 2;
|
|
// Miles Per imperial gallon
|
|
MPG_UK = 3;
|
|
// Miles Per US gallon
|
|
MPG_US = 4;
|
|
}
|
|
|
|
enum ElectricityConsumptionUnit {
|
|
UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT = 0;
|
|
// kWh per 100 km
|
|
KWH_PER_100KM = 1;
|
|
// Kilometers per kWh
|
|
KM_PER_KWH = 2;
|
|
// kWh per 100 miles
|
|
KWH_PER_100MI = 3;
|
|
// miles per kWh
|
|
M_PER_KWH = 4;
|
|
// Miles per gallon gasoline equivalent
|
|
MPGE = 5;
|
|
}
|
|
|
|
enum GasConsumptionUnit {
|
|
UNSPECIFIED_GAS_CONSUMPTION_UNIT = 0;
|
|
// kG per 100 km
|
|
KG_PER_100KM = 1;
|
|
// km per kg
|
|
KM_PER_KG = 2;
|
|
// miles per kg
|
|
M_PER_KG = 3;
|
|
}
|
|
|
|
enum SpeedDistanceUnit {
|
|
option deprecated = true; // use speed unit / length unit instead
|
|
|
|
UNSPECIFIED_SPEED_DISTANCE_UNIT = 0;
|
|
// km/h, distance unit: km
|
|
KM_PER_H = 1;
|
|
// mph, distance unit: miles
|
|
M_PER_H = 2;
|
|
}
|
|
|
|
enum SpeedUnit {
|
|
UNSPECIFIED_SPEED_UNIT = 0;
|
|
// kilometers per hour
|
|
KM_PER_HOUR = 1;
|
|
// miles per hour
|
|
M_PER_HOUR = 2;
|
|
}
|
|
|
|
enum DistanceUnit {
|
|
UNSPECIFIED_DISTANCE_UNIT = 0;
|
|
KILOMETERS = 1;
|
|
MILES = 2;
|
|
}
|
|
|
|
enum TemperatureUnit {
|
|
UNSPECIFIED_TEMPERATURE_UNIT = 0;
|
|
CELSIUS = 1;
|
|
FAHRENHEIT = 2;
|
|
}
|
|
|
|
enum PressureUnit {
|
|
UNSPECIFIED_PRESSURE_UNIT = 0;
|
|
KPA = 1 ;
|
|
BAR = 2;
|
|
// Pounds per square inch
|
|
PSI = 3;
|
|
}
|
|
|
|
enum RatioUnit {
|
|
UNSPECIFIED_RATIO_UNIT = 0;
|
|
PERCENT = 1;
|
|
}
|
|
|
|
enum ClockHourUnit {
|
|
UNSPECIFIED_CLOCK_HOUR_UNIT = 0;
|
|
// 12h (AM/PM)
|
|
T12H = 1;
|
|
// 24h
|
|
T24H = 2;
|
|
}
|
|
|
|
enum TcuConnectionStateLowChannelStatus {
|
|
UNKNOWN_TCU_CONNECTION_STATE = 0;
|
|
INITIALLY_CONNECTED = 1;
|
|
RECONNECTED = 2;
|
|
DISCONNECTED = 3;
|
|
UNPLANNED_DISCONNECTED = 4;
|
|
}
|
|
|
|
enum ChargingCouplerErrorDetails {
|
|
CHARING_COUPLER_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE = 0;
|
|
CHARING_COUPLER_ERROR_DETAILS_RELIEVE_CHARGE_COUPLER_AND_RETRY = 1;
|
|
CHARING_COUPLER_ERROR_DETAILS_CONTACT_SERVICE_HOTLINE_FOR_EMERGENCY_UNLOCK = 2;
|
|
CHARING_COUPLER_ERROR_DETAILS_UNPLUG_AND_REPLUG_CHARGE_COUPLER = 3;
|
|
CHARING_COUPLER_ERROR_DETAILS_CHARGE_COUPLER_LOCK_DEFECT = 4;
|
|
}
|
|
|
|
enum ChargingErrorImpossibleChangeTo400V {
|
|
CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V_NO_INFO = 0;
|
|
CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V_400V_IMPOSSIBLE_STUCK_TO_800V = 1;
|
|
}
|
|
|
|
enum ChargingErrorImpossibleChangeTo800V {
|
|
CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V_NO_INFO = 0;
|
|
CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V_800V_IMPOSSIBLE_STUCK_TO_400V = 1;
|
|
}
|
|
|
|
enum ChargingErrorVehicleNoSupport400V {
|
|
CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V_NO_INFO = 0;
|
|
CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V_400V_CHARGING_NOT_POSSIBLE = 1;
|
|
}
|
|
|
|
// 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.
|
|
repeated int32 service_ids = 30;
|
|
|
|
string display_value = 11;
|
|
oneof display_unit {
|
|
CombustionConsumptionUnit combustion_consumption_unit = 12;
|
|
GasConsumptionUnit gas_consumption_unit = 13;
|
|
ElectricityConsumptionUnit electricity_consumption_unit = 14;
|
|
SpeedDistanceUnit speed_distance_unit = 15 [ deprecated = true ]; // use speed unit / length unit instead
|
|
SpeedUnit speed_unit = 25;
|
|
DistanceUnit distance_unit = 26;
|
|
TemperatureUnit temperature_unit = 16;
|
|
PressureUnit pressure_unit = 17;
|
|
RatioUnit ratio_unit = 18;
|
|
ClockHourUnit clock_hour_unit = 19;
|
|
}
|
|
|
|
oneof attribute_type {
|
|
int64 int_value = 4;
|
|
bool bool_value = 5;
|
|
string string_value = 6;
|
|
double double_value = 7;
|
|
bool nil_value = 8;
|
|
string unsupported_value = 9;
|
|
TemperaturePointsValue temperature_points_value = 20;
|
|
WeekdayTariffValue weekday_tariff_value = 21;
|
|
WeekendTariffValue weekend_tariff_value = 22;
|
|
StateOfChargeProfileValue state_of_charge_profile_value = 23;
|
|
WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24;
|
|
SpeedAlertConfigurationValue speed_alert_configuration_value = 27;
|
|
EcoHistogramValue eco_histogram_value = 28;
|
|
WeeklyProfileValue weekly_profile_value = 29;
|
|
ChargeProgramsValue charge_programs_value = 31;
|
|
ChargingBreakClockTimerValue chargingbreak_clocktimer_value = 32;
|
|
ChargingPowerControl charging_power_control = 33;
|
|
TcuConnectionStateLowChannelStatus tcu_connection_state_low_channel = 38;
|
|
PrecondState precond_state = 44;
|
|
ChargingPowerRestrictions charging_power_restrictions = 55;
|
|
ChargingCouplerErrorDetails charging_coupler_error_details = 56;
|
|
ChargingErrorVehicleNoSupport400V charging_error_vehicle_no_support_400v = 58;
|
|
ChargingErrorImpossibleChangeTo400V charging_error_impossible_change_to_400v = 59;
|
|
ChargingErrorImpossibleChangeTo800V charging_error_impossible_change_to_800v = 60;
|
|
ChargingPredictionSoc charging_prediction_soc = 80;
|
|
ChargingPredictionDepartureTime charging_prediction_departure_time = 81;
|
|
// ChargingScheduleActive charging_schedule_active = 82;
|
|
ChargeFlaps charge_flaps = 84;
|
|
ChargeInlets charge_inlets = 85;
|
|
|
|
}
|
|
}
|
|
|
|
message ChargingPredictionSoc {
|
|
google.protobuf.Timestamp predicted_end_time = 1;
|
|
int64 predicted_electrical_energy_range = 2;
|
|
}
|
|
|
|
message ChargingPredictionDepartureTime {
|
|
int32 predicted_soc = 1;
|
|
int64 predicted_electrical_energy_range = 2;
|
|
}
|
|
|
|
|
|
message ChargeInletsEntry {
|
|
enum ChargeInletsCouplerState {
|
|
CHARGE_INLETS_COUPLER_STATE_UNKNOWN = 0;
|
|
CHARGE_INLETS_COUPLER_STATE_PLUGGED = 1;
|
|
CHARGE_INLETS_COUPLER_STATE_VEHICLE_PLUGGED = 2;
|
|
CHARGE_INLETS_COUPLER_STATE_VEHICLE_NOT_PLUGGED = 3;
|
|
CHARGE_INLETS_COUPLER_STATE_DEFECT = 4;
|
|
}
|
|
|
|
enum ChargeInletsLockState {
|
|
CHARGE_INLETS_LOCK_STATE_UNKNOWN = 0;
|
|
CHARGE_INLETS_LOCK_STATE_UNLOCKED = 1;
|
|
CHARGE_INLETS_LOCK_STATE_LOCKED = 2;
|
|
CHARGE_INLETS_LOCK_STATE_LOCK_STATE_NOT_CLEAR = 3;
|
|
CHARGE_INLETS_LOCK_STATE_NOT_AVAILABLE = 4;
|
|
}
|
|
|
|
int64 id = 1;
|
|
ChargeInletsCouplerState coupler_state = 2;
|
|
ChargeInletsLockState lock_state = 3;
|
|
}
|
|
|
|
message ChargeInlets {
|
|
repeated ChargeInletsEntry entries = 1;
|
|
}
|
|
|
|
enum ChargeFlapsPositionState {
|
|
CHARGE_FLAPS_POSITION_STATE_DEFAULT = 0;
|
|
CHARGE_FLAPS_POSITION_STATE_OPEN = 1;
|
|
CHARGE_FLAPS_POSITION_STATE_CLOSED = 2;
|
|
CHARGE_FLAPS_POSITION_STATE_FLAP_PRESSED = 3;
|
|
CHARGE_FLAPS_POSITION_STATE_UNKNOWN = 4;
|
|
}
|
|
|
|
message ChargeFlapsEntry {
|
|
int64 id = 1;
|
|
ChargeFlapsPositionState position_state = 2;
|
|
}
|
|
|
|
message ChargeFlaps {
|
|
repeated ChargeFlapsEntry entries= 1;
|
|
}
|
|
|
|
enum ChargingPowerRestriction {
|
|
CHARGING_POWER_RESTRICTION_NO_RESTRICTION = 0;
|
|
CHARGING_POWER_RESTRICTION_ECO_CHARGING_ACTIVE = 1;
|
|
CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CUSTOMER_SETTING = 2;
|
|
CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_VEHICLE_CHARGING_SYSTEM = 3;
|
|
CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_REMOTE_CONTROL = 4;
|
|
CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CHARGING_INFRASTRUCTURE = 5;
|
|
CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CHARGING_STRATEGY = 6;
|
|
CHARGING_POWER_RESTRICTION_STATE_OF_CHARGE_TOO_LOW = 7;
|
|
CHARGING_POWER_RESTRICTION_STATE_OF_CHARGE_TOO_HIGH = 8;
|
|
CHARGING_POWER_RESTRICTION_BATTERY_TEMPERATURE_TOO_LOW = 9;
|
|
CHARGING_POWER_RESTRICTION_BATTERY_TEMPERATURE_TOO_HIGH = 10;
|
|
}
|
|
|
|
message ChargingPowerRestrictions {
|
|
repeated ChargingPowerRestriction charging_power_restriction = 1;
|
|
}
|
|
|
|
message ChargingBreakClockTimerValue {
|
|
repeated ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;
|
|
}
|
|
|
|
enum PrecondStateType {
|
|
PRECOND_STATE_TYPE_ON_UNLOCK = 0;
|
|
PRECOND_STATE_TYPE_AT_DEPARTURE_TIME = 1;
|
|
PRECOND_STATE_TYPE_IMMEDIATE = 2;
|
|
PRECOND_STATE_TYPE_CHILD_PRESENCE_DETECTION = 3;
|
|
}
|
|
|
|
message PrecondState {
|
|
bool activation_state = 1;
|
|
bool precond_immediate_support = 2;
|
|
repeated PrecondStateType precond_state_types = 3;
|
|
}
|
|
|
|
message ChargingPowerControl {
|
|
enum ChargingStatusForPowerControl {
|
|
NOT_DEFINED = 0;
|
|
DEACTIVATED = 1;
|
|
ACTIVATED = 2;
|
|
}
|
|
|
|
ChargingStatusForPowerControl charge_status = 1;
|
|
int32 ctrl_duration = 2;
|
|
int32 ctrl_info = 3;
|
|
int32 charge_power = 4;
|
|
int32 serv_stat = 5;
|
|
int32 serv_avail = 6;
|
|
int32 use_case = 7;
|
|
}
|
|
|
|
message ChargingBreakClockTimerEntry {
|
|
ChargingBreakClockTimerEntryStatus status = 1;
|
|
int32 endTimeHour = 2;
|
|
int32 endTimeMinute = 3;
|
|
int32 startTimeHour = 4;
|
|
int32 startTimeMinute = 5;
|
|
int32 timerId = 6;
|
|
}
|
|
|
|
message ChargeProgramsValue {
|
|
repeated ChargeProgramParameters charge_program_parameters = 1;
|
|
}
|
|
|
|
enum ChargeProgram {
|
|
DEFAULT_CHARGE_PROGRAM = 0;
|
|
INSTANT_CHARGE_PROGRAM = 1;
|
|
HOME_CHARGE_PROGRAM = 2;
|
|
WORK_CHARGE_PROGRAM = 3;
|
|
}
|
|
|
|
message ChargeProgramParameters {
|
|
ChargeProgram charge_program = 1 [ json_name = "chargeprogram" ];
|
|
|
|
// 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]
|
|
int32 max_soc = 2 [ json_name = "maxSoc" ];
|
|
|
|
// 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.
|
|
bool auto_unlock = 3 [ json_name = "autounlock" ];
|
|
|
|
// 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.
|
|
bool location_based_charging = 4 [ json_name = "locationbasedcharging" ];
|
|
|
|
// enable or disable week-profile
|
|
// Denotes whether weekly profile (aka. weekprofile) should be used.
|
|
// true - use weekly profile, false - do not use weekly profile
|
|
|
|
bool weekly_profile = 5 [ json_name = "weeklyprofile" ];
|
|
bool clockTimer = 6 [ json_name = "clockTimer" ];
|
|
int32 max_charging_current = 7 [ json_name = "MaxChargingCurrent" ];
|
|
bool eco_charging = 8 [ json_name = "EcoCharging" ];
|
|
}
|
|
|
|
// 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
|
|
enum AttributeStatus {
|
|
// Value is set and valid
|
|
VALUE_VALID = 0;
|
|
// Value has not yet been received from the vehicle (but sensor etc. should be available)
|
|
VALUE_NOT_RECEIVED = 1;
|
|
// Value has been retrieved from vehicle but is invalid (marked as invalid by DaiVB backend)
|
|
VALUE_INVALID = 3;
|
|
// Vehicle does not support this attribute (e.g. does not have the sensor etc.)
|
|
VALUE_NOT_AVAILABLE = 4;
|
|
}
|
|
|
|
message WeeklyProfileValue {
|
|
bool single_time_profile_entries_activatable = 1 [ json_name = "singleTimeProfileEntriesActivatable" ];
|
|
|
|
int32 max_number_of_weekly_time_profile_slots = 2 [ json_name = "maxNumberOfWeeklyTimeProfileSlots" ];
|
|
|
|
int32 max_number_of_time_profiles = 3 [ json_name = "maxNumberOfTimeProfiles" ];
|
|
|
|
int32 current_number_of_time_profile_slots = 4 [ json_name = "currentNumberOfTimeProfileSlots" ];
|
|
|
|
int32 current_number_of_time_profiles = 5 [ json_name = "currentNumberOfTimeProfiles" ];
|
|
|
|
repeated VVRTimeProfile time_profiles = 6 [ json_name = "timeProfiles" ];
|
|
}
|
|
|
|
// VVRTimeProfile is almost identical to the "TimeProfile" message with the exception that the identifier is not optional.
|
|
message VVRTimeProfile {
|
|
// unique id of this time profile entry
|
|
int32 identifier = 1 [ json_name = "id" ];
|
|
|
|
// Hour after midnight range [0, 23]
|
|
int32 hour = 2 [json_name = "hour" ];
|
|
|
|
// Minute after full hour range [0, 59]
|
|
int32 minute = 3 [json_name = "min" ];
|
|
|
|
// Days for which the above time should be applied
|
|
repeated TimeProfileDay days = 4 [json_name = "day" ];
|
|
|
|
// Whether this profile entry is active or not
|
|
bool active = 5 [json_name = "active" ];
|
|
|
|
// If a timeProfile is changed or added the respective applicationId must be provided by SDK
|
|
// 11 = Internal Apps
|
|
// 12 = External Apps
|
|
int32 application_identifier = 6 [ json_name = "applicationId" ];
|
|
}
|
|
|
|
message EcoHistogramValue {
|
|
repeated EcoHistogramBin eco_histogram_bins = 1;
|
|
}
|
|
|
|
message EcoHistogramBin {
|
|
double interval = 1;
|
|
double value = 2;
|
|
}
|
|
|
|
message SpeedAlertConfigurationValue {
|
|
repeated SpeedAlertConfiguration speed_alert_configurations = 1;
|
|
}
|
|
|
|
message SpeedAlertConfiguration {
|
|
// Unix timestamp in seconds
|
|
int64 end_timestamp_in_s = 1;
|
|
// Speed in kilometers per hour
|
|
int32 threshold_in_kph = 2;
|
|
// threshold value in the users preferred unit
|
|
string threshold_display_value = 3;
|
|
}
|
|
|
|
message WeeklySettingsHeadUnitValue {
|
|
// Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
|
|
repeated WeeklySetting weekly_settings = 1;
|
|
}
|
|
|
|
message WeeklySetting {
|
|
int32 day = 1;
|
|
int32 minutes_since_midnight = 2;
|
|
}
|
|
|
|
message TemperaturePointsValue {
|
|
// 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)
|
|
repeated TemperaturePoint temperature_points = 1;
|
|
}
|
|
|
|
message TemperaturePoint {
|
|
string zone = 1;
|
|
double temperature = 2;
|
|
string temperature_display_value = 3;
|
|
}
|
|
|
|
message WeekdayTariffValue {
|
|
// List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
|
|
repeated Tariff tariffs = 1;
|
|
}
|
|
|
|
message WeekendTariffValue {
|
|
// List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
|
|
repeated Tariff tariffs = 1;
|
|
}
|
|
|
|
message Tariff {
|
|
// 33 - off-peak, 44 - mid-peak, 66 - on-peak
|
|
int32 rate = 1;
|
|
// Seconds from midnight
|
|
int32 time = 2;
|
|
}
|
|
|
|
message StateOfChargeProfileValue {
|
|
// 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)
|
|
repeated StateOfCharge states_of_charge = 1;
|
|
}
|
|
|
|
message StateOfCharge {
|
|
// timestamp in seconds, UTC
|
|
int64 timestamp_in_s = 1;
|
|
|
|
// soc with value range 0..100
|
|
int32 state_of_charge = 2;
|
|
}
|
|
|
|
// Sending direction: App <- BFF <- AppTwin
|
|
message VEPUpdatesByVIN {
|
|
|
|
int32 sequence_number = 2;
|
|
|
|
// VIN -> Update
|
|
map<string, VEPUpdate> updates = 1;
|
|
}
|
|
|
|
// Sending direction: App <- BFF
|
|
message DebugMessage {
|
|
string message = 1;
|
|
}
|
|
|
|
// Represents a status response from the
|
|
// VVA backend for a given VIN and CIAM ID.
|
|
message VehicleStatus {
|
|
string vin = 1;
|
|
map<string, VehicleAttributeStatus> attributes = 2;
|
|
}
|
|
|
|
// message that is pushed from the vep status service
|
|
// Sending direction: App <- BFF
|
|
message PushMessage {
|
|
reserved 7,8;
|
|
string tracking_id = 5;
|
|
oneof msg {
|
|
VEPUpdate vepUpdate = 1;
|
|
VEPUpdatesByVIN vepUpdates = 2;
|
|
DebugMessage debugMessage = 3;
|
|
ServiceStatusUpdatesByVIN service_status_updates = 9;
|
|
ServiceStatusUpdate service_status_update = 13;
|
|
UserDataUpdate user_data_update = 10;
|
|
UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14;
|
|
UserPictureUpdate user_picture_update = 11;
|
|
UserPINUpdate user_pin_update = 12;
|
|
VehicleUpdated vehicle_updated = 15;
|
|
PreferredDealerChange preferred_dealer_change = 16;
|
|
AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17;
|
|
AppTwinPendingCommandsRequest apptwin_pending_command_request = 18;
|
|
AssignedVehicles assigned_vehicles = 19;
|
|
DataChangeEvent data_change_event = 21;
|
|
}
|
|
}
|
|
|
|
// message type to track an event, e.g. a user interaction with content
|
|
// Sending direction: App -> BFF
|
|
message TrackingEvent {
|
|
|
|
// a unique id associated with this event
|
|
string tracking_id = 1;
|
|
|
|
// the unix epoch time in nanoseconds when the event occurred
|
|
int64 timestamp = 2;
|
|
|
|
// a unique identifier describing a single interaction or event
|
|
string event_type = 3;
|
|
|
|
// additional meta data describing the event
|
|
map<string, PayloadValue> payload = 4;
|
|
}
|
|
|
|
message PayloadValue {
|
|
oneof msg {
|
|
string string_value = 1;
|
|
int32 int_value = 2;
|
|
bool bool_value = 3;
|
|
double double_value = 4;
|
|
}
|
|
}
|
|
|
|
// acknowledge that the VEP updates of up to `sequenceNumber` have been received
|
|
// Sending direction: App -> BFF -> AppTwin
|
|
message AcknowledgeVEPRequest {
|
|
// This message will be replaced by AcknowledgeVEPUpdatesByVIN
|
|
option deprecated = true;
|
|
|
|
int32 sequence_number = 1;
|
|
}
|
|
|
|
// 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
|
|
message AcknowledgeVEPUpdatesByVIN {
|
|
int32 sequence_number = 1;
|
|
}
|
|
|
|
// the client can optionally send this message to reconfigure the ping interval
|
|
// Sending direction: App -> BFF
|
|
message ConfigurePingInterval {
|
|
int32 ping_time_millis = 1;
|
|
}
|
|
|
|
message AcknowledgeVehicleUpdated {
|
|
int32 sequence_number = 1;
|
|
}
|
|
|
|
message AcknowledgePreferredDealerChange {
|
|
int32 sequence_number = 1;
|
|
}
|
|
|
|
message VehicleUpdated {
|
|
int32 sequence_number = 1;
|
|
|
|
string ciam_id = 2;
|
|
|
|
string vin = 3;
|
|
|
|
// When was the event emitted (milliseconds in Unix time)
|
|
int64 emit_timestamp_in_ms = 10;
|
|
}
|
|
|
|
message PreferredDealerChange {
|
|
int32 sequence_number = 1;
|
|
|
|
string ciam_id = 2;
|
|
|
|
string vin = 3;
|
|
|
|
// When was the event emitted (milliseconds in Unix time)
|
|
int64 emit_timestamp_in_ms = 10;
|
|
}
|
|
|
|
message AcknowledgeDataChangeEvent {
|
|
int32 sequence_number = 1;
|
|
}
|
|
|
|
enum Scope {
|
|
USER = 0;
|
|
ONBOARD_FENCES = 1;
|
|
USER_PIN = 3;
|
|
SERVICE_PREREQUISITE = 4;
|
|
USER_PROFILE_PICTURE = 5;
|
|
}
|
|
|
|
message Scopes {
|
|
Scope scope = 1;
|
|
string ciamId = 2;
|
|
string vin = 3;
|
|
map<string, string> additional_resources = 4;
|
|
string resource_ciam_id = 5;
|
|
string resource_vin = 6;
|
|
}
|
|
|
|
message DataChangeEvent {
|
|
repeated Scopes scopes = 1;
|
|
string tracking_id = 2;
|
|
int32 sequence_number = 3;
|
|
} |