// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: vehicle-events.proto
// Protobuf Java Version: 4.33.6

package com.daimler.mbcarkit.proto;

@com.google.protobuf.Generated
public final class VehicleEvents extends com.google.protobuf.GeneratedFile {
  private VehicleEvents() {}
  static {
    com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
      com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
      /* major= */ 4,
      /* minor= */ 33,
      /* patch= */ 6,
      /* suffix= */ "",
      "VehicleEvents");
  }
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * Protobuf enum {@code proto.AmgStageModeState}
   */
  public enum AmgStageModeState
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>AMG_STAGE_MODE_STATE_STAGING_NOT_ACTIVE = 0;</code>
     */
    AMG_STAGE_MODE_STATE_STAGING_NOT_ACTIVE(0),
    /**
     * <code>AMG_STAGE_MODE_STATE_REVERTING_IN_PROGRESS = 1;</code>
     */
    AMG_STAGE_MODE_STATE_REVERTING_IN_PROGRESS(1),
    /**
     * <code>AMG_STAGE_MODE_STATE_TRANSFORMING_FINISHED_TRANSFORMED_POS = 2;</code>
     */
    AMG_STAGE_MODE_STATE_TRANSFORMING_FINISHED_TRANSFORMED_POS(2),
    /**
     * <code>AMG_STAGE_MODE_STATE_TRANSFORMING_FINISHED_DEFAULT_POS = 3;</code>
     */
    AMG_STAGE_MODE_STATE_TRANSFORMING_FINISHED_DEFAULT_POS(3),
    /**
     * <code>AMG_STAGE_MODE_STATE_TRANSFORMATION_ABORTED = 4;</code>
     */
    AMG_STAGE_MODE_STATE_TRANSFORMATION_ABORTED(4),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "AmgStageModeState");
    }
    /**
     * <code>AMG_STAGE_MODE_STATE_STAGING_NOT_ACTIVE = 0;</code>
     */
    public static final int AMG_STAGE_MODE_STATE_STAGING_NOT_ACTIVE_VALUE = 0;
    /**
     * <code>AMG_STAGE_MODE_STATE_REVERTING_IN_PROGRESS = 1;</code>
     */
    public static final int AMG_STAGE_MODE_STATE_REVERTING_IN_PROGRESS_VALUE = 1;
    /**
     * <code>AMG_STAGE_MODE_STATE_TRANSFORMING_FINISHED_TRANSFORMED_POS = 2;</code>
     */
    public static final int AMG_STAGE_MODE_STATE_TRANSFORMING_FINISHED_TRANSFORMED_POS_VALUE = 2;
    /**
     * <code>AMG_STAGE_MODE_STATE_TRANSFORMING_FINISHED_DEFAULT_POS = 3;</code>
     */
    public static final int AMG_STAGE_MODE_STATE_TRANSFORMING_FINISHED_DEFAULT_POS_VALUE = 3;
    /**
     * <code>AMG_STAGE_MODE_STATE_TRANSFORMATION_ABORTED = 4;</code>
     */
    public static final int AMG_STAGE_MODE_STATE_TRANSFORMATION_ABORTED_VALUE = 4;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static AmgStageModeState valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static AmgStageModeState forNumber(int value) {
      switch (value) {
        case 0: return AMG_STAGE_MODE_STATE_STAGING_NOT_ACTIVE;
        case 1: return AMG_STAGE_MODE_STATE_REVERTING_IN_PROGRESS;
        case 2: return AMG_STAGE_MODE_STATE_TRANSFORMING_FINISHED_TRANSFORMED_POS;
        case 3: return AMG_STAGE_MODE_STATE_TRANSFORMING_FINISHED_DEFAULT_POS;
        case 4: return AMG_STAGE_MODE_STATE_TRANSFORMATION_ABORTED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<AmgStageModeState>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        AmgStageModeState> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<AmgStageModeState>() {
            public AmgStageModeState findValueByNumber(int number) {
              return AmgStageModeState.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(0);
    }

    private static final AmgStageModeState[] VALUES = values();

    public static AmgStageModeState valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private AmgStageModeState(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.AmgStageModeState)
  }

  /**
   * <pre>
   * Child presence detection warning level
   * </pre>
   *
   * Protobuf enum {@code proto.ChildPresenceDetectionWarningLevel}
   */
  public enum ChildPresenceDetectionWarningLevel
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>NO_WARNING = 0;</code>
     */
    NO_WARNING(0),
    /**
     * <code>INITIAL = 1;</code>
     */
    INITIAL(1),
    /**
     * <code>ESCALATION = 2;</code>
     */
    ESCALATION(2),
    /**
     * <code>SILENT_ESCALATION = 3;</code>
     */
    SILENT_ESCALATION(3),
    /**
     * <code>WARNING_LEVEL_DEACTIVATED_ERROR = 4;</code>
     */
    WARNING_LEVEL_DEACTIVATED_ERROR(4),
    /**
     * <code>WARNING_LEVEL_ACTIVE_ECALL_SOON = 5;</code>
     */
    WARNING_LEVEL_ACTIVE_ECALL_SOON(5),
    /**
     * <code>WARNING_LEVEL_ACTIVE_ECALL_TRANSMITTED = 6;</code>
     */
    WARNING_LEVEL_ACTIVE_ECALL_TRANSMITTED(6),
    /**
     * <code>WARNING_LEVEL_ACTIVE_ECALL_NOT_AVAILABLE = 7;</code>
     */
    WARNING_LEVEL_ACTIVE_ECALL_NOT_AVAILABLE(7),
    /**
     * <code>WARNING_LEVEL_DELAYED = 8;</code>
     */
    WARNING_LEVEL_DELAYED(8),
    /**
     * <code>WARNING_LEVEL_ACTIVE_NO_ECALL_SIL_ESC = 9;</code>
     */
    WARNING_LEVEL_ACTIVE_NO_ECALL_SIL_ESC(9),
    /**
     * <code>WARNING_LEVEL_ACTIVE_NO_ECALL_ESC = 10;</code>
     */
    WARNING_LEVEL_ACTIVE_NO_ECALL_ESC(10),
    /**
     * <code>WARNING_LEVEL_ACTIVE_ECALL_NOT_AVAILABLE_SECOND_STAGE = 11;</code>
     */
    WARNING_LEVEL_ACTIVE_ECALL_NOT_AVAILABLE_SECOND_STAGE(11),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChildPresenceDetectionWarningLevel");
    }
    /**
     * <code>NO_WARNING = 0;</code>
     */
    public static final int NO_WARNING_VALUE = 0;
    /**
     * <code>INITIAL = 1;</code>
     */
    public static final int INITIAL_VALUE = 1;
    /**
     * <code>ESCALATION = 2;</code>
     */
    public static final int ESCALATION_VALUE = 2;
    /**
     * <code>SILENT_ESCALATION = 3;</code>
     */
    public static final int SILENT_ESCALATION_VALUE = 3;
    /**
     * <code>WARNING_LEVEL_DEACTIVATED_ERROR = 4;</code>
     */
    public static final int WARNING_LEVEL_DEACTIVATED_ERROR_VALUE = 4;
    /**
     * <code>WARNING_LEVEL_ACTIVE_ECALL_SOON = 5;</code>
     */
    public static final int WARNING_LEVEL_ACTIVE_ECALL_SOON_VALUE = 5;
    /**
     * <code>WARNING_LEVEL_ACTIVE_ECALL_TRANSMITTED = 6;</code>
     */
    public static final int WARNING_LEVEL_ACTIVE_ECALL_TRANSMITTED_VALUE = 6;
    /**
     * <code>WARNING_LEVEL_ACTIVE_ECALL_NOT_AVAILABLE = 7;</code>
     */
    public static final int WARNING_LEVEL_ACTIVE_ECALL_NOT_AVAILABLE_VALUE = 7;
    /**
     * <code>WARNING_LEVEL_DELAYED = 8;</code>
     */
    public static final int WARNING_LEVEL_DELAYED_VALUE = 8;
    /**
     * <code>WARNING_LEVEL_ACTIVE_NO_ECALL_SIL_ESC = 9;</code>
     */
    public static final int WARNING_LEVEL_ACTIVE_NO_ECALL_SIL_ESC_VALUE = 9;
    /**
     * <code>WARNING_LEVEL_ACTIVE_NO_ECALL_ESC = 10;</code>
     */
    public static final int WARNING_LEVEL_ACTIVE_NO_ECALL_ESC_VALUE = 10;
    /**
     * <code>WARNING_LEVEL_ACTIVE_ECALL_NOT_AVAILABLE_SECOND_STAGE = 11;</code>
     */
    public static final int WARNING_LEVEL_ACTIVE_ECALL_NOT_AVAILABLE_SECOND_STAGE_VALUE = 11;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ChildPresenceDetectionWarningLevel valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ChildPresenceDetectionWarningLevel forNumber(int value) {
      switch (value) {
        case 0: return NO_WARNING;
        case 1: return INITIAL;
        case 2: return ESCALATION;
        case 3: return SILENT_ESCALATION;
        case 4: return WARNING_LEVEL_DEACTIVATED_ERROR;
        case 5: return WARNING_LEVEL_ACTIVE_ECALL_SOON;
        case 6: return WARNING_LEVEL_ACTIVE_ECALL_TRANSMITTED;
        case 7: return WARNING_LEVEL_ACTIVE_ECALL_NOT_AVAILABLE;
        case 8: return WARNING_LEVEL_DELAYED;
        case 9: return WARNING_LEVEL_ACTIVE_NO_ECALL_SIL_ESC;
        case 10: return WARNING_LEVEL_ACTIVE_NO_ECALL_ESC;
        case 11: return WARNING_LEVEL_ACTIVE_ECALL_NOT_AVAILABLE_SECOND_STAGE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ChildPresenceDetectionWarningLevel>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ChildPresenceDetectionWarningLevel> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ChildPresenceDetectionWarningLevel>() {
            public ChildPresenceDetectionWarningLevel findValueByNumber(int number) {
              return ChildPresenceDetectionWarningLevel.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(1);
    }

    private static final ChildPresenceDetectionWarningLevel[] VALUES = values();

    public static ChildPresenceDetectionWarningLevel valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ChildPresenceDetectionWarningLevel(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.ChildPresenceDetectionWarningLevel)
  }

  /**
   * <pre>
   * Child presence detection warning last event
   * </pre>
   *
   * Protobuf enum {@code proto.ChildPresenceDetectionWarningLastEvent}
   */
  public enum ChildPresenceDetectionWarningLastEvent
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>NO_WARNING_INITIAL = 0;</code>
     */
    NO_WARNING_INITIAL(0),
    /**
     * <code>WARNING_ACTIVE_TEMPERATURE_DECREASE = 1;</code>
     */
    WARNING_ACTIVE_TEMPERATURE_DECREASE(1),
    /**
     * <code>WARNING_ACTIVE_TEMPERATURE_INCREASE = 2;</code>
     */
    WARNING_ACTIVE_TEMPERATURE_INCREASE(2),
    /**
     * <code>WARNING_ACTIVE_BATTERY_LOW = 3;</code>
     */
    WARNING_ACTIVE_BATTERY_LOW(3),
    /**
     * <code>WARNING_ACTIVE_ECALL_SOON = 4;</code>
     */
    WARNING_ACTIVE_ECALL_SOON(4),
    /**
     * <code>WARNING_ACTIVE_ECALL_TRANSMITTED = 5;</code>
     */
    WARNING_ACTIVE_ECALL_TRANSMITTED(5),
    /**
     * <code>WARNING_DEACTIVATED = 6;</code>
     */
    WARNING_DEACTIVATED(6),
    /**
     * <code>NO_WARNING_NO_EVENT = 7;</code>
     */
    NO_WARNING_NO_EVENT(7),
    /**
     * <code>WARNING_DELAYED = 8;</code>
     */
    WARNING_DELAYED(8),
    /**
     * <code>WARNING_DEACTIVATED_BATTERY = 9;</code>
     */
    WARNING_DEACTIVATED_BATTERY(9),
    /**
     * <code>WARNING_DEACTIVATED_ERROR = 10;</code>
     */
    WARNING_DEACTIVATED_ERROR(10),
    /**
     * <code>WARNING_DEACTIVATED_UNLOCK = 11;</code>
     */
    WARNING_DEACTIVATED_UNLOCK(11),
    /**
     * <code>WARNING_ACTIVE_ECALL_NOT_AVAILABLE = 12;</code>
     */
    WARNING_ACTIVE_ECALL_NOT_AVAILABLE(12),
    /**
     * <code>WARNING_ACTIVE_ECALL_NOT_AVAILABLE_PUSH_NOTIFICATION = 13;</code>
     */
    WARNING_ACTIVE_ECALL_NOT_AVAILABLE_PUSH_NOTIFICATION(13),
    /**
     * <code>CAMERA_NOT_AVAILABLE = 14;</code>
     */
    CAMERA_NOT_AVAILABLE(14),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChildPresenceDetectionWarningLastEvent");
    }
    /**
     * <code>NO_WARNING_INITIAL = 0;</code>
     */
    public static final int NO_WARNING_INITIAL_VALUE = 0;
    /**
     * <code>WARNING_ACTIVE_TEMPERATURE_DECREASE = 1;</code>
     */
    public static final int WARNING_ACTIVE_TEMPERATURE_DECREASE_VALUE = 1;
    /**
     * <code>WARNING_ACTIVE_TEMPERATURE_INCREASE = 2;</code>
     */
    public static final int WARNING_ACTIVE_TEMPERATURE_INCREASE_VALUE = 2;
    /**
     * <code>WARNING_ACTIVE_BATTERY_LOW = 3;</code>
     */
    public static final int WARNING_ACTIVE_BATTERY_LOW_VALUE = 3;
    /**
     * <code>WARNING_ACTIVE_ECALL_SOON = 4;</code>
     */
    public static final int WARNING_ACTIVE_ECALL_SOON_VALUE = 4;
    /**
     * <code>WARNING_ACTIVE_ECALL_TRANSMITTED = 5;</code>
     */
    public static final int WARNING_ACTIVE_ECALL_TRANSMITTED_VALUE = 5;
    /**
     * <code>WARNING_DEACTIVATED = 6;</code>
     */
    public static final int WARNING_DEACTIVATED_VALUE = 6;
    /**
     * <code>NO_WARNING_NO_EVENT = 7;</code>
     */
    public static final int NO_WARNING_NO_EVENT_VALUE = 7;
    /**
     * <code>WARNING_DELAYED = 8;</code>
     */
    public static final int WARNING_DELAYED_VALUE = 8;
    /**
     * <code>WARNING_DEACTIVATED_BATTERY = 9;</code>
     */
    public static final int WARNING_DEACTIVATED_BATTERY_VALUE = 9;
    /**
     * <code>WARNING_DEACTIVATED_ERROR = 10;</code>
     */
    public static final int WARNING_DEACTIVATED_ERROR_VALUE = 10;
    /**
     * <code>WARNING_DEACTIVATED_UNLOCK = 11;</code>
     */
    public static final int WARNING_DEACTIVATED_UNLOCK_VALUE = 11;
    /**
     * <code>WARNING_ACTIVE_ECALL_NOT_AVAILABLE = 12;</code>
     */
    public static final int WARNING_ACTIVE_ECALL_NOT_AVAILABLE_VALUE = 12;
    /**
     * <code>WARNING_ACTIVE_ECALL_NOT_AVAILABLE_PUSH_NOTIFICATION = 13;</code>
     */
    public static final int WARNING_ACTIVE_ECALL_NOT_AVAILABLE_PUSH_NOTIFICATION_VALUE = 13;
    /**
     * <code>CAMERA_NOT_AVAILABLE = 14;</code>
     */
    public static final int CAMERA_NOT_AVAILABLE_VALUE = 14;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ChildPresenceDetectionWarningLastEvent valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ChildPresenceDetectionWarningLastEvent forNumber(int value) {
      switch (value) {
        case 0: return NO_WARNING_INITIAL;
        case 1: return WARNING_ACTIVE_TEMPERATURE_DECREASE;
        case 2: return WARNING_ACTIVE_TEMPERATURE_INCREASE;
        case 3: return WARNING_ACTIVE_BATTERY_LOW;
        case 4: return WARNING_ACTIVE_ECALL_SOON;
        case 5: return WARNING_ACTIVE_ECALL_TRANSMITTED;
        case 6: return WARNING_DEACTIVATED;
        case 7: return NO_WARNING_NO_EVENT;
        case 8: return WARNING_DELAYED;
        case 9: return WARNING_DEACTIVATED_BATTERY;
        case 10: return WARNING_DEACTIVATED_ERROR;
        case 11: return WARNING_DEACTIVATED_UNLOCK;
        case 12: return WARNING_ACTIVE_ECALL_NOT_AVAILABLE;
        case 13: return WARNING_ACTIVE_ECALL_NOT_AVAILABLE_PUSH_NOTIFICATION;
        case 14: return CAMERA_NOT_AVAILABLE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ChildPresenceDetectionWarningLastEvent>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ChildPresenceDetectionWarningLastEvent> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ChildPresenceDetectionWarningLastEvent>() {
            public ChildPresenceDetectionWarningLastEvent findValueByNumber(int number) {
              return ChildPresenceDetectionWarningLastEvent.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(2);
    }

    private static final ChildPresenceDetectionWarningLastEvent[] VALUES = values();

    public static ChildPresenceDetectionWarningLastEvent valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ChildPresenceDetectionWarningLastEvent(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.ChildPresenceDetectionWarningLastEvent)
  }

  /**
   * <pre>
   * Keyline activation states for vehicle keys
   * </pre>
   *
   * Protobuf enum {@code proto.KeylineActivationStates}
   */
  public enum KeylineActivationStates
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>UNKNOWN_KEYLINE_ACTIVATION_STATE = 0;</code>
     */
    UNKNOWN_KEYLINE_ACTIVATION_STATE(0),
    /**
     * <code>ALL_ACTIVE = 1;</code>
     */
    ALL_ACTIVE(1),
    /**
     * <code>SELECTIVE_DEACTIVATED = 2;</code>
     */
    SELECTIVE_DEACTIVATED(2),
    /**
     * <code>ALL_DEACTIVATED = 3;</code>
     */
    ALL_DEACTIVATED(3),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "KeylineActivationStates");
    }
    /**
     * <code>UNKNOWN_KEYLINE_ACTIVATION_STATE = 0;</code>
     */
    public static final int UNKNOWN_KEYLINE_ACTIVATION_STATE_VALUE = 0;
    /**
     * <code>ALL_ACTIVE = 1;</code>
     */
    public static final int ALL_ACTIVE_VALUE = 1;
    /**
     * <code>SELECTIVE_DEACTIVATED = 2;</code>
     */
    public static final int SELECTIVE_DEACTIVATED_VALUE = 2;
    /**
     * <code>ALL_DEACTIVATED = 3;</code>
     */
    public static final int ALL_DEACTIVATED_VALUE = 3;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static KeylineActivationStates valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static KeylineActivationStates forNumber(int value) {
      switch (value) {
        case 0: return UNKNOWN_KEYLINE_ACTIVATION_STATE;
        case 1: return ALL_ACTIVE;
        case 2: return SELECTIVE_DEACTIVATED;
        case 3: return ALL_DEACTIVATED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<KeylineActivationStates>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        KeylineActivationStates> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<KeylineActivationStates>() {
            public KeylineActivationStates findValueByNumber(int number) {
              return KeylineActivationStates.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(3);
    }

    private static final KeylineActivationStates[] VALUES = values();

    public static KeylineActivationStates valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private KeylineActivationStates(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.KeylineActivationStates)
  }

  /**
   * <pre>
   * Performance limitation mode status
   * </pre>
   *
   * Protobuf enum {@code proto.PerformanceLimitationModeStatus}
   */
  public enum PerformanceLimitationModeStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>PLM_NO_WARNING = 0;</code>
     */
    PLM_NO_WARNING(0),
    /**
     * <code>SVH_EVENT_MANAGED = 1;</code>
     */
    SVH_EVENT_MANAGED(1),
    /**
     * <code>PLM_REQUESTED = 2;</code>
     */
    PLM_REQUESTED(2),
    /**
     * <code>PLM_SUCCESSFUL_REQUESTED = 3;</code>
     */
    PLM_SUCCESSFUL_REQUESTED(3),
    /**
     * <code>PLM_NOT_AUTHORIZED = 4;</code>
     */
    PLM_NOT_AUTHORIZED(4),
    /**
     * <code>PLM_ERROR = 5;</code>
     */
    PLM_ERROR(5),
    /**
     * <code>PLM_INCAPABLE = 6;</code>
     */
    PLM_INCAPABLE(6),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "PerformanceLimitationModeStatus");
    }
    /**
     * <code>PLM_NO_WARNING = 0;</code>
     */
    public static final int PLM_NO_WARNING_VALUE = 0;
    /**
     * <code>SVH_EVENT_MANAGED = 1;</code>
     */
    public static final int SVH_EVENT_MANAGED_VALUE = 1;
    /**
     * <code>PLM_REQUESTED = 2;</code>
     */
    public static final int PLM_REQUESTED_VALUE = 2;
    /**
     * <code>PLM_SUCCESSFUL_REQUESTED = 3;</code>
     */
    public static final int PLM_SUCCESSFUL_REQUESTED_VALUE = 3;
    /**
     * <code>PLM_NOT_AUTHORIZED = 4;</code>
     */
    public static final int PLM_NOT_AUTHORIZED_VALUE = 4;
    /**
     * <code>PLM_ERROR = 5;</code>
     */
    public static final int PLM_ERROR_VALUE = 5;
    /**
     * <code>PLM_INCAPABLE = 6;</code>
     */
    public static final int PLM_INCAPABLE_VALUE = 6;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static PerformanceLimitationModeStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static PerformanceLimitationModeStatus forNumber(int value) {
      switch (value) {
        case 0: return PLM_NO_WARNING;
        case 1: return SVH_EVENT_MANAGED;
        case 2: return PLM_REQUESTED;
        case 3: return PLM_SUCCESSFUL_REQUESTED;
        case 4: return PLM_NOT_AUTHORIZED;
        case 5: return PLM_ERROR;
        case 6: return PLM_INCAPABLE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<PerformanceLimitationModeStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        PerformanceLimitationModeStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<PerformanceLimitationModeStatus>() {
            public PerformanceLimitationModeStatus findValueByNumber(int number) {
              return PerformanceLimitationModeStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(4);
    }

    private static final PerformanceLimitationModeStatus[] VALUES = values();

    public static PerformanceLimitationModeStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private PerformanceLimitationModeStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.PerformanceLimitationModeStatus)
  }

  /**
   * <pre>
   * Exterior monitoring status
   * </pre>
   *
   * Protobuf enum {@code proto.ExteriorMonitoringStatus}
   */
  public enum ExteriorMonitoringStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>EXM_IDLE = 0;</code>
     */
    EXM_IDLE(0),
    /**
     * <code>EXM_WAKE_UP = 1;</code>
     */
    EXM_WAKE_UP(1),
    /**
     * <code>EXM_REQUEST_SUBMITTED = 2;</code>
     */
    EXM_REQUEST_SUBMITTED(2),
    /**
     * <code>EXM_RECORDING = 3;</code>
     */
    EXM_RECORDING(3),
    /**
     * <code>EXM_ANNOUNCE = 4;</code>
     */
    EXM_ANNOUNCE(4),
    /**
     * <code>EXM_UPLOADING = 5;</code>
     */
    EXM_UPLOADING(5),
    /**
     * <code>EXM_COMPLETED = 6;</code>
     */
    EXM_COMPLETED(6),
    /**
     * <code>EXM_AE_REQUEST_DENIED = 101;</code>
     */
    EXM_AE_REQUEST_DENIED(101),
    /**
     * <code>EXM_AE_INCAPABLE = 106;</code>
     */
    EXM_AE_INCAPABLE(106),
    /**
     * <code>EXM_AE_OVERRULED = 108;</code>
     */
    EXM_AE_OVERRULED(108),
    /**
     * <code>EXM_AE_PLAY_PROTECTION_ACTIVE = 110;</code>
     */
    EXM_AE_PLAY_PROTECTION_ACTIVE(110),
    /**
     * <code>EXM_AE_PRECONDITION_MISSING = 111;</code>
     */
    EXM_AE_PRECONDITION_MISSING(111),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ExteriorMonitoringStatus");
    }
    /**
     * <code>EXM_IDLE = 0;</code>
     */
    public static final int EXM_IDLE_VALUE = 0;
    /**
     * <code>EXM_WAKE_UP = 1;</code>
     */
    public static final int EXM_WAKE_UP_VALUE = 1;
    /**
     * <code>EXM_REQUEST_SUBMITTED = 2;</code>
     */
    public static final int EXM_REQUEST_SUBMITTED_VALUE = 2;
    /**
     * <code>EXM_RECORDING = 3;</code>
     */
    public static final int EXM_RECORDING_VALUE = 3;
    /**
     * <code>EXM_ANNOUNCE = 4;</code>
     */
    public static final int EXM_ANNOUNCE_VALUE = 4;
    /**
     * <code>EXM_UPLOADING = 5;</code>
     */
    public static final int EXM_UPLOADING_VALUE = 5;
    /**
     * <code>EXM_COMPLETED = 6;</code>
     */
    public static final int EXM_COMPLETED_VALUE = 6;
    /**
     * <code>EXM_AE_REQUEST_DENIED = 101;</code>
     */
    public static final int EXM_AE_REQUEST_DENIED_VALUE = 101;
    /**
     * <code>EXM_AE_INCAPABLE = 106;</code>
     */
    public static final int EXM_AE_INCAPABLE_VALUE = 106;
    /**
     * <code>EXM_AE_OVERRULED = 108;</code>
     */
    public static final int EXM_AE_OVERRULED_VALUE = 108;
    /**
     * <code>EXM_AE_PLAY_PROTECTION_ACTIVE = 110;</code>
     */
    public static final int EXM_AE_PLAY_PROTECTION_ACTIVE_VALUE = 110;
    /**
     * <code>EXM_AE_PRECONDITION_MISSING = 111;</code>
     */
    public static final int EXM_AE_PRECONDITION_MISSING_VALUE = 111;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ExteriorMonitoringStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ExteriorMonitoringStatus forNumber(int value) {
      switch (value) {
        case 0: return EXM_IDLE;
        case 1: return EXM_WAKE_UP;
        case 2: return EXM_REQUEST_SUBMITTED;
        case 3: return EXM_RECORDING;
        case 4: return EXM_ANNOUNCE;
        case 5: return EXM_UPLOADING;
        case 6: return EXM_COMPLETED;
        case 101: return EXM_AE_REQUEST_DENIED;
        case 106: return EXM_AE_INCAPABLE;
        case 108: return EXM_AE_OVERRULED;
        case 110: return EXM_AE_PLAY_PROTECTION_ACTIVE;
        case 111: return EXM_AE_PRECONDITION_MISSING;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ExteriorMonitoringStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ExteriorMonitoringStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ExteriorMonitoringStatus>() {
            public ExteriorMonitoringStatus findValueByNumber(int number) {
              return ExteriorMonitoringStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(5);
    }

    private static final ExteriorMonitoringStatus[] VALUES = values();

    public static ExteriorMonitoringStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ExteriorMonitoringStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.ExteriorMonitoringStatus)
  }

  /**
   * <pre>
   * Interior monitoring status
   * </pre>
   *
   * Protobuf enum {@code proto.InteriorMonitoringStatus}
   */
  public enum InteriorMonitoringStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>INM_IDLE = 0;</code>
     */
    INM_IDLE(0),
    /**
     * <code>INM_WAKE_UP = 1;</code>
     */
    INM_WAKE_UP(1),
    /**
     * <code>INM_RECORDING = 2;</code>
     */
    INM_RECORDING(2),
    /**
     * <code>INM_PICTURE_TAKEN = 3;</code>
     */
    INM_PICTURE_TAKEN(3),
    /**
     * <code>INM_ANNOUNCE = 4;</code>
     */
    INM_ANNOUNCE(4),
    /**
     * <code>INM_UPLOADING = 5;</code>
     */
    INM_UPLOADING(5),
    /**
     * <code>INM_COMPLETED = 6;</code>
     */
    INM_COMPLETED(6),
    /**
     * <code>INM_CAMERA_BROKEN = 101;</code>
     */
    INM_CAMERA_BROKEN(101),
    /**
     * <code>INM_MEMORY_FULL = 103;</code>
     */
    INM_MEMORY_FULL(103),
    /**
     * <code>INM_PRIVACY_MODE_ACTIVE = 105;</code>
     */
    INM_PRIVACY_MODE_ACTIVE(105),
    /**
     * <code>INM_PICTURE_TAKING_DISABLED = 106;</code>
     */
    INM_PICTURE_TAKING_DISABLED(106),
    /**
     * <code>INM_ACTIVE_BURSTMODE = 108;</code>
     */
    INM_ACTIVE_BURSTMODE(108),
    /**
     * <code>INM_PICTURE_TAKING_INTERRUPTED = 110;</code>
     */
    INM_PICTURE_TAKING_INTERRUPTED(110),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "InteriorMonitoringStatus");
    }
    /**
     * <code>INM_IDLE = 0;</code>
     */
    public static final int INM_IDLE_VALUE = 0;
    /**
     * <code>INM_WAKE_UP = 1;</code>
     */
    public static final int INM_WAKE_UP_VALUE = 1;
    /**
     * <code>INM_RECORDING = 2;</code>
     */
    public static final int INM_RECORDING_VALUE = 2;
    /**
     * <code>INM_PICTURE_TAKEN = 3;</code>
     */
    public static final int INM_PICTURE_TAKEN_VALUE = 3;
    /**
     * <code>INM_ANNOUNCE = 4;</code>
     */
    public static final int INM_ANNOUNCE_VALUE = 4;
    /**
     * <code>INM_UPLOADING = 5;</code>
     */
    public static final int INM_UPLOADING_VALUE = 5;
    /**
     * <code>INM_COMPLETED = 6;</code>
     */
    public static final int INM_COMPLETED_VALUE = 6;
    /**
     * <code>INM_CAMERA_BROKEN = 101;</code>
     */
    public static final int INM_CAMERA_BROKEN_VALUE = 101;
    /**
     * <code>INM_MEMORY_FULL = 103;</code>
     */
    public static final int INM_MEMORY_FULL_VALUE = 103;
    /**
     * <code>INM_PRIVACY_MODE_ACTIVE = 105;</code>
     */
    public static final int INM_PRIVACY_MODE_ACTIVE_VALUE = 105;
    /**
     * <code>INM_PICTURE_TAKING_DISABLED = 106;</code>
     */
    public static final int INM_PICTURE_TAKING_DISABLED_VALUE = 106;
    /**
     * <code>INM_ACTIVE_BURSTMODE = 108;</code>
     */
    public static final int INM_ACTIVE_BURSTMODE_VALUE = 108;
    /**
     * <code>INM_PICTURE_TAKING_INTERRUPTED = 110;</code>
     */
    public static final int INM_PICTURE_TAKING_INTERRUPTED_VALUE = 110;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static InteriorMonitoringStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static InteriorMonitoringStatus forNumber(int value) {
      switch (value) {
        case 0: return INM_IDLE;
        case 1: return INM_WAKE_UP;
        case 2: return INM_RECORDING;
        case 3: return INM_PICTURE_TAKEN;
        case 4: return INM_ANNOUNCE;
        case 5: return INM_UPLOADING;
        case 6: return INM_COMPLETED;
        case 101: return INM_CAMERA_BROKEN;
        case 103: return INM_MEMORY_FULL;
        case 105: return INM_PRIVACY_MODE_ACTIVE;
        case 106: return INM_PICTURE_TAKING_DISABLED;
        case 108: return INM_ACTIVE_BURSTMODE;
        case 110: return INM_PICTURE_TAKING_INTERRUPTED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<InteriorMonitoringStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        InteriorMonitoringStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<InteriorMonitoringStatus>() {
            public InteriorMonitoringStatus findValueByNumber(int number) {
              return InteriorMonitoringStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(6);
    }

    private static final InteriorMonitoringStatus[] VALUES = values();

    public static InteriorMonitoringStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private InteriorMonitoringStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.InteriorMonitoringStatus)
  }

  /**
   * <pre>
   * Update status for remote updates
   * </pre>
   *
   * Protobuf enum {@code proto.UpdateStatus}
   */
  public enum UpdateStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>UPDATE_STATUS_UNKNOWN = 0;</code>
     */
    UPDATE_STATUS_UNKNOWN(0),
    /**
     * <code>AWAIT_REPROGRAMMING = 1;</code>
     */
    AWAIT_REPROGRAMMING(1),
    /**
     * <code>AWAIT_REPROGRAMMING_STARTABLE = 2;</code>
     */
    AWAIT_REPROGRAMMING_STARTABLE(2),
    /**
     * <code>REPROG_ACTIVE = 3;</code>
     */
    REPROG_ACTIVE(3),
    /**
     * <code>POSTPONED = 4;</code>
     */
    POSTPONED(4),
    /**
     * <code>SUCCESSFUL = 5;</code>
     */
    SUCCESSFUL(5),
    /**
     * <code>FAILURE = 6;</code>
     */
    FAILURE(6),
    /**
     * <code>PANIC = 7;</code>
     */
    PANIC(7),
    /**
     * <code>ERROR = 8;</code>
     */
    ERROR(8),
    /**
     * <code>CONFIRMED_STARTED = 9;</code>
     */
    CONFIRMED_STARTED(9),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "UpdateStatus");
    }
    /**
     * <code>UPDATE_STATUS_UNKNOWN = 0;</code>
     */
    public static final int UPDATE_STATUS_UNKNOWN_VALUE = 0;
    /**
     * <code>AWAIT_REPROGRAMMING = 1;</code>
     */
    public static final int AWAIT_REPROGRAMMING_VALUE = 1;
    /**
     * <code>AWAIT_REPROGRAMMING_STARTABLE = 2;</code>
     */
    public static final int AWAIT_REPROGRAMMING_STARTABLE_VALUE = 2;
    /**
     * <code>REPROG_ACTIVE = 3;</code>
     */
    public static final int REPROG_ACTIVE_VALUE = 3;
    /**
     * <code>POSTPONED = 4;</code>
     */
    public static final int POSTPONED_VALUE = 4;
    /**
     * <code>SUCCESSFUL = 5;</code>
     */
    public static final int SUCCESSFUL_VALUE = 5;
    /**
     * <code>FAILURE = 6;</code>
     */
    public static final int FAILURE_VALUE = 6;
    /**
     * <code>PANIC = 7;</code>
     */
    public static final int PANIC_VALUE = 7;
    /**
     * <code>ERROR = 8;</code>
     */
    public static final int ERROR_VALUE = 8;
    /**
     * <code>CONFIRMED_STARTED = 9;</code>
     */
    public static final int CONFIRMED_STARTED_VALUE = 9;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static UpdateStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static UpdateStatus forNumber(int value) {
      switch (value) {
        case 0: return UPDATE_STATUS_UNKNOWN;
        case 1: return AWAIT_REPROGRAMMING;
        case 2: return AWAIT_REPROGRAMMING_STARTABLE;
        case 3: return REPROG_ACTIVE;
        case 4: return POSTPONED;
        case 5: return SUCCESSFUL;
        case 6: return FAILURE;
        case 7: return PANIC;
        case 8: return ERROR;
        case 9: return CONFIRMED_STARTED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<UpdateStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        UpdateStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<UpdateStatus>() {
            public UpdateStatus findValueByNumber(int number) {
              return UpdateStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(7);
    }

    private static final UpdateStatus[] VALUES = values();

    public static UpdateStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private UpdateStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.UpdateStatus)
  }

  /**
   * <pre>
   * SOH calibration planned status
   * </pre>
   *
   * Protobuf enum {@code proto.SohCalibrationPlanned}
   */
  public enum SohCalibrationPlanned
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>SOH_CALIBRATION_NOT_PLANNED = 0;</code>
     */
    SOH_CALIBRATION_NOT_PLANNED(0),
    /**
     * <code>SOH_CALIBRATION_PLANNED = 1;</code>
     */
    SOH_CALIBRATION_PLANNED(1),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "SohCalibrationPlanned");
    }
    /**
     * <code>SOH_CALIBRATION_NOT_PLANNED = 0;</code>
     */
    public static final int SOH_CALIBRATION_NOT_PLANNED_VALUE = 0;
    /**
     * <code>SOH_CALIBRATION_PLANNED = 1;</code>
     */
    public static final int SOH_CALIBRATION_PLANNED_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SohCalibrationPlanned valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static SohCalibrationPlanned forNumber(int value) {
      switch (value) {
        case 0: return SOH_CALIBRATION_NOT_PLANNED;
        case 1: return SOH_CALIBRATION_PLANNED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SohCalibrationPlanned>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SohCalibrationPlanned> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SohCalibrationPlanned>() {
            public SohCalibrationPlanned findValueByNumber(int number) {
              return SohCalibrationPlanned.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(8);
    }

    private static final SohCalibrationPlanned[] VALUES = values();

    public static SohCalibrationPlanned valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private SohCalibrationPlanned(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.SohCalibrationPlanned)
  }

  /**
   * <pre>
   * DC charging profile
   * </pre>
   *
   * Protobuf enum {@code proto.DcChargingProfile}
   */
  public enum DcChargingProfile
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>DC_CHARGING_PROFILE_UNKNOWN = 0;</code>
     */
    DC_CHARGING_PROFILE_UNKNOWN(0),
    /**
     * <code>DC_CHARGING_PROFILE_STANDARD = 1;</code>
     */
    DC_CHARGING_PROFILE_STANDARD(1),
    /**
     * <code>DC_CHARGING_PROFILE_SILENT_OR_ECO = 2;</code>
     */
    DC_CHARGING_PROFILE_SILENT_OR_ECO(2),
    /**
     * <code>DC_CHARGING_PROFILE_ULTRAFAST = 3;</code>
     */
    DC_CHARGING_PROFILE_ULTRAFAST(3),
    /**
     * <code>DC_CHARGING_PROFILE_PITSTOP = 4;</code>
     */
    DC_CHARGING_PROFILE_PITSTOP(4),
    /**
     * <code>DC_CHARGING_PROFILE_FAST_ECO_1 = 5;</code>
     */
    DC_CHARGING_PROFILE_FAST_ECO_1(5),
    /**
     * <code>DC_CHARGING_PROFILE_FAST_ECO_2 = 6;</code>
     */
    DC_CHARGING_PROFILE_FAST_ECO_2(6),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "DcChargingProfile");
    }
    /**
     * <code>DC_CHARGING_PROFILE_UNKNOWN = 0;</code>
     */
    public static final int DC_CHARGING_PROFILE_UNKNOWN_VALUE = 0;
    /**
     * <code>DC_CHARGING_PROFILE_STANDARD = 1;</code>
     */
    public static final int DC_CHARGING_PROFILE_STANDARD_VALUE = 1;
    /**
     * <code>DC_CHARGING_PROFILE_SILENT_OR_ECO = 2;</code>
     */
    public static final int DC_CHARGING_PROFILE_SILENT_OR_ECO_VALUE = 2;
    /**
     * <code>DC_CHARGING_PROFILE_ULTRAFAST = 3;</code>
     */
    public static final int DC_CHARGING_PROFILE_ULTRAFAST_VALUE = 3;
    /**
     * <code>DC_CHARGING_PROFILE_PITSTOP = 4;</code>
     */
    public static final int DC_CHARGING_PROFILE_PITSTOP_VALUE = 4;
    /**
     * <code>DC_CHARGING_PROFILE_FAST_ECO_1 = 5;</code>
     */
    public static final int DC_CHARGING_PROFILE_FAST_ECO_1_VALUE = 5;
    /**
     * <code>DC_CHARGING_PROFILE_FAST_ECO_2 = 6;</code>
     */
    public static final int DC_CHARGING_PROFILE_FAST_ECO_2_VALUE = 6;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static DcChargingProfile valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static DcChargingProfile forNumber(int value) {
      switch (value) {
        case 0: return DC_CHARGING_PROFILE_UNKNOWN;
        case 1: return DC_CHARGING_PROFILE_STANDARD;
        case 2: return DC_CHARGING_PROFILE_SILENT_OR_ECO;
        case 3: return DC_CHARGING_PROFILE_ULTRAFAST;
        case 4: return DC_CHARGING_PROFILE_PITSTOP;
        case 5: return DC_CHARGING_PROFILE_FAST_ECO_1;
        case 6: return DC_CHARGING_PROFILE_FAST_ECO_2;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<DcChargingProfile>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        DcChargingProfile> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<DcChargingProfile>() {
            public DcChargingProfile findValueByNumber(int number) {
              return DcChargingProfile.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(9);
    }

    private static final DcChargingProfile[] VALUES = values();

    public static DcChargingProfile valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private DcChargingProfile(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.DcChargingProfile)
  }

  /**
   * <pre>
   * Park event picture transmission status
   * </pre>
   *
   * Protobuf enum {@code proto.ParkEventPictureTransmissionStatus}
   */
  public enum ParkEventPictureTransmissionStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>PARK_EVENT_PICTURE_TRANSMISSION_STATUS_IDLE = 0;</code>
     */
    PARK_EVENT_PICTURE_TRANSMISSION_STATUS_IDLE(0),
    /**
     * <code>PARK_EVENT_PICTURE_TRANSMISSION_STATUS_WAKE_UP = 1;</code>
     */
    PARK_EVENT_PICTURE_TRANSMISSION_STATUS_WAKE_UP(1),
    /**
     * <code>PARK_EVENT_PICTURE_TRANSMISSION_STATUS_REQUEST_SUBMITTED = 2;</code>
     */
    PARK_EVENT_PICTURE_TRANSMISSION_STATUS_REQUEST_SUBMITTED(2),
    /**
     * <code>PARK_EVENT_PICTURE_TRANSMISSION_STATUS_RECORDING = 3;</code>
     */
    PARK_EVENT_PICTURE_TRANSMISSION_STATUS_RECORDING(3),
    /**
     * <code>PARK_EVENT_PICTURE_TRANSMISSION_STATUS_ANNOUNCE = 4;</code>
     */
    PARK_EVENT_PICTURE_TRANSMISSION_STATUS_ANNOUNCE(4),
    /**
     * <code>PARK_EVENT_PICTURE_TRANSMISSION_STATUS_UPLOADING = 5;</code>
     */
    PARK_EVENT_PICTURE_TRANSMISSION_STATUS_UPLOADING(5),
    /**
     * <code>PARK_EVENT_PICTURE_TRANSMISSION_STATUS_COMPLETED = 6;</code>
     */
    PARK_EVENT_PICTURE_TRANSMISSION_STATUS_COMPLETED(6),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ParkEventPictureTransmissionStatus");
    }
    /**
     * <code>PARK_EVENT_PICTURE_TRANSMISSION_STATUS_IDLE = 0;</code>
     */
    public static final int PARK_EVENT_PICTURE_TRANSMISSION_STATUS_IDLE_VALUE = 0;
    /**
     * <code>PARK_EVENT_PICTURE_TRANSMISSION_STATUS_WAKE_UP = 1;</code>
     */
    public static final int PARK_EVENT_PICTURE_TRANSMISSION_STATUS_WAKE_UP_VALUE = 1;
    /**
     * <code>PARK_EVENT_PICTURE_TRANSMISSION_STATUS_REQUEST_SUBMITTED = 2;</code>
     */
    public static final int PARK_EVENT_PICTURE_TRANSMISSION_STATUS_REQUEST_SUBMITTED_VALUE = 2;
    /**
     * <code>PARK_EVENT_PICTURE_TRANSMISSION_STATUS_RECORDING = 3;</code>
     */
    public static final int PARK_EVENT_PICTURE_TRANSMISSION_STATUS_RECORDING_VALUE = 3;
    /**
     * <code>PARK_EVENT_PICTURE_TRANSMISSION_STATUS_ANNOUNCE = 4;</code>
     */
    public static final int PARK_EVENT_PICTURE_TRANSMISSION_STATUS_ANNOUNCE_VALUE = 4;
    /**
     * <code>PARK_EVENT_PICTURE_TRANSMISSION_STATUS_UPLOADING = 5;</code>
     */
    public static final int PARK_EVENT_PICTURE_TRANSMISSION_STATUS_UPLOADING_VALUE = 5;
    /**
     * <code>PARK_EVENT_PICTURE_TRANSMISSION_STATUS_COMPLETED = 6;</code>
     */
    public static final int PARK_EVENT_PICTURE_TRANSMISSION_STATUS_COMPLETED_VALUE = 6;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ParkEventPictureTransmissionStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ParkEventPictureTransmissionStatus forNumber(int value) {
      switch (value) {
        case 0: return PARK_EVENT_PICTURE_TRANSMISSION_STATUS_IDLE;
        case 1: return PARK_EVENT_PICTURE_TRANSMISSION_STATUS_WAKE_UP;
        case 2: return PARK_EVENT_PICTURE_TRANSMISSION_STATUS_REQUEST_SUBMITTED;
        case 3: return PARK_EVENT_PICTURE_TRANSMISSION_STATUS_RECORDING;
        case 4: return PARK_EVENT_PICTURE_TRANSMISSION_STATUS_ANNOUNCE;
        case 5: return PARK_EVENT_PICTURE_TRANSMISSION_STATUS_UPLOADING;
        case 6: return PARK_EVENT_PICTURE_TRANSMISSION_STATUS_COMPLETED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ParkEventPictureTransmissionStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ParkEventPictureTransmissionStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ParkEventPictureTransmissionStatus>() {
            public ParkEventPictureTransmissionStatus findValueByNumber(int number) {
              return ParkEventPictureTransmissionStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(10);
    }

    private static final ParkEventPictureTransmissionStatus[] VALUES = values();

    public static ParkEventPictureTransmissionStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ParkEventPictureTransmissionStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.ParkEventPictureTransmissionStatus)
  }

  /**
   * <pre>
   * Charging schedule use case ID (non-deprecated version)
   * </pre>
   *
   * Protobuf enum {@code proto.ChargingScheduleUseCaseId}
   */
  public enum ChargingScheduleUseCaseId
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_SMART_CHARGING = 0;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_SMART_CHARGING(0),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_MERCEDES_INTELLIGENT_CHARGING = 1;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_MERCEDES_INTELLIGENT_CHARGING(1),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_BETA_COMMUNITY_CHARGING = 2;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_BETA_COMMUNITY_CHARGING(2),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_SOLAR_CHARGING = 10;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_SOLAR_CHARGING(10),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_GREEN_CHARGING = 11;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_GREEN_CHARGING(11),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_EFFICIENT_CHARGING = 12;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_EFFICIENT_CHARGING(12),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_ECO_FRIENDLY_CHARGING = 13;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_ECO_FRIENDLY_CHARGING(13),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_SUSTAINABLE_CHARGING = 14;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_SUSTAINABLE_CHARGING(14),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_INTELLIGENT_CHARGING = 15;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_INTELLIGENT_CHARGING(15),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_WORKPLACE_CHARGING_PLAN = 16;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_WORKPLACE_CHARGING_PLAN(16),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_HOME_CHARGING_PLAN = 17;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_HOME_CHARGING_PLAN(17),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_FLEET_MANAGED_CHARGING = 18;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_FLEET_MANAGED_CHARGING(18),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_PRICE_OPTIMIZED_CHARGING = 19;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_PRICE_OPTIMIZED_CHARGING(19),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_BATTERY_FRIENDLY_CHARGING = 20;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_BATTERY_FRIENDLY_CHARGING(20),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_EXTERNAL_NOISE_OPTIMIZED_CHARGING = 21;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_EXTERNAL_NOISE_OPTIMIZED_CHARGING(21),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_VIDEO_WATCHING_OPTIMIZED_CHARGING = 22;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_VIDEO_WATCHING_OPTIMIZED_CHARGING(22),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_TIME_CONTROLLED_CHARGING = 23;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_TIME_CONTROLLED_CHARGING(23),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_PEAK_SHAVING_CHARGING = 24;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_PEAK_SHAVING_CHARGING(24),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_DYNAMIC_LOAD_BALANCED_CHARGING = 25;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_DYNAMIC_LOAD_BALANCED_CHARGING(25),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_BUSINESS_SPECIFIC_CHARGING = 26;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_BUSINESS_SPECIFIC_CHARGING(26),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_PREFERRED_CHARGING_TIMES = 27;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_PREFERRED_CHARGING_TIMES(27),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_ENPAL = 100;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_ENPAL(100),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_TIBBER = 101;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_TIBBER(101),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_THE_MOBILITY_HOUSE = 102;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_THE_MOBILITY_HOUSE(102),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_AWATTAR = 103;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_AWATTAR(103),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_TRONITY = 104;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_TRONITY(104),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_DPD = 200;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_DPD(200),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_DEUTSCHE_POST = 201;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_DEUTSCHE_POST(201),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_HACKATHON = 250;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_HACKATHON(250),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_SANDBOX_MODE = 251;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_SANDBOX_MODE(251),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_DEVELOPER_MODE = 252;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_DEVELOPER_MODE(252),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_TEST_MODE = 253;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_TEST_MODE(253),
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_DEBUG_MODE = 254;</code>
     */
    CHARGING_SCHEDULE_USE_CASE_ID_DEBUG_MODE(254),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargingScheduleUseCaseId");
    }
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_SMART_CHARGING = 0;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_SMART_CHARGING_VALUE = 0;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_MERCEDES_INTELLIGENT_CHARGING = 1;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_MERCEDES_INTELLIGENT_CHARGING_VALUE = 1;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_BETA_COMMUNITY_CHARGING = 2;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_BETA_COMMUNITY_CHARGING_VALUE = 2;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_SOLAR_CHARGING = 10;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_SOLAR_CHARGING_VALUE = 10;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_GREEN_CHARGING = 11;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_GREEN_CHARGING_VALUE = 11;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_EFFICIENT_CHARGING = 12;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_EFFICIENT_CHARGING_VALUE = 12;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_ECO_FRIENDLY_CHARGING = 13;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_ECO_FRIENDLY_CHARGING_VALUE = 13;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_SUSTAINABLE_CHARGING = 14;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_SUSTAINABLE_CHARGING_VALUE = 14;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_INTELLIGENT_CHARGING = 15;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_INTELLIGENT_CHARGING_VALUE = 15;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_WORKPLACE_CHARGING_PLAN = 16;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_WORKPLACE_CHARGING_PLAN_VALUE = 16;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_HOME_CHARGING_PLAN = 17;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_HOME_CHARGING_PLAN_VALUE = 17;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_FLEET_MANAGED_CHARGING = 18;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_FLEET_MANAGED_CHARGING_VALUE = 18;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_PRICE_OPTIMIZED_CHARGING = 19;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_PRICE_OPTIMIZED_CHARGING_VALUE = 19;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_BATTERY_FRIENDLY_CHARGING = 20;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_BATTERY_FRIENDLY_CHARGING_VALUE = 20;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_EXTERNAL_NOISE_OPTIMIZED_CHARGING = 21;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_EXTERNAL_NOISE_OPTIMIZED_CHARGING_VALUE = 21;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_VIDEO_WATCHING_OPTIMIZED_CHARGING = 22;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_VIDEO_WATCHING_OPTIMIZED_CHARGING_VALUE = 22;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_TIME_CONTROLLED_CHARGING = 23;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_TIME_CONTROLLED_CHARGING_VALUE = 23;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_PEAK_SHAVING_CHARGING = 24;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_PEAK_SHAVING_CHARGING_VALUE = 24;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_DYNAMIC_LOAD_BALANCED_CHARGING = 25;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_DYNAMIC_LOAD_BALANCED_CHARGING_VALUE = 25;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_BUSINESS_SPECIFIC_CHARGING = 26;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_BUSINESS_SPECIFIC_CHARGING_VALUE = 26;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_PREFERRED_CHARGING_TIMES = 27;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_PREFERRED_CHARGING_TIMES_VALUE = 27;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_ENPAL = 100;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_ENPAL_VALUE = 100;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_TIBBER = 101;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_TIBBER_VALUE = 101;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_THE_MOBILITY_HOUSE = 102;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_THE_MOBILITY_HOUSE_VALUE = 102;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_AWATTAR = 103;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_AWATTAR_VALUE = 103;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_TRONITY = 104;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_TRONITY_VALUE = 104;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_DPD = 200;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_DPD_VALUE = 200;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_DEUTSCHE_POST = 201;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_DEUTSCHE_POST_VALUE = 201;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_HACKATHON = 250;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_HACKATHON_VALUE = 250;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_SANDBOX_MODE = 251;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_SANDBOX_MODE_VALUE = 251;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_DEVELOPER_MODE = 252;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_DEVELOPER_MODE_VALUE = 252;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_TEST_MODE = 253;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_TEST_MODE_VALUE = 253;
    /**
     * <code>CHARGING_SCHEDULE_USE_CASE_ID_DEBUG_MODE = 254;</code>
     */
    public static final int CHARGING_SCHEDULE_USE_CASE_ID_DEBUG_MODE_VALUE = 254;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ChargingScheduleUseCaseId valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ChargingScheduleUseCaseId forNumber(int value) {
      switch (value) {
        case 0: return CHARGING_SCHEDULE_USE_CASE_ID_SMART_CHARGING;
        case 1: return CHARGING_SCHEDULE_USE_CASE_ID_MERCEDES_INTELLIGENT_CHARGING;
        case 2: return CHARGING_SCHEDULE_USE_CASE_ID_BETA_COMMUNITY_CHARGING;
        case 10: return CHARGING_SCHEDULE_USE_CASE_ID_SOLAR_CHARGING;
        case 11: return CHARGING_SCHEDULE_USE_CASE_ID_GREEN_CHARGING;
        case 12: return CHARGING_SCHEDULE_USE_CASE_ID_EFFICIENT_CHARGING;
        case 13: return CHARGING_SCHEDULE_USE_CASE_ID_ECO_FRIENDLY_CHARGING;
        case 14: return CHARGING_SCHEDULE_USE_CASE_ID_SUSTAINABLE_CHARGING;
        case 15: return CHARGING_SCHEDULE_USE_CASE_ID_INTELLIGENT_CHARGING;
        case 16: return CHARGING_SCHEDULE_USE_CASE_ID_WORKPLACE_CHARGING_PLAN;
        case 17: return CHARGING_SCHEDULE_USE_CASE_ID_HOME_CHARGING_PLAN;
        case 18: return CHARGING_SCHEDULE_USE_CASE_ID_FLEET_MANAGED_CHARGING;
        case 19: return CHARGING_SCHEDULE_USE_CASE_ID_PRICE_OPTIMIZED_CHARGING;
        case 20: return CHARGING_SCHEDULE_USE_CASE_ID_BATTERY_FRIENDLY_CHARGING;
        case 21: return CHARGING_SCHEDULE_USE_CASE_ID_EXTERNAL_NOISE_OPTIMIZED_CHARGING;
        case 22: return CHARGING_SCHEDULE_USE_CASE_ID_VIDEO_WATCHING_OPTIMIZED_CHARGING;
        case 23: return CHARGING_SCHEDULE_USE_CASE_ID_TIME_CONTROLLED_CHARGING;
        case 24: return CHARGING_SCHEDULE_USE_CASE_ID_PEAK_SHAVING_CHARGING;
        case 25: return CHARGING_SCHEDULE_USE_CASE_ID_DYNAMIC_LOAD_BALANCED_CHARGING;
        case 26: return CHARGING_SCHEDULE_USE_CASE_ID_BUSINESS_SPECIFIC_CHARGING;
        case 27: return CHARGING_SCHEDULE_USE_CASE_ID_PREFERRED_CHARGING_TIMES;
        case 100: return CHARGING_SCHEDULE_USE_CASE_ID_ENPAL;
        case 101: return CHARGING_SCHEDULE_USE_CASE_ID_TIBBER;
        case 102: return CHARGING_SCHEDULE_USE_CASE_ID_THE_MOBILITY_HOUSE;
        case 103: return CHARGING_SCHEDULE_USE_CASE_ID_AWATTAR;
        case 104: return CHARGING_SCHEDULE_USE_CASE_ID_TRONITY;
        case 200: return CHARGING_SCHEDULE_USE_CASE_ID_DPD;
        case 201: return CHARGING_SCHEDULE_USE_CASE_ID_DEUTSCHE_POST;
        case 250: return CHARGING_SCHEDULE_USE_CASE_ID_HACKATHON;
        case 251: return CHARGING_SCHEDULE_USE_CASE_ID_SANDBOX_MODE;
        case 252: return CHARGING_SCHEDULE_USE_CASE_ID_DEVELOPER_MODE;
        case 253: return CHARGING_SCHEDULE_USE_CASE_ID_TEST_MODE;
        case 254: return CHARGING_SCHEDULE_USE_CASE_ID_DEBUG_MODE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ChargingScheduleUseCaseId>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ChargingScheduleUseCaseId> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ChargingScheduleUseCaseId>() {
            public ChargingScheduleUseCaseId findValueByNumber(int number) {
              return ChargingScheduleUseCaseId.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(11);
    }

    private static final ChargingScheduleUseCaseId[] VALUES = values();

    public static ChargingScheduleUseCaseId valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ChargingScheduleUseCaseId(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.ChargingScheduleUseCaseId)
  }

  /**
   * <pre>
   * Schedule ID status
   * </pre>
   *
   * Protobuf enum {@code proto.ScheduleIdStatus}
   */
  public enum ScheduleIdStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>SCHEDULE_ID_STATUS_INITIAL = 0;</code>
     */
    SCHEDULE_ID_STATUS_INITIAL(0),
    /**
     * <code>SCHEDULE_ID_STATUS_DELETED = 210;</code>
     */
    SCHEDULE_ID_STATUS_DELETED(210),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ScheduleIdStatus");
    }
    /**
     * <code>SCHEDULE_ID_STATUS_INITIAL = 0;</code>
     */
    public static final int SCHEDULE_ID_STATUS_INITIAL_VALUE = 0;
    /**
     * <code>SCHEDULE_ID_STATUS_DELETED = 210;</code>
     */
    public static final int SCHEDULE_ID_STATUS_DELETED_VALUE = 210;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ScheduleIdStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ScheduleIdStatus forNumber(int value) {
      switch (value) {
        case 0: return SCHEDULE_ID_STATUS_INITIAL;
        case 210: return SCHEDULE_ID_STATUS_DELETED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ScheduleIdStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ScheduleIdStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ScheduleIdStatus>() {
            public ScheduleIdStatus findValueByNumber(int number) {
              return ScheduleIdStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(12);
    }

    private static final ScheduleIdStatus[] VALUES = values();

    public static ScheduleIdStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ScheduleIdStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.ScheduleIdStatus)
  }

  /**
   * Protobuf enum {@code proto.SocCalibrationRequest}
   */
  public enum SocCalibrationRequest
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>SOC_CALIBRATION_REQUEST_NO_REQUEST = 0;</code>
     */
    SOC_CALIBRATION_REQUEST_NO_REQUEST(0),
    /**
     * <code>SOC_CALIBRATION_REQUEST_LOW_REQUEST = 1;</code>
     */
    SOC_CALIBRATION_REQUEST_LOW_REQUEST(1),
    /**
     * <code>SOC_CALIBRATION_REQUEST_HIGH_REQUEST = 2;</code>
     */
    SOC_CALIBRATION_REQUEST_HIGH_REQUEST(2),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "SocCalibrationRequest");
    }
    /**
     * <code>SOC_CALIBRATION_REQUEST_NO_REQUEST = 0;</code>
     */
    public static final int SOC_CALIBRATION_REQUEST_NO_REQUEST_VALUE = 0;
    /**
     * <code>SOC_CALIBRATION_REQUEST_LOW_REQUEST = 1;</code>
     */
    public static final int SOC_CALIBRATION_REQUEST_LOW_REQUEST_VALUE = 1;
    /**
     * <code>SOC_CALIBRATION_REQUEST_HIGH_REQUEST = 2;</code>
     */
    public static final int SOC_CALIBRATION_REQUEST_HIGH_REQUEST_VALUE = 2;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SocCalibrationRequest valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static SocCalibrationRequest forNumber(int value) {
      switch (value) {
        case 0: return SOC_CALIBRATION_REQUEST_NO_REQUEST;
        case 1: return SOC_CALIBRATION_REQUEST_LOW_REQUEST;
        case 2: return SOC_CALIBRATION_REQUEST_HIGH_REQUEST;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SocCalibrationRequest>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SocCalibrationRequest> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SocCalibrationRequest>() {
            public SocCalibrationRequest findValueByNumber(int number) {
              return SocCalibrationRequest.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(13);
    }

    private static final SocCalibrationRequest[] VALUES = values();

    public static SocCalibrationRequest valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private SocCalibrationRequest(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.SocCalibrationRequest)
  }

  /**
   * Protobuf enum {@code proto.SohFavorableConditions}
   */
  public enum SohFavorableConditions
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>SOH_FAVORABLE_CONDITIONS_NOT_FAVORABLE = 0;</code>
     */
    SOH_FAVORABLE_CONDITIONS_NOT_FAVORABLE(0),
    /**
     * <code>SOH_FAVORABLE_CONDITIONS_FAVOURABLE_LEVEL_1 = 1;</code>
     */
    SOH_FAVORABLE_CONDITIONS_FAVOURABLE_LEVEL_1(1),
    /**
     * <code>SOH_FAVORABLE_CONDITIONS_FAVOURABLE_LEVEL_2 = 2;</code>
     */
    SOH_FAVORABLE_CONDITIONS_FAVOURABLE_LEVEL_2(2),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "SohFavorableConditions");
    }
    /**
     * <code>SOH_FAVORABLE_CONDITIONS_NOT_FAVORABLE = 0;</code>
     */
    public static final int SOH_FAVORABLE_CONDITIONS_NOT_FAVORABLE_VALUE = 0;
    /**
     * <code>SOH_FAVORABLE_CONDITIONS_FAVOURABLE_LEVEL_1 = 1;</code>
     */
    public static final int SOH_FAVORABLE_CONDITIONS_FAVOURABLE_LEVEL_1_VALUE = 1;
    /**
     * <code>SOH_FAVORABLE_CONDITIONS_FAVOURABLE_LEVEL_2 = 2;</code>
     */
    public static final int SOH_FAVORABLE_CONDITIONS_FAVOURABLE_LEVEL_2_VALUE = 2;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SohFavorableConditions valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static SohFavorableConditions forNumber(int value) {
      switch (value) {
        case 0: return SOH_FAVORABLE_CONDITIONS_NOT_FAVORABLE;
        case 1: return SOH_FAVORABLE_CONDITIONS_FAVOURABLE_LEVEL_1;
        case 2: return SOH_FAVORABLE_CONDITIONS_FAVOURABLE_LEVEL_2;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SohFavorableConditions>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SohFavorableConditions> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SohFavorableConditions>() {
            public SohFavorableConditions findValueByNumber(int number) {
              return SohFavorableConditions.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(14);
    }

    private static final SohFavorableConditions[] VALUES = values();

    public static SohFavorableConditions valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private SohFavorableConditions(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.SohFavorableConditions)
  }

  /**
   * Protobuf enum {@code proto.ChargingStopErrorDetails}
   */
  public enum ChargingStopErrorDetails
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>CHARGING_STOP_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE = 0;</code>
     */
    CHARGING_STOP_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE(0),
    /**
     * <code>CHARGING_STOP_ERROR_DETAILS_CHARGE_STOP_BUTTON_DEFECT = 1;</code>
     */
    CHARGING_STOP_ERROR_DETAILS_CHARGE_STOP_BUTTON_DEFECT(1),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargingStopErrorDetails");
    }
    /**
     * <code>CHARGING_STOP_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE = 0;</code>
     */
    public static final int CHARGING_STOP_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE_VALUE = 0;
    /**
     * <code>CHARGING_STOP_ERROR_DETAILS_CHARGE_STOP_BUTTON_DEFECT = 1;</code>
     */
    public static final int CHARGING_STOP_ERROR_DETAILS_CHARGE_STOP_BUTTON_DEFECT_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ChargingStopErrorDetails valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ChargingStopErrorDetails forNumber(int value) {
      switch (value) {
        case 0: return CHARGING_STOP_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE;
        case 1: return CHARGING_STOP_ERROR_DETAILS_CHARGE_STOP_BUTTON_DEFECT;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ChargingStopErrorDetails>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ChargingStopErrorDetails> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ChargingStopErrorDetails>() {
            public ChargingStopErrorDetails findValueByNumber(int number) {
              return ChargingStopErrorDetails.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(15);
    }

    private static final ChargingStopErrorDetails[] VALUES = values();

    public static ChargingStopErrorDetails valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ChargingStopErrorDetails(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.ChargingStopErrorDetails)
  }

  /**
   * Protobuf enum {@code proto.SohCalibrationState}
   */
  public enum SohCalibrationState
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>SOH_CALIBRATION_STATE_NOT_ACTIVE = 0;</code>
     */
    SOH_CALIBRATION_STATE_NOT_ACTIVE(0),
    /**
     * <code>SOH_CALIBRATION_STATE_ACTIVE = 1;</code>
     */
    SOH_CALIBRATION_STATE_ACTIVE(1),
    /**
     * <code>SOH_CALIBRATION_STATE_SUCCESSFUL = 2;</code>
     */
    SOH_CALIBRATION_STATE_SUCCESSFUL(2),
    /**
     * <code>SOH_CALIBRATION_STATE_BMS_UNDEFINED_ERROR = 3;</code>
     */
    SOH_CALIBRATION_STATE_BMS_UNDEFINED_ERROR(3),
    /**
     * <code>SOH_CALIBRATION_STATE_BMS_TEMPERATURE_ERROR = 4;</code>
     */
    SOH_CALIBRATION_STATE_BMS_TEMPERATURE_ERROR(4),
    /**
     * <code>SOH_CALIBRATION_STATE_NO_CUSTOMER_PERMISSION_ERROR = 5;</code>
     */
    SOH_CALIBRATION_STATE_NO_CUSTOMER_PERMISSION_ERROR(5),
    /**
     * <code>SOH_CALIBRATION_STATE_NOT_ENOUGH_TIME_UNTIL_DEPARTURE_ERROR = 6;</code>
     */
    SOH_CALIBRATION_STATE_NOT_ENOUGH_TIME_UNTIL_DEPARTURE_ERROR(6),
    /**
     * <code>SOH_CALIBRATION_STATE_USER_CANCELLED_ERROR = 7;</code>
     */
    SOH_CALIBRATION_STATE_USER_CANCELLED_ERROR(7),
    /**
     * <code>SOH_CALIBRATION_STATE_CHARGING_PROCESS_CANCELLED_ERROR = 8;</code>
     */
    SOH_CALIBRATION_STATE_CHARGING_PROCESS_CANCELLED_ERROR(8),
    /**
     * <code>SOH_CALIBRATION_STATE_CHARGING_INFRASTRUCTURE_PROTOCOL_ERROR = 9;</code>
     */
    SOH_CALIBRATION_STATE_CHARGING_INFRASTRUCTURE_PROTOCOL_ERROR(9),
    /**
     * <code>SOH_CALIBRATION_STATE_CHARGING_INFRASTRUCTURE_POWER_REDUCTION_ERROR = 10;</code>
     */
    SOH_CALIBRATION_STATE_CHARGING_INFRASTRUCTURE_POWER_REDUCTION_ERROR(10),
    /**
     * <code>SOH_CALIBRATION_STATE_UNDEFINED_ERROR = 11;</code>
     */
    SOH_CALIBRATION_STATE_UNDEFINED_ERROR(11),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "SohCalibrationState");
    }
    /**
     * <code>SOH_CALIBRATION_STATE_NOT_ACTIVE = 0;</code>
     */
    public static final int SOH_CALIBRATION_STATE_NOT_ACTIVE_VALUE = 0;
    /**
     * <code>SOH_CALIBRATION_STATE_ACTIVE = 1;</code>
     */
    public static final int SOH_CALIBRATION_STATE_ACTIVE_VALUE = 1;
    /**
     * <code>SOH_CALIBRATION_STATE_SUCCESSFUL = 2;</code>
     */
    public static final int SOH_CALIBRATION_STATE_SUCCESSFUL_VALUE = 2;
    /**
     * <code>SOH_CALIBRATION_STATE_BMS_UNDEFINED_ERROR = 3;</code>
     */
    public static final int SOH_CALIBRATION_STATE_BMS_UNDEFINED_ERROR_VALUE = 3;
    /**
     * <code>SOH_CALIBRATION_STATE_BMS_TEMPERATURE_ERROR = 4;</code>
     */
    public static final int SOH_CALIBRATION_STATE_BMS_TEMPERATURE_ERROR_VALUE = 4;
    /**
     * <code>SOH_CALIBRATION_STATE_NO_CUSTOMER_PERMISSION_ERROR = 5;</code>
     */
    public static final int SOH_CALIBRATION_STATE_NO_CUSTOMER_PERMISSION_ERROR_VALUE = 5;
    /**
     * <code>SOH_CALIBRATION_STATE_NOT_ENOUGH_TIME_UNTIL_DEPARTURE_ERROR = 6;</code>
     */
    public static final int SOH_CALIBRATION_STATE_NOT_ENOUGH_TIME_UNTIL_DEPARTURE_ERROR_VALUE = 6;
    /**
     * <code>SOH_CALIBRATION_STATE_USER_CANCELLED_ERROR = 7;</code>
     */
    public static final int SOH_CALIBRATION_STATE_USER_CANCELLED_ERROR_VALUE = 7;
    /**
     * <code>SOH_CALIBRATION_STATE_CHARGING_PROCESS_CANCELLED_ERROR = 8;</code>
     */
    public static final int SOH_CALIBRATION_STATE_CHARGING_PROCESS_CANCELLED_ERROR_VALUE = 8;
    /**
     * <code>SOH_CALIBRATION_STATE_CHARGING_INFRASTRUCTURE_PROTOCOL_ERROR = 9;</code>
     */
    public static final int SOH_CALIBRATION_STATE_CHARGING_INFRASTRUCTURE_PROTOCOL_ERROR_VALUE = 9;
    /**
     * <code>SOH_CALIBRATION_STATE_CHARGING_INFRASTRUCTURE_POWER_REDUCTION_ERROR = 10;</code>
     */
    public static final int SOH_CALIBRATION_STATE_CHARGING_INFRASTRUCTURE_POWER_REDUCTION_ERROR_VALUE = 10;
    /**
     * <code>SOH_CALIBRATION_STATE_UNDEFINED_ERROR = 11;</code>
     */
    public static final int SOH_CALIBRATION_STATE_UNDEFINED_ERROR_VALUE = 11;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SohCalibrationState valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static SohCalibrationState forNumber(int value) {
      switch (value) {
        case 0: return SOH_CALIBRATION_STATE_NOT_ACTIVE;
        case 1: return SOH_CALIBRATION_STATE_ACTIVE;
        case 2: return SOH_CALIBRATION_STATE_SUCCESSFUL;
        case 3: return SOH_CALIBRATION_STATE_BMS_UNDEFINED_ERROR;
        case 4: return SOH_CALIBRATION_STATE_BMS_TEMPERATURE_ERROR;
        case 5: return SOH_CALIBRATION_STATE_NO_CUSTOMER_PERMISSION_ERROR;
        case 6: return SOH_CALIBRATION_STATE_NOT_ENOUGH_TIME_UNTIL_DEPARTURE_ERROR;
        case 7: return SOH_CALIBRATION_STATE_USER_CANCELLED_ERROR;
        case 8: return SOH_CALIBRATION_STATE_CHARGING_PROCESS_CANCELLED_ERROR;
        case 9: return SOH_CALIBRATION_STATE_CHARGING_INFRASTRUCTURE_PROTOCOL_ERROR;
        case 10: return SOH_CALIBRATION_STATE_CHARGING_INFRASTRUCTURE_POWER_REDUCTION_ERROR;
        case 11: return SOH_CALIBRATION_STATE_UNDEFINED_ERROR;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SohCalibrationState>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SohCalibrationState> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SohCalibrationState>() {
            public SohCalibrationState findValueByNumber(int number) {
              return SohCalibrationState.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(16);
    }

    private static final SohCalibrationState[] VALUES = values();

    public static SohCalibrationState valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private SohCalibrationState(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.SohCalibrationState)
  }

  /**
   * Protobuf enum {@code proto.SohCalibrationRequired}
   */
  public enum SohCalibrationRequired
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>SOH_CALIBRATION_NOT_REQUIRED = 0;</code>
     */
    SOH_CALIBRATION_NOT_REQUIRED(0),
    /**
     * <code>SOH_CALIBRATION_REQUIRED = 1;</code>
     */
    SOH_CALIBRATION_REQUIRED(1),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "SohCalibrationRequired");
    }
    /**
     * <code>SOH_CALIBRATION_NOT_REQUIRED = 0;</code>
     */
    public static final int SOH_CALIBRATION_NOT_REQUIRED_VALUE = 0;
    /**
     * <code>SOH_CALIBRATION_REQUIRED = 1;</code>
     */
    public static final int SOH_CALIBRATION_REQUIRED_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SohCalibrationRequired valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static SohCalibrationRequired forNumber(int value) {
      switch (value) {
        case 0: return SOH_CALIBRATION_NOT_REQUIRED;
        case 1: return SOH_CALIBRATION_REQUIRED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SohCalibrationRequired>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SohCalibrationRequired> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SohCalibrationRequired>() {
            public SohCalibrationRequired findValueByNumber(int number) {
              return SohCalibrationRequired.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(17);
    }

    private static final SohCalibrationRequired[] VALUES = values();

    public static SohCalibrationRequired valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private SohCalibrationRequired(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.SohCalibrationRequired)
  }

  /**
   * Protobuf enum {@code proto.SohCalibrationRequest}
   */
  public enum SohCalibrationRequest
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>SOH_CALIBRATION_REQUEST_NO_REQUEST = 0;</code>
     */
    SOH_CALIBRATION_REQUEST_NO_REQUEST(0),
    /**
     * <code>SOH_CALIBRATION_REQUEST_LOW_REQUEST = 1;</code>
     */
    SOH_CALIBRATION_REQUEST_LOW_REQUEST(1),
    /**
     * <code>SOH_CALIBRATION_REQUEST_HIGH_REQUEST = 2;</code>
     */
    SOH_CALIBRATION_REQUEST_HIGH_REQUEST(2),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "SohCalibrationRequest");
    }
    /**
     * <code>SOH_CALIBRATION_REQUEST_NO_REQUEST = 0;</code>
     */
    public static final int SOH_CALIBRATION_REQUEST_NO_REQUEST_VALUE = 0;
    /**
     * <code>SOH_CALIBRATION_REQUEST_LOW_REQUEST = 1;</code>
     */
    public static final int SOH_CALIBRATION_REQUEST_LOW_REQUEST_VALUE = 1;
    /**
     * <code>SOH_CALIBRATION_REQUEST_HIGH_REQUEST = 2;</code>
     */
    public static final int SOH_CALIBRATION_REQUEST_HIGH_REQUEST_VALUE = 2;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SohCalibrationRequest valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static SohCalibrationRequest forNumber(int value) {
      switch (value) {
        case 0: return SOH_CALIBRATION_REQUEST_NO_REQUEST;
        case 1: return SOH_CALIBRATION_REQUEST_LOW_REQUEST;
        case 2: return SOH_CALIBRATION_REQUEST_HIGH_REQUEST;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SohCalibrationRequest>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SohCalibrationRequest> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SohCalibrationRequest>() {
            public SohCalibrationRequest findValueByNumber(int number) {
              return SohCalibrationRequest.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(18);
    }

    private static final SohCalibrationRequest[] VALUES = values();

    public static SohCalibrationRequest valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private SohCalibrationRequest(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.SohCalibrationRequest)
  }

  /**
   * Protobuf enum {@code proto.TurnOffEnginePreWarning}
   */
  public enum TurnOffEnginePreWarning
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>NO_MESSAGE_ACTIVE = 0;</code>
     */
    NO_MESSAGE_ACTIVE(0),
    /**
     * <code>VEHICLE_READY_AUTOMATIC_SHUTDOWN_ON_LOCK = 1;</code>
     */
    VEHICLE_READY_AUTOMATIC_SHUTDOWN_ON_LOCK(1),
    /**
     * <code>VEHICLE_READY_AUTOMATIC_SHUTDOWN_ON_TIMEOUT = 2;</code>
     */
    VEHICLE_READY_AUTOMATIC_SHUTDOWN_ON_TIMEOUT(2),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "TurnOffEnginePreWarning");
    }
    /**
     * <code>NO_MESSAGE_ACTIVE = 0;</code>
     */
    public static final int NO_MESSAGE_ACTIVE_VALUE = 0;
    /**
     * <code>VEHICLE_READY_AUTOMATIC_SHUTDOWN_ON_LOCK = 1;</code>
     */
    public static final int VEHICLE_READY_AUTOMATIC_SHUTDOWN_ON_LOCK_VALUE = 1;
    /**
     * <code>VEHICLE_READY_AUTOMATIC_SHUTDOWN_ON_TIMEOUT = 2;</code>
     */
    public static final int VEHICLE_READY_AUTOMATIC_SHUTDOWN_ON_TIMEOUT_VALUE = 2;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static TurnOffEnginePreWarning valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static TurnOffEnginePreWarning forNumber(int value) {
      switch (value) {
        case 0: return NO_MESSAGE_ACTIVE;
        case 1: return VEHICLE_READY_AUTOMATIC_SHUTDOWN_ON_LOCK;
        case 2: return VEHICLE_READY_AUTOMATIC_SHUTDOWN_ON_TIMEOUT;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<TurnOffEnginePreWarning>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        TurnOffEnginePreWarning> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<TurnOffEnginePreWarning>() {
            public TurnOffEnginePreWarning findValueByNumber(int number) {
              return TurnOffEnginePreWarning.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(19);
    }

    private static final TurnOffEnginePreWarning[] VALUES = values();

    public static TurnOffEnginePreWarning valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private TurnOffEnginePreWarning(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.TurnOffEnginePreWarning)
  }

  /**
   * Protobuf enum {@code proto.SohCalibrationNotifications}
   */
  public enum SohCalibrationNotifications
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>SOH_CALIBRATION_NOTIFICATIONS_NO_SOH_CALIBRATION_NECESSARY = 0;</code>
     */
    SOH_CALIBRATION_NOTIFICATIONS_NO_SOH_CALIBRATION_NECESSARY(0),
    /**
     * <code>SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_1 = 1;</code>
     */
    SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_1(1),
    /**
     * <code>SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_2 = 2;</code>
     */
    SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_2(2),
    /**
     * <code>SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_3 = 3;</code>
     */
    SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_3(3),
    /**
     * <code>SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_4 = 4;</code>
     */
    SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_4(4),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "SohCalibrationNotifications");
    }
    /**
     * <code>SOH_CALIBRATION_NOTIFICATIONS_NO_SOH_CALIBRATION_NECESSARY = 0;</code>
     */
    public static final int SOH_CALIBRATION_NOTIFICATIONS_NO_SOH_CALIBRATION_NECESSARY_VALUE = 0;
    /**
     * <code>SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_1 = 1;</code>
     */
    public static final int SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_1_VALUE = 1;
    /**
     * <code>SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_2 = 2;</code>
     */
    public static final int SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_2_VALUE = 2;
    /**
     * <code>SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_3 = 3;</code>
     */
    public static final int SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_3_VALUE = 3;
    /**
     * <code>SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_4 = 4;</code>
     */
    public static final int SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_4_VALUE = 4;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SohCalibrationNotifications valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static SohCalibrationNotifications forNumber(int value) {
      switch (value) {
        case 0: return SOH_CALIBRATION_NOTIFICATIONS_NO_SOH_CALIBRATION_NECESSARY;
        case 1: return SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_1;
        case 2: return SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_2;
        case 3: return SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_3;
        case 4: return SOH_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICATION_LEVEL_4;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SohCalibrationNotifications>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SohCalibrationNotifications> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SohCalibrationNotifications>() {
            public SohCalibrationNotifications findValueByNumber(int number) {
              return SohCalibrationNotifications.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(20);
    }

    private static final SohCalibrationNotifications[] VALUES = values();

    public static SohCalibrationNotifications valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private SohCalibrationNotifications(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.SohCalibrationNotifications)
  }

  /**
   * Protobuf enum {@code proto.HvBatteryPrecondStatesDischarging}
   */
  public enum HvBatteryPrecondStatesDischarging
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>DISCHARGING_INACTIVE = 0;</code>
     */
    DISCHARGING_INACTIVE(0),
    /**
     * <code>DISCHARGING_HEATING_ACTIVE = 1;</code>
     */
    DISCHARGING_HEATING_ACTIVE(1),
    /**
     * <code>DISCHARGING_HEATING_SUCCESSFUL = 2;</code>
     */
    DISCHARGING_HEATING_SUCCESSFUL(2),
    /**
     * <code>DISCHARGING_HEATING_NOT_SUFFICIENT = 3;</code>
     */
    DISCHARGING_HEATING_NOT_SUFFICIENT(3),
    /**
     * <code>DISCHARGING_HEATING_RECOMMENDATION = 4;</code>
     */
    DISCHARGING_HEATING_RECOMMENDATION(4),
    /**
     * <code>DISCHARGING_COOLING_ACTIVE = 5;</code>
     */
    DISCHARGING_COOLING_ACTIVE(5),
    /**
     * <code>DISCHARGING_COOLING_SUCCESSFUL = 6;</code>
     */
    DISCHARGING_COOLING_SUCCESSFUL(6),
    /**
     * <code>DISCHARGING_COOLING_NOT_SUFFICIENT = 7;</code>
     */
    DISCHARGING_COOLING_NOT_SUFFICIENT(7),
    /**
     * <code>DISCHARGING_COOLING_RECOMMENDATION = 8;</code>
     */
    DISCHARGING_COOLING_RECOMMENDATION(8),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "HvBatteryPrecondStatesDischarging");
    }
    /**
     * <code>DISCHARGING_INACTIVE = 0;</code>
     */
    public static final int DISCHARGING_INACTIVE_VALUE = 0;
    /**
     * <code>DISCHARGING_HEATING_ACTIVE = 1;</code>
     */
    public static final int DISCHARGING_HEATING_ACTIVE_VALUE = 1;
    /**
     * <code>DISCHARGING_HEATING_SUCCESSFUL = 2;</code>
     */
    public static final int DISCHARGING_HEATING_SUCCESSFUL_VALUE = 2;
    /**
     * <code>DISCHARGING_HEATING_NOT_SUFFICIENT = 3;</code>
     */
    public static final int DISCHARGING_HEATING_NOT_SUFFICIENT_VALUE = 3;
    /**
     * <code>DISCHARGING_HEATING_RECOMMENDATION = 4;</code>
     */
    public static final int DISCHARGING_HEATING_RECOMMENDATION_VALUE = 4;
    /**
     * <code>DISCHARGING_COOLING_ACTIVE = 5;</code>
     */
    public static final int DISCHARGING_COOLING_ACTIVE_VALUE = 5;
    /**
     * <code>DISCHARGING_COOLING_SUCCESSFUL = 6;</code>
     */
    public static final int DISCHARGING_COOLING_SUCCESSFUL_VALUE = 6;
    /**
     * <code>DISCHARGING_COOLING_NOT_SUFFICIENT = 7;</code>
     */
    public static final int DISCHARGING_COOLING_NOT_SUFFICIENT_VALUE = 7;
    /**
     * <code>DISCHARGING_COOLING_RECOMMENDATION = 8;</code>
     */
    public static final int DISCHARGING_COOLING_RECOMMENDATION_VALUE = 8;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static HvBatteryPrecondStatesDischarging valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static HvBatteryPrecondStatesDischarging forNumber(int value) {
      switch (value) {
        case 0: return DISCHARGING_INACTIVE;
        case 1: return DISCHARGING_HEATING_ACTIVE;
        case 2: return DISCHARGING_HEATING_SUCCESSFUL;
        case 3: return DISCHARGING_HEATING_NOT_SUFFICIENT;
        case 4: return DISCHARGING_HEATING_RECOMMENDATION;
        case 5: return DISCHARGING_COOLING_ACTIVE;
        case 6: return DISCHARGING_COOLING_SUCCESSFUL;
        case 7: return DISCHARGING_COOLING_NOT_SUFFICIENT;
        case 8: return DISCHARGING_COOLING_RECOMMENDATION;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<HvBatteryPrecondStatesDischarging>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        HvBatteryPrecondStatesDischarging> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<HvBatteryPrecondStatesDischarging>() {
            public HvBatteryPrecondStatesDischarging findValueByNumber(int number) {
              return HvBatteryPrecondStatesDischarging.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(21);
    }

    private static final HvBatteryPrecondStatesDischarging[] VALUES = values();

    public static HvBatteryPrecondStatesDischarging valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private HvBatteryPrecondStatesDischarging(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.HvBatteryPrecondStatesDischarging)
  }

  /**
   * Protobuf enum {@code proto.HvBatteryPrecondStatesCharging}
   */
  public enum HvBatteryPrecondStatesCharging
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>CHARGING_HEATING_INACTIVE = 0;</code>
     */
    CHARGING_HEATING_INACTIVE(0),
    /**
     * <code>CHARGING_HEATING_ACTIVE = 1;</code>
     */
    CHARGING_HEATING_ACTIVE(1),
    /**
     * <code>CHARGING_HEATING_SUCCESSFUL = 2;</code>
     */
    CHARGING_HEATING_SUCCESSFUL(2),
    /**
     * <code>CHARGING_HEATING_NOT_SUFFICIENT = 3;</code>
     */
    CHARGING_HEATING_NOT_SUFFICIENT(3),
    /**
     * <code>CHARGING_HEATING_RECOMMENDATION = 4;</code>
     */
    CHARGING_HEATING_RECOMMENDATION(4),
    /**
     * <code>CHARGING_COOLING_ACTIVE = 5;</code>
     */
    CHARGING_COOLING_ACTIVE(5),
    /**
     * <code>CHARGING_COOLING_SUCCESSFUL = 6;</code>
     */
    CHARGING_COOLING_SUCCESSFUL(6),
    /**
     * <code>CHARGING_COOLING_NOT_SUFFICIENT = 7;</code>
     */
    CHARGING_COOLING_NOT_SUFFICIENT(7),
    /**
     * <code>CHARGING_COOLING_RECOMMENDATION = 8;</code>
     */
    CHARGING_COOLING_RECOMMENDATION(8),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "HvBatteryPrecondStatesCharging");
    }
    /**
     * <code>CHARGING_HEATING_INACTIVE = 0;</code>
     */
    public static final int CHARGING_HEATING_INACTIVE_VALUE = 0;
    /**
     * <code>CHARGING_HEATING_ACTIVE = 1;</code>
     */
    public static final int CHARGING_HEATING_ACTIVE_VALUE = 1;
    /**
     * <code>CHARGING_HEATING_SUCCESSFUL = 2;</code>
     */
    public static final int CHARGING_HEATING_SUCCESSFUL_VALUE = 2;
    /**
     * <code>CHARGING_HEATING_NOT_SUFFICIENT = 3;</code>
     */
    public static final int CHARGING_HEATING_NOT_SUFFICIENT_VALUE = 3;
    /**
     * <code>CHARGING_HEATING_RECOMMENDATION = 4;</code>
     */
    public static final int CHARGING_HEATING_RECOMMENDATION_VALUE = 4;
    /**
     * <code>CHARGING_COOLING_ACTIVE = 5;</code>
     */
    public static final int CHARGING_COOLING_ACTIVE_VALUE = 5;
    /**
     * <code>CHARGING_COOLING_SUCCESSFUL = 6;</code>
     */
    public static final int CHARGING_COOLING_SUCCESSFUL_VALUE = 6;
    /**
     * <code>CHARGING_COOLING_NOT_SUFFICIENT = 7;</code>
     */
    public static final int CHARGING_COOLING_NOT_SUFFICIENT_VALUE = 7;
    /**
     * <code>CHARGING_COOLING_RECOMMENDATION = 8;</code>
     */
    public static final int CHARGING_COOLING_RECOMMENDATION_VALUE = 8;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static HvBatteryPrecondStatesCharging valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static HvBatteryPrecondStatesCharging forNumber(int value) {
      switch (value) {
        case 0: return CHARGING_HEATING_INACTIVE;
        case 1: return CHARGING_HEATING_ACTIVE;
        case 2: return CHARGING_HEATING_SUCCESSFUL;
        case 3: return CHARGING_HEATING_NOT_SUFFICIENT;
        case 4: return CHARGING_HEATING_RECOMMENDATION;
        case 5: return CHARGING_COOLING_ACTIVE;
        case 6: return CHARGING_COOLING_SUCCESSFUL;
        case 7: return CHARGING_COOLING_NOT_SUFFICIENT;
        case 8: return CHARGING_COOLING_RECOMMENDATION;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<HvBatteryPrecondStatesCharging>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        HvBatteryPrecondStatesCharging> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<HvBatteryPrecondStatesCharging>() {
            public HvBatteryPrecondStatesCharging findValueByNumber(int number) {
              return HvBatteryPrecondStatesCharging.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(22);
    }

    private static final HvBatteryPrecondStatesCharging[] VALUES = values();

    public static HvBatteryPrecondStatesCharging valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private HvBatteryPrecondStatesCharging(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.HvBatteryPrecondStatesCharging)
  }

  /**
   * Protobuf enum {@code proto.MainCategory}
   */
  public enum MainCategory
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>MAIN_CATEGORY_SERVER = 0;</code>
     */
    MAIN_CATEGORY_SERVER(0),
    /**
     * <code>MAIN_CATEGORY_HMI = 1;</code>
     */
    MAIN_CATEGORY_HMI(1),
    /**
     * <code>MAIN_CATEGORY_VEHICLE_SYSTEM = 2;</code>
     */
    MAIN_CATEGORY_VEHICLE_SYSTEM(2),
    /**
     * <code>MAIN_CATEGORY_DIAGNOSTICS = 3;</code>
     */
    MAIN_CATEGORY_DIAGNOSTICS(3),
    /**
     * <code>MAIN_CATEGORY_REMOTE = 4;</code>
     */
    MAIN_CATEGORY_REMOTE(4),
    /**
     * <code>MAIN_CATEGORY_CONTAINER_APPLICATION = 5;</code>
     */
    MAIN_CATEGORY_CONTAINER_APPLICATION(5),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "MainCategory");
    }
    /**
     * <code>MAIN_CATEGORY_SERVER = 0;</code>
     */
    public static final int MAIN_CATEGORY_SERVER_VALUE = 0;
    /**
     * <code>MAIN_CATEGORY_HMI = 1;</code>
     */
    public static final int MAIN_CATEGORY_HMI_VALUE = 1;
    /**
     * <code>MAIN_CATEGORY_VEHICLE_SYSTEM = 2;</code>
     */
    public static final int MAIN_CATEGORY_VEHICLE_SYSTEM_VALUE = 2;
    /**
     * <code>MAIN_CATEGORY_DIAGNOSTICS = 3;</code>
     */
    public static final int MAIN_CATEGORY_DIAGNOSTICS_VALUE = 3;
    /**
     * <code>MAIN_CATEGORY_REMOTE = 4;</code>
     */
    public static final int MAIN_CATEGORY_REMOTE_VALUE = 4;
    /**
     * <code>MAIN_CATEGORY_CONTAINER_APPLICATION = 5;</code>
     */
    public static final int MAIN_CATEGORY_CONTAINER_APPLICATION_VALUE = 5;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static MainCategory valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static MainCategory forNumber(int value) {
      switch (value) {
        case 0: return MAIN_CATEGORY_SERVER;
        case 1: return MAIN_CATEGORY_HMI;
        case 2: return MAIN_CATEGORY_VEHICLE_SYSTEM;
        case 3: return MAIN_CATEGORY_DIAGNOSTICS;
        case 4: return MAIN_CATEGORY_REMOTE;
        case 5: return MAIN_CATEGORY_CONTAINER_APPLICATION;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<MainCategory>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        MainCategory> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<MainCategory>() {
            public MainCategory findValueByNumber(int number) {
              return MainCategory.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(23);
    }

    private static final MainCategory[] VALUES = values();

    public static MainCategory valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private MainCategory(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.MainCategory)
  }

  /**
   * Protobuf enum {@code proto.SubCategory}
   */
  public enum SubCategory
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>SUB_CATEGORY_UNKNOWN = 0;</code>
     */
    SUB_CATEGORY_UNKNOWN(0),
    /**
     * <code>SUB_CATEGORY_BATTERY_CONDITIONING = 1;</code>
     */
    SUB_CATEGORY_BATTERY_CONDITIONING(1),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "SubCategory");
    }
    /**
     * <code>SUB_CATEGORY_UNKNOWN = 0;</code>
     */
    public static final int SUB_CATEGORY_UNKNOWN_VALUE = 0;
    /**
     * <code>SUB_CATEGORY_BATTERY_CONDITIONING = 1;</code>
     */
    public static final int SUB_CATEGORY_BATTERY_CONDITIONING_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SubCategory valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static SubCategory forNumber(int value) {
      switch (value) {
        case 0: return SUB_CATEGORY_UNKNOWN;
        case 1: return SUB_CATEGORY_BATTERY_CONDITIONING;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SubCategory>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SubCategory> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SubCategory>() {
            public SubCategory findValueByNumber(int number) {
              return SubCategory.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(24);
    }

    private static final SubCategory[] VALUES = values();

    public static SubCategory valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private SubCategory(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.SubCategory)
  }

  /**
   * Protobuf enum {@code proto.SpecificCategory}
   */
  public enum SpecificCategory
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>SPECIFIC_CATEGORY_UNKNOWN = 0;</code>
     */
    SPECIFIC_CATEGORY_UNKNOWN(0),
    /**
     * <code>SPECIFIC_CATEGORY_PRECONDITIONING_BUTTON = 1;</code>
     */
    SPECIFIC_CATEGORY_PRECONDITIONING_BUTTON(1),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "SpecificCategory");
    }
    /**
     * <code>SPECIFIC_CATEGORY_UNKNOWN = 0;</code>
     */
    public static final int SPECIFIC_CATEGORY_UNKNOWN_VALUE = 0;
    /**
     * <code>SPECIFIC_CATEGORY_PRECONDITIONING_BUTTON = 1;</code>
     */
    public static final int SPECIFIC_CATEGORY_PRECONDITIONING_BUTTON_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SpecificCategory valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static SpecificCategory forNumber(int value) {
      switch (value) {
        case 0: return SPECIFIC_CATEGORY_UNKNOWN;
        case 1: return SPECIFIC_CATEGORY_PRECONDITIONING_BUTTON;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SpecificCategory>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SpecificCategory> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SpecificCategory>() {
            public SpecificCategory findValueByNumber(int number) {
              return SpecificCategory.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(25);
    }

    private static final SpecificCategory[] VALUES = values();

    public static SpecificCategory valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private SpecificCategory(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.SpecificCategory)
  }

  /**
   * Protobuf enum {@code proto.Method}
   */
  public enum Method
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>METHOD_COND_REQ_TO_REACH_TARGET_TEMP = 0;</code>
     */
    METHOD_COND_REQ_TO_REACH_TARGET_TEMP(0),
    /**
     * <code>METHOD_COND_REQ_TO_REACH_TARGET_POWER = 1;</code>
     */
    METHOD_COND_REQ_TO_REACH_TARGET_POWER(1),
    /**
     * <code>METHOD_OMIT_CONDITIONING_REQUEST = 2;</code>
     */
    METHOD_OMIT_CONDITIONING_REQUEST(2),
    /**
     * <code>METHOD_SET_CONFIGURATION = 3;</code>
     */
    METHOD_SET_CONFIGURATION(3),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "Method");
    }
    /**
     * <code>METHOD_COND_REQ_TO_REACH_TARGET_TEMP = 0;</code>
     */
    public static final int METHOD_COND_REQ_TO_REACH_TARGET_TEMP_VALUE = 0;
    /**
     * <code>METHOD_COND_REQ_TO_REACH_TARGET_POWER = 1;</code>
     */
    public static final int METHOD_COND_REQ_TO_REACH_TARGET_POWER_VALUE = 1;
    /**
     * <code>METHOD_OMIT_CONDITIONING_REQUEST = 2;</code>
     */
    public static final int METHOD_OMIT_CONDITIONING_REQUEST_VALUE = 2;
    /**
     * <code>METHOD_SET_CONFIGURATION = 3;</code>
     */
    public static final int METHOD_SET_CONFIGURATION_VALUE = 3;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static Method valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static Method forNumber(int value) {
      switch (value) {
        case 0: return METHOD_COND_REQ_TO_REACH_TARGET_TEMP;
        case 1: return METHOD_COND_REQ_TO_REACH_TARGET_POWER;
        case 2: return METHOD_OMIT_CONDITIONING_REQUEST;
        case 3: return METHOD_SET_CONFIGURATION;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<Method>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        Method> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<Method>() {
            public Method findValueByNumber(int number) {
              return Method.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(26);
    }

    private static final Method[] VALUES = values();

    public static Method valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private Method(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.Method)
  }

  /**
   * Protobuf enum {@code proto.Status}
   */
  public enum Status
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>STATE_OK = 0;</code>
     */
    STATE_OK(0),
    /**
     * <code>STATE_UNSPECIFIED_ERROR = 1;</code>
     */
    STATE_UNSPECIFIED_ERROR(1),
    /**
     * <code>STATE_CONDITIONING_NOT_NECESSARY = 2;</code>
     */
    STATE_CONDITIONING_NOT_NECESSARY(2),
    /**
     * <code>STATE_TIME_NOT_SUFFICIENT = 3;</code>
     */
    STATE_TIME_NOT_SUFFICIENT(3),
    /**
     * <code>STATE_BATTERY_LEVEL_LOW = 4;</code>
     */
    STATE_BATTERY_LEVEL_LOW(4),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "Status");
    }
    /**
     * <code>STATE_OK = 0;</code>
     */
    public static final int STATE_OK_VALUE = 0;
    /**
     * <code>STATE_UNSPECIFIED_ERROR = 1;</code>
     */
    public static final int STATE_UNSPECIFIED_ERROR_VALUE = 1;
    /**
     * <code>STATE_CONDITIONING_NOT_NECESSARY = 2;</code>
     */
    public static final int STATE_CONDITIONING_NOT_NECESSARY_VALUE = 2;
    /**
     * <code>STATE_TIME_NOT_SUFFICIENT = 3;</code>
     */
    public static final int STATE_TIME_NOT_SUFFICIENT_VALUE = 3;
    /**
     * <code>STATE_BATTERY_LEVEL_LOW = 4;</code>
     */
    public static final int STATE_BATTERY_LEVEL_LOW_VALUE = 4;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static Status valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static Status forNumber(int value) {
      switch (value) {
        case 0: return STATE_OK;
        case 1: return STATE_UNSPECIFIED_ERROR;
        case 2: return STATE_CONDITIONING_NOT_NECESSARY;
        case 3: return STATE_TIME_NOT_SUFFICIENT;
        case 4: return STATE_BATTERY_LEVEL_LOW;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<Status>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        Status> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<Status>() {
            public Status findValueByNumber(int number) {
              return Status.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(27);
    }

    private static final Status[] VALUES = values();

    public static Status valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private Status(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.Status)
  }

  /**
   * Protobuf enum {@code proto.HvBatteryPrecondAvailability}
   */
  public enum HvBatteryPrecondAvailability
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>HV_BATTERY_PRECOND_AVAILABILITY_NOT_AVAILABLE = 0;</code>
     */
    HV_BATTERY_PRECOND_AVAILABILITY_NOT_AVAILABLE(0),
    /**
     * <code>HV_BATTERY_PRECOND_AVAILABILITY_FULLY_AVAILABLE = 1;</code>
     */
    HV_BATTERY_PRECOND_AVAILABILITY_FULLY_AVAILABLE(1),
    /**
     * <code>HV_BATTERY_PRECOND_AVAILABILITY_TEMPORARILY_NOT_AVAILABLE_LOW_SOC = 2;</code>
     */
    HV_BATTERY_PRECOND_AVAILABILITY_TEMPORARILY_NOT_AVAILABLE_LOW_SOC(2),
    /**
     * <code>HV_BATTERY_PRECOND_AVAILABILITY_TEMPORARILY_NOT_AVAILABLE_MECHATRONICS = 3;</code>
     */
    HV_BATTERY_PRECOND_AVAILABILITY_TEMPORARILY_NOT_AVAILABLE_MECHATRONICS(3),
    /**
     * <code>HV_BATTERY_PRECOND_AVAILABILITY_TEMPORARILY_NOT_AVAILABLE_BATTERY_TEMPERATURE = 4;</code>
     */
    HV_BATTERY_PRECOND_AVAILABILITY_TEMPORARILY_NOT_AVAILABLE_BATTERY_TEMPERATURE(4),
    /**
     * <code>HV_BATTERY_PRECOND_AVAILABILITY_LIMITED_AVAILABLE_LOW_SOC = 5;</code>
     */
    HV_BATTERY_PRECOND_AVAILABILITY_LIMITED_AVAILABLE_LOW_SOC(5),
    /**
     * <code>HV_BATTERY_PRECOND_AVAILABILITY_LIMITED_AVAILABLE_MECHATRONICS = 6;</code>
     */
    HV_BATTERY_PRECOND_AVAILABILITY_LIMITED_AVAILABLE_MECHATRONICS(6),
    /**
     * <code>HV_BATTERY_PRECOND_AVAILABILITY_LIMITED_AVAILABLE_BATTERY_TEMPERATURE = 7;</code>
     */
    HV_BATTERY_PRECOND_AVAILABILITY_LIMITED_AVAILABLE_BATTERY_TEMPERATURE(7),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "HvBatteryPrecondAvailability");
    }
    /**
     * <code>HV_BATTERY_PRECOND_AVAILABILITY_NOT_AVAILABLE = 0;</code>
     */
    public static final int HV_BATTERY_PRECOND_AVAILABILITY_NOT_AVAILABLE_VALUE = 0;
    /**
     * <code>HV_BATTERY_PRECOND_AVAILABILITY_FULLY_AVAILABLE = 1;</code>
     */
    public static final int HV_BATTERY_PRECOND_AVAILABILITY_FULLY_AVAILABLE_VALUE = 1;
    /**
     * <code>HV_BATTERY_PRECOND_AVAILABILITY_TEMPORARILY_NOT_AVAILABLE_LOW_SOC = 2;</code>
     */
    public static final int HV_BATTERY_PRECOND_AVAILABILITY_TEMPORARILY_NOT_AVAILABLE_LOW_SOC_VALUE = 2;
    /**
     * <code>HV_BATTERY_PRECOND_AVAILABILITY_TEMPORARILY_NOT_AVAILABLE_MECHATRONICS = 3;</code>
     */
    public static final int HV_BATTERY_PRECOND_AVAILABILITY_TEMPORARILY_NOT_AVAILABLE_MECHATRONICS_VALUE = 3;
    /**
     * <code>HV_BATTERY_PRECOND_AVAILABILITY_TEMPORARILY_NOT_AVAILABLE_BATTERY_TEMPERATURE = 4;</code>
     */
    public static final int HV_BATTERY_PRECOND_AVAILABILITY_TEMPORARILY_NOT_AVAILABLE_BATTERY_TEMPERATURE_VALUE = 4;
    /**
     * <code>HV_BATTERY_PRECOND_AVAILABILITY_LIMITED_AVAILABLE_LOW_SOC = 5;</code>
     */
    public static final int HV_BATTERY_PRECOND_AVAILABILITY_LIMITED_AVAILABLE_LOW_SOC_VALUE = 5;
    /**
     * <code>HV_BATTERY_PRECOND_AVAILABILITY_LIMITED_AVAILABLE_MECHATRONICS = 6;</code>
     */
    public static final int HV_BATTERY_PRECOND_AVAILABILITY_LIMITED_AVAILABLE_MECHATRONICS_VALUE = 6;
    /**
     * <code>HV_BATTERY_PRECOND_AVAILABILITY_LIMITED_AVAILABLE_BATTERY_TEMPERATURE = 7;</code>
     */
    public static final int HV_BATTERY_PRECOND_AVAILABILITY_LIMITED_AVAILABLE_BATTERY_TEMPERATURE_VALUE = 7;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static HvBatteryPrecondAvailability valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static HvBatteryPrecondAvailability forNumber(int value) {
      switch (value) {
        case 0: return HV_BATTERY_PRECOND_AVAILABILITY_NOT_AVAILABLE;
        case 1: return HV_BATTERY_PRECOND_AVAILABILITY_FULLY_AVAILABLE;
        case 2: return HV_BATTERY_PRECOND_AVAILABILITY_TEMPORARILY_NOT_AVAILABLE_LOW_SOC;
        case 3: return HV_BATTERY_PRECOND_AVAILABILITY_TEMPORARILY_NOT_AVAILABLE_MECHATRONICS;
        case 4: return HV_BATTERY_PRECOND_AVAILABILITY_TEMPORARILY_NOT_AVAILABLE_BATTERY_TEMPERATURE;
        case 5: return HV_BATTERY_PRECOND_AVAILABILITY_LIMITED_AVAILABLE_LOW_SOC;
        case 6: return HV_BATTERY_PRECOND_AVAILABILITY_LIMITED_AVAILABLE_MECHATRONICS;
        case 7: return HV_BATTERY_PRECOND_AVAILABILITY_LIMITED_AVAILABLE_BATTERY_TEMPERATURE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<HvBatteryPrecondAvailability>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        HvBatteryPrecondAvailability> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<HvBatteryPrecondAvailability>() {
            public HvBatteryPrecondAvailability findValueByNumber(int number) {
              return HvBatteryPrecondAvailability.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(28);
    }

    private static final HvBatteryPrecondAvailability[] VALUES = values();

    public static HvBatteryPrecondAvailability valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private HvBatteryPrecondAvailability(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.HvBatteryPrecondAvailability)
  }

  /**
   * Protobuf enum {@code proto.EvsePairingState}
   */
  public enum EvsePairingState
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>EVSE_PAIRING_STATE_IDLE = 0;</code>
     */
    EVSE_PAIRING_STATE_IDLE(0),
    /**
     * <code>EVSE_PAIRING_STATE_FINISHED = 1;</code>
     */
    EVSE_PAIRING_STATE_FINISHED(1),
    /**
     * <code>EVSE_PAIRING_STATE_FAILED_TLS_ERROR = 2;</code>
     */
    EVSE_PAIRING_STATE_FAILED_TLS_ERROR(2),
    /**
     * <code>EVSE_PAIRING_STATE_FAILED_TIMEOUT = 3;</code>
     */
    EVSE_PAIRING_STATE_FAILED_TIMEOUT(3),
    /**
     * <code>EVSE_PAIRING_STATE_FAILED_NO_INDEX_AVAILABLE = 4;</code>
     */
    EVSE_PAIRING_STATE_FAILED_NO_INDEX_AVAILABLE(4),
    /**
     * <code>EVSE_PAIRING_STATE_PROCESS_ONGOING = 5;</code>
     */
    EVSE_PAIRING_STATE_PROCESS_ONGOING(5),
    /**
     * <code>EVSE_PAIRING_STATE_PROCESS_STOPPED = 6;</code>
     */
    EVSE_PAIRING_STATE_PROCESS_STOPPED(6),
    /**
     * <code>EVSE_PAIRING_STATE_CERTIFICATE_NOT_INSTALLED = 7;</code>
     */
    EVSE_PAIRING_STATE_CERTIFICATE_NOT_INSTALLED(7),
    /**
     * <code>EVSE_PAIRING_STATE_PAIRING_SERVICE_NOT_OFFERED_BY_EVSE = 8;</code>
     */
    EVSE_PAIRING_STATE_PAIRING_SERVICE_NOT_OFFERED_BY_EVSE(8),
    /**
     * <code>EVSE_PAIRING_STATE_BIDIRECTIONAL_POWER_TRANSFER_SERVICE_NOT_OFFERED_BY_EVSE = 9;</code>
     */
    EVSE_PAIRING_STATE_BIDIRECTIONAL_POWER_TRANSFER_SERVICE_NOT_OFFERED_BY_EVSE(9),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "EvsePairingState");
    }
    /**
     * <code>EVSE_PAIRING_STATE_IDLE = 0;</code>
     */
    public static final int EVSE_PAIRING_STATE_IDLE_VALUE = 0;
    /**
     * <code>EVSE_PAIRING_STATE_FINISHED = 1;</code>
     */
    public static final int EVSE_PAIRING_STATE_FINISHED_VALUE = 1;
    /**
     * <code>EVSE_PAIRING_STATE_FAILED_TLS_ERROR = 2;</code>
     */
    public static final int EVSE_PAIRING_STATE_FAILED_TLS_ERROR_VALUE = 2;
    /**
     * <code>EVSE_PAIRING_STATE_FAILED_TIMEOUT = 3;</code>
     */
    public static final int EVSE_PAIRING_STATE_FAILED_TIMEOUT_VALUE = 3;
    /**
     * <code>EVSE_PAIRING_STATE_FAILED_NO_INDEX_AVAILABLE = 4;</code>
     */
    public static final int EVSE_PAIRING_STATE_FAILED_NO_INDEX_AVAILABLE_VALUE = 4;
    /**
     * <code>EVSE_PAIRING_STATE_PROCESS_ONGOING = 5;</code>
     */
    public static final int EVSE_PAIRING_STATE_PROCESS_ONGOING_VALUE = 5;
    /**
     * <code>EVSE_PAIRING_STATE_PROCESS_STOPPED = 6;</code>
     */
    public static final int EVSE_PAIRING_STATE_PROCESS_STOPPED_VALUE = 6;
    /**
     * <code>EVSE_PAIRING_STATE_CERTIFICATE_NOT_INSTALLED = 7;</code>
     */
    public static final int EVSE_PAIRING_STATE_CERTIFICATE_NOT_INSTALLED_VALUE = 7;
    /**
     * <code>EVSE_PAIRING_STATE_PAIRING_SERVICE_NOT_OFFERED_BY_EVSE = 8;</code>
     */
    public static final int EVSE_PAIRING_STATE_PAIRING_SERVICE_NOT_OFFERED_BY_EVSE_VALUE = 8;
    /**
     * <code>EVSE_PAIRING_STATE_BIDIRECTIONAL_POWER_TRANSFER_SERVICE_NOT_OFFERED_BY_EVSE = 9;</code>
     */
    public static final int EVSE_PAIRING_STATE_BIDIRECTIONAL_POWER_TRANSFER_SERVICE_NOT_OFFERED_BY_EVSE_VALUE = 9;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static EvsePairingState valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static EvsePairingState forNumber(int value) {
      switch (value) {
        case 0: return EVSE_PAIRING_STATE_IDLE;
        case 1: return EVSE_PAIRING_STATE_FINISHED;
        case 2: return EVSE_PAIRING_STATE_FAILED_TLS_ERROR;
        case 3: return EVSE_PAIRING_STATE_FAILED_TIMEOUT;
        case 4: return EVSE_PAIRING_STATE_FAILED_NO_INDEX_AVAILABLE;
        case 5: return EVSE_PAIRING_STATE_PROCESS_ONGOING;
        case 6: return EVSE_PAIRING_STATE_PROCESS_STOPPED;
        case 7: return EVSE_PAIRING_STATE_CERTIFICATE_NOT_INSTALLED;
        case 8: return EVSE_PAIRING_STATE_PAIRING_SERVICE_NOT_OFFERED_BY_EVSE;
        case 9: return EVSE_PAIRING_STATE_BIDIRECTIONAL_POWER_TRANSFER_SERVICE_NOT_OFFERED_BY_EVSE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<EvsePairingState>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        EvsePairingState> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<EvsePairingState>() {
            public EvsePairingState findValueByNumber(int number) {
              return EvsePairingState.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(29);
    }

    private static final EvsePairingState[] VALUES = values();

    public static EvsePairingState valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private EvsePairingState(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.EvsePairingState)
  }

  /**
   * Protobuf enum {@code proto.EmergencyPowerSupply}
   */
  public enum EmergencyPowerSupply
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>EMERGENCY_POWER_SUPPLY_OFF = 0;</code>
     */
    EMERGENCY_POWER_SUPPLY_OFF(0),
    /**
     * <code>EMERGENCY_POWER_SUPPLY_ON = 1;</code>
     */
    EMERGENCY_POWER_SUPPLY_ON(1),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "EmergencyPowerSupply");
    }
    /**
     * <code>EMERGENCY_POWER_SUPPLY_OFF = 0;</code>
     */
    public static final int EMERGENCY_POWER_SUPPLY_OFF_VALUE = 0;
    /**
     * <code>EMERGENCY_POWER_SUPPLY_ON = 1;</code>
     */
    public static final int EMERGENCY_POWER_SUPPLY_ON_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static EmergencyPowerSupply valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static EmergencyPowerSupply forNumber(int value) {
      switch (value) {
        case 0: return EMERGENCY_POWER_SUPPLY_OFF;
        case 1: return EMERGENCY_POWER_SUPPLY_ON;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<EmergencyPowerSupply>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        EmergencyPowerSupply> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<EmergencyPowerSupply>() {
            public EmergencyPowerSupply findValueByNumber(int number) {
              return EmergencyPowerSupply.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(30);
    }

    private static final EmergencyPowerSupply[] VALUES = values();

    public static EmergencyPowerSupply valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private EmergencyPowerSupply(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.EmergencyPowerSupply)
  }

  /**
   * Protobuf enum {@code proto.ParkCollisionPictureTransferStatus}
   */
  public enum ParkCollisionPictureTransferStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>PARK_COLLISION_PICTURE_TRANSFER_STATUS_DESELETED = 0;</code>
     */
    PARK_COLLISION_PICTURE_TRANSFER_STATUS_DESELETED(0),
    /**
     * <code>PARK_COLLISION_PICTURE_TRANSFER_STATUS_SELECTED = 1;</code>
     */
    PARK_COLLISION_PICTURE_TRANSFER_STATUS_SELECTED(1),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ParkCollisionPictureTransferStatus");
    }
    /**
     * <code>PARK_COLLISION_PICTURE_TRANSFER_STATUS_DESELETED = 0;</code>
     */
    public static final int PARK_COLLISION_PICTURE_TRANSFER_STATUS_DESELETED_VALUE = 0;
    /**
     * <code>PARK_COLLISION_PICTURE_TRANSFER_STATUS_SELECTED = 1;</code>
     */
    public static final int PARK_COLLISION_PICTURE_TRANSFER_STATUS_SELECTED_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ParkCollisionPictureTransferStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ParkCollisionPictureTransferStatus forNumber(int value) {
      switch (value) {
        case 0: return PARK_COLLISION_PICTURE_TRANSFER_STATUS_DESELETED;
        case 1: return PARK_COLLISION_PICTURE_TRANSFER_STATUS_SELECTED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ParkCollisionPictureTransferStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ParkCollisionPictureTransferStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ParkCollisionPictureTransferStatus>() {
            public ParkCollisionPictureTransferStatus findValueByNumber(int number) {
              return ParkCollisionPictureTransferStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(31);
    }

    private static final ParkCollisionPictureTransferStatus[] VALUES = values();

    public static ParkCollisionPictureTransferStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ParkCollisionPictureTransferStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.ParkCollisionPictureTransferStatus)
  }

  /**
   * Protobuf enum {@code proto.PictureRecordingStatus}
   */
  public enum PictureRecordingStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>PICTURE_RECORDING_STATUS_NOT_ACTIVE = 0;</code>
     */
    PICTURE_RECORDING_STATUS_NOT_ACTIVE(0),
    /**
     * <code>PICTURE_RECORDING_STATUS_ACTIVE = 1;</code>
     */
    PICTURE_RECORDING_STATUS_ACTIVE(1),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "PictureRecordingStatus");
    }
    /**
     * <code>PICTURE_RECORDING_STATUS_NOT_ACTIVE = 0;</code>
     */
    public static final int PICTURE_RECORDING_STATUS_NOT_ACTIVE_VALUE = 0;
    /**
     * <code>PICTURE_RECORDING_STATUS_ACTIVE = 1;</code>
     */
    public static final int PICTURE_RECORDING_STATUS_ACTIVE_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static PictureRecordingStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static PictureRecordingStatus forNumber(int value) {
      switch (value) {
        case 0: return PICTURE_RECORDING_STATUS_NOT_ACTIVE;
        case 1: return PICTURE_RECORDING_STATUS_ACTIVE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<PictureRecordingStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        PictureRecordingStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<PictureRecordingStatus>() {
            public PictureRecordingStatus findValueByNumber(int number) {
              return PictureRecordingStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(32);
    }

    private static final PictureRecordingStatus[] VALUES = values();

    public static PictureRecordingStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private PictureRecordingStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.PictureRecordingStatus)
  }

  /**
   * Protobuf enum {@code proto.ParkCollisionInactiveReason}
   */
  public enum ParkCollisionInactiveReason
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_DISABLED = 0;</code>
     */
    PARK_COLLISION_INACTIVE_REASON_DISABLED(0),
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_WAIT_FOR_SYSTEM_ACTIVATION = 1;</code>
     */
    PARK_COLLISION_INACTIVE_REASON_WAIT_FOR_SYSTEM_ACTIVATION(1),
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_SYSTEM_ACTIVE = 2;</code>
     */
    PARK_COLLISION_INACTIVE_REASON_SYSTEM_ACTIVE(2),
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_TRUNK_OR_DOOR_OPEN = 3;</code>
     */
    PARK_COLLISION_INACTIVE_REASON_TRUNK_OR_DOOR_OPEN(3),
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_DESELECTED = 4;</code>
     */
    PARK_COLLISION_INACTIVE_REASON_DESELECTED(4),
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_COLLISION_LIMIT = 5;</code>
     */
    PARK_COLLISION_INACTIVE_REASON_COLLISION_LIMIT(5),
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_MONITORING_TIME = 6;</code>
     */
    PARK_COLLISION_INACTIVE_REASON_MONITORING_TIME(6),
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_CONVERTIBLE_TOP_OPEN = 7;</code>
     */
    PARK_COLLISION_INACTIVE_REASON_CONVERTIBLE_TOP_OPEN(7),
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_TEST1 = 8;</code>
     */
    PARK_COLLISION_INACTIVE_REASON_TEST1(8),
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_TEST2 = 9;</code>
     */
    PARK_COLLISION_INACTIVE_REASON_TEST2(9),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ParkCollisionInactiveReason");
    }
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_DISABLED = 0;</code>
     */
    public static final int PARK_COLLISION_INACTIVE_REASON_DISABLED_VALUE = 0;
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_WAIT_FOR_SYSTEM_ACTIVATION = 1;</code>
     */
    public static final int PARK_COLLISION_INACTIVE_REASON_WAIT_FOR_SYSTEM_ACTIVATION_VALUE = 1;
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_SYSTEM_ACTIVE = 2;</code>
     */
    public static final int PARK_COLLISION_INACTIVE_REASON_SYSTEM_ACTIVE_VALUE = 2;
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_TRUNK_OR_DOOR_OPEN = 3;</code>
     */
    public static final int PARK_COLLISION_INACTIVE_REASON_TRUNK_OR_DOOR_OPEN_VALUE = 3;
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_DESELECTED = 4;</code>
     */
    public static final int PARK_COLLISION_INACTIVE_REASON_DESELECTED_VALUE = 4;
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_COLLISION_LIMIT = 5;</code>
     */
    public static final int PARK_COLLISION_INACTIVE_REASON_COLLISION_LIMIT_VALUE = 5;
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_MONITORING_TIME = 6;</code>
     */
    public static final int PARK_COLLISION_INACTIVE_REASON_MONITORING_TIME_VALUE = 6;
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_CONVERTIBLE_TOP_OPEN = 7;</code>
     */
    public static final int PARK_COLLISION_INACTIVE_REASON_CONVERTIBLE_TOP_OPEN_VALUE = 7;
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_TEST1 = 8;</code>
     */
    public static final int PARK_COLLISION_INACTIVE_REASON_TEST1_VALUE = 8;
    /**
     * <code>PARK_COLLISION_INACTIVE_REASON_TEST2 = 9;</code>
     */
    public static final int PARK_COLLISION_INACTIVE_REASON_TEST2_VALUE = 9;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ParkCollisionInactiveReason valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ParkCollisionInactiveReason forNumber(int value) {
      switch (value) {
        case 0: return PARK_COLLISION_INACTIVE_REASON_DISABLED;
        case 1: return PARK_COLLISION_INACTIVE_REASON_WAIT_FOR_SYSTEM_ACTIVATION;
        case 2: return PARK_COLLISION_INACTIVE_REASON_SYSTEM_ACTIVE;
        case 3: return PARK_COLLISION_INACTIVE_REASON_TRUNK_OR_DOOR_OPEN;
        case 4: return PARK_COLLISION_INACTIVE_REASON_DESELECTED;
        case 5: return PARK_COLLISION_INACTIVE_REASON_COLLISION_LIMIT;
        case 6: return PARK_COLLISION_INACTIVE_REASON_MONITORING_TIME;
        case 7: return PARK_COLLISION_INACTIVE_REASON_CONVERTIBLE_TOP_OPEN;
        case 8: return PARK_COLLISION_INACTIVE_REASON_TEST1;
        case 9: return PARK_COLLISION_INACTIVE_REASON_TEST2;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ParkCollisionInactiveReason>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ParkCollisionInactiveReason> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ParkCollisionInactiveReason>() {
            public ParkCollisionInactiveReason findValueByNumber(int number) {
              return ParkCollisionInactiveReason.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(33);
    }

    private static final ParkCollisionInactiveReason[] VALUES = values();

    public static ParkCollisionInactiveReason valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ParkCollisionInactiveReason(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.ParkCollisionInactiveReason)
  }

  /**
   * Protobuf enum {@code proto.ParkCollisionSelectionStatus}
   */
  public enum ParkCollisionSelectionStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>PARK_COLLISION_SELECTION_STATUS_DESELETED = 0;</code>
     */
    PARK_COLLISION_SELECTION_STATUS_DESELETED(0),
    /**
     * <code>PARK_COLLISION_SELECTION_STATUS_SELECTED = 1;</code>
     */
    PARK_COLLISION_SELECTION_STATUS_SELECTED(1),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ParkCollisionSelectionStatus");
    }
    /**
     * <code>PARK_COLLISION_SELECTION_STATUS_DESELETED = 0;</code>
     */
    public static final int PARK_COLLISION_SELECTION_STATUS_DESELETED_VALUE = 0;
    /**
     * <code>PARK_COLLISION_SELECTION_STATUS_SELECTED = 1;</code>
     */
    public static final int PARK_COLLISION_SELECTION_STATUS_SELECTED_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ParkCollisionSelectionStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ParkCollisionSelectionStatus forNumber(int value) {
      switch (value) {
        case 0: return PARK_COLLISION_SELECTION_STATUS_DESELETED;
        case 1: return PARK_COLLISION_SELECTION_STATUS_SELECTED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ParkCollisionSelectionStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ParkCollisionSelectionStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ParkCollisionSelectionStatus>() {
            public ParkCollisionSelectionStatus findValueByNumber(int number) {
              return ParkCollisionSelectionStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(34);
    }

    private static final ParkCollisionSelectionStatus[] VALUES = values();

    public static ParkCollisionSelectionStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ParkCollisionSelectionStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.ParkCollisionSelectionStatus)
  }

  /**
   * Protobuf enum {@code proto.VehicleTheftAlarmInactiveReason}
   */
  public enum VehicleTheftAlarmInactiveReason
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>VEHICLE_THEFT_ALARM_INACTIVE_REASON_NO_ERROR = 0;</code>
     */
    VEHICLE_THEFT_ALARM_INACTIVE_REASON_NO_ERROR(0),
    /**
     * <code>VEHICLE_THEFT_ALARM_INACTIVE_REASON_SIREN_COM = 1;</code>
     */
    VEHICLE_THEFT_ALARM_INACTIVE_REASON_SIREN_COM(1),
    /**
     * <code>VEHICLE_THEFT_ALARM_INACTIVE_REASON_SIREN_BAT = 2;</code>
     */
    VEHICLE_THEFT_ALARM_INACTIVE_REASON_SIREN_BAT(2),
    /**
     * <code>VEHICLE_THEFT_ALARM_INACTIVE_REASON_SENSOR = 3;</code>
     */
    VEHICLE_THEFT_ALARM_INACTIVE_REASON_SENSOR(3),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "VehicleTheftAlarmInactiveReason");
    }
    /**
     * <code>VEHICLE_THEFT_ALARM_INACTIVE_REASON_NO_ERROR = 0;</code>
     */
    public static final int VEHICLE_THEFT_ALARM_INACTIVE_REASON_NO_ERROR_VALUE = 0;
    /**
     * <code>VEHICLE_THEFT_ALARM_INACTIVE_REASON_SIREN_COM = 1;</code>
     */
    public static final int VEHICLE_THEFT_ALARM_INACTIVE_REASON_SIREN_COM_VALUE = 1;
    /**
     * <code>VEHICLE_THEFT_ALARM_INACTIVE_REASON_SIREN_BAT = 2;</code>
     */
    public static final int VEHICLE_THEFT_ALARM_INACTIVE_REASON_SIREN_BAT_VALUE = 2;
    /**
     * <code>VEHICLE_THEFT_ALARM_INACTIVE_REASON_SENSOR = 3;</code>
     */
    public static final int VEHICLE_THEFT_ALARM_INACTIVE_REASON_SENSOR_VALUE = 3;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static VehicleTheftAlarmInactiveReason valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static VehicleTheftAlarmInactiveReason forNumber(int value) {
      switch (value) {
        case 0: return VEHICLE_THEFT_ALARM_INACTIVE_REASON_NO_ERROR;
        case 1: return VEHICLE_THEFT_ALARM_INACTIVE_REASON_SIREN_COM;
        case 2: return VEHICLE_THEFT_ALARM_INACTIVE_REASON_SIREN_BAT;
        case 3: return VEHICLE_THEFT_ALARM_INACTIVE_REASON_SENSOR;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<VehicleTheftAlarmInactiveReason>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        VehicleTheftAlarmInactiveReason> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<VehicleTheftAlarmInactiveReason>() {
            public VehicleTheftAlarmInactiveReason findValueByNumber(int number) {
              return VehicleTheftAlarmInactiveReason.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(35);
    }

    private static final VehicleTheftAlarmInactiveReason[] VALUES = values();

    public static VehicleTheftAlarmInactiveReason valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private VehicleTheftAlarmInactiveReason(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.VehicleTheftAlarmInactiveReason)
  }

  /**
   * Protobuf enum {@code proto.TowProtectionActivationStatus}
   */
  public enum TowProtectionActivationStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>TOW_PROTECTION_ACTIVATION_STATUS_OFF = 0;</code>
     */
    TOW_PROTECTION_ACTIVATION_STATUS_OFF(0),
    /**
     * <code>TOW_PROTECTION_ACTIVATION_STATUS_ON = 1;</code>
     */
    TOW_PROTECTION_ACTIVATION_STATUS_ON(1),
    /**
     * <code>TOW_PROTECTION_ACTIVATION_STATUS_INIT = 2;</code>
     */
    TOW_PROTECTION_ACTIVATION_STATUS_INIT(2),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "TowProtectionActivationStatus");
    }
    /**
     * <code>TOW_PROTECTION_ACTIVATION_STATUS_OFF = 0;</code>
     */
    public static final int TOW_PROTECTION_ACTIVATION_STATUS_OFF_VALUE = 0;
    /**
     * <code>TOW_PROTECTION_ACTIVATION_STATUS_ON = 1;</code>
     */
    public static final int TOW_PROTECTION_ACTIVATION_STATUS_ON_VALUE = 1;
    /**
     * <code>TOW_PROTECTION_ACTIVATION_STATUS_INIT = 2;</code>
     */
    public static final int TOW_PROTECTION_ACTIVATION_STATUS_INIT_VALUE = 2;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static TowProtectionActivationStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static TowProtectionActivationStatus forNumber(int value) {
      switch (value) {
        case 0: return TOW_PROTECTION_ACTIVATION_STATUS_OFF;
        case 1: return TOW_PROTECTION_ACTIVATION_STATUS_ON;
        case 2: return TOW_PROTECTION_ACTIVATION_STATUS_INIT;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<TowProtectionActivationStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        TowProtectionActivationStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<TowProtectionActivationStatus>() {
            public TowProtectionActivationStatus findValueByNumber(int number) {
              return TowProtectionActivationStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(36);
    }

    private static final TowProtectionActivationStatus[] VALUES = values();

    public static TowProtectionActivationStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private TowProtectionActivationStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.TowProtectionActivationStatus)
  }

  /**
   * Protobuf enum {@code proto.TowProtectionSelectionStatus}
   */
  public enum TowProtectionSelectionStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>TOW_PROTECTION_SELECTION_STATUS_DESELETED = 0;</code>
     */
    TOW_PROTECTION_SELECTION_STATUS_DESELETED(0),
    /**
     * <code>TOW_PROTECTION_SELECTION_STATUS_SELECTED = 1;</code>
     */
    TOW_PROTECTION_SELECTION_STATUS_SELECTED(1),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "TowProtectionSelectionStatus");
    }
    /**
     * <code>TOW_PROTECTION_SELECTION_STATUS_DESELETED = 0;</code>
     */
    public static final int TOW_PROTECTION_SELECTION_STATUS_DESELETED_VALUE = 0;
    /**
     * <code>TOW_PROTECTION_SELECTION_STATUS_SELECTED = 1;</code>
     */
    public static final int TOW_PROTECTION_SELECTION_STATUS_SELECTED_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static TowProtectionSelectionStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static TowProtectionSelectionStatus forNumber(int value) {
      switch (value) {
        case 0: return TOW_PROTECTION_SELECTION_STATUS_DESELETED;
        case 1: return TOW_PROTECTION_SELECTION_STATUS_SELECTED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<TowProtectionSelectionStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        TowProtectionSelectionStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<TowProtectionSelectionStatus>() {
            public TowProtectionSelectionStatus findValueByNumber(int number) {
              return TowProtectionSelectionStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(37);
    }

    private static final TowProtectionSelectionStatus[] VALUES = values();

    public static TowProtectionSelectionStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private TowProtectionSelectionStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.TowProtectionSelectionStatus)
  }

  /**
   * Protobuf enum {@code proto.InteriorProtectionActivationStatus}
   */
  public enum InteriorProtectionActivationStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>INTERIOR_PROTECTION_ACTIVATION_STATUS_OFF = 0;</code>
     */
    INTERIOR_PROTECTION_ACTIVATION_STATUS_OFF(0),
    /**
     * <code>INTERIOR_PROTECTION_ACTIVATION_STATUS_ON = 1;</code>
     */
    INTERIOR_PROTECTION_ACTIVATION_STATUS_ON(1),
    /**
     * <code>INTERIOR_PROTECTION_ACTIVATION_STATUS_INIT = 2;</code>
     */
    INTERIOR_PROTECTION_ACTIVATION_STATUS_INIT(2),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "InteriorProtectionActivationStatus");
    }
    /**
     * <code>INTERIOR_PROTECTION_ACTIVATION_STATUS_OFF = 0;</code>
     */
    public static final int INTERIOR_PROTECTION_ACTIVATION_STATUS_OFF_VALUE = 0;
    /**
     * <code>INTERIOR_PROTECTION_ACTIVATION_STATUS_ON = 1;</code>
     */
    public static final int INTERIOR_PROTECTION_ACTIVATION_STATUS_ON_VALUE = 1;
    /**
     * <code>INTERIOR_PROTECTION_ACTIVATION_STATUS_INIT = 2;</code>
     */
    public static final int INTERIOR_PROTECTION_ACTIVATION_STATUS_INIT_VALUE = 2;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static InteriorProtectionActivationStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static InteriorProtectionActivationStatus forNumber(int value) {
      switch (value) {
        case 0: return INTERIOR_PROTECTION_ACTIVATION_STATUS_OFF;
        case 1: return INTERIOR_PROTECTION_ACTIVATION_STATUS_ON;
        case 2: return INTERIOR_PROTECTION_ACTIVATION_STATUS_INIT;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<InteriorProtectionActivationStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        InteriorProtectionActivationStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<InteriorProtectionActivationStatus>() {
            public InteriorProtectionActivationStatus findValueByNumber(int number) {
              return InteriorProtectionActivationStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(38);
    }

    private static final InteriorProtectionActivationStatus[] VALUES = values();

    public static InteriorProtectionActivationStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private InteriorProtectionActivationStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.InteriorProtectionActivationStatus)
  }

  /**
   * Protobuf enum {@code proto.InteriorProtectionSelectionStatus}
   */
  public enum InteriorProtectionSelectionStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>INTERIOR_PROTECTION_SELECTION_STATUS_DESELETED = 0;</code>
     */
    INTERIOR_PROTECTION_SELECTION_STATUS_DESELETED(0),
    /**
     * <code>INTERIOR_PROTECTION_SELECTION_STATUS_SELECTED = 1;</code>
     */
    INTERIOR_PROTECTION_SELECTION_STATUS_SELECTED(1),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "InteriorProtectionSelectionStatus");
    }
    /**
     * <code>INTERIOR_PROTECTION_SELECTION_STATUS_DESELETED = 0;</code>
     */
    public static final int INTERIOR_PROTECTION_SELECTION_STATUS_DESELETED_VALUE = 0;
    /**
     * <code>INTERIOR_PROTECTION_SELECTION_STATUS_SELECTED = 1;</code>
     */
    public static final int INTERIOR_PROTECTION_SELECTION_STATUS_SELECTED_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static InteriorProtectionSelectionStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static InteriorProtectionSelectionStatus forNumber(int value) {
      switch (value) {
        case 0: return INTERIOR_PROTECTION_SELECTION_STATUS_DESELETED;
        case 1: return INTERIOR_PROTECTION_SELECTION_STATUS_SELECTED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<InteriorProtectionSelectionStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        InteriorProtectionSelectionStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<InteriorProtectionSelectionStatus>() {
            public InteriorProtectionSelectionStatus findValueByNumber(int number) {
              return InteriorProtectionSelectionStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(39);
    }

    private static final InteriorProtectionSelectionStatus[] VALUES = values();

    public static InteriorProtectionSelectionStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private InteriorProtectionSelectionStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.InteriorProtectionSelectionStatus)
  }

  /**
   * Protobuf enum {@code proto.PanicAlarmActive}
   */
  public enum PanicAlarmActive
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>PANIC_ALARM_ACTIVE_CONFIRMED = 0;</code>
     */
    PANIC_ALARM_ACTIVE_CONFIRMED(0),
    /**
     * <code>PANIC_ALARM_ACTIVE_NOT_YET_CONFIRMED = 1;</code>
     */
    PANIC_ALARM_ACTIVE_NOT_YET_CONFIRMED(1),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "PanicAlarmActive");
    }
    /**
     * <code>PANIC_ALARM_ACTIVE_CONFIRMED = 0;</code>
     */
    public static final int PANIC_ALARM_ACTIVE_CONFIRMED_VALUE = 0;
    /**
     * <code>PANIC_ALARM_ACTIVE_NOT_YET_CONFIRMED = 1;</code>
     */
    public static final int PANIC_ALARM_ACTIVE_NOT_YET_CONFIRMED_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static PanicAlarmActive valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static PanicAlarmActive forNumber(int value) {
      switch (value) {
        case 0: return PANIC_ALARM_ACTIVE_CONFIRMED;
        case 1: return PANIC_ALARM_ACTIVE_NOT_YET_CONFIRMED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<PanicAlarmActive>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        PanicAlarmActive> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<PanicAlarmActive>() {
            public PanicAlarmActive findValueByNumber(int number) {
              return PanicAlarmActive.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(40);
    }

    private static final PanicAlarmActive[] VALUES = values();

    public static PanicAlarmActive valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private PanicAlarmActive(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.PanicAlarmActive)
  }

  /**
   * Protobuf enum {@code proto.ParkEventPictureSelectionStatus}
   */
  public enum ParkEventPictureSelectionStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>PARK_EVENT_PICTURE_SELECTION_STATUS_NOT_SELECTED = 0;</code>
     */
    PARK_EVENT_PICTURE_SELECTION_STATUS_NOT_SELECTED(0),
    /**
     * <code>PARK_EVENT_PICTURE_SELECTION_STATUS_SELECTED = 1;</code>
     */
    PARK_EVENT_PICTURE_SELECTION_STATUS_SELECTED(1),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ParkEventPictureSelectionStatus");
    }
    /**
     * <code>PARK_EVENT_PICTURE_SELECTION_STATUS_NOT_SELECTED = 0;</code>
     */
    public static final int PARK_EVENT_PICTURE_SELECTION_STATUS_NOT_SELECTED_VALUE = 0;
    /**
     * <code>PARK_EVENT_PICTURE_SELECTION_STATUS_SELECTED = 1;</code>
     */
    public static final int PARK_EVENT_PICTURE_SELECTION_STATUS_SELECTED_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ParkEventPictureSelectionStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ParkEventPictureSelectionStatus forNumber(int value) {
      switch (value) {
        case 0: return PARK_EVENT_PICTURE_SELECTION_STATUS_NOT_SELECTED;
        case 1: return PARK_EVENT_PICTURE_SELECTION_STATUS_SELECTED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ParkEventPictureSelectionStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ParkEventPictureSelectionStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ParkEventPictureSelectionStatus>() {
            public ParkEventPictureSelectionStatus findValueByNumber(int number) {
              return ParkEventPictureSelectionStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(41);
    }

    private static final ParkEventPictureSelectionStatus[] VALUES = values();

    public static ParkEventPictureSelectionStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ParkEventPictureSelectionStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.ParkEventPictureSelectionStatus)
  }

  /**
   * Protobuf enum {@code proto.ParkCollisionActivationStatus}
   */
  public enum ParkCollisionActivationStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>PARK_COLLISION_ACTIVATION_STATUS_OFF = 0;</code>
     */
    PARK_COLLISION_ACTIVATION_STATUS_OFF(0),
    /**
     * <code>PARK_COLLISION_ACTIVATION_STATUS_ON = 1;</code>
     */
    PARK_COLLISION_ACTIVATION_STATUS_ON(1),
    /**
     * <code>PARK_COLLISION_ACTIVATION_STATUS_INIT = 2;</code>
     */
    PARK_COLLISION_ACTIVATION_STATUS_INIT(2),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ParkCollisionActivationStatus");
    }
    /**
     * <code>PARK_COLLISION_ACTIVATION_STATUS_OFF = 0;</code>
     */
    public static final int PARK_COLLISION_ACTIVATION_STATUS_OFF_VALUE = 0;
    /**
     * <code>PARK_COLLISION_ACTIVATION_STATUS_ON = 1;</code>
     */
    public static final int PARK_COLLISION_ACTIVATION_STATUS_ON_VALUE = 1;
    /**
     * <code>PARK_COLLISION_ACTIVATION_STATUS_INIT = 2;</code>
     */
    public static final int PARK_COLLISION_ACTIVATION_STATUS_INIT_VALUE = 2;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ParkCollisionActivationStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ParkCollisionActivationStatus forNumber(int value) {
      switch (value) {
        case 0: return PARK_COLLISION_ACTIVATION_STATUS_OFF;
        case 1: return PARK_COLLISION_ACTIVATION_STATUS_ON;
        case 2: return PARK_COLLISION_ACTIVATION_STATUS_INIT;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ParkCollisionActivationStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ParkCollisionActivationStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ParkCollisionActivationStatus>() {
            public ParkCollisionActivationStatus findValueByNumber(int number) {
              return ParkCollisionActivationStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(42);
    }

    private static final ParkCollisionActivationStatus[] VALUES = values();

    public static ParkCollisionActivationStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ParkCollisionActivationStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.ParkCollisionActivationStatus)
  }

  /**
   * Protobuf enum {@code proto.ChargingCompatibilityError}
   */
  public enum ChargingCompatibilityError
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>CHARGING_COMPATIBILITY_ERROR_DEFAULT = 0;</code>
     */
    CHARGING_COMPATIBILITY_ERROR_DEFAULT(0),
    /**
     * <code>CHARGING_COMPATIBILITY_ERROR_FULL_COMPATIBILITY = 1;</code>
     */
    CHARGING_COMPATIBILITY_ERROR_FULL_COMPATIBILITY(1),
    /**
     * <code>CHARGING_COMPATIBILITY_ERROR_FULL_COMPATIBILITY_WITH_ADDITIONAL_HARDWARE = 2;</code>
     */
    CHARGING_COMPATIBILITY_ERROR_FULL_COMPATIBILITY_WITH_ADDITIONAL_HARDWARE(2),
    /**
     * <code>CHARGING_COMPATIBILITY_PARTIAL_COMPATIBILITY = 3;</code>
     */
    CHARGING_COMPATIBILITY_PARTIAL_COMPATIBILITY(3),
    /**
     * <code>CHARGING_COMPATIBILITY_PARTIAL_COMPATIBILITY_WITH_ADDITIONAL_DEVICE = 4;</code>
     */
    CHARGING_COMPATIBILITY_PARTIAL_COMPATIBILITY_WITH_ADDITIONAL_DEVICE(4),
    /**
     * <code>CHARGING_COMPATIBILITY_ERROR_NO_COMPATIBILITY = 5;</code>
     */
    CHARGING_COMPATIBILITY_ERROR_NO_COMPATIBILITY(5),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargingCompatibilityError");
    }
    /**
     * <code>CHARGING_COMPATIBILITY_ERROR_DEFAULT = 0;</code>
     */
    public static final int CHARGING_COMPATIBILITY_ERROR_DEFAULT_VALUE = 0;
    /**
     * <code>CHARGING_COMPATIBILITY_ERROR_FULL_COMPATIBILITY = 1;</code>
     */
    public static final int CHARGING_COMPATIBILITY_ERROR_FULL_COMPATIBILITY_VALUE = 1;
    /**
     * <code>CHARGING_COMPATIBILITY_ERROR_FULL_COMPATIBILITY_WITH_ADDITIONAL_HARDWARE = 2;</code>
     */
    public static final int CHARGING_COMPATIBILITY_ERROR_FULL_COMPATIBILITY_WITH_ADDITIONAL_HARDWARE_VALUE = 2;
    /**
     * <code>CHARGING_COMPATIBILITY_PARTIAL_COMPATIBILITY = 3;</code>
     */
    public static final int CHARGING_COMPATIBILITY_PARTIAL_COMPATIBILITY_VALUE = 3;
    /**
     * <code>CHARGING_COMPATIBILITY_PARTIAL_COMPATIBILITY_WITH_ADDITIONAL_DEVICE = 4;</code>
     */
    public static final int CHARGING_COMPATIBILITY_PARTIAL_COMPATIBILITY_WITH_ADDITIONAL_DEVICE_VALUE = 4;
    /**
     * <code>CHARGING_COMPATIBILITY_ERROR_NO_COMPATIBILITY = 5;</code>
     */
    public static final int CHARGING_COMPATIBILITY_ERROR_NO_COMPATIBILITY_VALUE = 5;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ChargingCompatibilityError valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ChargingCompatibilityError forNumber(int value) {
      switch (value) {
        case 0: return CHARGING_COMPATIBILITY_ERROR_DEFAULT;
        case 1: return CHARGING_COMPATIBILITY_ERROR_FULL_COMPATIBILITY;
        case 2: return CHARGING_COMPATIBILITY_ERROR_FULL_COMPATIBILITY_WITH_ADDITIONAL_HARDWARE;
        case 3: return CHARGING_COMPATIBILITY_PARTIAL_COMPATIBILITY;
        case 4: return CHARGING_COMPATIBILITY_PARTIAL_COMPATIBILITY_WITH_ADDITIONAL_DEVICE;
        case 5: return CHARGING_COMPATIBILITY_ERROR_NO_COMPATIBILITY;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ChargingCompatibilityError>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ChargingCompatibilityError> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ChargingCompatibilityError>() {
            public ChargingCompatibilityError findValueByNumber(int number) {
              return ChargingCompatibilityError.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(43);
    }

    private static final ChargingCompatibilityError[] VALUES = values();

    public static ChargingCompatibilityError valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ChargingCompatibilityError(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.ChargingCompatibilityError)
  }

  /**
   * Protobuf enum {@code proto.ChargingFlapErrorDetails}
   */
  public enum ChargingFlapErrorDetails
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>CHARGING_FLAP_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE = 0;</code>
     */
    CHARGING_FLAP_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE(0),
    /**
     * <code>CHARGING_FLAP_ERROR_DETAILS_OPENING_DEFECT_SEARCH_WORKSHOP = 1;</code>
     */
    CHARGING_FLAP_ERROR_DETAILS_OPENING_DEFECT_SEARCH_WORKSHOP(1),
    /**
     * <code>CHARGING_FLAP_ERROR_DETAILS_BLOCKED = 2;</code>
     */
    CHARGING_FLAP_ERROR_DETAILS_BLOCKED(2),
    /**
     * <code>CHARGING_FLAP_ERROR_DETAILS_DRIVING_POSITION_NOT_PARKING = 3;</code>
     */
    CHARGING_FLAP_ERROR_DETAILS_DRIVING_POSITION_NOT_PARKING(3),
    /**
     * <code>CHARGING_FLAP_ERROR_DETAILS_STATE_UNKNOWN = 4;</code>
     */
    CHARGING_FLAP_ERROR_DETAILS_STATE_UNKNOWN(4),
    /**
     * <code>CHARGING_FLAP_ERROR_DETAILS_PRESSED_DETECTION_DEFECT = 5;</code>
     */
    CHARGING_FLAP_ERROR_DETAILS_PRESSED_DETECTION_DEFECT(5),
    /**
     * <code>CHARGING_FLAP_ERROR_DETAILS_CLOSING_OF_AUTOMATED_FLAP_DEFECT = 6;</code>
     */
    CHARGING_FLAP_ERROR_DETAILS_CLOSING_OF_AUTOMATED_FLAP_DEFECT(6),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargingFlapErrorDetails");
    }
    /**
     * <code>CHARGING_FLAP_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE = 0;</code>
     */
    public static final int CHARGING_FLAP_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE_VALUE = 0;
    /**
     * <code>CHARGING_FLAP_ERROR_DETAILS_OPENING_DEFECT_SEARCH_WORKSHOP = 1;</code>
     */
    public static final int CHARGING_FLAP_ERROR_DETAILS_OPENING_DEFECT_SEARCH_WORKSHOP_VALUE = 1;
    /**
     * <code>CHARGING_FLAP_ERROR_DETAILS_BLOCKED = 2;</code>
     */
    public static final int CHARGING_FLAP_ERROR_DETAILS_BLOCKED_VALUE = 2;
    /**
     * <code>CHARGING_FLAP_ERROR_DETAILS_DRIVING_POSITION_NOT_PARKING = 3;</code>
     */
    public static final int CHARGING_FLAP_ERROR_DETAILS_DRIVING_POSITION_NOT_PARKING_VALUE = 3;
    /**
     * <code>CHARGING_FLAP_ERROR_DETAILS_STATE_UNKNOWN = 4;</code>
     */
    public static final int CHARGING_FLAP_ERROR_DETAILS_STATE_UNKNOWN_VALUE = 4;
    /**
     * <code>CHARGING_FLAP_ERROR_DETAILS_PRESSED_DETECTION_DEFECT = 5;</code>
     */
    public static final int CHARGING_FLAP_ERROR_DETAILS_PRESSED_DETECTION_DEFECT_VALUE = 5;
    /**
     * <code>CHARGING_FLAP_ERROR_DETAILS_CLOSING_OF_AUTOMATED_FLAP_DEFECT = 6;</code>
     */
    public static final int CHARGING_FLAP_ERROR_DETAILS_CLOSING_OF_AUTOMATED_FLAP_DEFECT_VALUE = 6;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ChargingFlapErrorDetails valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ChargingFlapErrorDetails forNumber(int value) {
      switch (value) {
        case 0: return CHARGING_FLAP_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE;
        case 1: return CHARGING_FLAP_ERROR_DETAILS_OPENING_DEFECT_SEARCH_WORKSHOP;
        case 2: return CHARGING_FLAP_ERROR_DETAILS_BLOCKED;
        case 3: return CHARGING_FLAP_ERROR_DETAILS_DRIVING_POSITION_NOT_PARKING;
        case 4: return CHARGING_FLAP_ERROR_DETAILS_STATE_UNKNOWN;
        case 5: return CHARGING_FLAP_ERROR_DETAILS_PRESSED_DETECTION_DEFECT;
        case 6: return CHARGING_FLAP_ERROR_DETAILS_CLOSING_OF_AUTOMATED_FLAP_DEFECT;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ChargingFlapErrorDetails>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ChargingFlapErrorDetails> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ChargingFlapErrorDetails>() {
            public ChargingFlapErrorDetails findValueByNumber(int number) {
              return ChargingFlapErrorDetails.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(44);
    }

    private static final ChargingFlapErrorDetails[] VALUES = values();

    public static ChargingFlapErrorDetails valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ChargingFlapErrorDetails(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.ChargingFlapErrorDetails)
  }

  /**
   * Protobuf enum {@code proto.ChargeFlapsPositionState}
   */
  public enum ChargeFlapsPositionState
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>CHARGE_FLAPS_POSITION_STATE_DEFAULT = 0;</code>
     */
    CHARGE_FLAPS_POSITION_STATE_DEFAULT(0),
    /**
     * <code>CHARGE_FLAPS_POSITION_STATE_OPEN = 1;</code>
     */
    CHARGE_FLAPS_POSITION_STATE_OPEN(1),
    /**
     * <code>CHARGE_FLAPS_POSITION_STATE_CLOSED = 2;</code>
     */
    CHARGE_FLAPS_POSITION_STATE_CLOSED(2),
    /**
     * <code>CHARGE_FLAPS_POSITION_STATE_FLAP_PRESSED = 3;</code>
     */
    CHARGE_FLAPS_POSITION_STATE_FLAP_PRESSED(3),
    /**
     * <code>CHARGE_FLAPS_POSITION_STATE_UNKNOWN = 4;</code>
     */
    CHARGE_FLAPS_POSITION_STATE_UNKNOWN(4),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargeFlapsPositionState");
    }
    /**
     * <code>CHARGE_FLAPS_POSITION_STATE_DEFAULT = 0;</code>
     */
    public static final int CHARGE_FLAPS_POSITION_STATE_DEFAULT_VALUE = 0;
    /**
     * <code>CHARGE_FLAPS_POSITION_STATE_OPEN = 1;</code>
     */
    public static final int CHARGE_FLAPS_POSITION_STATE_OPEN_VALUE = 1;
    /**
     * <code>CHARGE_FLAPS_POSITION_STATE_CLOSED = 2;</code>
     */
    public static final int CHARGE_FLAPS_POSITION_STATE_CLOSED_VALUE = 2;
    /**
     * <code>CHARGE_FLAPS_POSITION_STATE_FLAP_PRESSED = 3;</code>
     */
    public static final int CHARGE_FLAPS_POSITION_STATE_FLAP_PRESSED_VALUE = 3;
    /**
     * <code>CHARGE_FLAPS_POSITION_STATE_UNKNOWN = 4;</code>
     */
    public static final int CHARGE_FLAPS_POSITION_STATE_UNKNOWN_VALUE = 4;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ChargeFlapsPositionState valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ChargeFlapsPositionState forNumber(int value) {
      switch (value) {
        case 0: return CHARGE_FLAPS_POSITION_STATE_DEFAULT;
        case 1: return CHARGE_FLAPS_POSITION_STATE_OPEN;
        case 2: return CHARGE_FLAPS_POSITION_STATE_CLOSED;
        case 3: return CHARGE_FLAPS_POSITION_STATE_FLAP_PRESSED;
        case 4: return CHARGE_FLAPS_POSITION_STATE_UNKNOWN;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ChargeFlapsPositionState>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ChargeFlapsPositionState> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ChargeFlapsPositionState>() {
            public ChargeFlapsPositionState findValueByNumber(int number) {
              return ChargeFlapsPositionState.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(45);
    }

    private static final ChargeFlapsPositionState[] VALUES = values();

    public static ChargeFlapsPositionState valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ChargeFlapsPositionState(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.ChargeFlapsPositionState)
  }

  /**
   * Protobuf enum {@code proto.ChargingPowerRestriction}
   */
  public enum ChargingPowerRestriction
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>CHARGING_POWER_RESTRICTION_NO_RESTRICTION = 0;</code>
     */
    CHARGING_POWER_RESTRICTION_NO_RESTRICTION(0),
    /**
     * <code>CHARGING_POWER_RESTRICTION_ECO_CHARGING_ACTIVE = 1;</code>
     */
    CHARGING_POWER_RESTRICTION_ECO_CHARGING_ACTIVE(1),
    /**
     * <code>CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CUSTOMER_SETTING = 2;</code>
     */
    CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CUSTOMER_SETTING(2),
    /**
     * <code>CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_VEHICLE_CHARGING_SYSTEM = 3;</code>
     */
    CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_VEHICLE_CHARGING_SYSTEM(3),
    /**
     * <code>CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_REMOTE_CONTROL = 4;</code>
     */
    CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_REMOTE_CONTROL(4),
    /**
     * <code>CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CHARGING_INFRASTRUCTURE = 5;</code>
     */
    CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CHARGING_INFRASTRUCTURE(5),
    /**
     * <code>CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CHARGING_STRATEGY = 6;</code>
     */
    CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CHARGING_STRATEGY(6),
    /**
     * <code>CHARGING_POWER_RESTRICTION_STATE_OF_CHARGE_TOO_LOW = 7;</code>
     */
    CHARGING_POWER_RESTRICTION_STATE_OF_CHARGE_TOO_LOW(7),
    /**
     * <code>CHARGING_POWER_RESTRICTION_STATE_OF_CHARGE_TOO_HIGH = 8;</code>
     */
    CHARGING_POWER_RESTRICTION_STATE_OF_CHARGE_TOO_HIGH(8),
    /**
     * <code>CHARGING_POWER_RESTRICTION_BATTERY_TEMPERATURE_TOO_LOW = 9;</code>
     */
    CHARGING_POWER_RESTRICTION_BATTERY_TEMPERATURE_TOO_LOW(9),
    /**
     * <code>CHARGING_POWER_RESTRICTION_BATTERY_TEMPERATURE_TOO_HIGH = 10;</code>
     */
    CHARGING_POWER_RESTRICTION_BATTERY_TEMPERATURE_TOO_HIGH(10),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargingPowerRestriction");
    }
    /**
     * <code>CHARGING_POWER_RESTRICTION_NO_RESTRICTION = 0;</code>
     */
    public static final int CHARGING_POWER_RESTRICTION_NO_RESTRICTION_VALUE = 0;
    /**
     * <code>CHARGING_POWER_RESTRICTION_ECO_CHARGING_ACTIVE = 1;</code>
     */
    public static final int CHARGING_POWER_RESTRICTION_ECO_CHARGING_ACTIVE_VALUE = 1;
    /**
     * <code>CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CUSTOMER_SETTING = 2;</code>
     */
    public static final int CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CUSTOMER_SETTING_VALUE = 2;
    /**
     * <code>CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_VEHICLE_CHARGING_SYSTEM = 3;</code>
     */
    public static final int CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_VEHICLE_CHARGING_SYSTEM_VALUE = 3;
    /**
     * <code>CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_REMOTE_CONTROL = 4;</code>
     */
    public static final int CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_REMOTE_CONTROL_VALUE = 4;
    /**
     * <code>CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CHARGING_INFRASTRUCTURE = 5;</code>
     */
    public static final int CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CHARGING_INFRASTRUCTURE_VALUE = 5;
    /**
     * <code>CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CHARGING_STRATEGY = 6;</code>
     */
    public static final int CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CHARGING_STRATEGY_VALUE = 6;
    /**
     * <code>CHARGING_POWER_RESTRICTION_STATE_OF_CHARGE_TOO_LOW = 7;</code>
     */
    public static final int CHARGING_POWER_RESTRICTION_STATE_OF_CHARGE_TOO_LOW_VALUE = 7;
    /**
     * <code>CHARGING_POWER_RESTRICTION_STATE_OF_CHARGE_TOO_HIGH = 8;</code>
     */
    public static final int CHARGING_POWER_RESTRICTION_STATE_OF_CHARGE_TOO_HIGH_VALUE = 8;
    /**
     * <code>CHARGING_POWER_RESTRICTION_BATTERY_TEMPERATURE_TOO_LOW = 9;</code>
     */
    public static final int CHARGING_POWER_RESTRICTION_BATTERY_TEMPERATURE_TOO_LOW_VALUE = 9;
    /**
     * <code>CHARGING_POWER_RESTRICTION_BATTERY_TEMPERATURE_TOO_HIGH = 10;</code>
     */
    public static final int CHARGING_POWER_RESTRICTION_BATTERY_TEMPERATURE_TOO_HIGH_VALUE = 10;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ChargingPowerRestriction valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ChargingPowerRestriction forNumber(int value) {
      switch (value) {
        case 0: return CHARGING_POWER_RESTRICTION_NO_RESTRICTION;
        case 1: return CHARGING_POWER_RESTRICTION_ECO_CHARGING_ACTIVE;
        case 2: return CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CUSTOMER_SETTING;
        case 3: return CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_VEHICLE_CHARGING_SYSTEM;
        case 4: return CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_REMOTE_CONTROL;
        case 5: return CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CHARGING_INFRASTRUCTURE;
        case 6: return CHARGING_POWER_RESTRICTION_REDUCED_DUE_TO_CHARGING_STRATEGY;
        case 7: return CHARGING_POWER_RESTRICTION_STATE_OF_CHARGE_TOO_LOW;
        case 8: return CHARGING_POWER_RESTRICTION_STATE_OF_CHARGE_TOO_HIGH;
        case 9: return CHARGING_POWER_RESTRICTION_BATTERY_TEMPERATURE_TOO_LOW;
        case 10: return CHARGING_POWER_RESTRICTION_BATTERY_TEMPERATURE_TOO_HIGH;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ChargingPowerRestriction>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ChargingPowerRestriction> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ChargingPowerRestriction>() {
            public ChargingPowerRestriction findValueByNumber(int number) {
              return ChargingPowerRestriction.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(46);
    }

    private static final ChargingPowerRestriction[] VALUES = values();

    public static ChargingPowerRestriction valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ChargingPowerRestriction(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.ChargingPowerRestriction)
  }

  /**
   * Protobuf enum {@code proto.BatteryHealth}
   */
  public enum BatteryHealth
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>BATTERY_GREEN_STATE = 0;</code>
     */
    BATTERY_GREEN_STATE(0),
    /**
     * <code>BATTERY_YELLOW_STATE = 1;</code>
     */
    BATTERY_YELLOW_STATE(1),
    /**
     * <code>BATTERY_RED_STATE = 2;</code>
     */
    BATTERY_RED_STATE(2),
    /**
     * <code>ISSUE_WITH_DATA_EVALUATION = 3;</code>
     */
    ISSUE_WITH_DATA_EVALUATION(3),
    /**
     * <code>NO_EVALUATION_POSSIBLE = 4;</code>
     */
    NO_EVALUATION_POSSIBLE(4),
    /**
     * <code>BATTERY_CHANGED = 5;</code>
     */
    BATTERY_CHANGED(5),
    /**
     * <code>BATTERY_HEALTH_CANNOT_BE_CALCULATED = 6;</code>
     */
    BATTERY_HEALTH_CANNOT_BE_CALCULATED(6),
    /**
     * <code>NO_MB_ORIGINAL_BATTERY = 7;</code>
     */
    NO_MB_ORIGINAL_BATTERY(7),
    /**
     * <code>TECHNICAL_LIMITATION_FROM_VEHICLE = 8;</code>
     */
    TECHNICAL_LIMITATION_FROM_VEHICLE(8),
    /**
     * <code>GENERAL_TECHNICAL_ERROR = 9;</code>
     */
    GENERAL_TECHNICAL_ERROR(9),
    /**
     * <code>GENERAL_PROCESS_ERROR = 10;</code>
     */
    GENERAL_PROCESS_ERROR(10),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "BatteryHealth");
    }
    /**
     * <code>BATTERY_GREEN_STATE = 0;</code>
     */
    public static final int BATTERY_GREEN_STATE_VALUE = 0;
    /**
     * <code>BATTERY_YELLOW_STATE = 1;</code>
     */
    public static final int BATTERY_YELLOW_STATE_VALUE = 1;
    /**
     * <code>BATTERY_RED_STATE = 2;</code>
     */
    public static final int BATTERY_RED_STATE_VALUE = 2;
    /**
     * <code>ISSUE_WITH_DATA_EVALUATION = 3;</code>
     */
    public static final int ISSUE_WITH_DATA_EVALUATION_VALUE = 3;
    /**
     * <code>NO_EVALUATION_POSSIBLE = 4;</code>
     */
    public static final int NO_EVALUATION_POSSIBLE_VALUE = 4;
    /**
     * <code>BATTERY_CHANGED = 5;</code>
     */
    public static final int BATTERY_CHANGED_VALUE = 5;
    /**
     * <code>BATTERY_HEALTH_CANNOT_BE_CALCULATED = 6;</code>
     */
    public static final int BATTERY_HEALTH_CANNOT_BE_CALCULATED_VALUE = 6;
    /**
     * <code>NO_MB_ORIGINAL_BATTERY = 7;</code>
     */
    public static final int NO_MB_ORIGINAL_BATTERY_VALUE = 7;
    /**
     * <code>TECHNICAL_LIMITATION_FROM_VEHICLE = 8;</code>
     */
    public static final int TECHNICAL_LIMITATION_FROM_VEHICLE_VALUE = 8;
    /**
     * <code>GENERAL_TECHNICAL_ERROR = 9;</code>
     */
    public static final int GENERAL_TECHNICAL_ERROR_VALUE = 9;
    /**
     * <code>GENERAL_PROCESS_ERROR = 10;</code>
     */
    public static final int GENERAL_PROCESS_ERROR_VALUE = 10;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static BatteryHealth valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static BatteryHealth forNumber(int value) {
      switch (value) {
        case 0: return BATTERY_GREEN_STATE;
        case 1: return BATTERY_YELLOW_STATE;
        case 2: return BATTERY_RED_STATE;
        case 3: return ISSUE_WITH_DATA_EVALUATION;
        case 4: return NO_EVALUATION_POSSIBLE;
        case 5: return BATTERY_CHANGED;
        case 6: return BATTERY_HEALTH_CANNOT_BE_CALCULATED;
        case 7: return NO_MB_ORIGINAL_BATTERY;
        case 8: return TECHNICAL_LIMITATION_FROM_VEHICLE;
        case 9: return GENERAL_TECHNICAL_ERROR;
        case 10: return GENERAL_PROCESS_ERROR;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<BatteryHealth>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        BatteryHealth> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<BatteryHealth>() {
            public BatteryHealth findValueByNumber(int number) {
              return BatteryHealth.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(47);
    }

    private static final BatteryHealth[] VALUES = values();

    public static BatteryHealth valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private BatteryHealth(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.BatteryHealth)
  }

  /**
   * Protobuf enum {@code proto.PrecondStateType}
   */
  public enum PrecondStateType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>PRECOND_STATE_TYPE_ON_UNLOCK = 0;</code>
     */
    PRECOND_STATE_TYPE_ON_UNLOCK(0),
    /**
     * <code>PRECOND_STATE_TYPE_AT_DEPARTURE_TIME = 1;</code>
     */
    PRECOND_STATE_TYPE_AT_DEPARTURE_TIME(1),
    /**
     * <code>PRECOND_STATE_TYPE_IMMEDIATE = 2;</code>
     */
    PRECOND_STATE_TYPE_IMMEDIATE(2),
    /**
     * <code>PRECOND_STATE_TYPE_CHILD_PRESENCE_DETECTION = 3;</code>
     */
    PRECOND_STATE_TYPE_CHILD_PRESENCE_DETECTION(3),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "PrecondStateType");
    }
    /**
     * <code>PRECOND_STATE_TYPE_ON_UNLOCK = 0;</code>
     */
    public static final int PRECOND_STATE_TYPE_ON_UNLOCK_VALUE = 0;
    /**
     * <code>PRECOND_STATE_TYPE_AT_DEPARTURE_TIME = 1;</code>
     */
    public static final int PRECOND_STATE_TYPE_AT_DEPARTURE_TIME_VALUE = 1;
    /**
     * <code>PRECOND_STATE_TYPE_IMMEDIATE = 2;</code>
     */
    public static final int PRECOND_STATE_TYPE_IMMEDIATE_VALUE = 2;
    /**
     * <code>PRECOND_STATE_TYPE_CHILD_PRESENCE_DETECTION = 3;</code>
     */
    public static final int PRECOND_STATE_TYPE_CHILD_PRESENCE_DETECTION_VALUE = 3;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static PrecondStateType valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static PrecondStateType forNumber(int value) {
      switch (value) {
        case 0: return PRECOND_STATE_TYPE_ON_UNLOCK;
        case 1: return PRECOND_STATE_TYPE_AT_DEPARTURE_TIME;
        case 2: return PRECOND_STATE_TYPE_IMMEDIATE;
        case 3: return PRECOND_STATE_TYPE_CHILD_PRESENCE_DETECTION;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<PrecondStateType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        PrecondStateType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<PrecondStateType>() {
            public PrecondStateType findValueByNumber(int number) {
              return PrecondStateType.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(48);
    }

    private static final PrecondStateType[] VALUES = values();

    public static PrecondStateType valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private PrecondStateType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.PrecondStateType)
  }

  /**
   * Protobuf enum {@code proto.ChargeProgram}
   */
  public enum ChargeProgram
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>DEFAULT_CHARGE_PROGRAM = 0;</code>
     */
    DEFAULT_CHARGE_PROGRAM(0),
    /**
     * <code>INSTANT_CHARGE_PROGRAM = 1;</code>
     */
    INSTANT_CHARGE_PROGRAM(1),
    /**
     * <code>HOME_CHARGE_PROGRAM = 2;</code>
     */
    HOME_CHARGE_PROGRAM(2),
    /**
     * <code>WORK_CHARGE_PROGRAM = 3;</code>
     */
    WORK_CHARGE_PROGRAM(3),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargeProgram");
    }
    /**
     * <code>DEFAULT_CHARGE_PROGRAM = 0;</code>
     */
    public static final int DEFAULT_CHARGE_PROGRAM_VALUE = 0;
    /**
     * <code>INSTANT_CHARGE_PROGRAM = 1;</code>
     */
    public static final int INSTANT_CHARGE_PROGRAM_VALUE = 1;
    /**
     * <code>HOME_CHARGE_PROGRAM = 2;</code>
     */
    public static final int HOME_CHARGE_PROGRAM_VALUE = 2;
    /**
     * <code>WORK_CHARGE_PROGRAM = 3;</code>
     */
    public static final int WORK_CHARGE_PROGRAM_VALUE = 3;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ChargeProgram valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ChargeProgram forNumber(int value) {
      switch (value) {
        case 0: return DEFAULT_CHARGE_PROGRAM;
        case 1: return INSTANT_CHARGE_PROGRAM;
        case 2: return HOME_CHARGE_PROGRAM;
        case 3: return WORK_CHARGE_PROGRAM;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ChargeProgram>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ChargeProgram> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ChargeProgram>() {
            public ChargeProgram findValueByNumber(int number) {
              return ChargeProgram.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(49);
    }

    private static final ChargeProgram[] VALUES = values();

    public static ChargeProgram valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ChargeProgram(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.ChargeProgram)
  }

  /**
   * <pre>
   * 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
   * </pre>
   *
   * Protobuf enum {@code proto.AttributeStatus}
   */
  public enum AttributeStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <pre>
     * Value is set and valid
     * </pre>
     *
     * <code>VALUE_VALID = 0;</code>
     */
    VALUE_VALID(0),
    /**
     * <pre>
     * Value has not yet been received from the vehicle (but sensor etc. should be available)
     * </pre>
     *
     * <code>VALUE_NOT_RECEIVED = 1;</code>
     */
    VALUE_NOT_RECEIVED(1),
    /**
     * <pre>
     * Value has been retrieved from vehicle but is invalid (marked as invalid by DaiVB backend)
     * </pre>
     *
     * <code>VALUE_INVALID = 3;</code>
     */
    VALUE_INVALID(3),
    /**
     * <pre>
     * Vehicle does not support this attribute (e.g. does not have the sensor etc.)
     * </pre>
     *
     * <code>VALUE_NOT_AVAILABLE = 4;</code>
     */
    VALUE_NOT_AVAILABLE(4),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "AttributeStatus");
    }
    /**
     * <pre>
     * Value is set and valid
     * </pre>
     *
     * <code>VALUE_VALID = 0;</code>
     */
    public static final int VALUE_VALID_VALUE = 0;
    /**
     * <pre>
     * Value has not yet been received from the vehicle (but sensor etc. should be available)
     * </pre>
     *
     * <code>VALUE_NOT_RECEIVED = 1;</code>
     */
    public static final int VALUE_NOT_RECEIVED_VALUE = 1;
    /**
     * <pre>
     * Value has been retrieved from vehicle but is invalid (marked as invalid by DaiVB backend)
     * </pre>
     *
     * <code>VALUE_INVALID = 3;</code>
     */
    public static final int VALUE_INVALID_VALUE = 3;
    /**
     * <pre>
     * Vehicle does not support this attribute (e.g. does not have the sensor etc.)
     * </pre>
     *
     * <code>VALUE_NOT_AVAILABLE = 4;</code>
     */
    public static final int VALUE_NOT_AVAILABLE_VALUE = 4;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static AttributeStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static AttributeStatus forNumber(int value) {
      switch (value) {
        case 0: return VALUE_VALID;
        case 1: return VALUE_NOT_RECEIVED;
        case 3: return VALUE_INVALID;
        case 4: return VALUE_NOT_AVAILABLE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<AttributeStatus>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        AttributeStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<AttributeStatus>() {
            public AttributeStatus findValueByNumber(int number) {
              return AttributeStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(50);
    }

    private static final AttributeStatus[] VALUES = values();

    public static AttributeStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private AttributeStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.AttributeStatus)
  }

  /**
   * Protobuf enum {@code proto.Scope}
   */
  public enum Scope
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>USER = 0;</code>
     */
    USER(0),
    /**
     * <code>ONBOARD_FENCES = 1;</code>
     */
    ONBOARD_FENCES(1),
    /**
     * <code>USER_PIN = 3;</code>
     */
    USER_PIN(3),
    /**
     * <code>SERVICE_PREREQUISITE = 4;</code>
     */
    SERVICE_PREREQUISITE(4),
    /**
     * <code>USER_PROFILE_PICTURE = 5;</code>
     */
    USER_PROFILE_PICTURE(5),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "Scope");
    }
    /**
     * <code>USER = 0;</code>
     */
    public static final int USER_VALUE = 0;
    /**
     * <code>ONBOARD_FENCES = 1;</code>
     */
    public static final int ONBOARD_FENCES_VALUE = 1;
    /**
     * <code>USER_PIN = 3;</code>
     */
    public static final int USER_PIN_VALUE = 3;
    /**
     * <code>SERVICE_PREREQUISITE = 4;</code>
     */
    public static final int SERVICE_PREREQUISITE_VALUE = 4;
    /**
     * <code>USER_PROFILE_PICTURE = 5;</code>
     */
    public static final int USER_PROFILE_PICTURE_VALUE = 5;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static Scope valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static Scope forNumber(int value) {
      switch (value) {
        case 0: return USER;
        case 1: return ONBOARD_FENCES;
        case 3: return USER_PIN;
        case 4: return SERVICE_PREREQUISITE;
        case 5: return USER_PROFILE_PICTURE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<Scope>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        Scope> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<Scope>() {
            public Scope findValueByNumber(int number) {
              return Scope.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(51);
    }

    private static final Scope[] VALUES = values();

    public static Scope valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private Scope(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:proto.Scope)
  }

  public interface VEPUpdateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.VEPUpdate)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 sequence_number = 1;</code>
     * @return The sequenceNumber.
     */
    int getSequenceNumber();

    /**
     * <code>string vin = 2;</code>
     * @return The vin.
     */
    java.lang.String getVin();
    /**
     * <code>string vin = 2;</code>
     * @return The bytes for vin.
     */
    com.google.protobuf.ByteString
        getVinBytes();

    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>bool full_update = 15;</code>
     * @return The fullUpdate.
     */
    boolean getFullUpdate();

    /**
     * <pre>
     * 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
     * </pre>
     *
     * <code>int64 emit_timestamp = 10;</code>
     * @return The emitTimestamp.
     */
    long getEmitTimestamp();

    /**
     * <pre>
     * when was the event emitted? This is the time of the update (unix timestamp in milliseconds),
     * </pre>
     *
     * <code>int64 emit_timestamp_in_ms = 14;</code>
     * @return The emitTimestampInMs.
     */
    long getEmitTimestampInMs();

    /**
     * <pre>
     * the attribute changes are a list of changed attributes
     * </pre>
     *
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 11;</code>
     */
    int getAttributesCount();
    /**
     * <pre>
     * the attribute changes are a list of changed attributes
     * </pre>
     *
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 11;</code>
     */
    boolean containsAttributes(
        java.lang.String key);
    /**
     * Use {@link #getAttributesMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus>
    getAttributes();
    /**
     * <pre>
     * the attribute changes are a list of changed attributes
     * </pre>
     *
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 11;</code>
     */
    java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus>
    getAttributesMap();
    /**
     * <pre>
     * the attribute changes are a list of changed attributes
     * </pre>
     *
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 11;</code>
     */
    /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrDefault(
        java.lang.String key,
        /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus defaultValue);
    /**
     * <pre>
     * the attribute changes are a list of changed attributes
     * </pre>
     *
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 11;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrThrow(
        java.lang.String key);
  }
  /**
   * <pre>
   * Sending direction: App &lt;- BFF &lt;- AppTwin
   * </pre>
   *
   * Protobuf type {@code proto.VEPUpdate}
   */
  public static final class VEPUpdate extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.VEPUpdate)
      VEPUpdateOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "VEPUpdate");
    }
    // Use VEPUpdate.newBuilder() to construct.
    private VEPUpdate(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private VEPUpdate() {
      vin_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdate_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
        int number) {
      switch (number) {
        case 11:
          return internalGetAttributes();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdate_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.class, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder.class);
    }

    public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1;
    private int sequenceNumber_ = 0;
    /**
     * <code>int32 sequence_number = 1;</code>
     * @return The sequenceNumber.
     */
    @java.lang.Override
    public int getSequenceNumber() {
      return sequenceNumber_;
    }

    public static final int VIN_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object vin_ = "";
    /**
     * <code>string vin = 2;</code>
     * @return The vin.
     */
    @java.lang.Override
    public java.lang.String getVin() {
      java.lang.Object ref = vin_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        vin_ = s;
        return s;
      }
    }
    /**
     * <code>string vin = 2;</code>
     * @return The bytes for vin.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getVinBytes() {
      java.lang.Object ref = vin_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        vin_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FULL_UPDATE_FIELD_NUMBER = 15;
    private boolean fullUpdate_ = false;
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>bool full_update = 15;</code>
     * @return The fullUpdate.
     */
    @java.lang.Override
    public boolean getFullUpdate() {
      return fullUpdate_;
    }

    public static final int EMIT_TIMESTAMP_FIELD_NUMBER = 10;
    private long emitTimestamp_ = 0L;
    /**
     * <pre>
     * 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
     * </pre>
     *
     * <code>int64 emit_timestamp = 10;</code>
     * @return The emitTimestamp.
     */
    @java.lang.Override
    public long getEmitTimestamp() {
      return emitTimestamp_;
    }

    public static final int EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER = 14;
    private long emitTimestampInMs_ = 0L;
    /**
     * <pre>
     * when was the event emitted? This is the time of the update (unix timestamp in milliseconds),
     * </pre>
     *
     * <code>int64 emit_timestamp_in_ms = 14;</code>
     * @return The emitTimestampInMs.
     */
    @java.lang.Override
    public long getEmitTimestampInMs() {
      return emitTimestampInMs_;
    }

    public static final int ATTRIBUTES_FIELD_NUMBER = 11;
    private static final class AttributesDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus>newDefaultInstance(
                  com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdate_AttributesEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDefaultInstance());
    }
    @SuppressWarnings("serial")
    private com.google.protobuf.MapField<
        java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> attributes_;
    private com.google.protobuf.MapField<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus>
    internalGetAttributes() {
      if (attributes_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            AttributesDefaultEntryHolder.defaultEntry);
      }
      return attributes_;
    }
    public int getAttributesCount() {
      return internalGetAttributes().getMap().size();
    }
    /**
     * <pre>
     * the attribute changes are a list of changed attributes
     * </pre>
     *
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 11;</code>
     */
    @java.lang.Override
    public boolean containsAttributes(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetAttributes().getMap().containsKey(key);
    }
    /**
     * Use {@link #getAttributesMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> getAttributes() {
      return getAttributesMap();
    }
    /**
     * <pre>
     * the attribute changes are a list of changed attributes
     * </pre>
     *
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 11;</code>
     */
    @java.lang.Override
    public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> getAttributesMap() {
      return internalGetAttributes().getMap();
    }
    /**
     * <pre>
     * the attribute changes are a list of changed attributes
     * </pre>
     *
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 11;</code>
     */
    @java.lang.Override
    public /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrDefault(
        java.lang.String key,
        /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> map =
          internalGetAttributes().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     * the attribute changes are a list of changed attributes
     * </pre>
     *
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 11;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> map =
          internalGetAttributes().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (sequenceNumber_ != 0) {
        output.writeInt32(1, sequenceNumber_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, vin_);
      }
      if (emitTimestamp_ != 0L) {
        output.writeInt64(10, emitTimestamp_);
      }
      com.google.protobuf.GeneratedMessage
        .serializeStringMapTo(
          output,
          internalGetAttributes(),
          AttributesDefaultEntryHolder.defaultEntry,
          11);
      if (emitTimestampInMs_ != 0L) {
        output.writeInt64(14, emitTimestampInMs_);
      }
      if (fullUpdate_ != false) {
        output.writeBool(15, fullUpdate_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (sequenceNumber_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sequenceNumber_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, vin_);
      }
      if (emitTimestamp_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(10, emitTimestamp_);
      }
      for (java.util.Map.Entry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> entry
           : internalGetAttributes().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus>
        attributes__ = AttributesDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(11, attributes__);
      }
      if (emitTimestampInMs_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(14, emitTimestampInMs_);
      }
      if (fullUpdate_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(15, fullUpdate_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate other = (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) obj;

      if (getSequenceNumber()
          != other.getSequenceNumber()) return false;
      if (!getVin()
          .equals(other.getVin())) return false;
      if (getFullUpdate()
          != other.getFullUpdate()) return false;
      if (getEmitTimestamp()
          != other.getEmitTimestamp()) return false;
      if (getEmitTimestampInMs()
          != other.getEmitTimestampInMs()) return false;
      if (!internalGetAttributes().equals(
          other.internalGetAttributes())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getSequenceNumber();
      hash = (37 * hash) + VIN_FIELD_NUMBER;
      hash = (53 * hash) + getVin().hashCode();
      hash = (37 * hash) + FULL_UPDATE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getFullUpdate());
      hash = (37 * hash) + EMIT_TIMESTAMP_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getEmitTimestamp());
      hash = (37 * hash) + EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getEmitTimestampInMs());
      if (!internalGetAttributes().getMap().isEmpty()) {
        hash = (37 * hash) + ATTRIBUTES_FIELD_NUMBER;
        hash = (53 * hash) + internalGetAttributes().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Sending direction: App &lt;- BFF &lt;- AppTwin
     * </pre>
     *
     * Protobuf type {@code proto.VEPUpdate}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.VEPUpdate)
        com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdate_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
          int number) {
        switch (number) {
          case 11:
            return internalGetAttributes();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
          int number) {
        switch (number) {
          case 11:
            return internalGetMutableAttributes();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdate_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.class, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sequenceNumber_ = 0;
        vin_ = "";
        fullUpdate_ = false;
        emitTimestamp_ = 0L;
        emitTimestampInMs_ = 0L;
        internalGetMutableAttributes().clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdate_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate build() {
        com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate result = new com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sequenceNumber_ = sequenceNumber_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.vin_ = vin_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.fullUpdate_ = fullUpdate_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.emitTimestamp_ = emitTimestamp_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.emitTimestampInMs_ = emitTimestampInMs_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.attributes_ = internalGetAttributes().build(AttributesDefaultEntryHolder.defaultEntry);
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance()) return this;
        if (other.getSequenceNumber() != 0) {
          setSequenceNumber(other.getSequenceNumber());
        }
        if (!other.getVin().isEmpty()) {
          vin_ = other.vin_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.getFullUpdate() != false) {
          setFullUpdate(other.getFullUpdate());
        }
        if (other.getEmitTimestamp() != 0L) {
          setEmitTimestamp(other.getEmitTimestamp());
        }
        if (other.getEmitTimestampInMs() != 0L) {
          setEmitTimestampInMs(other.getEmitTimestampInMs());
        }
        internalGetMutableAttributes().mergeFrom(
            other.internalGetAttributes());
        bitField0_ |= 0x00000020;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                sequenceNumber_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                vin_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 80: {
                emitTimestamp_ = input.readInt64();
                bitField0_ |= 0x00000008;
                break;
              } // case 80
              case 90: {
                com.google.protobuf.MapEntry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus>
                attributes__ = input.readMessage(
                    AttributesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutableAttributes().ensureBuilderMap().put(
                    attributes__.getKey(), attributes__.getValue());
                bitField0_ |= 0x00000020;
                break;
              } // case 90
              case 112: {
                emitTimestampInMs_ = input.readInt64();
                bitField0_ |= 0x00000010;
                break;
              } // case 112
              case 120: {
                fullUpdate_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 120
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int sequenceNumber_ ;
      /**
       * <code>int32 sequence_number = 1;</code>
       * @return The sequenceNumber.
       */
      @java.lang.Override
      public int getSequenceNumber() {
        return sequenceNumber_;
      }
      /**
       * <code>int32 sequence_number = 1;</code>
       * @param value The sequenceNumber to set.
       * @return This builder for chaining.
       */
      public Builder setSequenceNumber(int value) {

        sequenceNumber_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 sequence_number = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSequenceNumber() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sequenceNumber_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object vin_ = "";
      /**
       * <code>string vin = 2;</code>
       * @return The vin.
       */
      public java.lang.String getVin() {
        java.lang.Object ref = vin_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          vin_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string vin = 2;</code>
       * @return The bytes for vin.
       */
      public com.google.protobuf.ByteString
          getVinBytes() {
        java.lang.Object ref = vin_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          vin_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string vin = 2;</code>
       * @param value The vin to set.
       * @return This builder for chaining.
       */
      public Builder setVin(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        vin_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string vin = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearVin() {
        vin_ = getDefaultInstance().getVin();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string vin = 2;</code>
       * @param value The bytes for vin to set.
       * @return This builder for chaining.
       */
      public Builder setVinBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        vin_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private boolean fullUpdate_ ;
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>bool full_update = 15;</code>
       * @return The fullUpdate.
       */
      @java.lang.Override
      public boolean getFullUpdate() {
        return fullUpdate_;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>bool full_update = 15;</code>
       * @param value The fullUpdate to set.
       * @return This builder for chaining.
       */
      public Builder setFullUpdate(boolean value) {

        fullUpdate_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>bool full_update = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearFullUpdate() {
        bitField0_ = (bitField0_ & ~0x00000004);
        fullUpdate_ = false;
        onChanged();
        return this;
      }

      private long emitTimestamp_ ;
      /**
       * <pre>
       * 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
       * </pre>
       *
       * <code>int64 emit_timestamp = 10;</code>
       * @return The emitTimestamp.
       */
      @java.lang.Override
      public long getEmitTimestamp() {
        return emitTimestamp_;
      }
      /**
       * <pre>
       * 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
       * </pre>
       *
       * <code>int64 emit_timestamp = 10;</code>
       * @param value The emitTimestamp to set.
       * @return This builder for chaining.
       */
      public Builder setEmitTimestamp(long value) {

        emitTimestamp_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 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
       * </pre>
       *
       * <code>int64 emit_timestamp = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearEmitTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000008);
        emitTimestamp_ = 0L;
        onChanged();
        return this;
      }

      private long emitTimestampInMs_ ;
      /**
       * <pre>
       * when was the event emitted? This is the time of the update (unix timestamp in milliseconds),
       * </pre>
       *
       * <code>int64 emit_timestamp_in_ms = 14;</code>
       * @return The emitTimestampInMs.
       */
      @java.lang.Override
      public long getEmitTimestampInMs() {
        return emitTimestampInMs_;
      }
      /**
       * <pre>
       * when was the event emitted? This is the time of the update (unix timestamp in milliseconds),
       * </pre>
       *
       * <code>int64 emit_timestamp_in_ms = 14;</code>
       * @param value The emitTimestampInMs to set.
       * @return This builder for chaining.
       */
      public Builder setEmitTimestampInMs(long value) {

        emitTimestampInMs_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * when was the event emitted? This is the time of the update (unix timestamp in milliseconds),
       * </pre>
       *
       * <code>int64 emit_timestamp_in_ms = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearEmitTimestampInMs() {
        bitField0_ = (bitField0_ & ~0x00000010);
        emitTimestampInMs_ = 0L;
        onChanged();
        return this;
      }

      private static final class AttributesConverter implements com.google.protobuf.MapFieldBuilder.Converter<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> {
        @java.lang.Override
        public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus build(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder val) {
          if (val instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) { return (com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) val; }
          return ((com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder) val).build();
        }

        @java.lang.Override
        public com.google.protobuf.MapEntry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> defaultEntry() {
          return AttributesDefaultEntryHolder.defaultEntry;
        }
      };
      private static final AttributesConverter attributesConverter = new AttributesConverter();

      private com.google.protobuf.MapFieldBuilder<
          java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder> attributes_;
      private com.google.protobuf.MapFieldBuilder<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder>
          internalGetAttributes() {
        if (attributes_ == null) {
          return new com.google.protobuf.MapFieldBuilder<>(attributesConverter);
        }
        return attributes_;
      }
      private com.google.protobuf.MapFieldBuilder<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder>
          internalGetMutableAttributes() {
        if (attributes_ == null) {
          attributes_ = new com.google.protobuf.MapFieldBuilder<>(attributesConverter);
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return attributes_;
      }
      public int getAttributesCount() {
        return internalGetAttributes().ensureBuilderMap().size();
      }
      /**
       * <pre>
       * the attribute changes are a list of changed attributes
       * </pre>
       *
       * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 11;</code>
       */
      @java.lang.Override
      public boolean containsAttributes(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetAttributes().ensureBuilderMap().containsKey(key);
      }
      /**
       * Use {@link #getAttributesMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> getAttributes() {
        return getAttributesMap();
      }
      /**
       * <pre>
       * the attribute changes are a list of changed attributes
       * </pre>
       *
       * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 11;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> getAttributesMap() {
        return internalGetAttributes().getImmutableMap();
      }
      /**
       * <pre>
       * the attribute changes are a list of changed attributes
       * </pre>
       *
       * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 11;</code>
       */
      @java.lang.Override
      public /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrDefault(
          java.lang.String key,
          /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder> map = internalGetMutableAttributes().ensureBuilderMap();
        return map.containsKey(key) ? attributesConverter.build(map.get(key)) : defaultValue;
      }
      /**
       * <pre>
       * the attribute changes are a list of changed attributes
       * </pre>
       *
       * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 11;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder> map = internalGetMutableAttributes().ensureBuilderMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return attributesConverter.build(map.get(key));
      }
      public Builder clearAttributes() {
        bitField0_ = (bitField0_ & ~0x00000020);
        internalGetMutableAttributes().clear();
        return this;
      }
      /**
       * <pre>
       * the attribute changes are a list of changed attributes
       * </pre>
       *
       * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 11;</code>
       */
      public Builder removeAttributes(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableAttributes().ensureBuilderMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus>
          getMutableAttributes() {
        bitField0_ |= 0x00000020;
        return internalGetMutableAttributes().ensureMessageMap();
      }
      /**
       * <pre>
       * the attribute changes are a list of changed attributes
       * </pre>
       *
       * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 11;</code>
       */
      public Builder putAttributes(
          java.lang.String key,
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) { throw new NullPointerException("map value"); }
        internalGetMutableAttributes().ensureBuilderMap()
            .put(key, value);
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <pre>
       * the attribute changes are a list of changed attributes
       * </pre>
       *
       * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 11;</code>
       */
      public Builder putAllAttributes(
          java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> values) {
        for (java.util.Map.Entry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> e : values.entrySet()) {
          if (e.getKey() == null || e.getValue() == null) {
            throw new NullPointerException();
          }
        }
        internalGetMutableAttributes().ensureBuilderMap()
            .putAll(values);
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <pre>
       * the attribute changes are a list of changed attributes
       * </pre>
       *
       * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 11;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder putAttributesBuilderIfAbsent(
          java.lang.String key) {
        java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder> builderMap = internalGetMutableAttributes().ensureBuilderMap();
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder entry = builderMap.get(key);
        if (entry == null) {
          entry = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.newBuilder();
          builderMap.put(key, entry);
        }
        if (entry instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) {
          entry = ((com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) entry).toBuilder();
          builderMap.put(key, entry);
        }
        return (com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder) entry;
      }

      // @@protoc_insertion_point(builder_scope:proto.VEPUpdate)
    }

    // @@protoc_insertion_point(class_scope:proto.VEPUpdate)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<VEPUpdate>
        PARSER = new com.google.protobuf.AbstractParser<VEPUpdate>() {
      @java.lang.Override
      public VEPUpdate parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<VEPUpdate> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<VEPUpdate> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface VehicleAttributeStatusOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.VehicleAttributeStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * time of the attribute change in the car as unix timestamp in seconds with UTC timezone (deprecated)
     * </pre>
     *
     * <code>int64 timestamp = 1 [deprecated = true];</code>
     * @deprecated proto.VehicleAttributeStatus.timestamp is deprecated.
     *     See vehicle-events.proto;l=39
     * @return The timestamp.
     */
    @java.lang.Deprecated long getTimestamp();

    /**
     * <pre>
     * time of the attribute change in the car as unix timestamp in milliseconds with UTC timezone
     * </pre>
     *
     * <code>int64 timestamp_in_ms = 10;</code>
     * @return The timestampInMs.
     */
    long getTimestampInMs();

    /**
     * <code>bool changed = 2;</code>
     * @return The changed.
     */
    boolean getChanged();

    /**
     * <code>int32 status = 3;</code>
     * @return The status.
     */
    int getStatus();

    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>repeated int32 service_ids = 30;</code>
     * @return A list containing the serviceIds.
     */
    java.util.List<java.lang.Integer> getServiceIdsList();
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>repeated int32 service_ids = 30;</code>
     * @return The count of serviceIds.
     */
    int getServiceIdsCount();
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>repeated int32 service_ids = 30;</code>
     * @param index The index of the element to return.
     * @return The serviceIds at the given index.
     */
    int getServiceIds(int index);

    /**
     * <code>string display_value = 11;</code>
     * @return The displayValue.
     */
    java.lang.String getDisplayValue();
    /**
     * <code>string display_value = 11;</code>
     * @return The bytes for displayValue.
     */
    com.google.protobuf.ByteString
        getDisplayValueBytes();

    /**
     * <code>.proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12;</code>
     * @return Whether the combustionConsumptionUnit field is set.
     */
    boolean hasCombustionConsumptionUnit();
    /**
     * <code>.proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12;</code>
     * @return The enum numeric value on the wire for combustionConsumptionUnit.
     */
    int getCombustionConsumptionUnitValue();
    /**
     * <code>.proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12;</code>
     * @return The combustionConsumptionUnit.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit getCombustionConsumptionUnit();

    /**
     * <code>.proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13;</code>
     * @return Whether the gasConsumptionUnit field is set.
     */
    boolean hasGasConsumptionUnit();
    /**
     * <code>.proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13;</code>
     * @return The enum numeric value on the wire for gasConsumptionUnit.
     */
    int getGasConsumptionUnitValue();
    /**
     * <code>.proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13;</code>
     * @return The gasConsumptionUnit.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit getGasConsumptionUnit();

    /**
     * <code>.proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14;</code>
     * @return Whether the electricityConsumptionUnit field is set.
     */
    boolean hasElectricityConsumptionUnit();
    /**
     * <code>.proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14;</code>
     * @return The enum numeric value on the wire for electricityConsumptionUnit.
     */
    int getElectricityConsumptionUnitValue();
    /**
     * <code>.proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14;</code>
     * @return The electricityConsumptionUnit.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit getElectricityConsumptionUnit();

    /**
     * <pre>
     * use speed unit / length unit instead
     * </pre>
     *
     * <code>.proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true];</code>
     * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated.
     *     See vehicle-events.proto;l=173
     * @return Whether the speedDistanceUnit field is set.
     */
    @java.lang.Deprecated boolean hasSpeedDistanceUnit();
    /**
     * <pre>
     * use speed unit / length unit instead
     * </pre>
     *
     * <code>.proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true];</code>
     * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated.
     *     See vehicle-events.proto;l=173
     * @return The enum numeric value on the wire for speedDistanceUnit.
     */
    @java.lang.Deprecated int getSpeedDistanceUnitValue();
    /**
     * <pre>
     * use speed unit / length unit instead
     * </pre>
     *
     * <code>.proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true];</code>
     * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated.
     *     See vehicle-events.proto;l=173
     * @return The speedDistanceUnit.
     */
    @java.lang.Deprecated com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit getSpeedDistanceUnit();

    /**
     * <code>.proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25;</code>
     * @return Whether the speedUnit field is set.
     */
    boolean hasSpeedUnit();
    /**
     * <code>.proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25;</code>
     * @return The enum numeric value on the wire for speedUnit.
     */
    int getSpeedUnitValue();
    /**
     * <code>.proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25;</code>
     * @return The speedUnit.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit getSpeedUnit();

    /**
     * <code>.proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26;</code>
     * @return Whether the distanceUnit field is set.
     */
    boolean hasDistanceUnit();
    /**
     * <code>.proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26;</code>
     * @return The enum numeric value on the wire for distanceUnit.
     */
    int getDistanceUnitValue();
    /**
     * <code>.proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26;</code>
     * @return The distanceUnit.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit getDistanceUnit();

    /**
     * <code>.proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16;</code>
     * @return Whether the temperatureUnit field is set.
     */
    boolean hasTemperatureUnit();
    /**
     * <code>.proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16;</code>
     * @return The enum numeric value on the wire for temperatureUnit.
     */
    int getTemperatureUnitValue();
    /**
     * <code>.proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16;</code>
     * @return The temperatureUnit.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit getTemperatureUnit();

    /**
     * <code>.proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17;</code>
     * @return Whether the pressureUnit field is set.
     */
    boolean hasPressureUnit();
    /**
     * <code>.proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17;</code>
     * @return The enum numeric value on the wire for pressureUnit.
     */
    int getPressureUnitValue();
    /**
     * <code>.proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17;</code>
     * @return The pressureUnit.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit getPressureUnit();

    /**
     * <code>.proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18;</code>
     * @return Whether the ratioUnit field is set.
     */
    boolean hasRatioUnit();
    /**
     * <code>.proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18;</code>
     * @return The enum numeric value on the wire for ratioUnit.
     */
    int getRatioUnitValue();
    /**
     * <code>.proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18;</code>
     * @return The ratioUnit.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit getRatioUnit();

    /**
     * <code>.proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19;</code>
     * @return Whether the clockHourUnit field is set.
     */
    boolean hasClockHourUnit();
    /**
     * <code>.proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19;</code>
     * @return The enum numeric value on the wire for clockHourUnit.
     */
    int getClockHourUnitValue();
    /**
     * <code>.proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19;</code>
     * @return The clockHourUnit.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit getClockHourUnit();

    /**
     * <code>int64 int_value = 4;</code>
     * @return Whether the intValue field is set.
     */
    boolean hasIntValue();
    /**
     * <code>int64 int_value = 4;</code>
     * @return The intValue.
     */
    long getIntValue();

    /**
     * <code>bool bool_value = 5;</code>
     * @return Whether the boolValue field is set.
     */
    boolean hasBoolValue();
    /**
     * <code>bool bool_value = 5;</code>
     * @return The boolValue.
     */
    boolean getBoolValue();

    /**
     * <code>string string_value = 6;</code>
     * @return Whether the stringValue field is set.
     */
    boolean hasStringValue();
    /**
     * <code>string string_value = 6;</code>
     * @return The stringValue.
     */
    java.lang.String getStringValue();
    /**
     * <code>string string_value = 6;</code>
     * @return The bytes for stringValue.
     */
    com.google.protobuf.ByteString
        getStringValueBytes();

    /**
     * <code>double double_value = 7;</code>
     * @return Whether the doubleValue field is set.
     */
    boolean hasDoubleValue();
    /**
     * <code>double double_value = 7;</code>
     * @return The doubleValue.
     */
    double getDoubleValue();

    /**
     * <code>bool nil_value = 8;</code>
     * @return Whether the nilValue field is set.
     */
    boolean hasNilValue();
    /**
     * <code>bool nil_value = 8;</code>
     * @return The nilValue.
     */
    boolean getNilValue();

    /**
     * <code>string unsupported_value = 9;</code>
     * @return Whether the unsupportedValue field is set.
     */
    boolean hasUnsupportedValue();
    /**
     * <code>string unsupported_value = 9;</code>
     * @return The unsupportedValue.
     */
    java.lang.String getUnsupportedValue();
    /**
     * <code>string unsupported_value = 9;</code>
     * @return The bytes for unsupportedValue.
     */
    com.google.protobuf.ByteString
        getUnsupportedValueBytes();

    /**
     * <code>.proto.TemperaturePointsValue temperature_points_value = 20;</code>
     * @return Whether the temperaturePointsValue field is set.
     */
    boolean hasTemperaturePointsValue();
    /**
     * <code>.proto.TemperaturePointsValue temperature_points_value = 20;</code>
     * @return The temperaturePointsValue.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue getTemperaturePointsValue();
    /**
     * <code>.proto.TemperaturePointsValue temperature_points_value = 20;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValueOrBuilder getTemperaturePointsValueOrBuilder();

    /**
     * <code>.proto.WeekdayTariffValue weekday_tariff_value = 21;</code>
     * @return Whether the weekdayTariffValue field is set.
     */
    boolean hasWeekdayTariffValue();
    /**
     * <code>.proto.WeekdayTariffValue weekday_tariff_value = 21;</code>
     * @return The weekdayTariffValue.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue getWeekdayTariffValue();
    /**
     * <code>.proto.WeekdayTariffValue weekday_tariff_value = 21;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValueOrBuilder getWeekdayTariffValueOrBuilder();

    /**
     * <code>.proto.WeekendTariffValue weekend_tariff_value = 22;</code>
     * @return Whether the weekendTariffValue field is set.
     */
    boolean hasWeekendTariffValue();
    /**
     * <code>.proto.WeekendTariffValue weekend_tariff_value = 22;</code>
     * @return The weekendTariffValue.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue getWeekendTariffValue();
    /**
     * <code>.proto.WeekendTariffValue weekend_tariff_value = 22;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValueOrBuilder getWeekendTariffValueOrBuilder();

    /**
     * <code>.proto.StateOfChargeProfileValue state_of_charge_profile_value = 23;</code>
     * @return Whether the stateOfChargeProfileValue field is set.
     */
    boolean hasStateOfChargeProfileValue();
    /**
     * <code>.proto.StateOfChargeProfileValue state_of_charge_profile_value = 23;</code>
     * @return The stateOfChargeProfileValue.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue getStateOfChargeProfileValue();
    /**
     * <code>.proto.StateOfChargeProfileValue state_of_charge_profile_value = 23;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValueOrBuilder getStateOfChargeProfileValueOrBuilder();

    /**
     * <code>.proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24;</code>
     * @return Whether the weeklySettingsHeadUnitValue field is set.
     */
    boolean hasWeeklySettingsHeadUnitValue();
    /**
     * <code>.proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24;</code>
     * @return The weeklySettingsHeadUnitValue.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue getWeeklySettingsHeadUnitValue();
    /**
     * <code>.proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValueOrBuilder getWeeklySettingsHeadUnitValueOrBuilder();

    /**
     * <code>.proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27;</code>
     * @return Whether the speedAlertConfigurationValue field is set.
     */
    boolean hasSpeedAlertConfigurationValue();
    /**
     * <code>.proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27;</code>
     * @return The speedAlertConfigurationValue.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue getSpeedAlertConfigurationValue();
    /**
     * <code>.proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValueOrBuilder getSpeedAlertConfigurationValueOrBuilder();

    /**
     * <code>.proto.EcoHistogramValue eco_histogram_value = 28;</code>
     * @return Whether the ecoHistogramValue field is set.
     */
    boolean hasEcoHistogramValue();
    /**
     * <code>.proto.EcoHistogramValue eco_histogram_value = 28;</code>
     * @return The ecoHistogramValue.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue getEcoHistogramValue();
    /**
     * <code>.proto.EcoHistogramValue eco_histogram_value = 28;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValueOrBuilder getEcoHistogramValueOrBuilder();

    /**
     * <code>.proto.WeeklyProfileValue weekly_profile_value = 29;</code>
     * @return Whether the weeklyProfileValue field is set.
     */
    boolean hasWeeklyProfileValue();
    /**
     * <code>.proto.WeeklyProfileValue weekly_profile_value = 29;</code>
     * @return The weeklyProfileValue.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue getWeeklyProfileValue();
    /**
     * <code>.proto.WeeklyProfileValue weekly_profile_value = 29;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValueOrBuilder getWeeklyProfileValueOrBuilder();

    /**
     * <code>.proto.ChargeProgramsValue charge_programs_value = 31;</code>
     * @return Whether the chargeProgramsValue field is set.
     */
    boolean hasChargeProgramsValue();
    /**
     * <code>.proto.ChargeProgramsValue charge_programs_value = 31;</code>
     * @return The chargeProgramsValue.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue getChargeProgramsValue();
    /**
     * <code>.proto.ChargeProgramsValue charge_programs_value = 31;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValueOrBuilder getChargeProgramsValueOrBuilder();

    /**
     * <code>.proto.ChargingBreakClockTimerValue chargingbreak_clocktimer_value = 32;</code>
     * @return Whether the chargingbreakClocktimerValue field is set.
     */
    boolean hasChargingbreakClocktimerValue();
    /**
     * <code>.proto.ChargingBreakClockTimerValue chargingbreak_clocktimer_value = 32;</code>
     * @return The chargingbreakClocktimerValue.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue getChargingbreakClocktimerValue();
    /**
     * <code>.proto.ChargingBreakClockTimerValue chargingbreak_clocktimer_value = 32;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValueOrBuilder getChargingbreakClocktimerValueOrBuilder();

    /**
     * <code>.proto.ChargingPowerControl charging_power_control = 33;</code>
     * @return Whether the chargingPowerControl field is set.
     */
    boolean hasChargingPowerControl();
    /**
     * <code>.proto.ChargingPowerControl charging_power_control = 33;</code>
     * @return The chargingPowerControl.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl getChargingPowerControl();
    /**
     * <code>.proto.ChargingPowerControl charging_power_control = 33;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControlOrBuilder getChargingPowerControlOrBuilder();

    /**
     * <code>.proto.KeylineActivationStateValue keyline_activation_state_value = 36;</code>
     * @return Whether the keylineActivationStateValue field is set.
     */
    boolean hasKeylineActivationStateValue();
    /**
     * <code>.proto.KeylineActivationStateValue keyline_activation_state_value = 36;</code>
     * @return The keylineActivationStateValue.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue getKeylineActivationStateValue();
    /**
     * <code>.proto.KeylineActivationStateValue keyline_activation_state_value = 36;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValueOrBuilder getKeylineActivationStateValueOrBuilder();

    /**
     * <code>.proto.NextDepartureTimeValue next_departure_time_value = 37;</code>
     * @return Whether the nextDepartureTimeValue field is set.
     */
    boolean hasNextDepartureTimeValue();
    /**
     * <code>.proto.NextDepartureTimeValue next_departure_time_value = 37;</code>
     * @return The nextDepartureTimeValue.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue getNextDepartureTimeValue();
    /**
     * <code>.proto.NextDepartureTimeValue next_departure_time_value = 37;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValueOrBuilder getNextDepartureTimeValueOrBuilder();

    /**
     * <code>.proto.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus tcu_connection_state_low_channel = 38;</code>
     * @return Whether the tcuConnectionStateLowChannel field is set.
     */
    boolean hasTcuConnectionStateLowChannel();
    /**
     * <code>.proto.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus tcu_connection_state_low_channel = 38;</code>
     * @return The enum numeric value on the wire for tcuConnectionStateLowChannel.
     */
    int getTcuConnectionStateLowChannelValue();
    /**
     * <code>.proto.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus tcu_connection_state_low_channel = 38;</code>
     * @return The tcuConnectionStateLowChannel.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus getTcuConnectionStateLowChannel();

    /**
     * <code>.proto.TurnOffEnginePreWarning turn_off_engine_pre_warning = 39;</code>
     * @return Whether the turnOffEnginePreWarning field is set.
     */
    boolean hasTurnOffEnginePreWarning();
    /**
     * <code>.proto.TurnOffEnginePreWarning turn_off_engine_pre_warning = 39;</code>
     * @return The enum numeric value on the wire for turnOffEnginePreWarning.
     */
    int getTurnOffEnginePreWarningValue();
    /**
     * <code>.proto.TurnOffEnginePreWarning turn_off_engine_pre_warning = 39;</code>
     * @return The turnOffEnginePreWarning.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.TurnOffEnginePreWarning getTurnOffEnginePreWarning();

    /**
     * <code>.proto.ChildPresenceDetectionWarningLastEvent child_presence_detection_warning_last_event = 40;</code>
     * @return Whether the childPresenceDetectionWarningLastEvent field is set.
     */
    boolean hasChildPresenceDetectionWarningLastEvent();
    /**
     * <code>.proto.ChildPresenceDetectionWarningLastEvent child_presence_detection_warning_last_event = 40;</code>
     * @return The enum numeric value on the wire for childPresenceDetectionWarningLastEvent.
     */
    int getChildPresenceDetectionWarningLastEventValue();
    /**
     * <code>.proto.ChildPresenceDetectionWarningLastEvent child_presence_detection_warning_last_event = 40;</code>
     * @return The childPresenceDetectionWarningLastEvent.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLastEvent getChildPresenceDetectionWarningLastEvent();

    /**
     * <code>.proto.ChildPresenceDetectionWarningLevel child_presence_detection_warning_level = 41;</code>
     * @return Whether the childPresenceDetectionWarningLevel field is set.
     */
    boolean hasChildPresenceDetectionWarningLevel();
    /**
     * <code>.proto.ChildPresenceDetectionWarningLevel child_presence_detection_warning_level = 41;</code>
     * @return The enum numeric value on the wire for childPresenceDetectionWarningLevel.
     */
    int getChildPresenceDetectionWarningLevelValue();
    /**
     * <code>.proto.ChildPresenceDetectionWarningLevel child_presence_detection_warning_level = 41;</code>
     * @return The childPresenceDetectionWarningLevel.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLevel getChildPresenceDetectionWarningLevel();

    /**
     * <code>.proto.PerformanceLimitationModeStatus performance_limitation_mode_status = 42;</code>
     * @return Whether the performanceLimitationModeStatus field is set.
     */
    boolean hasPerformanceLimitationModeStatus();
    /**
     * <code>.proto.PerformanceLimitationModeStatus performance_limitation_mode_status = 42;</code>
     * @return The enum numeric value on the wire for performanceLimitationModeStatus.
     */
    int getPerformanceLimitationModeStatusValue();
    /**
     * <code>.proto.PerformanceLimitationModeStatus performance_limitation_mode_status = 42;</code>
     * @return The performanceLimitationModeStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.PerformanceLimitationModeStatus getPerformanceLimitationModeStatus();

    /**
     * <code>.proto.BatteryHealth battery_health = 43;</code>
     * @return Whether the batteryHealth field is set.
     */
    boolean hasBatteryHealth();
    /**
     * <code>.proto.BatteryHealth battery_health = 43;</code>
     * @return The enum numeric value on the wire for batteryHealth.
     */
    int getBatteryHealthValue();
    /**
     * <code>.proto.BatteryHealth battery_health = 43;</code>
     * @return The batteryHealth.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.BatteryHealth getBatteryHealth();

    /**
     * <code>.proto.PrecondState precond_state = 44;</code>
     * @return Whether the precondState field is set.
     */
    boolean hasPrecondState();
    /**
     * <code>.proto.PrecondState precond_state = 44;</code>
     * @return The precondState.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.PrecondState getPrecondState();
    /**
     * <code>.proto.PrecondState precond_state = 44;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateOrBuilder getPrecondStateOrBuilder();

    /**
     * <code>.proto.ExteriorMonitoringStatus exterior_monitoring_status = 45;</code>
     * @return Whether the exteriorMonitoringStatus field is set.
     */
    boolean hasExteriorMonitoringStatus();
    /**
     * <code>.proto.ExteriorMonitoringStatus exterior_monitoring_status = 45;</code>
     * @return The enum numeric value on the wire for exteriorMonitoringStatus.
     */
    int getExteriorMonitoringStatusValue();
    /**
     * <code>.proto.ExteriorMonitoringStatus exterior_monitoring_status = 45;</code>
     * @return The exteriorMonitoringStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ExteriorMonitoringStatus getExteriorMonitoringStatus();

    /**
     * <code>.proto.InteriorMonitoringStatus interior_monitoring_status = 46;</code>
     * @return Whether the interiorMonitoringStatus field is set.
     */
    boolean hasInteriorMonitoringStatus();
    /**
     * <code>.proto.InteriorMonitoringStatus interior_monitoring_status = 46;</code>
     * @return The enum numeric value on the wire for interiorMonitoringStatus.
     */
    int getInteriorMonitoringStatusValue();
    /**
     * <code>.proto.InteriorMonitoringStatus interior_monitoring_status = 46;</code>
     * @return The interiorMonitoringStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.InteriorMonitoringStatus getInteriorMonitoringStatus();

    /**
     * <code>.proto.RemoteUpdateStartStatus remote_update_start_status = 47;</code>
     * @return Whether the remoteUpdateStartStatus field is set.
     */
    boolean hasRemoteUpdateStartStatus();
    /**
     * <code>.proto.RemoteUpdateStartStatus remote_update_start_status = 47;</code>
     * @return The remoteUpdateStartStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus getRemoteUpdateStartStatus();
    /**
     * <code>.proto.RemoteUpdateStartStatus remote_update_start_status = 47;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatusOrBuilder getRemoteUpdateStartStatusOrBuilder();

    /**
     * <code>.proto.SohCalibrationRequired soh_calibration_required = 48;</code>
     * @return Whether the sohCalibrationRequired field is set.
     */
    boolean hasSohCalibrationRequired();
    /**
     * <code>.proto.SohCalibrationRequired soh_calibration_required = 48;</code>
     * @return The enum numeric value on the wire for sohCalibrationRequired.
     */
    int getSohCalibrationRequiredValue();
    /**
     * <code>.proto.SohCalibrationRequired soh_calibration_required = 48;</code>
     * @return The sohCalibrationRequired.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequired getSohCalibrationRequired();

    /**
     * <code>.proto.SocCalibrationRequest soc_calibration_request = 49;</code>
     * @return Whether the socCalibrationRequest field is set.
     */
    boolean hasSocCalibrationRequest();
    /**
     * <code>.proto.SocCalibrationRequest soc_calibration_request = 49;</code>
     * @return The enum numeric value on the wire for socCalibrationRequest.
     */
    int getSocCalibrationRequestValue();
    /**
     * <code>.proto.SocCalibrationRequest soc_calibration_request = 49;</code>
     * @return The socCalibrationRequest.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.SocCalibrationRequest getSocCalibrationRequest();

    /**
     * <code>.proto.SohCalibrationRequest soh_calibration_request = 50;</code>
     * @return Whether the sohCalibrationRequest field is set.
     */
    boolean hasSohCalibrationRequest();
    /**
     * <code>.proto.SohCalibrationRequest soh_calibration_request = 50;</code>
     * @return The enum numeric value on the wire for sohCalibrationRequest.
     */
    int getSohCalibrationRequestValue();
    /**
     * <code>.proto.SohCalibrationRequest soh_calibration_request = 50;</code>
     * @return The sohCalibrationRequest.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequest getSohCalibrationRequest();

    /**
     * <code>.proto.SohCalibrationState soh_calibration_state = 51;</code>
     * @return Whether the sohCalibrationState field is set.
     */
    boolean hasSohCalibrationState();
    /**
     * <code>.proto.SohCalibrationState soh_calibration_state = 51;</code>
     * @return The enum numeric value on the wire for sohCalibrationState.
     */
    int getSohCalibrationStateValue();
    /**
     * <code>.proto.SohCalibrationState soh_calibration_state = 51;</code>
     * @return The sohCalibrationState.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationState getSohCalibrationState();

    /**
     * <code>.proto.SohCalibrationPlanned soh_calibration_planned = 52;</code>
     * @return Whether the sohCalibrationPlanned field is set.
     */
    boolean hasSohCalibrationPlanned();
    /**
     * <code>.proto.SohCalibrationPlanned soh_calibration_planned = 52;</code>
     * @return The enum numeric value on the wire for sohCalibrationPlanned.
     */
    int getSohCalibrationPlannedValue();
    /**
     * <code>.proto.SohCalibrationPlanned soh_calibration_planned = 52;</code>
     * @return The sohCalibrationPlanned.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationPlanned getSohCalibrationPlanned();

    /**
     * <code>.proto.SohFavorableConditions soh_favorable_conditions = 53;</code>
     * @return Whether the sohFavorableConditions field is set.
     */
    boolean hasSohFavorableConditions();
    /**
     * <code>.proto.SohFavorableConditions soh_favorable_conditions = 53;</code>
     * @return The enum numeric value on the wire for sohFavorableConditions.
     */
    int getSohFavorableConditionsValue();
    /**
     * <code>.proto.SohFavorableConditions soh_favorable_conditions = 53;</code>
     * @return The sohFavorableConditions.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.SohFavorableConditions getSohFavorableConditions();

    /**
     * <code>.proto.SohCalibrationNotifications soh_calibration_notifications = 54;</code>
     * @return Whether the sohCalibrationNotifications field is set.
     */
    boolean hasSohCalibrationNotifications();
    /**
     * <code>.proto.SohCalibrationNotifications soh_calibration_notifications = 54;</code>
     * @return The enum numeric value on the wire for sohCalibrationNotifications.
     */
    int getSohCalibrationNotificationsValue();
    /**
     * <code>.proto.SohCalibrationNotifications soh_calibration_notifications = 54;</code>
     * @return The sohCalibrationNotifications.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationNotifications getSohCalibrationNotifications();

    /**
     * <code>.proto.ChargingPowerRestrictions charging_power_restrictions = 55;</code>
     * @return Whether the chargingPowerRestrictions field is set.
     */
    boolean hasChargingPowerRestrictions();
    /**
     * <code>.proto.ChargingPowerRestrictions charging_power_restrictions = 55;</code>
     * @return The chargingPowerRestrictions.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions getChargingPowerRestrictions();
    /**
     * <code>.proto.ChargingPowerRestrictions charging_power_restrictions = 55;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictionsOrBuilder getChargingPowerRestrictionsOrBuilder();

    /**
     * <code>.proto.VehicleAttributeStatus.ChargingCouplerErrorDetails charging_coupler_error_details = 56;</code>
     * @return Whether the chargingCouplerErrorDetails field is set.
     */
    boolean hasChargingCouplerErrorDetails();
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingCouplerErrorDetails charging_coupler_error_details = 56;</code>
     * @return The enum numeric value on the wire for chargingCouplerErrorDetails.
     */
    int getChargingCouplerErrorDetailsValue();
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingCouplerErrorDetails charging_coupler_error_details = 56;</code>
     * @return The chargingCouplerErrorDetails.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingCouplerErrorDetails getChargingCouplerErrorDetails();

    /**
     * <code>.proto.ChargingStopErrorDetails charging_stop_error_details = 57;</code>
     * @return Whether the chargingStopErrorDetails field is set.
     */
    boolean hasChargingStopErrorDetails();
    /**
     * <code>.proto.ChargingStopErrorDetails charging_stop_error_details = 57;</code>
     * @return The enum numeric value on the wire for chargingStopErrorDetails.
     */
    int getChargingStopErrorDetailsValue();
    /**
     * <code>.proto.ChargingStopErrorDetails charging_stop_error_details = 57;</code>
     * @return The chargingStopErrorDetails.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingStopErrorDetails getChargingStopErrorDetails();

    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V charging_error_vehicle_no_support_400v = 58;</code>
     * @return Whether the chargingErrorVehicleNoSupport400v field is set.
     */
    boolean hasChargingErrorVehicleNoSupport400V();
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V charging_error_vehicle_no_support_400v = 58;</code>
     * @return The enum numeric value on the wire for chargingErrorVehicleNoSupport400v.
     */
    int getChargingErrorVehicleNoSupport400VValue();
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V charging_error_vehicle_no_support_400v = 58;</code>
     * @return The chargingErrorVehicleNoSupport400v.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V getChargingErrorVehicleNoSupport400V();

    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V charging_error_impossible_change_to_400v = 59;</code>
     * @return Whether the chargingErrorImpossibleChangeTo400v field is set.
     */
    boolean hasChargingErrorImpossibleChangeTo400V();
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V charging_error_impossible_change_to_400v = 59;</code>
     * @return The enum numeric value on the wire for chargingErrorImpossibleChangeTo400v.
     */
    int getChargingErrorImpossibleChangeTo400VValue();
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V charging_error_impossible_change_to_400v = 59;</code>
     * @return The chargingErrorImpossibleChangeTo400v.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V getChargingErrorImpossibleChangeTo400V();

    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V charging_error_impossible_change_to_800v = 60;</code>
     * @return Whether the chargingErrorImpossibleChangeTo800v field is set.
     */
    boolean hasChargingErrorImpossibleChangeTo800V();
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V charging_error_impossible_change_to_800v = 60;</code>
     * @return The enum numeric value on the wire for chargingErrorImpossibleChangeTo800v.
     */
    int getChargingErrorImpossibleChangeTo800VValue();
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V charging_error_impossible_change_to_800v = 60;</code>
     * @return The chargingErrorImpossibleChangeTo800v.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V getChargingErrorImpossibleChangeTo800V();

    /**
     * <code>.proto.PrecondOperabilityState precond_operability_state = 61;</code>
     * @return Whether the precondOperabilityState field is set.
     */
    boolean hasPrecondOperabilityState();
    /**
     * <code>.proto.PrecondOperabilityState precond_operability_state = 61;</code>
     * @return The precondOperabilityState.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState getPrecondOperabilityState();
    /**
     * <code>.proto.PrecondOperabilityState precond_operability_state = 61;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityStateOrBuilder getPrecondOperabilityStateOrBuilder();

    /**
     * <code>.proto.PictureRecordingStatus picture_recording_status = 62;</code>
     * @return Whether the pictureRecordingStatus field is set.
     */
    boolean hasPictureRecordingStatus();
    /**
     * <code>.proto.PictureRecordingStatus picture_recording_status = 62;</code>
     * @return The enum numeric value on the wire for pictureRecordingStatus.
     */
    int getPictureRecordingStatusValue();
    /**
     * <code>.proto.PictureRecordingStatus picture_recording_status = 62;</code>
     * @return The pictureRecordingStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.PictureRecordingStatus getPictureRecordingStatus();

    /**
     * <code>.proto.ParkEventPictureSelectionStatus park_event_picture_selection_status = 63;</code>
     * @return Whether the parkEventPictureSelectionStatus field is set.
     */
    boolean hasParkEventPictureSelectionStatus();
    /**
     * <code>.proto.ParkEventPictureSelectionStatus park_event_picture_selection_status = 63;</code>
     * @return The enum numeric value on the wire for parkEventPictureSelectionStatus.
     */
    int getParkEventPictureSelectionStatusValue();
    /**
     * <code>.proto.ParkEventPictureSelectionStatus park_event_picture_selection_status = 63;</code>
     * @return The parkEventPictureSelectionStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureSelectionStatus getParkEventPictureSelectionStatus();

    /**
     * <code>.proto.PanicAlarmActive panic_alarm_active = 64;</code>
     * @return Whether the panicAlarmActive field is set.
     */
    boolean hasPanicAlarmActive();
    /**
     * <code>.proto.PanicAlarmActive panic_alarm_active = 64;</code>
     * @return The enum numeric value on the wire for panicAlarmActive.
     */
    int getPanicAlarmActiveValue();
    /**
     * <code>.proto.PanicAlarmActive panic_alarm_active = 64;</code>
     * @return The panicAlarmActive.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.PanicAlarmActive getPanicAlarmActive();

    /**
     * <code>.proto.InteriorProtectionSelectionStatus interior_protection_selection_status = 65;</code>
     * @return Whether the interiorProtectionSelectionStatus field is set.
     */
    boolean hasInteriorProtectionSelectionStatus();
    /**
     * <code>.proto.InteriorProtectionSelectionStatus interior_protection_selection_status = 65;</code>
     * @return The enum numeric value on the wire for interiorProtectionSelectionStatus.
     */
    int getInteriorProtectionSelectionStatusValue();
    /**
     * <code>.proto.InteriorProtectionSelectionStatus interior_protection_selection_status = 65;</code>
     * @return The interiorProtectionSelectionStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionSelectionStatus getInteriorProtectionSelectionStatus();

    /**
     * <code>.proto.InteriorProtectionActivationStatus interior_protection_activation_status = 66;</code>
     * @return Whether the interiorProtectionActivationStatus field is set.
     */
    boolean hasInteriorProtectionActivationStatus();
    /**
     * <code>.proto.InteriorProtectionActivationStatus interior_protection_activation_status = 66;</code>
     * @return The enum numeric value on the wire for interiorProtectionActivationStatus.
     */
    int getInteriorProtectionActivationStatusValue();
    /**
     * <code>.proto.InteriorProtectionActivationStatus interior_protection_activation_status = 66;</code>
     * @return The interiorProtectionActivationStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionActivationStatus getInteriorProtectionActivationStatus();

    /**
     * <code>.proto.TowProtectionSelectionStatus tow_protection_selection_status = 67;</code>
     * @return Whether the towProtectionSelectionStatus field is set.
     */
    boolean hasTowProtectionSelectionStatus();
    /**
     * <code>.proto.TowProtectionSelectionStatus tow_protection_selection_status = 67;</code>
     * @return The enum numeric value on the wire for towProtectionSelectionStatus.
     */
    int getTowProtectionSelectionStatusValue();
    /**
     * <code>.proto.TowProtectionSelectionStatus tow_protection_selection_status = 67;</code>
     * @return The towProtectionSelectionStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionSelectionStatus getTowProtectionSelectionStatus();

    /**
     * <code>.proto.TowProtectionActivationStatus tow_protection_activation_status = 68;</code>
     * @return Whether the towProtectionActivationStatus field is set.
     */
    boolean hasTowProtectionActivationStatus();
    /**
     * <code>.proto.TowProtectionActivationStatus tow_protection_activation_status = 68;</code>
     * @return The enum numeric value on the wire for towProtectionActivationStatus.
     */
    int getTowProtectionActivationStatusValue();
    /**
     * <code>.proto.TowProtectionActivationStatus tow_protection_activation_status = 68;</code>
     * @return The towProtectionActivationStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionActivationStatus getTowProtectionActivationStatus();

    /**
     * <code>.proto.VehicleTheftAlarmInactiveReason vehicle_theft_alarm_inactive_reason = 69;</code>
     * @return Whether the vehicleTheftAlarmInactiveReason field is set.
     */
    boolean hasVehicleTheftAlarmInactiveReason();
    /**
     * <code>.proto.VehicleTheftAlarmInactiveReason vehicle_theft_alarm_inactive_reason = 69;</code>
     * @return The enum numeric value on the wire for vehicleTheftAlarmInactiveReason.
     */
    int getVehicleTheftAlarmInactiveReasonValue();
    /**
     * <code>.proto.VehicleTheftAlarmInactiveReason vehicle_theft_alarm_inactive_reason = 69;</code>
     * @return The vehicleTheftAlarmInactiveReason.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleTheftAlarmInactiveReason getVehicleTheftAlarmInactiveReason();

    /**
     * <code>.proto.ParkCollisionSelectionStatus park_collision_selection_status = 70;</code>
     * @return Whether the parkCollisionSelectionStatus field is set.
     */
    boolean hasParkCollisionSelectionStatus();
    /**
     * <code>.proto.ParkCollisionSelectionStatus park_collision_selection_status = 70;</code>
     * @return The enum numeric value on the wire for parkCollisionSelectionStatus.
     */
    int getParkCollisionSelectionStatusValue();
    /**
     * <code>.proto.ParkCollisionSelectionStatus park_collision_selection_status = 70;</code>
     * @return The parkCollisionSelectionStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionSelectionStatus getParkCollisionSelectionStatus();

    /**
     * <code>.proto.ParkCollisionActivationStatus park_collision_activation_status = 71;</code>
     * @return Whether the parkCollisionActivationStatus field is set.
     */
    boolean hasParkCollisionActivationStatus();
    /**
     * <code>.proto.ParkCollisionActivationStatus park_collision_activation_status = 71;</code>
     * @return The enum numeric value on the wire for parkCollisionActivationStatus.
     */
    int getParkCollisionActivationStatusValue();
    /**
     * <code>.proto.ParkCollisionActivationStatus park_collision_activation_status = 71;</code>
     * @return The parkCollisionActivationStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionActivationStatus getParkCollisionActivationStatus();

    /**
     * <code>.proto.ParkCollisionInactiveReason park_collision_inactive_reason = 72;</code>
     * @return Whether the parkCollisionInactiveReason field is set.
     */
    boolean hasParkCollisionInactiveReason();
    /**
     * <code>.proto.ParkCollisionInactiveReason park_collision_inactive_reason = 72;</code>
     * @return The enum numeric value on the wire for parkCollisionInactiveReason.
     */
    int getParkCollisionInactiveReasonValue();
    /**
     * <code>.proto.ParkCollisionInactiveReason park_collision_inactive_reason = 72;</code>
     * @return The parkCollisionInactiveReason.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionInactiveReason getParkCollisionInactiveReason();

    /**
     * <code>.proto.ParkCollisionPictureTransferStatus park_collision_picture_transfer_status = 73;</code>
     * @return Whether the parkCollisionPictureTransferStatus field is set.
     */
    boolean hasParkCollisionPictureTransferStatus();
    /**
     * <code>.proto.ParkCollisionPictureTransferStatus park_collision_picture_transfer_status = 73;</code>
     * @return The enum numeric value on the wire for parkCollisionPictureTransferStatus.
     */
    int getParkCollisionPictureTransferStatusValue();
    /**
     * <code>.proto.ParkCollisionPictureTransferStatus park_collision_picture_transfer_status = 73;</code>
     * @return The parkCollisionPictureTransferStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionPictureTransferStatus getParkCollisionPictureTransferStatus();

    /**
     * <code>.proto.EmergencyPowerSupply emergency_power_supply = 78;</code>
     * @return Whether the emergencyPowerSupply field is set.
     */
    boolean hasEmergencyPowerSupply();
    /**
     * <code>.proto.EmergencyPowerSupply emergency_power_supply = 78;</code>
     * @return The enum numeric value on the wire for emergencyPowerSupply.
     */
    int getEmergencyPowerSupplyValue();
    /**
     * <code>.proto.EmergencyPowerSupply emergency_power_supply = 78;</code>
     * @return The emergencyPowerSupply.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.EmergencyPowerSupply getEmergencyPowerSupply();

    /**
     * <code>.proto.EvsePairingState evse_pairing_state = 79;</code>
     * @return Whether the evsePairingState field is set.
     */
    boolean hasEvsePairingState();
    /**
     * <code>.proto.EvsePairingState evse_pairing_state = 79;</code>
     * @return The enum numeric value on the wire for evsePairingState.
     */
    int getEvsePairingStateValue();
    /**
     * <code>.proto.EvsePairingState evse_pairing_state = 79;</code>
     * @return The evsePairingState.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.EvsePairingState getEvsePairingState();

    /**
     * <code>.proto.ChargingPredictionSoc charging_prediction_soc = 80;</code>
     * @return Whether the chargingPredictionSoc field is set.
     */
    boolean hasChargingPredictionSoc();
    /**
     * <code>.proto.ChargingPredictionSoc charging_prediction_soc = 80;</code>
     * @return The chargingPredictionSoc.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc getChargingPredictionSoc();
    /**
     * <code>.proto.ChargingPredictionSoc charging_prediction_soc = 80;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSocOrBuilder getChargingPredictionSocOrBuilder();

    /**
     * <code>.proto.ChargingPredictionDepartureTime charging_prediction_departure_time = 81;</code>
     * @return Whether the chargingPredictionDepartureTime field is set.
     */
    boolean hasChargingPredictionDepartureTime();
    /**
     * <code>.proto.ChargingPredictionDepartureTime charging_prediction_departure_time = 81;</code>
     * @return The chargingPredictionDepartureTime.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime getChargingPredictionDepartureTime();
    /**
     * <code>.proto.ChargingPredictionDepartureTime charging_prediction_departure_time = 81;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTimeOrBuilder getChargingPredictionDepartureTimeOrBuilder();

    /**
     * <code>.proto.ChargingScheduleActive charging_schedule_active = 82;</code>
     * @return Whether the chargingScheduleActive field is set.
     */
    boolean hasChargingScheduleActive();
    /**
     * <code>.proto.ChargingScheduleActive charging_schedule_active = 82;</code>
     * @return The chargingScheduleActive.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive getChargingScheduleActive();
    /**
     * <code>.proto.ChargingScheduleActive charging_schedule_active = 82;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActiveOrBuilder getChargingScheduleActiveOrBuilder();

    /**
     * <code>.proto.DcChargingProfile dc_charging_profile = 83;</code>
     * @return Whether the dcChargingProfile field is set.
     */
    boolean hasDcChargingProfile();
    /**
     * <code>.proto.DcChargingProfile dc_charging_profile = 83;</code>
     * @return The enum numeric value on the wire for dcChargingProfile.
     */
    int getDcChargingProfileValue();
    /**
     * <code>.proto.DcChargingProfile dc_charging_profile = 83;</code>
     * @return The dcChargingProfile.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.DcChargingProfile getDcChargingProfile();

    /**
     * <code>.proto.ChargeFlaps charge_flaps = 84;</code>
     * @return Whether the chargeFlaps field is set.
     */
    boolean hasChargeFlaps();
    /**
     * <code>.proto.ChargeFlaps charge_flaps = 84;</code>
     * @return The chargeFlaps.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps getChargeFlaps();
    /**
     * <code>.proto.ChargeFlaps charge_flaps = 84;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsOrBuilder getChargeFlapsOrBuilder();

    /**
     * <code>.proto.ChargeInlets charge_inlets = 85;</code>
     * @return Whether the chargeInlets field is set.
     */
    boolean hasChargeInlets();
    /**
     * <code>.proto.ChargeInlets charge_inlets = 85;</code>
     * @return The chargeInlets.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets getChargeInlets();
    /**
     * <code>.proto.ChargeInlets charge_inlets = 85;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsOrBuilder getChargeInletsOrBuilder();

    /**
     * <code>.proto.ChargingTimer charging_timer = 86;</code>
     * @return Whether the chargingTimer field is set.
     */
    boolean hasChargingTimer();
    /**
     * <code>.proto.ChargingTimer charging_timer = 86;</code>
     * @return The chargingTimer.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer getChargingTimer();
    /**
     * <code>.proto.ChargingTimer charging_timer = 86;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerOrBuilder getChargingTimerOrBuilder();

    /**
     * <code>.proto.ParkEventPictureTransmissionStatus park_event_picture_transmission_status = 87;</code>
     * @return Whether the parkEventPictureTransmissionStatus field is set.
     */
    boolean hasParkEventPictureTransmissionStatus();
    /**
     * <code>.proto.ParkEventPictureTransmissionStatus park_event_picture_transmission_status = 87;</code>
     * @return The enum numeric value on the wire for parkEventPictureTransmissionStatus.
     */
    int getParkEventPictureTransmissionStatusValue();
    /**
     * <code>.proto.ParkEventPictureTransmissionStatus park_event_picture_transmission_status = 87;</code>
     * @return The parkEventPictureTransmissionStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureTransmissionStatus getParkEventPictureTransmissionStatus();

    /**
     * <code>.proto.ChargingScheduleRequested charging_schedule_requested = 88;</code>
     * @return Whether the chargingScheduleRequested field is set.
     */
    boolean hasChargingScheduleRequested();
    /**
     * <code>.proto.ChargingScheduleRequested charging_schedule_requested = 88;</code>
     * @return The chargingScheduleRequested.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested getChargingScheduleRequested();
    /**
     * <code>.proto.ChargingScheduleRequested charging_schedule_requested = 88;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequestedOrBuilder getChargingScheduleRequestedOrBuilder();

    /**
     * <code>.proto.ChargingFlapErrorDetails charging_flap_error_details = 89;</code>
     * @return Whether the chargingFlapErrorDetails field is set.
     */
    boolean hasChargingFlapErrorDetails();
    /**
     * <code>.proto.ChargingFlapErrorDetails charging_flap_error_details = 89;</code>
     * @return The enum numeric value on the wire for chargingFlapErrorDetails.
     */
    int getChargingFlapErrorDetailsValue();
    /**
     * <code>.proto.ChargingFlapErrorDetails charging_flap_error_details = 89;</code>
     * @return The chargingFlapErrorDetails.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingFlapErrorDetails getChargingFlapErrorDetails();

    /**
     * <code>.proto.ChargingCompatibilityError charging_compatibility_error = 90;</code>
     * @return Whether the chargingCompatibilityError field is set.
     */
    boolean hasChargingCompatibilityError();
    /**
     * <code>.proto.ChargingCompatibilityError charging_compatibility_error = 90;</code>
     * @return The enum numeric value on the wire for chargingCompatibilityError.
     */
    int getChargingCompatibilityErrorValue();
    /**
     * <code>.proto.ChargingCompatibilityError charging_compatibility_error = 90;</code>
     * @return The chargingCompatibilityError.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingCompatibilityError getChargingCompatibilityError();

    /**
     * <code>.proto.HvBatteryPrecondAvailability hv_battery_precond_availability = 91;</code>
     * @return Whether the hvBatteryPrecondAvailability field is set.
     */
    boolean hasHvBatteryPrecondAvailability();
    /**
     * <code>.proto.HvBatteryPrecondAvailability hv_battery_precond_availability = 91;</code>
     * @return The enum numeric value on the wire for hvBatteryPrecondAvailability.
     */
    int getHvBatteryPrecondAvailabilityValue();
    /**
     * <code>.proto.HvBatteryPrecondAvailability hv_battery_precond_availability = 91;</code>
     * @return The hvBatteryPrecondAvailability.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondAvailability getHvBatteryPrecondAvailability();

    /**
     * <code>.proto.HvBatteryPrecondRequestState hv_battery_precond_request_state = 92;</code>
     * @return Whether the hvBatteryPrecondRequestState field is set.
     */
    boolean hasHvBatteryPrecondRequestState();
    /**
     * <code>.proto.HvBatteryPrecondRequestState hv_battery_precond_request_state = 92;</code>
     * @return The hvBatteryPrecondRequestState.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState getHvBatteryPrecondRequestState();
    /**
     * <code>.proto.HvBatteryPrecondRequestState hv_battery_precond_request_state = 92;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestStateOrBuilder getHvBatteryPrecondRequestStateOrBuilder();

    /**
     * <code>.proto.HvBatteryPrecondState hv_battery_precond_state = 93;</code>
     * @return Whether the hvBatteryPrecondState field is set.
     */
    boolean hasHvBatteryPrecondState();
    /**
     * <code>.proto.HvBatteryPrecondState hv_battery_precond_state = 93;</code>
     * @return The hvBatteryPrecondState.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState getHvBatteryPrecondState();
    /**
     * <code>.proto.HvBatteryPrecondState hv_battery_precond_state = 93;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStateOrBuilder getHvBatteryPrecondStateOrBuilder();

    /**
     * <code>.proto.AmgStageModeState amg_stage_mode_state = 94;</code>
     * @return Whether the amgStageModeState field is set.
     */
    boolean hasAmgStageModeState();
    /**
     * <code>.proto.AmgStageModeState amg_stage_mode_state = 94;</code>
     * @return The enum numeric value on the wire for amgStageModeState.
     */
    int getAmgStageModeStateValue();
    /**
     * <code>.proto.AmgStageModeState amg_stage_mode_state = 94;</code>
     * @return The amgStageModeState.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeState getAmgStageModeState();

    /**
     * <code>.proto.AmgStageModeError amg_stage_mode_error = 95;</code>
     * @return Whether the amgStageModeError field is set.
     */
    boolean hasAmgStageModeError();
    /**
     * <code>.proto.AmgStageModeError amg_stage_mode_error = 95;</code>
     * @return The amgStageModeError.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError getAmgStageModeError();
    /**
     * <code>.proto.AmgStageModeError amg_stage_mode_error = 95;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeErrorOrBuilder getAmgStageModeErrorOrBuilder();

    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DisplayUnitCase getDisplayUnitCase();

    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.AttributeTypeCase getAttributeTypeCase();
  }
  /**
   * <pre>
   * Part of a VEPUpdate
   * Sending direction: App &lt;- BFF &lt;- AppTwin
   * </pre>
   *
   * Protobuf type {@code proto.VehicleAttributeStatus}
   */
  public static final class VehicleAttributeStatus extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.VehicleAttributeStatus)
      VehicleAttributeStatusOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "VehicleAttributeStatus");
    }
    // Use VehicleAttributeStatus.newBuilder() to construct.
    private VehicleAttributeStatus(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private VehicleAttributeStatus() {
      serviceIds_ = emptyIntList();
      displayValue_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleAttributeStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleAttributeStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.class, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder.class);
    }

    /**
     * Protobuf enum {@code proto.VehicleAttributeStatus.CombustionConsumptionUnit}
     */
    public enum CombustionConsumptionUnit
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT = 0;</code>
       */
      UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT(0),
      /**
       * <pre>
       * Liter per 100 km
       * </pre>
       *
       * <code>LITER_PER_100KM = 1;</code>
       */
      LITER_PER_100KM(1),
      /**
       * <pre>
       * Kilometers per liter
       * </pre>
       *
       * <code>KM_PER_LITER = 2;</code>
       */
      KM_PER_LITER(2),
      /**
       * <pre>
       * Miles Per imperial gallon
       * </pre>
       *
       * <code>MPG_UK = 3;</code>
       */
      MPG_UK(3),
      /**
       * <pre>
       * Miles Per US gallon
       * </pre>
       *
       * <code>MPG_US = 4;</code>
       */
      MPG_US(4),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "CombustionConsumptionUnit");
      }
      /**
       * <code>UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT = 0;</code>
       */
      public static final int UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT_VALUE = 0;
      /**
       * <pre>
       * Liter per 100 km
       * </pre>
       *
       * <code>LITER_PER_100KM = 1;</code>
       */
      public static final int LITER_PER_100KM_VALUE = 1;
      /**
       * <pre>
       * Kilometers per liter
       * </pre>
       *
       * <code>KM_PER_LITER = 2;</code>
       */
      public static final int KM_PER_LITER_VALUE = 2;
      /**
       * <pre>
       * Miles Per imperial gallon
       * </pre>
       *
       * <code>MPG_UK = 3;</code>
       */
      public static final int MPG_UK_VALUE = 3;
      /**
       * <pre>
       * Miles Per US gallon
       * </pre>
       *
       * <code>MPG_US = 4;</code>
       */
      public static final int MPG_US_VALUE = 4;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static CombustionConsumptionUnit valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static CombustionConsumptionUnit forNumber(int value) {
        switch (value) {
          case 0: return UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT;
          case 1: return LITER_PER_100KM;
          case 2: return KM_PER_LITER;
          case 3: return MPG_UK;
          case 4: return MPG_US;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<CombustionConsumptionUnit>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          CombustionConsumptionUnit> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<CombustionConsumptionUnit>() {
              public CombustionConsumptionUnit findValueByNumber(int number) {
                return CombustionConsumptionUnit.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(0);
      }

      private static final CombustionConsumptionUnit[] VALUES = values();

      public static CombustionConsumptionUnit valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private CombustionConsumptionUnit(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.CombustionConsumptionUnit)
    }

    /**
     * Protobuf enum {@code proto.VehicleAttributeStatus.ElectricityConsumptionUnit}
     */
    public enum ElectricityConsumptionUnit
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT = 0;</code>
       */
      UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT(0),
      /**
       * <pre>
       * kWh per 100 km
       * </pre>
       *
       * <code>KWH_PER_100KM = 1;</code>
       */
      KWH_PER_100KM(1),
      /**
       * <pre>
       * Kilometers per kWh
       * </pre>
       *
       * <code>KM_PER_KWH = 2;</code>
       */
      KM_PER_KWH(2),
      /**
       * <pre>
       * kWh per 100 miles
       * </pre>
       *
       * <code>KWH_PER_100MI = 3;</code>
       */
      KWH_PER_100MI(3),
      /**
       * <pre>
       * miles per kWh
       * </pre>
       *
       * <code>M_PER_KWH = 4;</code>
       */
      M_PER_KWH(4),
      /**
       * <pre>
       * Miles per gallon gasoline equivalent
       * </pre>
       *
       * <code>MPGE = 5;</code>
       */
      MPGE(5),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "ElectricityConsumptionUnit");
      }
      /**
       * <code>UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT = 0;</code>
       */
      public static final int UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT_VALUE = 0;
      /**
       * <pre>
       * kWh per 100 km
       * </pre>
       *
       * <code>KWH_PER_100KM = 1;</code>
       */
      public static final int KWH_PER_100KM_VALUE = 1;
      /**
       * <pre>
       * Kilometers per kWh
       * </pre>
       *
       * <code>KM_PER_KWH = 2;</code>
       */
      public static final int KM_PER_KWH_VALUE = 2;
      /**
       * <pre>
       * kWh per 100 miles
       * </pre>
       *
       * <code>KWH_PER_100MI = 3;</code>
       */
      public static final int KWH_PER_100MI_VALUE = 3;
      /**
       * <pre>
       * miles per kWh
       * </pre>
       *
       * <code>M_PER_KWH = 4;</code>
       */
      public static final int M_PER_KWH_VALUE = 4;
      /**
       * <pre>
       * Miles per gallon gasoline equivalent
       * </pre>
       *
       * <code>MPGE = 5;</code>
       */
      public static final int MPGE_VALUE = 5;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ElectricityConsumptionUnit valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ElectricityConsumptionUnit forNumber(int value) {
        switch (value) {
          case 0: return UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT;
          case 1: return KWH_PER_100KM;
          case 2: return KM_PER_KWH;
          case 3: return KWH_PER_100MI;
          case 4: return M_PER_KWH;
          case 5: return MPGE;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ElectricityConsumptionUnit>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ElectricityConsumptionUnit> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ElectricityConsumptionUnit>() {
              public ElectricityConsumptionUnit findValueByNumber(int number) {
                return ElectricityConsumptionUnit.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(1);
      }

      private static final ElectricityConsumptionUnit[] VALUES = values();

      public static ElectricityConsumptionUnit valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ElectricityConsumptionUnit(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.ElectricityConsumptionUnit)
    }

    /**
     * Protobuf enum {@code proto.VehicleAttributeStatus.GasConsumptionUnit}
     */
    public enum GasConsumptionUnit
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNSPECIFIED_GAS_CONSUMPTION_UNIT = 0;</code>
       */
      UNSPECIFIED_GAS_CONSUMPTION_UNIT(0),
      /**
       * <pre>
       * kG per 100 km
       * </pre>
       *
       * <code>KG_PER_100KM = 1;</code>
       */
      KG_PER_100KM(1),
      /**
       * <pre>
       * km per kg
       * </pre>
       *
       * <code>KM_PER_KG = 2;</code>
       */
      KM_PER_KG(2),
      /**
       * <pre>
       * miles per kg
       * </pre>
       *
       * <code>M_PER_KG = 3;</code>
       */
      M_PER_KG(3),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "GasConsumptionUnit");
      }
      /**
       * <code>UNSPECIFIED_GAS_CONSUMPTION_UNIT = 0;</code>
       */
      public static final int UNSPECIFIED_GAS_CONSUMPTION_UNIT_VALUE = 0;
      /**
       * <pre>
       * kG per 100 km
       * </pre>
       *
       * <code>KG_PER_100KM = 1;</code>
       */
      public static final int KG_PER_100KM_VALUE = 1;
      /**
       * <pre>
       * km per kg
       * </pre>
       *
       * <code>KM_PER_KG = 2;</code>
       */
      public static final int KM_PER_KG_VALUE = 2;
      /**
       * <pre>
       * miles per kg
       * </pre>
       *
       * <code>M_PER_KG = 3;</code>
       */
      public static final int M_PER_KG_VALUE = 3;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static GasConsumptionUnit valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static GasConsumptionUnit forNumber(int value) {
        switch (value) {
          case 0: return UNSPECIFIED_GAS_CONSUMPTION_UNIT;
          case 1: return KG_PER_100KM;
          case 2: return KM_PER_KG;
          case 3: return M_PER_KG;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<GasConsumptionUnit>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          GasConsumptionUnit> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<GasConsumptionUnit>() {
              public GasConsumptionUnit findValueByNumber(int number) {
                return GasConsumptionUnit.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(2);
      }

      private static final GasConsumptionUnit[] VALUES = values();

      public static GasConsumptionUnit valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private GasConsumptionUnit(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.GasConsumptionUnit)
    }

    /**
     * Protobuf enum {@code proto.VehicleAttributeStatus.SpeedDistanceUnit}
     */
    @java.lang.Deprecated public enum SpeedDistanceUnit
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNSPECIFIED_SPEED_DISTANCE_UNIT = 0;</code>
       */
      UNSPECIFIED_SPEED_DISTANCE_UNIT(0),
      /**
       * <pre>
       * km/h, distance unit: km
       * </pre>
       *
       * <code>KM_PER_H = 1;</code>
       */
      KM_PER_H(1),
      /**
       * <pre>
       * mph, distance unit: miles
       * </pre>
       *
       * <code>M_PER_H = 2;</code>
       */
      M_PER_H(2),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "SpeedDistanceUnit");
      }
      /**
       * <code>UNSPECIFIED_SPEED_DISTANCE_UNIT = 0;</code>
       */
      public static final int UNSPECIFIED_SPEED_DISTANCE_UNIT_VALUE = 0;
      /**
       * <pre>
       * km/h, distance unit: km
       * </pre>
       *
       * <code>KM_PER_H = 1;</code>
       */
      public static final int KM_PER_H_VALUE = 1;
      /**
       * <pre>
       * mph, distance unit: miles
       * </pre>
       *
       * <code>M_PER_H = 2;</code>
       */
      public static final int M_PER_H_VALUE = 2;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static SpeedDistanceUnit valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static SpeedDistanceUnit forNumber(int value) {
        switch (value) {
          case 0: return UNSPECIFIED_SPEED_DISTANCE_UNIT;
          case 1: return KM_PER_H;
          case 2: return M_PER_H;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<SpeedDistanceUnit>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          SpeedDistanceUnit> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<SpeedDistanceUnit>() {
              public SpeedDistanceUnit findValueByNumber(int number) {
                return SpeedDistanceUnit.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(3);
      }

      private static final SpeedDistanceUnit[] VALUES = values();

      public static SpeedDistanceUnit valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private SpeedDistanceUnit(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.SpeedDistanceUnit)
    }

    /**
     * Protobuf enum {@code proto.VehicleAttributeStatus.SpeedUnit}
     */
    public enum SpeedUnit
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNSPECIFIED_SPEED_UNIT = 0;</code>
       */
      UNSPECIFIED_SPEED_UNIT(0),
      /**
       * <pre>
       * kilometers per hour
       * </pre>
       *
       * <code>KM_PER_HOUR = 1;</code>
       */
      KM_PER_HOUR(1),
      /**
       * <pre>
       * miles per hour
       * </pre>
       *
       * <code>M_PER_HOUR = 2;</code>
       */
      M_PER_HOUR(2),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "SpeedUnit");
      }
      /**
       * <code>UNSPECIFIED_SPEED_UNIT = 0;</code>
       */
      public static final int UNSPECIFIED_SPEED_UNIT_VALUE = 0;
      /**
       * <pre>
       * kilometers per hour
       * </pre>
       *
       * <code>KM_PER_HOUR = 1;</code>
       */
      public static final int KM_PER_HOUR_VALUE = 1;
      /**
       * <pre>
       * miles per hour
       * </pre>
       *
       * <code>M_PER_HOUR = 2;</code>
       */
      public static final int M_PER_HOUR_VALUE = 2;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static SpeedUnit valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static SpeedUnit forNumber(int value) {
        switch (value) {
          case 0: return UNSPECIFIED_SPEED_UNIT;
          case 1: return KM_PER_HOUR;
          case 2: return M_PER_HOUR;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<SpeedUnit>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          SpeedUnit> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<SpeedUnit>() {
              public SpeedUnit findValueByNumber(int number) {
                return SpeedUnit.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(4);
      }

      private static final SpeedUnit[] VALUES = values();

      public static SpeedUnit valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private SpeedUnit(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.SpeedUnit)
    }

    /**
     * Protobuf enum {@code proto.VehicleAttributeStatus.DistanceUnit}
     */
    public enum DistanceUnit
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNSPECIFIED_DISTANCE_UNIT = 0;</code>
       */
      UNSPECIFIED_DISTANCE_UNIT(0),
      /**
       * <code>KILOMETERS = 1;</code>
       */
      KILOMETERS(1),
      /**
       * <code>MILES = 2;</code>
       */
      MILES(2),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "DistanceUnit");
      }
      /**
       * <code>UNSPECIFIED_DISTANCE_UNIT = 0;</code>
       */
      public static final int UNSPECIFIED_DISTANCE_UNIT_VALUE = 0;
      /**
       * <code>KILOMETERS = 1;</code>
       */
      public static final int KILOMETERS_VALUE = 1;
      /**
       * <code>MILES = 2;</code>
       */
      public static final int MILES_VALUE = 2;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static DistanceUnit valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static DistanceUnit forNumber(int value) {
        switch (value) {
          case 0: return UNSPECIFIED_DISTANCE_UNIT;
          case 1: return KILOMETERS;
          case 2: return MILES;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<DistanceUnit>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          DistanceUnit> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<DistanceUnit>() {
              public DistanceUnit findValueByNumber(int number) {
                return DistanceUnit.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(5);
      }

      private static final DistanceUnit[] VALUES = values();

      public static DistanceUnit valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private DistanceUnit(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.DistanceUnit)
    }

    /**
     * Protobuf enum {@code proto.VehicleAttributeStatus.TemperatureUnit}
     */
    public enum TemperatureUnit
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNSPECIFIED_TEMPERATURE_UNIT = 0;</code>
       */
      UNSPECIFIED_TEMPERATURE_UNIT(0),
      /**
       * <code>CELSIUS = 1;</code>
       */
      CELSIUS(1),
      /**
       * <code>FAHRENHEIT = 2;</code>
       */
      FAHRENHEIT(2),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "TemperatureUnit");
      }
      /**
       * <code>UNSPECIFIED_TEMPERATURE_UNIT = 0;</code>
       */
      public static final int UNSPECIFIED_TEMPERATURE_UNIT_VALUE = 0;
      /**
       * <code>CELSIUS = 1;</code>
       */
      public static final int CELSIUS_VALUE = 1;
      /**
       * <code>FAHRENHEIT = 2;</code>
       */
      public static final int FAHRENHEIT_VALUE = 2;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static TemperatureUnit valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static TemperatureUnit forNumber(int value) {
        switch (value) {
          case 0: return UNSPECIFIED_TEMPERATURE_UNIT;
          case 1: return CELSIUS;
          case 2: return FAHRENHEIT;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<TemperatureUnit>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          TemperatureUnit> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<TemperatureUnit>() {
              public TemperatureUnit findValueByNumber(int number) {
                return TemperatureUnit.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(6);
      }

      private static final TemperatureUnit[] VALUES = values();

      public static TemperatureUnit valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private TemperatureUnit(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.TemperatureUnit)
    }

    /**
     * Protobuf enum {@code proto.VehicleAttributeStatus.PressureUnit}
     */
    public enum PressureUnit
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNSPECIFIED_PRESSURE_UNIT = 0;</code>
       */
      UNSPECIFIED_PRESSURE_UNIT(0),
      /**
       * <code>KPA = 1;</code>
       */
      KPA(1),
      /**
       * <code>BAR = 2;</code>
       */
      BAR(2),
      /**
       * <pre>
       * Pounds per square inch
       * </pre>
       *
       * <code>PSI = 3;</code>
       */
      PSI(3),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "PressureUnit");
      }
      /**
       * <code>UNSPECIFIED_PRESSURE_UNIT = 0;</code>
       */
      public static final int UNSPECIFIED_PRESSURE_UNIT_VALUE = 0;
      /**
       * <code>KPA = 1;</code>
       */
      public static final int KPA_VALUE = 1;
      /**
       * <code>BAR = 2;</code>
       */
      public static final int BAR_VALUE = 2;
      /**
       * <pre>
       * Pounds per square inch
       * </pre>
       *
       * <code>PSI = 3;</code>
       */
      public static final int PSI_VALUE = 3;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static PressureUnit valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static PressureUnit forNumber(int value) {
        switch (value) {
          case 0: return UNSPECIFIED_PRESSURE_UNIT;
          case 1: return KPA;
          case 2: return BAR;
          case 3: return PSI;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<PressureUnit>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          PressureUnit> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<PressureUnit>() {
              public PressureUnit findValueByNumber(int number) {
                return PressureUnit.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(7);
      }

      private static final PressureUnit[] VALUES = values();

      public static PressureUnit valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private PressureUnit(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.PressureUnit)
    }

    /**
     * Protobuf enum {@code proto.VehicleAttributeStatus.RatioUnit}
     */
    public enum RatioUnit
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNSPECIFIED_RATIO_UNIT = 0;</code>
       */
      UNSPECIFIED_RATIO_UNIT(0),
      /**
       * <code>PERCENT = 1;</code>
       */
      PERCENT(1),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "RatioUnit");
      }
      /**
       * <code>UNSPECIFIED_RATIO_UNIT = 0;</code>
       */
      public static final int UNSPECIFIED_RATIO_UNIT_VALUE = 0;
      /**
       * <code>PERCENT = 1;</code>
       */
      public static final int PERCENT_VALUE = 1;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static RatioUnit valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static RatioUnit forNumber(int value) {
        switch (value) {
          case 0: return UNSPECIFIED_RATIO_UNIT;
          case 1: return PERCENT;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<RatioUnit>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          RatioUnit> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<RatioUnit>() {
              public RatioUnit findValueByNumber(int number) {
                return RatioUnit.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(8);
      }

      private static final RatioUnit[] VALUES = values();

      public static RatioUnit valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private RatioUnit(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.RatioUnit)
    }

    /**
     * Protobuf enum {@code proto.VehicleAttributeStatus.ClockHourUnit}
     */
    public enum ClockHourUnit
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNSPECIFIED_CLOCK_HOUR_UNIT = 0;</code>
       */
      UNSPECIFIED_CLOCK_HOUR_UNIT(0),
      /**
       * <pre>
       * 12h (AM/PM)
       * </pre>
       *
       * <code>T12H = 1;</code>
       */
      T12H(1),
      /**
       * <pre>
       * 24h
       * </pre>
       *
       * <code>T24H = 2;</code>
       */
      T24H(2),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "ClockHourUnit");
      }
      /**
       * <code>UNSPECIFIED_CLOCK_HOUR_UNIT = 0;</code>
       */
      public static final int UNSPECIFIED_CLOCK_HOUR_UNIT_VALUE = 0;
      /**
       * <pre>
       * 12h (AM/PM)
       * </pre>
       *
       * <code>T12H = 1;</code>
       */
      public static final int T12H_VALUE = 1;
      /**
       * <pre>
       * 24h
       * </pre>
       *
       * <code>T24H = 2;</code>
       */
      public static final int T24H_VALUE = 2;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ClockHourUnit valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ClockHourUnit forNumber(int value) {
        switch (value) {
          case 0: return UNSPECIFIED_CLOCK_HOUR_UNIT;
          case 1: return T12H;
          case 2: return T24H;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ClockHourUnit>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ClockHourUnit> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ClockHourUnit>() {
              public ClockHourUnit findValueByNumber(int number) {
                return ClockHourUnit.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(9);
      }

      private static final ClockHourUnit[] VALUES = values();

      public static ClockHourUnit valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ClockHourUnit(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.ClockHourUnit)
    }

    /**
     * Protobuf enum {@code proto.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus}
     */
    public enum TcuConnectionStateLowChannelStatus
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN_TCU_CONNECTION_STATE = 0;</code>
       */
      UNKNOWN_TCU_CONNECTION_STATE(0),
      /**
       * <code>INITIALLY_CONNECTED = 1;</code>
       */
      INITIALLY_CONNECTED(1),
      /**
       * <code>RECONNECTED = 2;</code>
       */
      RECONNECTED(2),
      /**
       * <code>DISCONNECTED = 3;</code>
       */
      DISCONNECTED(3),
      /**
       * <code>UNPLANNED_DISCONNECTED = 4;</code>
       */
      UNPLANNED_DISCONNECTED(4),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "TcuConnectionStateLowChannelStatus");
      }
      /**
       * <code>UNKNOWN_TCU_CONNECTION_STATE = 0;</code>
       */
      public static final int UNKNOWN_TCU_CONNECTION_STATE_VALUE = 0;
      /**
       * <code>INITIALLY_CONNECTED = 1;</code>
       */
      public static final int INITIALLY_CONNECTED_VALUE = 1;
      /**
       * <code>RECONNECTED = 2;</code>
       */
      public static final int RECONNECTED_VALUE = 2;
      /**
       * <code>DISCONNECTED = 3;</code>
       */
      public static final int DISCONNECTED_VALUE = 3;
      /**
       * <code>UNPLANNED_DISCONNECTED = 4;</code>
       */
      public static final int UNPLANNED_DISCONNECTED_VALUE = 4;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static TcuConnectionStateLowChannelStatus valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static TcuConnectionStateLowChannelStatus forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN_TCU_CONNECTION_STATE;
          case 1: return INITIALLY_CONNECTED;
          case 2: return RECONNECTED;
          case 3: return DISCONNECTED;
          case 4: return UNPLANNED_DISCONNECTED;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<TcuConnectionStateLowChannelStatus>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          TcuConnectionStateLowChannelStatus> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<TcuConnectionStateLowChannelStatus>() {
              public TcuConnectionStateLowChannelStatus findValueByNumber(int number) {
                return TcuConnectionStateLowChannelStatus.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(10);
      }

      private static final TcuConnectionStateLowChannelStatus[] VALUES = values();

      public static TcuConnectionStateLowChannelStatus valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private TcuConnectionStateLowChannelStatus(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus)
    }

    /**
     * Protobuf enum {@code proto.VehicleAttributeStatus.ChargingCouplerErrorDetails}
     */
    public enum ChargingCouplerErrorDetails
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>CHARING_COUPLER_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE = 0;</code>
       */
      CHARING_COUPLER_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE(0),
      /**
       * <code>CHARING_COUPLER_ERROR_DETAILS_RELIEVE_CHARGE_COUPLER_AND_RETRY = 1;</code>
       */
      CHARING_COUPLER_ERROR_DETAILS_RELIEVE_CHARGE_COUPLER_AND_RETRY(1),
      /**
       * <code>CHARING_COUPLER_ERROR_DETAILS_CONTACT_SERVICE_HOTLINE_FOR_EMERGENCY_UNLOCK = 2;</code>
       */
      CHARING_COUPLER_ERROR_DETAILS_CONTACT_SERVICE_HOTLINE_FOR_EMERGENCY_UNLOCK(2),
      /**
       * <code>CHARING_COUPLER_ERROR_DETAILS_UNPLUG_AND_REPLUG_CHARGE_COUPLER = 3;</code>
       */
      CHARING_COUPLER_ERROR_DETAILS_UNPLUG_AND_REPLUG_CHARGE_COUPLER(3),
      /**
       * <code>CHARING_COUPLER_ERROR_DETAILS_CHARGE_COUPLER_LOCK_DEFECT = 4;</code>
       */
      CHARING_COUPLER_ERROR_DETAILS_CHARGE_COUPLER_LOCK_DEFECT(4),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "ChargingCouplerErrorDetails");
      }
      /**
       * <code>CHARING_COUPLER_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE = 0;</code>
       */
      public static final int CHARING_COUPLER_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE_VALUE = 0;
      /**
       * <code>CHARING_COUPLER_ERROR_DETAILS_RELIEVE_CHARGE_COUPLER_AND_RETRY = 1;</code>
       */
      public static final int CHARING_COUPLER_ERROR_DETAILS_RELIEVE_CHARGE_COUPLER_AND_RETRY_VALUE = 1;
      /**
       * <code>CHARING_COUPLER_ERROR_DETAILS_CONTACT_SERVICE_HOTLINE_FOR_EMERGENCY_UNLOCK = 2;</code>
       */
      public static final int CHARING_COUPLER_ERROR_DETAILS_CONTACT_SERVICE_HOTLINE_FOR_EMERGENCY_UNLOCK_VALUE = 2;
      /**
       * <code>CHARING_COUPLER_ERROR_DETAILS_UNPLUG_AND_REPLUG_CHARGE_COUPLER = 3;</code>
       */
      public static final int CHARING_COUPLER_ERROR_DETAILS_UNPLUG_AND_REPLUG_CHARGE_COUPLER_VALUE = 3;
      /**
       * <code>CHARING_COUPLER_ERROR_DETAILS_CHARGE_COUPLER_LOCK_DEFECT = 4;</code>
       */
      public static final int CHARING_COUPLER_ERROR_DETAILS_CHARGE_COUPLER_LOCK_DEFECT_VALUE = 4;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ChargingCouplerErrorDetails valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ChargingCouplerErrorDetails forNumber(int value) {
        switch (value) {
          case 0: return CHARING_COUPLER_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE;
          case 1: return CHARING_COUPLER_ERROR_DETAILS_RELIEVE_CHARGE_COUPLER_AND_RETRY;
          case 2: return CHARING_COUPLER_ERROR_DETAILS_CONTACT_SERVICE_HOTLINE_FOR_EMERGENCY_UNLOCK;
          case 3: return CHARING_COUPLER_ERROR_DETAILS_UNPLUG_AND_REPLUG_CHARGE_COUPLER;
          case 4: return CHARING_COUPLER_ERROR_DETAILS_CHARGE_COUPLER_LOCK_DEFECT;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ChargingCouplerErrorDetails>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ChargingCouplerErrorDetails> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ChargingCouplerErrorDetails>() {
              public ChargingCouplerErrorDetails findValueByNumber(int number) {
                return ChargingCouplerErrorDetails.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(11);
      }

      private static final ChargingCouplerErrorDetails[] VALUES = values();

      public static ChargingCouplerErrorDetails valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ChargingCouplerErrorDetails(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.ChargingCouplerErrorDetails)
    }

    /**
     * Protobuf enum {@code proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V}
     */
    public enum ChargingErrorImpossibleChangeTo400V
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V_NO_INFO = 0;</code>
       */
      CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V_NO_INFO(0),
      /**
       * <code>CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V_400V_IMPOSSIBLE_STUCK_TO_800V = 1;</code>
       */
      CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V_400V_IMPOSSIBLE_STUCK_TO_800V(1),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "ChargingErrorImpossibleChangeTo400V");
      }
      /**
       * <code>CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V_NO_INFO = 0;</code>
       */
      public static final int CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V_NO_INFO_VALUE = 0;
      /**
       * <code>CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V_400V_IMPOSSIBLE_STUCK_TO_800V = 1;</code>
       */
      public static final int CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V_400V_IMPOSSIBLE_STUCK_TO_800V_VALUE = 1;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ChargingErrorImpossibleChangeTo400V valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ChargingErrorImpossibleChangeTo400V forNumber(int value) {
        switch (value) {
          case 0: return CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V_NO_INFO;
          case 1: return CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V_400V_IMPOSSIBLE_STUCK_TO_800V;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ChargingErrorImpossibleChangeTo400V>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ChargingErrorImpossibleChangeTo400V> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ChargingErrorImpossibleChangeTo400V>() {
              public ChargingErrorImpossibleChangeTo400V findValueByNumber(int number) {
                return ChargingErrorImpossibleChangeTo400V.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(12);
      }

      private static final ChargingErrorImpossibleChangeTo400V[] VALUES = values();

      public static ChargingErrorImpossibleChangeTo400V valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ChargingErrorImpossibleChangeTo400V(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V)
    }

    /**
     * Protobuf enum {@code proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V}
     */
    public enum ChargingErrorImpossibleChangeTo800V
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V_NO_INFO = 0;</code>
       */
      CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V_NO_INFO(0),
      /**
       * <code>CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V_800V_IMPOSSIBLE_STUCK_TO_400V = 1;</code>
       */
      CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V_800V_IMPOSSIBLE_STUCK_TO_400V(1),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "ChargingErrorImpossibleChangeTo800V");
      }
      /**
       * <code>CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V_NO_INFO = 0;</code>
       */
      public static final int CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V_NO_INFO_VALUE = 0;
      /**
       * <code>CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V_800V_IMPOSSIBLE_STUCK_TO_400V = 1;</code>
       */
      public static final int CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V_800V_IMPOSSIBLE_STUCK_TO_400V_VALUE = 1;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ChargingErrorImpossibleChangeTo800V valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ChargingErrorImpossibleChangeTo800V forNumber(int value) {
        switch (value) {
          case 0: return CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V_NO_INFO;
          case 1: return CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V_800V_IMPOSSIBLE_STUCK_TO_400V;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ChargingErrorImpossibleChangeTo800V>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ChargingErrorImpossibleChangeTo800V> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ChargingErrorImpossibleChangeTo800V>() {
              public ChargingErrorImpossibleChangeTo800V findValueByNumber(int number) {
                return ChargingErrorImpossibleChangeTo800V.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(13);
      }

      private static final ChargingErrorImpossibleChangeTo800V[] VALUES = values();

      public static ChargingErrorImpossibleChangeTo800V valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ChargingErrorImpossibleChangeTo800V(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V)
    }

    /**
     * Protobuf enum {@code proto.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V}
     */
    public enum ChargingErrorVehicleNoSupport400V
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V_NO_INFO = 0;</code>
       */
      CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V_NO_INFO(0),
      /**
       * <code>CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V_400V_CHARGING_NOT_POSSIBLE = 1;</code>
       */
      CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V_400V_CHARGING_NOT_POSSIBLE(1),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "ChargingErrorVehicleNoSupport400V");
      }
      /**
       * <code>CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V_NO_INFO = 0;</code>
       */
      public static final int CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V_NO_INFO_VALUE = 0;
      /**
       * <code>CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V_400V_CHARGING_NOT_POSSIBLE = 1;</code>
       */
      public static final int CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V_400V_CHARGING_NOT_POSSIBLE_VALUE = 1;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ChargingErrorVehicleNoSupport400V valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ChargingErrorVehicleNoSupport400V forNumber(int value) {
        switch (value) {
          case 0: return CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V_NO_INFO;
          case 1: return CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V_400V_CHARGING_NOT_POSSIBLE;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ChargingErrorVehicleNoSupport400V>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ChargingErrorVehicleNoSupport400V> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ChargingErrorVehicleNoSupport400V>() {
              public ChargingErrorVehicleNoSupport400V findValueByNumber(int number) {
                return ChargingErrorVehicleNoSupport400V.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(14);
      }

      private static final ChargingErrorVehicleNoSupport400V[] VALUES = values();

      public static ChargingErrorVehicleNoSupport400V valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ChargingErrorVehicleNoSupport400V(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V)
    }

    private int displayUnitCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object displayUnit_;
    public enum DisplayUnitCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      COMBUSTION_CONSUMPTION_UNIT(12),
      GAS_CONSUMPTION_UNIT(13),
      ELECTRICITY_CONSUMPTION_UNIT(14),
      @java.lang.Deprecated SPEED_DISTANCE_UNIT(15),
      SPEED_UNIT(25),
      DISTANCE_UNIT(26),
      TEMPERATURE_UNIT(16),
      PRESSURE_UNIT(17),
      RATIO_UNIT(18),
      CLOCK_HOUR_UNIT(19),
      DISPLAYUNIT_NOT_SET(0);
      private final int value;
      private DisplayUnitCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static DisplayUnitCase valueOf(int value) {
        return forNumber(value);
      }

      public static DisplayUnitCase forNumber(int value) {
        switch (value) {
          case 12: return COMBUSTION_CONSUMPTION_UNIT;
          case 13: return GAS_CONSUMPTION_UNIT;
          case 14: return ELECTRICITY_CONSUMPTION_UNIT;
          case 15: return SPEED_DISTANCE_UNIT;
          case 25: return SPEED_UNIT;
          case 26: return DISTANCE_UNIT;
          case 16: return TEMPERATURE_UNIT;
          case 17: return PRESSURE_UNIT;
          case 18: return RATIO_UNIT;
          case 19: return CLOCK_HOUR_UNIT;
          case 0: return DISPLAYUNIT_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public DisplayUnitCase
    getDisplayUnitCase() {
      return DisplayUnitCase.forNumber(
          displayUnitCase_);
    }

    private int attributeTypeCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object attributeType_;
    public enum AttributeTypeCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      INT_VALUE(4),
      BOOL_VALUE(5),
      STRING_VALUE(6),
      DOUBLE_VALUE(7),
      NIL_VALUE(8),
      UNSUPPORTED_VALUE(9),
      TEMPERATURE_POINTS_VALUE(20),
      WEEKDAY_TARIFF_VALUE(21),
      WEEKEND_TARIFF_VALUE(22),
      STATE_OF_CHARGE_PROFILE_VALUE(23),
      WEEKLY_SETTINGS_HEAD_UNIT_VALUE(24),
      SPEED_ALERT_CONFIGURATION_VALUE(27),
      ECO_HISTOGRAM_VALUE(28),
      WEEKLY_PROFILE_VALUE(29),
      CHARGE_PROGRAMS_VALUE(31),
      CHARGINGBREAK_CLOCKTIMER_VALUE(32),
      CHARGING_POWER_CONTROL(33),
      KEYLINE_ACTIVATION_STATE_VALUE(36),
      NEXT_DEPARTURE_TIME_VALUE(37),
      TCU_CONNECTION_STATE_LOW_CHANNEL(38),
      TURN_OFF_ENGINE_PRE_WARNING(39),
      CHILD_PRESENCE_DETECTION_WARNING_LAST_EVENT(40),
      CHILD_PRESENCE_DETECTION_WARNING_LEVEL(41),
      PERFORMANCE_LIMITATION_MODE_STATUS(42),
      BATTERY_HEALTH(43),
      PRECOND_STATE(44),
      EXTERIOR_MONITORING_STATUS(45),
      INTERIOR_MONITORING_STATUS(46),
      REMOTE_UPDATE_START_STATUS(47),
      SOH_CALIBRATION_REQUIRED(48),
      SOC_CALIBRATION_REQUEST(49),
      SOH_CALIBRATION_REQUEST(50),
      SOH_CALIBRATION_STATE(51),
      SOH_CALIBRATION_PLANNED(52),
      SOH_FAVORABLE_CONDITIONS(53),
      SOH_CALIBRATION_NOTIFICATIONS(54),
      CHARGING_POWER_RESTRICTIONS(55),
      CHARGING_COUPLER_ERROR_DETAILS(56),
      CHARGING_STOP_ERROR_DETAILS(57),
      CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V(58),
      CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V(59),
      CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V(60),
      PRECOND_OPERABILITY_STATE(61),
      PICTURE_RECORDING_STATUS(62),
      PARK_EVENT_PICTURE_SELECTION_STATUS(63),
      PANIC_ALARM_ACTIVE(64),
      INTERIOR_PROTECTION_SELECTION_STATUS(65),
      INTERIOR_PROTECTION_ACTIVATION_STATUS(66),
      TOW_PROTECTION_SELECTION_STATUS(67),
      TOW_PROTECTION_ACTIVATION_STATUS(68),
      VEHICLE_THEFT_ALARM_INACTIVE_REASON(69),
      PARK_COLLISION_SELECTION_STATUS(70),
      PARK_COLLISION_ACTIVATION_STATUS(71),
      PARK_COLLISION_INACTIVE_REASON(72),
      PARK_COLLISION_PICTURE_TRANSFER_STATUS(73),
      EMERGENCY_POWER_SUPPLY(78),
      EVSE_PAIRING_STATE(79),
      CHARGING_PREDICTION_SOC(80),
      CHARGING_PREDICTION_DEPARTURE_TIME(81),
      CHARGING_SCHEDULE_ACTIVE(82),
      DC_CHARGING_PROFILE(83),
      CHARGE_FLAPS(84),
      CHARGE_INLETS(85),
      CHARGING_TIMER(86),
      PARK_EVENT_PICTURE_TRANSMISSION_STATUS(87),
      CHARGING_SCHEDULE_REQUESTED(88),
      CHARGING_FLAP_ERROR_DETAILS(89),
      CHARGING_COMPATIBILITY_ERROR(90),
      HV_BATTERY_PRECOND_AVAILABILITY(91),
      HV_BATTERY_PRECOND_REQUEST_STATE(92),
      HV_BATTERY_PRECOND_STATE(93),
      AMG_STAGE_MODE_STATE(94),
      AMG_STAGE_MODE_ERROR(95),
      ATTRIBUTETYPE_NOT_SET(0);
      private final int value;
      private AttributeTypeCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static AttributeTypeCase valueOf(int value) {
        return forNumber(value);
      }

      public static AttributeTypeCase forNumber(int value) {
        switch (value) {
          case 4: return INT_VALUE;
          case 5: return BOOL_VALUE;
          case 6: return STRING_VALUE;
          case 7: return DOUBLE_VALUE;
          case 8: return NIL_VALUE;
          case 9: return UNSUPPORTED_VALUE;
          case 20: return TEMPERATURE_POINTS_VALUE;
          case 21: return WEEKDAY_TARIFF_VALUE;
          case 22: return WEEKEND_TARIFF_VALUE;
          case 23: return STATE_OF_CHARGE_PROFILE_VALUE;
          case 24: return WEEKLY_SETTINGS_HEAD_UNIT_VALUE;
          case 27: return SPEED_ALERT_CONFIGURATION_VALUE;
          case 28: return ECO_HISTOGRAM_VALUE;
          case 29: return WEEKLY_PROFILE_VALUE;
          case 31: return CHARGE_PROGRAMS_VALUE;
          case 32: return CHARGINGBREAK_CLOCKTIMER_VALUE;
          case 33: return CHARGING_POWER_CONTROL;
          case 36: return KEYLINE_ACTIVATION_STATE_VALUE;
          case 37: return NEXT_DEPARTURE_TIME_VALUE;
          case 38: return TCU_CONNECTION_STATE_LOW_CHANNEL;
          case 39: return TURN_OFF_ENGINE_PRE_WARNING;
          case 40: return CHILD_PRESENCE_DETECTION_WARNING_LAST_EVENT;
          case 41: return CHILD_PRESENCE_DETECTION_WARNING_LEVEL;
          case 42: return PERFORMANCE_LIMITATION_MODE_STATUS;
          case 43: return BATTERY_HEALTH;
          case 44: return PRECOND_STATE;
          case 45: return EXTERIOR_MONITORING_STATUS;
          case 46: return INTERIOR_MONITORING_STATUS;
          case 47: return REMOTE_UPDATE_START_STATUS;
          case 48: return SOH_CALIBRATION_REQUIRED;
          case 49: return SOC_CALIBRATION_REQUEST;
          case 50: return SOH_CALIBRATION_REQUEST;
          case 51: return SOH_CALIBRATION_STATE;
          case 52: return SOH_CALIBRATION_PLANNED;
          case 53: return SOH_FAVORABLE_CONDITIONS;
          case 54: return SOH_CALIBRATION_NOTIFICATIONS;
          case 55: return CHARGING_POWER_RESTRICTIONS;
          case 56: return CHARGING_COUPLER_ERROR_DETAILS;
          case 57: return CHARGING_STOP_ERROR_DETAILS;
          case 58: return CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V;
          case 59: return CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V;
          case 60: return CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V;
          case 61: return PRECOND_OPERABILITY_STATE;
          case 62: return PICTURE_RECORDING_STATUS;
          case 63: return PARK_EVENT_PICTURE_SELECTION_STATUS;
          case 64: return PANIC_ALARM_ACTIVE;
          case 65: return INTERIOR_PROTECTION_SELECTION_STATUS;
          case 66: return INTERIOR_PROTECTION_ACTIVATION_STATUS;
          case 67: return TOW_PROTECTION_SELECTION_STATUS;
          case 68: return TOW_PROTECTION_ACTIVATION_STATUS;
          case 69: return VEHICLE_THEFT_ALARM_INACTIVE_REASON;
          case 70: return PARK_COLLISION_SELECTION_STATUS;
          case 71: return PARK_COLLISION_ACTIVATION_STATUS;
          case 72: return PARK_COLLISION_INACTIVE_REASON;
          case 73: return PARK_COLLISION_PICTURE_TRANSFER_STATUS;
          case 78: return EMERGENCY_POWER_SUPPLY;
          case 79: return EVSE_PAIRING_STATE;
          case 80: return CHARGING_PREDICTION_SOC;
          case 81: return CHARGING_PREDICTION_DEPARTURE_TIME;
          case 82: return CHARGING_SCHEDULE_ACTIVE;
          case 83: return DC_CHARGING_PROFILE;
          case 84: return CHARGE_FLAPS;
          case 85: return CHARGE_INLETS;
          case 86: return CHARGING_TIMER;
          case 87: return PARK_EVENT_PICTURE_TRANSMISSION_STATUS;
          case 88: return CHARGING_SCHEDULE_REQUESTED;
          case 89: return CHARGING_FLAP_ERROR_DETAILS;
          case 90: return CHARGING_COMPATIBILITY_ERROR;
          case 91: return HV_BATTERY_PRECOND_AVAILABILITY;
          case 92: return HV_BATTERY_PRECOND_REQUEST_STATE;
          case 93: return HV_BATTERY_PRECOND_STATE;
          case 94: return AMG_STAGE_MODE_STATE;
          case 95: return AMG_STAGE_MODE_ERROR;
          case 0: return ATTRIBUTETYPE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public AttributeTypeCase
    getAttributeTypeCase() {
      return AttributeTypeCase.forNumber(
          attributeTypeCase_);
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 1;
    private long timestamp_ = 0L;
    /**
     * <pre>
     * time of the attribute change in the car as unix timestamp in seconds with UTC timezone (deprecated)
     * </pre>
     *
     * <code>int64 timestamp = 1 [deprecated = true];</code>
     * @deprecated proto.VehicleAttributeStatus.timestamp is deprecated.
     *     See vehicle-events.proto;l=39
     * @return The timestamp.
     */
    @java.lang.Override
    @java.lang.Deprecated public long getTimestamp() {
      return timestamp_;
    }

    public static final int TIMESTAMP_IN_MS_FIELD_NUMBER = 10;
    private long timestampInMs_ = 0L;
    /**
     * <pre>
     * time of the attribute change in the car as unix timestamp in milliseconds with UTC timezone
     * </pre>
     *
     * <code>int64 timestamp_in_ms = 10;</code>
     * @return The timestampInMs.
     */
    @java.lang.Override
    public long getTimestampInMs() {
      return timestampInMs_;
    }

    public static final int CHANGED_FIELD_NUMBER = 2;
    private boolean changed_ = false;
    /**
     * <code>bool changed = 2;</code>
     * @return The changed.
     */
    @java.lang.Override
    public boolean getChanged() {
      return changed_;
    }

    public static final int STATUS_FIELD_NUMBER = 3;
    private int status_ = 0;
    /**
     * <code>int32 status = 3;</code>
     * @return The status.
     */
    @java.lang.Override
    public int getStatus() {
      return status_;
    }

    public static final int SERVICE_IDS_FIELD_NUMBER = 30;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList serviceIds_ =
        emptyIntList();
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>repeated int32 service_ids = 30;</code>
     * @return A list containing the serviceIds.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getServiceIdsList() {
      return serviceIds_;
    }
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>repeated int32 service_ids = 30;</code>
     * @return The count of serviceIds.
     */
    public int getServiceIdsCount() {
      return serviceIds_.size();
    }
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>repeated int32 service_ids = 30;</code>
     * @param index The index of the element to return.
     * @return The serviceIds at the given index.
     */
    public int getServiceIds(int index) {
      return serviceIds_.getInt(index);
    }
    private int serviceIdsMemoizedSerializedSize = -1;

    public static final int DISPLAY_VALUE_FIELD_NUMBER = 11;
    @SuppressWarnings("serial")
    private volatile java.lang.Object displayValue_ = "";
    /**
     * <code>string display_value = 11;</code>
     * @return The displayValue.
     */
    @java.lang.Override
    public java.lang.String getDisplayValue() {
      java.lang.Object ref = displayValue_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        displayValue_ = s;
        return s;
      }
    }
    /**
     * <code>string display_value = 11;</code>
     * @return The bytes for displayValue.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDisplayValueBytes() {
      java.lang.Object ref = displayValue_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        displayValue_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COMBUSTION_CONSUMPTION_UNIT_FIELD_NUMBER = 12;
    /**
     * <code>.proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12;</code>
     * @return Whether the combustionConsumptionUnit field is set.
     */
    public boolean hasCombustionConsumptionUnit() {
      return displayUnitCase_ == 12;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12;</code>
     * @return The enum numeric value on the wire for combustionConsumptionUnit.
     */
    public int getCombustionConsumptionUnitValue() {
      if (displayUnitCase_ == 12) {
        return (java.lang.Integer) displayUnit_;
      }
      return 0;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12;</code>
     * @return The combustionConsumptionUnit.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit getCombustionConsumptionUnit() {
      if (displayUnitCase_ == 12) {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit.forNumber(
            (java.lang.Integer) displayUnit_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit.UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT;
    }

    public static final int GAS_CONSUMPTION_UNIT_FIELD_NUMBER = 13;
    /**
     * <code>.proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13;</code>
     * @return Whether the gasConsumptionUnit field is set.
     */
    public boolean hasGasConsumptionUnit() {
      return displayUnitCase_ == 13;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13;</code>
     * @return The enum numeric value on the wire for gasConsumptionUnit.
     */
    public int getGasConsumptionUnitValue() {
      if (displayUnitCase_ == 13) {
        return (java.lang.Integer) displayUnit_;
      }
      return 0;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13;</code>
     * @return The gasConsumptionUnit.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit getGasConsumptionUnit() {
      if (displayUnitCase_ == 13) {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit.forNumber(
            (java.lang.Integer) displayUnit_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit.UNSPECIFIED_GAS_CONSUMPTION_UNIT;
    }

    public static final int ELECTRICITY_CONSUMPTION_UNIT_FIELD_NUMBER = 14;
    /**
     * <code>.proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14;</code>
     * @return Whether the electricityConsumptionUnit field is set.
     */
    public boolean hasElectricityConsumptionUnit() {
      return displayUnitCase_ == 14;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14;</code>
     * @return The enum numeric value on the wire for electricityConsumptionUnit.
     */
    public int getElectricityConsumptionUnitValue() {
      if (displayUnitCase_ == 14) {
        return (java.lang.Integer) displayUnit_;
      }
      return 0;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14;</code>
     * @return The electricityConsumptionUnit.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit getElectricityConsumptionUnit() {
      if (displayUnitCase_ == 14) {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit.forNumber(
            (java.lang.Integer) displayUnit_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit.UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT;
    }

    public static final int SPEED_DISTANCE_UNIT_FIELD_NUMBER = 15;
    /**
     * <pre>
     * use speed unit / length unit instead
     * </pre>
     *
     * <code>.proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true];</code>
     * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated.
     *     See vehicle-events.proto;l=173
     * @return Whether the speedDistanceUnit field is set.
     */
    @java.lang.Deprecated public boolean hasSpeedDistanceUnit() {
      return displayUnitCase_ == 15;
    }
    /**
     * <pre>
     * use speed unit / length unit instead
     * </pre>
     *
     * <code>.proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true];</code>
     * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated.
     *     See vehicle-events.proto;l=173
     * @return The enum numeric value on the wire for speedDistanceUnit.
     */
    @java.lang.Deprecated public int getSpeedDistanceUnitValue() {
      if (displayUnitCase_ == 15) {
        return (java.lang.Integer) displayUnit_;
      }
      return 0;
    }
    /**
     * <pre>
     * use speed unit / length unit instead
     * </pre>
     *
     * <code>.proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true];</code>
     * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated.
     *     See vehicle-events.proto;l=173
     * @return The speedDistanceUnit.
     */
    @java.lang.Deprecated public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit getSpeedDistanceUnit() {
      if (displayUnitCase_ == 15) {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit.forNumber(
            (java.lang.Integer) displayUnit_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit.UNSPECIFIED_SPEED_DISTANCE_UNIT;
    }

    public static final int SPEED_UNIT_FIELD_NUMBER = 25;
    /**
     * <code>.proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25;</code>
     * @return Whether the speedUnit field is set.
     */
    public boolean hasSpeedUnit() {
      return displayUnitCase_ == 25;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25;</code>
     * @return The enum numeric value on the wire for speedUnit.
     */
    public int getSpeedUnitValue() {
      if (displayUnitCase_ == 25) {
        return (java.lang.Integer) displayUnit_;
      }
      return 0;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25;</code>
     * @return The speedUnit.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit getSpeedUnit() {
      if (displayUnitCase_ == 25) {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit.forNumber(
            (java.lang.Integer) displayUnit_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit.UNSPECIFIED_SPEED_UNIT;
    }

    public static final int DISTANCE_UNIT_FIELD_NUMBER = 26;
    /**
     * <code>.proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26;</code>
     * @return Whether the distanceUnit field is set.
     */
    public boolean hasDistanceUnit() {
      return displayUnitCase_ == 26;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26;</code>
     * @return The enum numeric value on the wire for distanceUnit.
     */
    public int getDistanceUnitValue() {
      if (displayUnitCase_ == 26) {
        return (java.lang.Integer) displayUnit_;
      }
      return 0;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26;</code>
     * @return The distanceUnit.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit getDistanceUnit() {
      if (displayUnitCase_ == 26) {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit.forNumber(
            (java.lang.Integer) displayUnit_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit.UNSPECIFIED_DISTANCE_UNIT;
    }

    public static final int TEMPERATURE_UNIT_FIELD_NUMBER = 16;
    /**
     * <code>.proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16;</code>
     * @return Whether the temperatureUnit field is set.
     */
    public boolean hasTemperatureUnit() {
      return displayUnitCase_ == 16;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16;</code>
     * @return The enum numeric value on the wire for temperatureUnit.
     */
    public int getTemperatureUnitValue() {
      if (displayUnitCase_ == 16) {
        return (java.lang.Integer) displayUnit_;
      }
      return 0;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16;</code>
     * @return The temperatureUnit.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit getTemperatureUnit() {
      if (displayUnitCase_ == 16) {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit.forNumber(
            (java.lang.Integer) displayUnit_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit.UNSPECIFIED_TEMPERATURE_UNIT;
    }

    public static final int PRESSURE_UNIT_FIELD_NUMBER = 17;
    /**
     * <code>.proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17;</code>
     * @return Whether the pressureUnit field is set.
     */
    public boolean hasPressureUnit() {
      return displayUnitCase_ == 17;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17;</code>
     * @return The enum numeric value on the wire for pressureUnit.
     */
    public int getPressureUnitValue() {
      if (displayUnitCase_ == 17) {
        return (java.lang.Integer) displayUnit_;
      }
      return 0;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17;</code>
     * @return The pressureUnit.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit getPressureUnit() {
      if (displayUnitCase_ == 17) {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit.forNumber(
            (java.lang.Integer) displayUnit_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit.UNSPECIFIED_PRESSURE_UNIT;
    }

    public static final int RATIO_UNIT_FIELD_NUMBER = 18;
    /**
     * <code>.proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18;</code>
     * @return Whether the ratioUnit field is set.
     */
    public boolean hasRatioUnit() {
      return displayUnitCase_ == 18;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18;</code>
     * @return The enum numeric value on the wire for ratioUnit.
     */
    public int getRatioUnitValue() {
      if (displayUnitCase_ == 18) {
        return (java.lang.Integer) displayUnit_;
      }
      return 0;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18;</code>
     * @return The ratioUnit.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit getRatioUnit() {
      if (displayUnitCase_ == 18) {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit.forNumber(
            (java.lang.Integer) displayUnit_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit.UNSPECIFIED_RATIO_UNIT;
    }

    public static final int CLOCK_HOUR_UNIT_FIELD_NUMBER = 19;
    /**
     * <code>.proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19;</code>
     * @return Whether the clockHourUnit field is set.
     */
    public boolean hasClockHourUnit() {
      return displayUnitCase_ == 19;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19;</code>
     * @return The enum numeric value on the wire for clockHourUnit.
     */
    public int getClockHourUnitValue() {
      if (displayUnitCase_ == 19) {
        return (java.lang.Integer) displayUnit_;
      }
      return 0;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19;</code>
     * @return The clockHourUnit.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit getClockHourUnit() {
      if (displayUnitCase_ == 19) {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit.forNumber(
            (java.lang.Integer) displayUnit_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit.UNSPECIFIED_CLOCK_HOUR_UNIT;
    }

    public static final int INT_VALUE_FIELD_NUMBER = 4;
    /**
     * <code>int64 int_value = 4;</code>
     * @return Whether the intValue field is set.
     */
    @java.lang.Override
    public boolean hasIntValue() {
      return attributeTypeCase_ == 4;
    }
    /**
     * <code>int64 int_value = 4;</code>
     * @return The intValue.
     */
    @java.lang.Override
    public long getIntValue() {
      if (attributeTypeCase_ == 4) {
        return (java.lang.Long) attributeType_;
      }
      return 0L;
    }

    public static final int BOOL_VALUE_FIELD_NUMBER = 5;
    /**
     * <code>bool bool_value = 5;</code>
     * @return Whether the boolValue field is set.
     */
    @java.lang.Override
    public boolean hasBoolValue() {
      return attributeTypeCase_ == 5;
    }
    /**
     * <code>bool bool_value = 5;</code>
     * @return The boolValue.
     */
    @java.lang.Override
    public boolean getBoolValue() {
      if (attributeTypeCase_ == 5) {
        return (java.lang.Boolean) attributeType_;
      }
      return false;
    }

    public static final int STRING_VALUE_FIELD_NUMBER = 6;
    /**
     * <code>string string_value = 6;</code>
     * @return Whether the stringValue field is set.
     */
    public boolean hasStringValue() {
      return attributeTypeCase_ == 6;
    }
    /**
     * <code>string string_value = 6;</code>
     * @return The stringValue.
     */
    public java.lang.String getStringValue() {
      java.lang.Object ref = "";
      if (attributeTypeCase_ == 6) {
        ref = attributeType_;
      }
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (attributeTypeCase_ == 6) {
          attributeType_ = s;
        }
        return s;
      }
    }
    /**
     * <code>string string_value = 6;</code>
     * @return The bytes for stringValue.
     */
    public com.google.protobuf.ByteString
        getStringValueBytes() {
      java.lang.Object ref = "";
      if (attributeTypeCase_ == 6) {
        ref = attributeType_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (attributeTypeCase_ == 6) {
          attributeType_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DOUBLE_VALUE_FIELD_NUMBER = 7;
    /**
     * <code>double double_value = 7;</code>
     * @return Whether the doubleValue field is set.
     */
    @java.lang.Override
    public boolean hasDoubleValue() {
      return attributeTypeCase_ == 7;
    }
    /**
     * <code>double double_value = 7;</code>
     * @return The doubleValue.
     */
    @java.lang.Override
    public double getDoubleValue() {
      if (attributeTypeCase_ == 7) {
        return (java.lang.Double) attributeType_;
      }
      return 0D;
    }

    public static final int NIL_VALUE_FIELD_NUMBER = 8;
    /**
     * <code>bool nil_value = 8;</code>
     * @return Whether the nilValue field is set.
     */
    @java.lang.Override
    public boolean hasNilValue() {
      return attributeTypeCase_ == 8;
    }
    /**
     * <code>bool nil_value = 8;</code>
     * @return The nilValue.
     */
    @java.lang.Override
    public boolean getNilValue() {
      if (attributeTypeCase_ == 8) {
        return (java.lang.Boolean) attributeType_;
      }
      return false;
    }

    public static final int UNSUPPORTED_VALUE_FIELD_NUMBER = 9;
    /**
     * <code>string unsupported_value = 9;</code>
     * @return Whether the unsupportedValue field is set.
     */
    public boolean hasUnsupportedValue() {
      return attributeTypeCase_ == 9;
    }
    /**
     * <code>string unsupported_value = 9;</code>
     * @return The unsupportedValue.
     */
    public java.lang.String getUnsupportedValue() {
      java.lang.Object ref = "";
      if (attributeTypeCase_ == 9) {
        ref = attributeType_;
      }
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (attributeTypeCase_ == 9) {
          attributeType_ = s;
        }
        return s;
      }
    }
    /**
     * <code>string unsupported_value = 9;</code>
     * @return The bytes for unsupportedValue.
     */
    public com.google.protobuf.ByteString
        getUnsupportedValueBytes() {
      java.lang.Object ref = "";
      if (attributeTypeCase_ == 9) {
        ref = attributeType_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (attributeTypeCase_ == 9) {
          attributeType_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TEMPERATURE_POINTS_VALUE_FIELD_NUMBER = 20;
    /**
     * <code>.proto.TemperaturePointsValue temperature_points_value = 20;</code>
     * @return Whether the temperaturePointsValue field is set.
     */
    @java.lang.Override
    public boolean hasTemperaturePointsValue() {
      return attributeTypeCase_ == 20;
    }
    /**
     * <code>.proto.TemperaturePointsValue temperature_points_value = 20;</code>
     * @return The temperaturePointsValue.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue getTemperaturePointsValue() {
      if (attributeTypeCase_ == 20) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance();
    }
    /**
     * <code>.proto.TemperaturePointsValue temperature_points_value = 20;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValueOrBuilder getTemperaturePointsValueOrBuilder() {
      if (attributeTypeCase_ == 20) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance();
    }

    public static final int WEEKDAY_TARIFF_VALUE_FIELD_NUMBER = 21;
    /**
     * <code>.proto.WeekdayTariffValue weekday_tariff_value = 21;</code>
     * @return Whether the weekdayTariffValue field is set.
     */
    @java.lang.Override
    public boolean hasWeekdayTariffValue() {
      return attributeTypeCase_ == 21;
    }
    /**
     * <code>.proto.WeekdayTariffValue weekday_tariff_value = 21;</code>
     * @return The weekdayTariffValue.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue getWeekdayTariffValue() {
      if (attributeTypeCase_ == 21) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance();
    }
    /**
     * <code>.proto.WeekdayTariffValue weekday_tariff_value = 21;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValueOrBuilder getWeekdayTariffValueOrBuilder() {
      if (attributeTypeCase_ == 21) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance();
    }

    public static final int WEEKEND_TARIFF_VALUE_FIELD_NUMBER = 22;
    /**
     * <code>.proto.WeekendTariffValue weekend_tariff_value = 22;</code>
     * @return Whether the weekendTariffValue field is set.
     */
    @java.lang.Override
    public boolean hasWeekendTariffValue() {
      return attributeTypeCase_ == 22;
    }
    /**
     * <code>.proto.WeekendTariffValue weekend_tariff_value = 22;</code>
     * @return The weekendTariffValue.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue getWeekendTariffValue() {
      if (attributeTypeCase_ == 22) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance();
    }
    /**
     * <code>.proto.WeekendTariffValue weekend_tariff_value = 22;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValueOrBuilder getWeekendTariffValueOrBuilder() {
      if (attributeTypeCase_ == 22) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance();
    }

    public static final int STATE_OF_CHARGE_PROFILE_VALUE_FIELD_NUMBER = 23;
    /**
     * <code>.proto.StateOfChargeProfileValue state_of_charge_profile_value = 23;</code>
     * @return Whether the stateOfChargeProfileValue field is set.
     */
    @java.lang.Override
    public boolean hasStateOfChargeProfileValue() {
      return attributeTypeCase_ == 23;
    }
    /**
     * <code>.proto.StateOfChargeProfileValue state_of_charge_profile_value = 23;</code>
     * @return The stateOfChargeProfileValue.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue getStateOfChargeProfileValue() {
      if (attributeTypeCase_ == 23) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance();
    }
    /**
     * <code>.proto.StateOfChargeProfileValue state_of_charge_profile_value = 23;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValueOrBuilder getStateOfChargeProfileValueOrBuilder() {
      if (attributeTypeCase_ == 23) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance();
    }

    public static final int WEEKLY_SETTINGS_HEAD_UNIT_VALUE_FIELD_NUMBER = 24;
    /**
     * <code>.proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24;</code>
     * @return Whether the weeklySettingsHeadUnitValue field is set.
     */
    @java.lang.Override
    public boolean hasWeeklySettingsHeadUnitValue() {
      return attributeTypeCase_ == 24;
    }
    /**
     * <code>.proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24;</code>
     * @return The weeklySettingsHeadUnitValue.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue getWeeklySettingsHeadUnitValue() {
      if (attributeTypeCase_ == 24) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance();
    }
    /**
     * <code>.proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValueOrBuilder getWeeklySettingsHeadUnitValueOrBuilder() {
      if (attributeTypeCase_ == 24) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance();
    }

    public static final int SPEED_ALERT_CONFIGURATION_VALUE_FIELD_NUMBER = 27;
    /**
     * <code>.proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27;</code>
     * @return Whether the speedAlertConfigurationValue field is set.
     */
    @java.lang.Override
    public boolean hasSpeedAlertConfigurationValue() {
      return attributeTypeCase_ == 27;
    }
    /**
     * <code>.proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27;</code>
     * @return The speedAlertConfigurationValue.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue getSpeedAlertConfigurationValue() {
      if (attributeTypeCase_ == 27) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance();
    }
    /**
     * <code>.proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValueOrBuilder getSpeedAlertConfigurationValueOrBuilder() {
      if (attributeTypeCase_ == 27) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance();
    }

    public static final int ECO_HISTOGRAM_VALUE_FIELD_NUMBER = 28;
    /**
     * <code>.proto.EcoHistogramValue eco_histogram_value = 28;</code>
     * @return Whether the ecoHistogramValue field is set.
     */
    @java.lang.Override
    public boolean hasEcoHistogramValue() {
      return attributeTypeCase_ == 28;
    }
    /**
     * <code>.proto.EcoHistogramValue eco_histogram_value = 28;</code>
     * @return The ecoHistogramValue.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue getEcoHistogramValue() {
      if (attributeTypeCase_ == 28) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance();
    }
    /**
     * <code>.proto.EcoHistogramValue eco_histogram_value = 28;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValueOrBuilder getEcoHistogramValueOrBuilder() {
      if (attributeTypeCase_ == 28) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance();
    }

    public static final int WEEKLY_PROFILE_VALUE_FIELD_NUMBER = 29;
    /**
     * <code>.proto.WeeklyProfileValue weekly_profile_value = 29;</code>
     * @return Whether the weeklyProfileValue field is set.
     */
    @java.lang.Override
    public boolean hasWeeklyProfileValue() {
      return attributeTypeCase_ == 29;
    }
    /**
     * <code>.proto.WeeklyProfileValue weekly_profile_value = 29;</code>
     * @return The weeklyProfileValue.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue getWeeklyProfileValue() {
      if (attributeTypeCase_ == 29) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance();
    }
    /**
     * <code>.proto.WeeklyProfileValue weekly_profile_value = 29;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValueOrBuilder getWeeklyProfileValueOrBuilder() {
      if (attributeTypeCase_ == 29) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance();
    }

    public static final int CHARGE_PROGRAMS_VALUE_FIELD_NUMBER = 31;
    /**
     * <code>.proto.ChargeProgramsValue charge_programs_value = 31;</code>
     * @return Whether the chargeProgramsValue field is set.
     */
    @java.lang.Override
    public boolean hasChargeProgramsValue() {
      return attributeTypeCase_ == 31;
    }
    /**
     * <code>.proto.ChargeProgramsValue charge_programs_value = 31;</code>
     * @return The chargeProgramsValue.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue getChargeProgramsValue() {
      if (attributeTypeCase_ == 31) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance();
    }
    /**
     * <code>.proto.ChargeProgramsValue charge_programs_value = 31;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValueOrBuilder getChargeProgramsValueOrBuilder() {
      if (attributeTypeCase_ == 31) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance();
    }

    public static final int CHARGINGBREAK_CLOCKTIMER_VALUE_FIELD_NUMBER = 32;
    /**
     * <code>.proto.ChargingBreakClockTimerValue chargingbreak_clocktimer_value = 32;</code>
     * @return Whether the chargingbreakClocktimerValue field is set.
     */
    @java.lang.Override
    public boolean hasChargingbreakClocktimerValue() {
      return attributeTypeCase_ == 32;
    }
    /**
     * <code>.proto.ChargingBreakClockTimerValue chargingbreak_clocktimer_value = 32;</code>
     * @return The chargingbreakClocktimerValue.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue getChargingbreakClocktimerValue() {
      if (attributeTypeCase_ == 32) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.getDefaultInstance();
    }
    /**
     * <code>.proto.ChargingBreakClockTimerValue chargingbreak_clocktimer_value = 32;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValueOrBuilder getChargingbreakClocktimerValueOrBuilder() {
      if (attributeTypeCase_ == 32) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.getDefaultInstance();
    }

    public static final int CHARGING_POWER_CONTROL_FIELD_NUMBER = 33;
    /**
     * <code>.proto.ChargingPowerControl charging_power_control = 33;</code>
     * @return Whether the chargingPowerControl field is set.
     */
    @java.lang.Override
    public boolean hasChargingPowerControl() {
      return attributeTypeCase_ == 33;
    }
    /**
     * <code>.proto.ChargingPowerControl charging_power_control = 33;</code>
     * @return The chargingPowerControl.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl getChargingPowerControl() {
      if (attributeTypeCase_ == 33) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.getDefaultInstance();
    }
    /**
     * <code>.proto.ChargingPowerControl charging_power_control = 33;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControlOrBuilder getChargingPowerControlOrBuilder() {
      if (attributeTypeCase_ == 33) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.getDefaultInstance();
    }

    public static final int KEYLINE_ACTIVATION_STATE_VALUE_FIELD_NUMBER = 36;
    /**
     * <code>.proto.KeylineActivationStateValue keyline_activation_state_value = 36;</code>
     * @return Whether the keylineActivationStateValue field is set.
     */
    @java.lang.Override
    public boolean hasKeylineActivationStateValue() {
      return attributeTypeCase_ == 36;
    }
    /**
     * <code>.proto.KeylineActivationStateValue keyline_activation_state_value = 36;</code>
     * @return The keylineActivationStateValue.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue getKeylineActivationStateValue() {
      if (attributeTypeCase_ == 36) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.getDefaultInstance();
    }
    /**
     * <code>.proto.KeylineActivationStateValue keyline_activation_state_value = 36;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValueOrBuilder getKeylineActivationStateValueOrBuilder() {
      if (attributeTypeCase_ == 36) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.getDefaultInstance();
    }

    public static final int NEXT_DEPARTURE_TIME_VALUE_FIELD_NUMBER = 37;
    /**
     * <code>.proto.NextDepartureTimeValue next_departure_time_value = 37;</code>
     * @return Whether the nextDepartureTimeValue field is set.
     */
    @java.lang.Override
    public boolean hasNextDepartureTimeValue() {
      return attributeTypeCase_ == 37;
    }
    /**
     * <code>.proto.NextDepartureTimeValue next_departure_time_value = 37;</code>
     * @return The nextDepartureTimeValue.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue getNextDepartureTimeValue() {
      if (attributeTypeCase_ == 37) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.getDefaultInstance();
    }
    /**
     * <code>.proto.NextDepartureTimeValue next_departure_time_value = 37;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValueOrBuilder getNextDepartureTimeValueOrBuilder() {
      if (attributeTypeCase_ == 37) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.getDefaultInstance();
    }

    public static final int TCU_CONNECTION_STATE_LOW_CHANNEL_FIELD_NUMBER = 38;
    /**
     * <code>.proto.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus tcu_connection_state_low_channel = 38;</code>
     * @return Whether the tcuConnectionStateLowChannel field is set.
     */
    public boolean hasTcuConnectionStateLowChannel() {
      return attributeTypeCase_ == 38;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus tcu_connection_state_low_channel = 38;</code>
     * @return The enum numeric value on the wire for tcuConnectionStateLowChannel.
     */
    public int getTcuConnectionStateLowChannelValue() {
      if (attributeTypeCase_ == 38) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus tcu_connection_state_low_channel = 38;</code>
     * @return The tcuConnectionStateLowChannel.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus getTcuConnectionStateLowChannel() {
      if (attributeTypeCase_ == 38) {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus.UNKNOWN_TCU_CONNECTION_STATE;
    }

    public static final int TURN_OFF_ENGINE_PRE_WARNING_FIELD_NUMBER = 39;
    /**
     * <code>.proto.TurnOffEnginePreWarning turn_off_engine_pre_warning = 39;</code>
     * @return Whether the turnOffEnginePreWarning field is set.
     */
    public boolean hasTurnOffEnginePreWarning() {
      return attributeTypeCase_ == 39;
    }
    /**
     * <code>.proto.TurnOffEnginePreWarning turn_off_engine_pre_warning = 39;</code>
     * @return The enum numeric value on the wire for turnOffEnginePreWarning.
     */
    public int getTurnOffEnginePreWarningValue() {
      if (attributeTypeCase_ == 39) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.TurnOffEnginePreWarning turn_off_engine_pre_warning = 39;</code>
     * @return The turnOffEnginePreWarning.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.TurnOffEnginePreWarning getTurnOffEnginePreWarning() {
      if (attributeTypeCase_ == 39) {
        com.daimler.mbcarkit.proto.VehicleEvents.TurnOffEnginePreWarning result = com.daimler.mbcarkit.proto.VehicleEvents.TurnOffEnginePreWarning.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.TurnOffEnginePreWarning.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.TurnOffEnginePreWarning.NO_MESSAGE_ACTIVE;
    }

    public static final int CHILD_PRESENCE_DETECTION_WARNING_LAST_EVENT_FIELD_NUMBER = 40;
    /**
     * <code>.proto.ChildPresenceDetectionWarningLastEvent child_presence_detection_warning_last_event = 40;</code>
     * @return Whether the childPresenceDetectionWarningLastEvent field is set.
     */
    public boolean hasChildPresenceDetectionWarningLastEvent() {
      return attributeTypeCase_ == 40;
    }
    /**
     * <code>.proto.ChildPresenceDetectionWarningLastEvent child_presence_detection_warning_last_event = 40;</code>
     * @return The enum numeric value on the wire for childPresenceDetectionWarningLastEvent.
     */
    public int getChildPresenceDetectionWarningLastEventValue() {
      if (attributeTypeCase_ == 40) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.ChildPresenceDetectionWarningLastEvent child_presence_detection_warning_last_event = 40;</code>
     * @return The childPresenceDetectionWarningLastEvent.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLastEvent getChildPresenceDetectionWarningLastEvent() {
      if (attributeTypeCase_ == 40) {
        com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLastEvent result = com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLastEvent.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLastEvent.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLastEvent.NO_WARNING_INITIAL;
    }

    public static final int CHILD_PRESENCE_DETECTION_WARNING_LEVEL_FIELD_NUMBER = 41;
    /**
     * <code>.proto.ChildPresenceDetectionWarningLevel child_presence_detection_warning_level = 41;</code>
     * @return Whether the childPresenceDetectionWarningLevel field is set.
     */
    public boolean hasChildPresenceDetectionWarningLevel() {
      return attributeTypeCase_ == 41;
    }
    /**
     * <code>.proto.ChildPresenceDetectionWarningLevel child_presence_detection_warning_level = 41;</code>
     * @return The enum numeric value on the wire for childPresenceDetectionWarningLevel.
     */
    public int getChildPresenceDetectionWarningLevelValue() {
      if (attributeTypeCase_ == 41) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.ChildPresenceDetectionWarningLevel child_presence_detection_warning_level = 41;</code>
     * @return The childPresenceDetectionWarningLevel.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLevel getChildPresenceDetectionWarningLevel() {
      if (attributeTypeCase_ == 41) {
        com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLevel result = com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLevel.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLevel.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLevel.NO_WARNING;
    }

    public static final int PERFORMANCE_LIMITATION_MODE_STATUS_FIELD_NUMBER = 42;
    /**
     * <code>.proto.PerformanceLimitationModeStatus performance_limitation_mode_status = 42;</code>
     * @return Whether the performanceLimitationModeStatus field is set.
     */
    public boolean hasPerformanceLimitationModeStatus() {
      return attributeTypeCase_ == 42;
    }
    /**
     * <code>.proto.PerformanceLimitationModeStatus performance_limitation_mode_status = 42;</code>
     * @return The enum numeric value on the wire for performanceLimitationModeStatus.
     */
    public int getPerformanceLimitationModeStatusValue() {
      if (attributeTypeCase_ == 42) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.PerformanceLimitationModeStatus performance_limitation_mode_status = 42;</code>
     * @return The performanceLimitationModeStatus.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.PerformanceLimitationModeStatus getPerformanceLimitationModeStatus() {
      if (attributeTypeCase_ == 42) {
        com.daimler.mbcarkit.proto.VehicleEvents.PerformanceLimitationModeStatus result = com.daimler.mbcarkit.proto.VehicleEvents.PerformanceLimitationModeStatus.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.PerformanceLimitationModeStatus.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.PerformanceLimitationModeStatus.PLM_NO_WARNING;
    }

    public static final int BATTERY_HEALTH_FIELD_NUMBER = 43;
    /**
     * <code>.proto.BatteryHealth battery_health = 43;</code>
     * @return Whether the batteryHealth field is set.
     */
    public boolean hasBatteryHealth() {
      return attributeTypeCase_ == 43;
    }
    /**
     * <code>.proto.BatteryHealth battery_health = 43;</code>
     * @return The enum numeric value on the wire for batteryHealth.
     */
    public int getBatteryHealthValue() {
      if (attributeTypeCase_ == 43) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.BatteryHealth battery_health = 43;</code>
     * @return The batteryHealth.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.BatteryHealth getBatteryHealth() {
      if (attributeTypeCase_ == 43) {
        com.daimler.mbcarkit.proto.VehicleEvents.BatteryHealth result = com.daimler.mbcarkit.proto.VehicleEvents.BatteryHealth.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.BatteryHealth.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.BatteryHealth.BATTERY_GREEN_STATE;
    }

    public static final int PRECOND_STATE_FIELD_NUMBER = 44;
    /**
     * <code>.proto.PrecondState precond_state = 44;</code>
     * @return Whether the precondState field is set.
     */
    @java.lang.Override
    public boolean hasPrecondState() {
      return attributeTypeCase_ == 44;
    }
    /**
     * <code>.proto.PrecondState precond_state = 44;</code>
     * @return The precondState.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.PrecondState getPrecondState() {
      if (attributeTypeCase_ == 44) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.PrecondState) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.getDefaultInstance();
    }
    /**
     * <code>.proto.PrecondState precond_state = 44;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateOrBuilder getPrecondStateOrBuilder() {
      if (attributeTypeCase_ == 44) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.PrecondState) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.getDefaultInstance();
    }

    public static final int EXTERIOR_MONITORING_STATUS_FIELD_NUMBER = 45;
    /**
     * <code>.proto.ExteriorMonitoringStatus exterior_monitoring_status = 45;</code>
     * @return Whether the exteriorMonitoringStatus field is set.
     */
    public boolean hasExteriorMonitoringStatus() {
      return attributeTypeCase_ == 45;
    }
    /**
     * <code>.proto.ExteriorMonitoringStatus exterior_monitoring_status = 45;</code>
     * @return The enum numeric value on the wire for exteriorMonitoringStatus.
     */
    public int getExteriorMonitoringStatusValue() {
      if (attributeTypeCase_ == 45) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.ExteriorMonitoringStatus exterior_monitoring_status = 45;</code>
     * @return The exteriorMonitoringStatus.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.ExteriorMonitoringStatus getExteriorMonitoringStatus() {
      if (attributeTypeCase_ == 45) {
        com.daimler.mbcarkit.proto.VehicleEvents.ExteriorMonitoringStatus result = com.daimler.mbcarkit.proto.VehicleEvents.ExteriorMonitoringStatus.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ExteriorMonitoringStatus.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ExteriorMonitoringStatus.EXM_IDLE;
    }

    public static final int INTERIOR_MONITORING_STATUS_FIELD_NUMBER = 46;
    /**
     * <code>.proto.InteriorMonitoringStatus interior_monitoring_status = 46;</code>
     * @return Whether the interiorMonitoringStatus field is set.
     */
    public boolean hasInteriorMonitoringStatus() {
      return attributeTypeCase_ == 46;
    }
    /**
     * <code>.proto.InteriorMonitoringStatus interior_monitoring_status = 46;</code>
     * @return The enum numeric value on the wire for interiorMonitoringStatus.
     */
    public int getInteriorMonitoringStatusValue() {
      if (attributeTypeCase_ == 46) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.InteriorMonitoringStatus interior_monitoring_status = 46;</code>
     * @return The interiorMonitoringStatus.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.InteriorMonitoringStatus getInteriorMonitoringStatus() {
      if (attributeTypeCase_ == 46) {
        com.daimler.mbcarkit.proto.VehicleEvents.InteriorMonitoringStatus result = com.daimler.mbcarkit.proto.VehicleEvents.InteriorMonitoringStatus.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.InteriorMonitoringStatus.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.InteriorMonitoringStatus.INM_IDLE;
    }

    public static final int REMOTE_UPDATE_START_STATUS_FIELD_NUMBER = 47;
    /**
     * <code>.proto.RemoteUpdateStartStatus remote_update_start_status = 47;</code>
     * @return Whether the remoteUpdateStartStatus field is set.
     */
    @java.lang.Override
    public boolean hasRemoteUpdateStartStatus() {
      return attributeTypeCase_ == 47;
    }
    /**
     * <code>.proto.RemoteUpdateStartStatus remote_update_start_status = 47;</code>
     * @return The remoteUpdateStartStatus.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus getRemoteUpdateStartStatus() {
      if (attributeTypeCase_ == 47) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.getDefaultInstance();
    }
    /**
     * <code>.proto.RemoteUpdateStartStatus remote_update_start_status = 47;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatusOrBuilder getRemoteUpdateStartStatusOrBuilder() {
      if (attributeTypeCase_ == 47) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.getDefaultInstance();
    }

    public static final int SOH_CALIBRATION_REQUIRED_FIELD_NUMBER = 48;
    /**
     * <code>.proto.SohCalibrationRequired soh_calibration_required = 48;</code>
     * @return Whether the sohCalibrationRequired field is set.
     */
    public boolean hasSohCalibrationRequired() {
      return attributeTypeCase_ == 48;
    }
    /**
     * <code>.proto.SohCalibrationRequired soh_calibration_required = 48;</code>
     * @return The enum numeric value on the wire for sohCalibrationRequired.
     */
    public int getSohCalibrationRequiredValue() {
      if (attributeTypeCase_ == 48) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.SohCalibrationRequired soh_calibration_required = 48;</code>
     * @return The sohCalibrationRequired.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequired getSohCalibrationRequired() {
      if (attributeTypeCase_ == 48) {
        com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequired result = com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequired.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequired.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequired.SOH_CALIBRATION_NOT_REQUIRED;
    }

    public static final int SOC_CALIBRATION_REQUEST_FIELD_NUMBER = 49;
    /**
     * <code>.proto.SocCalibrationRequest soc_calibration_request = 49;</code>
     * @return Whether the socCalibrationRequest field is set.
     */
    public boolean hasSocCalibrationRequest() {
      return attributeTypeCase_ == 49;
    }
    /**
     * <code>.proto.SocCalibrationRequest soc_calibration_request = 49;</code>
     * @return The enum numeric value on the wire for socCalibrationRequest.
     */
    public int getSocCalibrationRequestValue() {
      if (attributeTypeCase_ == 49) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.SocCalibrationRequest soc_calibration_request = 49;</code>
     * @return The socCalibrationRequest.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.SocCalibrationRequest getSocCalibrationRequest() {
      if (attributeTypeCase_ == 49) {
        com.daimler.mbcarkit.proto.VehicleEvents.SocCalibrationRequest result = com.daimler.mbcarkit.proto.VehicleEvents.SocCalibrationRequest.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SocCalibrationRequest.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.SocCalibrationRequest.SOC_CALIBRATION_REQUEST_NO_REQUEST;
    }

    public static final int SOH_CALIBRATION_REQUEST_FIELD_NUMBER = 50;
    /**
     * <code>.proto.SohCalibrationRequest soh_calibration_request = 50;</code>
     * @return Whether the sohCalibrationRequest field is set.
     */
    public boolean hasSohCalibrationRequest() {
      return attributeTypeCase_ == 50;
    }
    /**
     * <code>.proto.SohCalibrationRequest soh_calibration_request = 50;</code>
     * @return The enum numeric value on the wire for sohCalibrationRequest.
     */
    public int getSohCalibrationRequestValue() {
      if (attributeTypeCase_ == 50) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.SohCalibrationRequest soh_calibration_request = 50;</code>
     * @return The sohCalibrationRequest.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequest getSohCalibrationRequest() {
      if (attributeTypeCase_ == 50) {
        com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequest result = com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequest.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequest.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequest.SOH_CALIBRATION_REQUEST_NO_REQUEST;
    }

    public static final int SOH_CALIBRATION_STATE_FIELD_NUMBER = 51;
    /**
     * <code>.proto.SohCalibrationState soh_calibration_state = 51;</code>
     * @return Whether the sohCalibrationState field is set.
     */
    public boolean hasSohCalibrationState() {
      return attributeTypeCase_ == 51;
    }
    /**
     * <code>.proto.SohCalibrationState soh_calibration_state = 51;</code>
     * @return The enum numeric value on the wire for sohCalibrationState.
     */
    public int getSohCalibrationStateValue() {
      if (attributeTypeCase_ == 51) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.SohCalibrationState soh_calibration_state = 51;</code>
     * @return The sohCalibrationState.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationState getSohCalibrationState() {
      if (attributeTypeCase_ == 51) {
        com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationState result = com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationState.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationState.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationState.SOH_CALIBRATION_STATE_NOT_ACTIVE;
    }

    public static final int SOH_CALIBRATION_PLANNED_FIELD_NUMBER = 52;
    /**
     * <code>.proto.SohCalibrationPlanned soh_calibration_planned = 52;</code>
     * @return Whether the sohCalibrationPlanned field is set.
     */
    public boolean hasSohCalibrationPlanned() {
      return attributeTypeCase_ == 52;
    }
    /**
     * <code>.proto.SohCalibrationPlanned soh_calibration_planned = 52;</code>
     * @return The enum numeric value on the wire for sohCalibrationPlanned.
     */
    public int getSohCalibrationPlannedValue() {
      if (attributeTypeCase_ == 52) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.SohCalibrationPlanned soh_calibration_planned = 52;</code>
     * @return The sohCalibrationPlanned.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationPlanned getSohCalibrationPlanned() {
      if (attributeTypeCase_ == 52) {
        com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationPlanned result = com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationPlanned.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationPlanned.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationPlanned.SOH_CALIBRATION_NOT_PLANNED;
    }

    public static final int SOH_FAVORABLE_CONDITIONS_FIELD_NUMBER = 53;
    /**
     * <code>.proto.SohFavorableConditions soh_favorable_conditions = 53;</code>
     * @return Whether the sohFavorableConditions field is set.
     */
    public boolean hasSohFavorableConditions() {
      return attributeTypeCase_ == 53;
    }
    /**
     * <code>.proto.SohFavorableConditions soh_favorable_conditions = 53;</code>
     * @return The enum numeric value on the wire for sohFavorableConditions.
     */
    public int getSohFavorableConditionsValue() {
      if (attributeTypeCase_ == 53) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.SohFavorableConditions soh_favorable_conditions = 53;</code>
     * @return The sohFavorableConditions.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.SohFavorableConditions getSohFavorableConditions() {
      if (attributeTypeCase_ == 53) {
        com.daimler.mbcarkit.proto.VehicleEvents.SohFavorableConditions result = com.daimler.mbcarkit.proto.VehicleEvents.SohFavorableConditions.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SohFavorableConditions.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.SohFavorableConditions.SOH_FAVORABLE_CONDITIONS_NOT_FAVORABLE;
    }

    public static final int SOH_CALIBRATION_NOTIFICATIONS_FIELD_NUMBER = 54;
    /**
     * <code>.proto.SohCalibrationNotifications soh_calibration_notifications = 54;</code>
     * @return Whether the sohCalibrationNotifications field is set.
     */
    public boolean hasSohCalibrationNotifications() {
      return attributeTypeCase_ == 54;
    }
    /**
     * <code>.proto.SohCalibrationNotifications soh_calibration_notifications = 54;</code>
     * @return The enum numeric value on the wire for sohCalibrationNotifications.
     */
    public int getSohCalibrationNotificationsValue() {
      if (attributeTypeCase_ == 54) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.SohCalibrationNotifications soh_calibration_notifications = 54;</code>
     * @return The sohCalibrationNotifications.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationNotifications getSohCalibrationNotifications() {
      if (attributeTypeCase_ == 54) {
        com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationNotifications result = com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationNotifications.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationNotifications.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationNotifications.SOH_CALIBRATION_NOTIFICATIONS_NO_SOH_CALIBRATION_NECESSARY;
    }

    public static final int CHARGING_POWER_RESTRICTIONS_FIELD_NUMBER = 55;
    /**
     * <code>.proto.ChargingPowerRestrictions charging_power_restrictions = 55;</code>
     * @return Whether the chargingPowerRestrictions field is set.
     */
    @java.lang.Override
    public boolean hasChargingPowerRestrictions() {
      return attributeTypeCase_ == 55;
    }
    /**
     * <code>.proto.ChargingPowerRestrictions charging_power_restrictions = 55;</code>
     * @return The chargingPowerRestrictions.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions getChargingPowerRestrictions() {
      if (attributeTypeCase_ == 55) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.getDefaultInstance();
    }
    /**
     * <code>.proto.ChargingPowerRestrictions charging_power_restrictions = 55;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictionsOrBuilder getChargingPowerRestrictionsOrBuilder() {
      if (attributeTypeCase_ == 55) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.getDefaultInstance();
    }

    public static final int CHARGING_COUPLER_ERROR_DETAILS_FIELD_NUMBER = 56;
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingCouplerErrorDetails charging_coupler_error_details = 56;</code>
     * @return Whether the chargingCouplerErrorDetails field is set.
     */
    public boolean hasChargingCouplerErrorDetails() {
      return attributeTypeCase_ == 56;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingCouplerErrorDetails charging_coupler_error_details = 56;</code>
     * @return The enum numeric value on the wire for chargingCouplerErrorDetails.
     */
    public int getChargingCouplerErrorDetailsValue() {
      if (attributeTypeCase_ == 56) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingCouplerErrorDetails charging_coupler_error_details = 56;</code>
     * @return The chargingCouplerErrorDetails.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingCouplerErrorDetails getChargingCouplerErrorDetails() {
      if (attributeTypeCase_ == 56) {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingCouplerErrorDetails result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingCouplerErrorDetails.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingCouplerErrorDetails.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingCouplerErrorDetails.CHARING_COUPLER_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE;
    }

    public static final int CHARGING_STOP_ERROR_DETAILS_FIELD_NUMBER = 57;
    /**
     * <code>.proto.ChargingStopErrorDetails charging_stop_error_details = 57;</code>
     * @return Whether the chargingStopErrorDetails field is set.
     */
    public boolean hasChargingStopErrorDetails() {
      return attributeTypeCase_ == 57;
    }
    /**
     * <code>.proto.ChargingStopErrorDetails charging_stop_error_details = 57;</code>
     * @return The enum numeric value on the wire for chargingStopErrorDetails.
     */
    public int getChargingStopErrorDetailsValue() {
      if (attributeTypeCase_ == 57) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.ChargingStopErrorDetails charging_stop_error_details = 57;</code>
     * @return The chargingStopErrorDetails.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingStopErrorDetails getChargingStopErrorDetails() {
      if (attributeTypeCase_ == 57) {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingStopErrorDetails result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingStopErrorDetails.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingStopErrorDetails.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingStopErrorDetails.CHARGING_STOP_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE;
    }

    public static final int CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V_FIELD_NUMBER = 58;
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V charging_error_vehicle_no_support_400v = 58;</code>
     * @return Whether the chargingErrorVehicleNoSupport400v field is set.
     */
    public boolean hasChargingErrorVehicleNoSupport400V() {
      return attributeTypeCase_ == 58;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V charging_error_vehicle_no_support_400v = 58;</code>
     * @return The enum numeric value on the wire for chargingErrorVehicleNoSupport400v.
     */
    public int getChargingErrorVehicleNoSupport400VValue() {
      if (attributeTypeCase_ == 58) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V charging_error_vehicle_no_support_400v = 58;</code>
     * @return The chargingErrorVehicleNoSupport400v.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V getChargingErrorVehicleNoSupport400V() {
      if (attributeTypeCase_ == 58) {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V.CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V_NO_INFO;
    }

    public static final int CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V_FIELD_NUMBER = 59;
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V charging_error_impossible_change_to_400v = 59;</code>
     * @return Whether the chargingErrorImpossibleChangeTo400v field is set.
     */
    public boolean hasChargingErrorImpossibleChangeTo400V() {
      return attributeTypeCase_ == 59;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V charging_error_impossible_change_to_400v = 59;</code>
     * @return The enum numeric value on the wire for chargingErrorImpossibleChangeTo400v.
     */
    public int getChargingErrorImpossibleChangeTo400VValue() {
      if (attributeTypeCase_ == 59) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V charging_error_impossible_change_to_400v = 59;</code>
     * @return The chargingErrorImpossibleChangeTo400v.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V getChargingErrorImpossibleChangeTo400V() {
      if (attributeTypeCase_ == 59) {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V.CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V_NO_INFO;
    }

    public static final int CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V_FIELD_NUMBER = 60;
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V charging_error_impossible_change_to_800v = 60;</code>
     * @return Whether the chargingErrorImpossibleChangeTo800v field is set.
     */
    public boolean hasChargingErrorImpossibleChangeTo800V() {
      return attributeTypeCase_ == 60;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V charging_error_impossible_change_to_800v = 60;</code>
     * @return The enum numeric value on the wire for chargingErrorImpossibleChangeTo800v.
     */
    public int getChargingErrorImpossibleChangeTo800VValue() {
      if (attributeTypeCase_ == 60) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V charging_error_impossible_change_to_800v = 60;</code>
     * @return The chargingErrorImpossibleChangeTo800v.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V getChargingErrorImpossibleChangeTo800V() {
      if (attributeTypeCase_ == 60) {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V.CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V_NO_INFO;
    }

    public static final int PRECOND_OPERABILITY_STATE_FIELD_NUMBER = 61;
    /**
     * <code>.proto.PrecondOperabilityState precond_operability_state = 61;</code>
     * @return Whether the precondOperabilityState field is set.
     */
    @java.lang.Override
    public boolean hasPrecondOperabilityState() {
      return attributeTypeCase_ == 61;
    }
    /**
     * <code>.proto.PrecondOperabilityState precond_operability_state = 61;</code>
     * @return The precondOperabilityState.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState getPrecondOperabilityState() {
      if (attributeTypeCase_ == 61) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.getDefaultInstance();
    }
    /**
     * <code>.proto.PrecondOperabilityState precond_operability_state = 61;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityStateOrBuilder getPrecondOperabilityStateOrBuilder() {
      if (attributeTypeCase_ == 61) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.getDefaultInstance();
    }

    public static final int PICTURE_RECORDING_STATUS_FIELD_NUMBER = 62;
    /**
     * <code>.proto.PictureRecordingStatus picture_recording_status = 62;</code>
     * @return Whether the pictureRecordingStatus field is set.
     */
    public boolean hasPictureRecordingStatus() {
      return attributeTypeCase_ == 62;
    }
    /**
     * <code>.proto.PictureRecordingStatus picture_recording_status = 62;</code>
     * @return The enum numeric value on the wire for pictureRecordingStatus.
     */
    public int getPictureRecordingStatusValue() {
      if (attributeTypeCase_ == 62) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.PictureRecordingStatus picture_recording_status = 62;</code>
     * @return The pictureRecordingStatus.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.PictureRecordingStatus getPictureRecordingStatus() {
      if (attributeTypeCase_ == 62) {
        com.daimler.mbcarkit.proto.VehicleEvents.PictureRecordingStatus result = com.daimler.mbcarkit.proto.VehicleEvents.PictureRecordingStatus.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.PictureRecordingStatus.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.PictureRecordingStatus.PICTURE_RECORDING_STATUS_NOT_ACTIVE;
    }

    public static final int PARK_EVENT_PICTURE_SELECTION_STATUS_FIELD_NUMBER = 63;
    /**
     * <code>.proto.ParkEventPictureSelectionStatus park_event_picture_selection_status = 63;</code>
     * @return Whether the parkEventPictureSelectionStatus field is set.
     */
    public boolean hasParkEventPictureSelectionStatus() {
      return attributeTypeCase_ == 63;
    }
    /**
     * <code>.proto.ParkEventPictureSelectionStatus park_event_picture_selection_status = 63;</code>
     * @return The enum numeric value on the wire for parkEventPictureSelectionStatus.
     */
    public int getParkEventPictureSelectionStatusValue() {
      if (attributeTypeCase_ == 63) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.ParkEventPictureSelectionStatus park_event_picture_selection_status = 63;</code>
     * @return The parkEventPictureSelectionStatus.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureSelectionStatus getParkEventPictureSelectionStatus() {
      if (attributeTypeCase_ == 63) {
        com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureSelectionStatus result = com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureSelectionStatus.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureSelectionStatus.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureSelectionStatus.PARK_EVENT_PICTURE_SELECTION_STATUS_NOT_SELECTED;
    }

    public static final int PANIC_ALARM_ACTIVE_FIELD_NUMBER = 64;
    /**
     * <code>.proto.PanicAlarmActive panic_alarm_active = 64;</code>
     * @return Whether the panicAlarmActive field is set.
     */
    public boolean hasPanicAlarmActive() {
      return attributeTypeCase_ == 64;
    }
    /**
     * <code>.proto.PanicAlarmActive panic_alarm_active = 64;</code>
     * @return The enum numeric value on the wire for panicAlarmActive.
     */
    public int getPanicAlarmActiveValue() {
      if (attributeTypeCase_ == 64) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.PanicAlarmActive panic_alarm_active = 64;</code>
     * @return The panicAlarmActive.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.PanicAlarmActive getPanicAlarmActive() {
      if (attributeTypeCase_ == 64) {
        com.daimler.mbcarkit.proto.VehicleEvents.PanicAlarmActive result = com.daimler.mbcarkit.proto.VehicleEvents.PanicAlarmActive.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.PanicAlarmActive.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.PanicAlarmActive.PANIC_ALARM_ACTIVE_CONFIRMED;
    }

    public static final int INTERIOR_PROTECTION_SELECTION_STATUS_FIELD_NUMBER = 65;
    /**
     * <code>.proto.InteriorProtectionSelectionStatus interior_protection_selection_status = 65;</code>
     * @return Whether the interiorProtectionSelectionStatus field is set.
     */
    public boolean hasInteriorProtectionSelectionStatus() {
      return attributeTypeCase_ == 65;
    }
    /**
     * <code>.proto.InteriorProtectionSelectionStatus interior_protection_selection_status = 65;</code>
     * @return The enum numeric value on the wire for interiorProtectionSelectionStatus.
     */
    public int getInteriorProtectionSelectionStatusValue() {
      if (attributeTypeCase_ == 65) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.InteriorProtectionSelectionStatus interior_protection_selection_status = 65;</code>
     * @return The interiorProtectionSelectionStatus.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionSelectionStatus getInteriorProtectionSelectionStatus() {
      if (attributeTypeCase_ == 65) {
        com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionSelectionStatus result = com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionSelectionStatus.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionSelectionStatus.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionSelectionStatus.INTERIOR_PROTECTION_SELECTION_STATUS_DESELETED;
    }

    public static final int INTERIOR_PROTECTION_ACTIVATION_STATUS_FIELD_NUMBER = 66;
    /**
     * <code>.proto.InteriorProtectionActivationStatus interior_protection_activation_status = 66;</code>
     * @return Whether the interiorProtectionActivationStatus field is set.
     */
    public boolean hasInteriorProtectionActivationStatus() {
      return attributeTypeCase_ == 66;
    }
    /**
     * <code>.proto.InteriorProtectionActivationStatus interior_protection_activation_status = 66;</code>
     * @return The enum numeric value on the wire for interiorProtectionActivationStatus.
     */
    public int getInteriorProtectionActivationStatusValue() {
      if (attributeTypeCase_ == 66) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.InteriorProtectionActivationStatus interior_protection_activation_status = 66;</code>
     * @return The interiorProtectionActivationStatus.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionActivationStatus getInteriorProtectionActivationStatus() {
      if (attributeTypeCase_ == 66) {
        com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionActivationStatus result = com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionActivationStatus.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionActivationStatus.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionActivationStatus.INTERIOR_PROTECTION_ACTIVATION_STATUS_OFF;
    }

    public static final int TOW_PROTECTION_SELECTION_STATUS_FIELD_NUMBER = 67;
    /**
     * <code>.proto.TowProtectionSelectionStatus tow_protection_selection_status = 67;</code>
     * @return Whether the towProtectionSelectionStatus field is set.
     */
    public boolean hasTowProtectionSelectionStatus() {
      return attributeTypeCase_ == 67;
    }
    /**
     * <code>.proto.TowProtectionSelectionStatus tow_protection_selection_status = 67;</code>
     * @return The enum numeric value on the wire for towProtectionSelectionStatus.
     */
    public int getTowProtectionSelectionStatusValue() {
      if (attributeTypeCase_ == 67) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.TowProtectionSelectionStatus tow_protection_selection_status = 67;</code>
     * @return The towProtectionSelectionStatus.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionSelectionStatus getTowProtectionSelectionStatus() {
      if (attributeTypeCase_ == 67) {
        com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionSelectionStatus result = com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionSelectionStatus.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionSelectionStatus.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionSelectionStatus.TOW_PROTECTION_SELECTION_STATUS_DESELETED;
    }

    public static final int TOW_PROTECTION_ACTIVATION_STATUS_FIELD_NUMBER = 68;
    /**
     * <code>.proto.TowProtectionActivationStatus tow_protection_activation_status = 68;</code>
     * @return Whether the towProtectionActivationStatus field is set.
     */
    public boolean hasTowProtectionActivationStatus() {
      return attributeTypeCase_ == 68;
    }
    /**
     * <code>.proto.TowProtectionActivationStatus tow_protection_activation_status = 68;</code>
     * @return The enum numeric value on the wire for towProtectionActivationStatus.
     */
    public int getTowProtectionActivationStatusValue() {
      if (attributeTypeCase_ == 68) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.TowProtectionActivationStatus tow_protection_activation_status = 68;</code>
     * @return The towProtectionActivationStatus.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionActivationStatus getTowProtectionActivationStatus() {
      if (attributeTypeCase_ == 68) {
        com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionActivationStatus result = com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionActivationStatus.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionActivationStatus.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionActivationStatus.TOW_PROTECTION_ACTIVATION_STATUS_OFF;
    }

    public static final int VEHICLE_THEFT_ALARM_INACTIVE_REASON_FIELD_NUMBER = 69;
    /**
     * <code>.proto.VehicleTheftAlarmInactiveReason vehicle_theft_alarm_inactive_reason = 69;</code>
     * @return Whether the vehicleTheftAlarmInactiveReason field is set.
     */
    public boolean hasVehicleTheftAlarmInactiveReason() {
      return attributeTypeCase_ == 69;
    }
    /**
     * <code>.proto.VehicleTheftAlarmInactiveReason vehicle_theft_alarm_inactive_reason = 69;</code>
     * @return The enum numeric value on the wire for vehicleTheftAlarmInactiveReason.
     */
    public int getVehicleTheftAlarmInactiveReasonValue() {
      if (attributeTypeCase_ == 69) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.VehicleTheftAlarmInactiveReason vehicle_theft_alarm_inactive_reason = 69;</code>
     * @return The vehicleTheftAlarmInactiveReason.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleTheftAlarmInactiveReason getVehicleTheftAlarmInactiveReason() {
      if (attributeTypeCase_ == 69) {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleTheftAlarmInactiveReason result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleTheftAlarmInactiveReason.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleTheftAlarmInactiveReason.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleTheftAlarmInactiveReason.VEHICLE_THEFT_ALARM_INACTIVE_REASON_NO_ERROR;
    }

    public static final int PARK_COLLISION_SELECTION_STATUS_FIELD_NUMBER = 70;
    /**
     * <code>.proto.ParkCollisionSelectionStatus park_collision_selection_status = 70;</code>
     * @return Whether the parkCollisionSelectionStatus field is set.
     */
    public boolean hasParkCollisionSelectionStatus() {
      return attributeTypeCase_ == 70;
    }
    /**
     * <code>.proto.ParkCollisionSelectionStatus park_collision_selection_status = 70;</code>
     * @return The enum numeric value on the wire for parkCollisionSelectionStatus.
     */
    public int getParkCollisionSelectionStatusValue() {
      if (attributeTypeCase_ == 70) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.ParkCollisionSelectionStatus park_collision_selection_status = 70;</code>
     * @return The parkCollisionSelectionStatus.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionSelectionStatus getParkCollisionSelectionStatus() {
      if (attributeTypeCase_ == 70) {
        com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionSelectionStatus result = com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionSelectionStatus.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionSelectionStatus.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionSelectionStatus.PARK_COLLISION_SELECTION_STATUS_DESELETED;
    }

    public static final int PARK_COLLISION_ACTIVATION_STATUS_FIELD_NUMBER = 71;
    /**
     * <code>.proto.ParkCollisionActivationStatus park_collision_activation_status = 71;</code>
     * @return Whether the parkCollisionActivationStatus field is set.
     */
    public boolean hasParkCollisionActivationStatus() {
      return attributeTypeCase_ == 71;
    }
    /**
     * <code>.proto.ParkCollisionActivationStatus park_collision_activation_status = 71;</code>
     * @return The enum numeric value on the wire for parkCollisionActivationStatus.
     */
    public int getParkCollisionActivationStatusValue() {
      if (attributeTypeCase_ == 71) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.ParkCollisionActivationStatus park_collision_activation_status = 71;</code>
     * @return The parkCollisionActivationStatus.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionActivationStatus getParkCollisionActivationStatus() {
      if (attributeTypeCase_ == 71) {
        com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionActivationStatus result = com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionActivationStatus.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionActivationStatus.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionActivationStatus.PARK_COLLISION_ACTIVATION_STATUS_OFF;
    }

    public static final int PARK_COLLISION_INACTIVE_REASON_FIELD_NUMBER = 72;
    /**
     * <code>.proto.ParkCollisionInactiveReason park_collision_inactive_reason = 72;</code>
     * @return Whether the parkCollisionInactiveReason field is set.
     */
    public boolean hasParkCollisionInactiveReason() {
      return attributeTypeCase_ == 72;
    }
    /**
     * <code>.proto.ParkCollisionInactiveReason park_collision_inactive_reason = 72;</code>
     * @return The enum numeric value on the wire for parkCollisionInactiveReason.
     */
    public int getParkCollisionInactiveReasonValue() {
      if (attributeTypeCase_ == 72) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.ParkCollisionInactiveReason park_collision_inactive_reason = 72;</code>
     * @return The parkCollisionInactiveReason.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionInactiveReason getParkCollisionInactiveReason() {
      if (attributeTypeCase_ == 72) {
        com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionInactiveReason result = com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionInactiveReason.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionInactiveReason.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionInactiveReason.PARK_COLLISION_INACTIVE_REASON_DISABLED;
    }

    public static final int PARK_COLLISION_PICTURE_TRANSFER_STATUS_FIELD_NUMBER = 73;
    /**
     * <code>.proto.ParkCollisionPictureTransferStatus park_collision_picture_transfer_status = 73;</code>
     * @return Whether the parkCollisionPictureTransferStatus field is set.
     */
    public boolean hasParkCollisionPictureTransferStatus() {
      return attributeTypeCase_ == 73;
    }
    /**
     * <code>.proto.ParkCollisionPictureTransferStatus park_collision_picture_transfer_status = 73;</code>
     * @return The enum numeric value on the wire for parkCollisionPictureTransferStatus.
     */
    public int getParkCollisionPictureTransferStatusValue() {
      if (attributeTypeCase_ == 73) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.ParkCollisionPictureTransferStatus park_collision_picture_transfer_status = 73;</code>
     * @return The parkCollisionPictureTransferStatus.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionPictureTransferStatus getParkCollisionPictureTransferStatus() {
      if (attributeTypeCase_ == 73) {
        com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionPictureTransferStatus result = com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionPictureTransferStatus.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionPictureTransferStatus.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionPictureTransferStatus.PARK_COLLISION_PICTURE_TRANSFER_STATUS_DESELETED;
    }

    public static final int EMERGENCY_POWER_SUPPLY_FIELD_NUMBER = 78;
    /**
     * <code>.proto.EmergencyPowerSupply emergency_power_supply = 78;</code>
     * @return Whether the emergencyPowerSupply field is set.
     */
    public boolean hasEmergencyPowerSupply() {
      return attributeTypeCase_ == 78;
    }
    /**
     * <code>.proto.EmergencyPowerSupply emergency_power_supply = 78;</code>
     * @return The enum numeric value on the wire for emergencyPowerSupply.
     */
    public int getEmergencyPowerSupplyValue() {
      if (attributeTypeCase_ == 78) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.EmergencyPowerSupply emergency_power_supply = 78;</code>
     * @return The emergencyPowerSupply.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.EmergencyPowerSupply getEmergencyPowerSupply() {
      if (attributeTypeCase_ == 78) {
        com.daimler.mbcarkit.proto.VehicleEvents.EmergencyPowerSupply result = com.daimler.mbcarkit.proto.VehicleEvents.EmergencyPowerSupply.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.EmergencyPowerSupply.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.EmergencyPowerSupply.EMERGENCY_POWER_SUPPLY_OFF;
    }

    public static final int EVSE_PAIRING_STATE_FIELD_NUMBER = 79;
    /**
     * <code>.proto.EvsePairingState evse_pairing_state = 79;</code>
     * @return Whether the evsePairingState field is set.
     */
    public boolean hasEvsePairingState() {
      return attributeTypeCase_ == 79;
    }
    /**
     * <code>.proto.EvsePairingState evse_pairing_state = 79;</code>
     * @return The enum numeric value on the wire for evsePairingState.
     */
    public int getEvsePairingStateValue() {
      if (attributeTypeCase_ == 79) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.EvsePairingState evse_pairing_state = 79;</code>
     * @return The evsePairingState.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.EvsePairingState getEvsePairingState() {
      if (attributeTypeCase_ == 79) {
        com.daimler.mbcarkit.proto.VehicleEvents.EvsePairingState result = com.daimler.mbcarkit.proto.VehicleEvents.EvsePairingState.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.EvsePairingState.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.EvsePairingState.EVSE_PAIRING_STATE_IDLE;
    }

    public static final int CHARGING_PREDICTION_SOC_FIELD_NUMBER = 80;
    /**
     * <code>.proto.ChargingPredictionSoc charging_prediction_soc = 80;</code>
     * @return Whether the chargingPredictionSoc field is set.
     */
    @java.lang.Override
    public boolean hasChargingPredictionSoc() {
      return attributeTypeCase_ == 80;
    }
    /**
     * <code>.proto.ChargingPredictionSoc charging_prediction_soc = 80;</code>
     * @return The chargingPredictionSoc.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc getChargingPredictionSoc() {
      if (attributeTypeCase_ == 80) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.getDefaultInstance();
    }
    /**
     * <code>.proto.ChargingPredictionSoc charging_prediction_soc = 80;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSocOrBuilder getChargingPredictionSocOrBuilder() {
      if (attributeTypeCase_ == 80) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.getDefaultInstance();
    }

    public static final int CHARGING_PREDICTION_DEPARTURE_TIME_FIELD_NUMBER = 81;
    /**
     * <code>.proto.ChargingPredictionDepartureTime charging_prediction_departure_time = 81;</code>
     * @return Whether the chargingPredictionDepartureTime field is set.
     */
    @java.lang.Override
    public boolean hasChargingPredictionDepartureTime() {
      return attributeTypeCase_ == 81;
    }
    /**
     * <code>.proto.ChargingPredictionDepartureTime charging_prediction_departure_time = 81;</code>
     * @return The chargingPredictionDepartureTime.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime getChargingPredictionDepartureTime() {
      if (attributeTypeCase_ == 81) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.getDefaultInstance();
    }
    /**
     * <code>.proto.ChargingPredictionDepartureTime charging_prediction_departure_time = 81;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTimeOrBuilder getChargingPredictionDepartureTimeOrBuilder() {
      if (attributeTypeCase_ == 81) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.getDefaultInstance();
    }

    public static final int CHARGING_SCHEDULE_ACTIVE_FIELD_NUMBER = 82;
    /**
     * <code>.proto.ChargingScheduleActive charging_schedule_active = 82;</code>
     * @return Whether the chargingScheduleActive field is set.
     */
    @java.lang.Override
    public boolean hasChargingScheduleActive() {
      return attributeTypeCase_ == 82;
    }
    /**
     * <code>.proto.ChargingScheduleActive charging_schedule_active = 82;</code>
     * @return The chargingScheduleActive.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive getChargingScheduleActive() {
      if (attributeTypeCase_ == 82) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.getDefaultInstance();
    }
    /**
     * <code>.proto.ChargingScheduleActive charging_schedule_active = 82;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActiveOrBuilder getChargingScheduleActiveOrBuilder() {
      if (attributeTypeCase_ == 82) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.getDefaultInstance();
    }

    public static final int DC_CHARGING_PROFILE_FIELD_NUMBER = 83;
    /**
     * <code>.proto.DcChargingProfile dc_charging_profile = 83;</code>
     * @return Whether the dcChargingProfile field is set.
     */
    public boolean hasDcChargingProfile() {
      return attributeTypeCase_ == 83;
    }
    /**
     * <code>.proto.DcChargingProfile dc_charging_profile = 83;</code>
     * @return The enum numeric value on the wire for dcChargingProfile.
     */
    public int getDcChargingProfileValue() {
      if (attributeTypeCase_ == 83) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.DcChargingProfile dc_charging_profile = 83;</code>
     * @return The dcChargingProfile.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.DcChargingProfile getDcChargingProfile() {
      if (attributeTypeCase_ == 83) {
        com.daimler.mbcarkit.proto.VehicleEvents.DcChargingProfile result = com.daimler.mbcarkit.proto.VehicleEvents.DcChargingProfile.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.DcChargingProfile.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.DcChargingProfile.DC_CHARGING_PROFILE_UNKNOWN;
    }

    public static final int CHARGE_FLAPS_FIELD_NUMBER = 84;
    /**
     * <code>.proto.ChargeFlaps charge_flaps = 84;</code>
     * @return Whether the chargeFlaps field is set.
     */
    @java.lang.Override
    public boolean hasChargeFlaps() {
      return attributeTypeCase_ == 84;
    }
    /**
     * <code>.proto.ChargeFlaps charge_flaps = 84;</code>
     * @return The chargeFlaps.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps getChargeFlaps() {
      if (attributeTypeCase_ == 84) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.getDefaultInstance();
    }
    /**
     * <code>.proto.ChargeFlaps charge_flaps = 84;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsOrBuilder getChargeFlapsOrBuilder() {
      if (attributeTypeCase_ == 84) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.getDefaultInstance();
    }

    public static final int CHARGE_INLETS_FIELD_NUMBER = 85;
    /**
     * <code>.proto.ChargeInlets charge_inlets = 85;</code>
     * @return Whether the chargeInlets field is set.
     */
    @java.lang.Override
    public boolean hasChargeInlets() {
      return attributeTypeCase_ == 85;
    }
    /**
     * <code>.proto.ChargeInlets charge_inlets = 85;</code>
     * @return The chargeInlets.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets getChargeInlets() {
      if (attributeTypeCase_ == 85) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.getDefaultInstance();
    }
    /**
     * <code>.proto.ChargeInlets charge_inlets = 85;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsOrBuilder getChargeInletsOrBuilder() {
      if (attributeTypeCase_ == 85) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.getDefaultInstance();
    }

    public static final int CHARGING_TIMER_FIELD_NUMBER = 86;
    /**
     * <code>.proto.ChargingTimer charging_timer = 86;</code>
     * @return Whether the chargingTimer field is set.
     */
    @java.lang.Override
    public boolean hasChargingTimer() {
      return attributeTypeCase_ == 86;
    }
    /**
     * <code>.proto.ChargingTimer charging_timer = 86;</code>
     * @return The chargingTimer.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer getChargingTimer() {
      if (attributeTypeCase_ == 86) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.getDefaultInstance();
    }
    /**
     * <code>.proto.ChargingTimer charging_timer = 86;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerOrBuilder getChargingTimerOrBuilder() {
      if (attributeTypeCase_ == 86) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.getDefaultInstance();
    }

    public static final int PARK_EVENT_PICTURE_TRANSMISSION_STATUS_FIELD_NUMBER = 87;
    /**
     * <code>.proto.ParkEventPictureTransmissionStatus park_event_picture_transmission_status = 87;</code>
     * @return Whether the parkEventPictureTransmissionStatus field is set.
     */
    public boolean hasParkEventPictureTransmissionStatus() {
      return attributeTypeCase_ == 87;
    }
    /**
     * <code>.proto.ParkEventPictureTransmissionStatus park_event_picture_transmission_status = 87;</code>
     * @return The enum numeric value on the wire for parkEventPictureTransmissionStatus.
     */
    public int getParkEventPictureTransmissionStatusValue() {
      if (attributeTypeCase_ == 87) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.ParkEventPictureTransmissionStatus park_event_picture_transmission_status = 87;</code>
     * @return The parkEventPictureTransmissionStatus.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureTransmissionStatus getParkEventPictureTransmissionStatus() {
      if (attributeTypeCase_ == 87) {
        com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureTransmissionStatus result = com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureTransmissionStatus.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureTransmissionStatus.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureTransmissionStatus.PARK_EVENT_PICTURE_TRANSMISSION_STATUS_IDLE;
    }

    public static final int CHARGING_SCHEDULE_REQUESTED_FIELD_NUMBER = 88;
    /**
     * <code>.proto.ChargingScheduleRequested charging_schedule_requested = 88;</code>
     * @return Whether the chargingScheduleRequested field is set.
     */
    @java.lang.Override
    public boolean hasChargingScheduleRequested() {
      return attributeTypeCase_ == 88;
    }
    /**
     * <code>.proto.ChargingScheduleRequested charging_schedule_requested = 88;</code>
     * @return The chargingScheduleRequested.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested getChargingScheduleRequested() {
      if (attributeTypeCase_ == 88) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.getDefaultInstance();
    }
    /**
     * <code>.proto.ChargingScheduleRequested charging_schedule_requested = 88;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequestedOrBuilder getChargingScheduleRequestedOrBuilder() {
      if (attributeTypeCase_ == 88) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.getDefaultInstance();
    }

    public static final int CHARGING_FLAP_ERROR_DETAILS_FIELD_NUMBER = 89;
    /**
     * <code>.proto.ChargingFlapErrorDetails charging_flap_error_details = 89;</code>
     * @return Whether the chargingFlapErrorDetails field is set.
     */
    public boolean hasChargingFlapErrorDetails() {
      return attributeTypeCase_ == 89;
    }
    /**
     * <code>.proto.ChargingFlapErrorDetails charging_flap_error_details = 89;</code>
     * @return The enum numeric value on the wire for chargingFlapErrorDetails.
     */
    public int getChargingFlapErrorDetailsValue() {
      if (attributeTypeCase_ == 89) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.ChargingFlapErrorDetails charging_flap_error_details = 89;</code>
     * @return The chargingFlapErrorDetails.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingFlapErrorDetails getChargingFlapErrorDetails() {
      if (attributeTypeCase_ == 89) {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingFlapErrorDetails result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingFlapErrorDetails.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingFlapErrorDetails.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingFlapErrorDetails.CHARGING_FLAP_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE;
    }

    public static final int CHARGING_COMPATIBILITY_ERROR_FIELD_NUMBER = 90;
    /**
     * <code>.proto.ChargingCompatibilityError charging_compatibility_error = 90;</code>
     * @return Whether the chargingCompatibilityError field is set.
     */
    public boolean hasChargingCompatibilityError() {
      return attributeTypeCase_ == 90;
    }
    /**
     * <code>.proto.ChargingCompatibilityError charging_compatibility_error = 90;</code>
     * @return The enum numeric value on the wire for chargingCompatibilityError.
     */
    public int getChargingCompatibilityErrorValue() {
      if (attributeTypeCase_ == 90) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.ChargingCompatibilityError charging_compatibility_error = 90;</code>
     * @return The chargingCompatibilityError.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingCompatibilityError getChargingCompatibilityError() {
      if (attributeTypeCase_ == 90) {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingCompatibilityError result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingCompatibilityError.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingCompatibilityError.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.ChargingCompatibilityError.CHARGING_COMPATIBILITY_ERROR_DEFAULT;
    }

    public static final int HV_BATTERY_PRECOND_AVAILABILITY_FIELD_NUMBER = 91;
    /**
     * <code>.proto.HvBatteryPrecondAvailability hv_battery_precond_availability = 91;</code>
     * @return Whether the hvBatteryPrecondAvailability field is set.
     */
    public boolean hasHvBatteryPrecondAvailability() {
      return attributeTypeCase_ == 91;
    }
    /**
     * <code>.proto.HvBatteryPrecondAvailability hv_battery_precond_availability = 91;</code>
     * @return The enum numeric value on the wire for hvBatteryPrecondAvailability.
     */
    public int getHvBatteryPrecondAvailabilityValue() {
      if (attributeTypeCase_ == 91) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.HvBatteryPrecondAvailability hv_battery_precond_availability = 91;</code>
     * @return The hvBatteryPrecondAvailability.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondAvailability getHvBatteryPrecondAvailability() {
      if (attributeTypeCase_ == 91) {
        com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondAvailability result = com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondAvailability.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondAvailability.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondAvailability.HV_BATTERY_PRECOND_AVAILABILITY_NOT_AVAILABLE;
    }

    public static final int HV_BATTERY_PRECOND_REQUEST_STATE_FIELD_NUMBER = 92;
    /**
     * <code>.proto.HvBatteryPrecondRequestState hv_battery_precond_request_state = 92;</code>
     * @return Whether the hvBatteryPrecondRequestState field is set.
     */
    @java.lang.Override
    public boolean hasHvBatteryPrecondRequestState() {
      return attributeTypeCase_ == 92;
    }
    /**
     * <code>.proto.HvBatteryPrecondRequestState hv_battery_precond_request_state = 92;</code>
     * @return The hvBatteryPrecondRequestState.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState getHvBatteryPrecondRequestState() {
      if (attributeTypeCase_ == 92) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.getDefaultInstance();
    }
    /**
     * <code>.proto.HvBatteryPrecondRequestState hv_battery_precond_request_state = 92;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestStateOrBuilder getHvBatteryPrecondRequestStateOrBuilder() {
      if (attributeTypeCase_ == 92) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.getDefaultInstance();
    }

    public static final int HV_BATTERY_PRECOND_STATE_FIELD_NUMBER = 93;
    /**
     * <code>.proto.HvBatteryPrecondState hv_battery_precond_state = 93;</code>
     * @return Whether the hvBatteryPrecondState field is set.
     */
    @java.lang.Override
    public boolean hasHvBatteryPrecondState() {
      return attributeTypeCase_ == 93;
    }
    /**
     * <code>.proto.HvBatteryPrecondState hv_battery_precond_state = 93;</code>
     * @return The hvBatteryPrecondState.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState getHvBatteryPrecondState() {
      if (attributeTypeCase_ == 93) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.getDefaultInstance();
    }
    /**
     * <code>.proto.HvBatteryPrecondState hv_battery_precond_state = 93;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStateOrBuilder getHvBatteryPrecondStateOrBuilder() {
      if (attributeTypeCase_ == 93) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.getDefaultInstance();
    }

    public static final int AMG_STAGE_MODE_STATE_FIELD_NUMBER = 94;
    /**
     * <code>.proto.AmgStageModeState amg_stage_mode_state = 94;</code>
     * @return Whether the amgStageModeState field is set.
     */
    public boolean hasAmgStageModeState() {
      return attributeTypeCase_ == 94;
    }
    /**
     * <code>.proto.AmgStageModeState amg_stage_mode_state = 94;</code>
     * @return The enum numeric value on the wire for amgStageModeState.
     */
    public int getAmgStageModeStateValue() {
      if (attributeTypeCase_ == 94) {
        return (java.lang.Integer) attributeType_;
      }
      return 0;
    }
    /**
     * <code>.proto.AmgStageModeState amg_stage_mode_state = 94;</code>
     * @return The amgStageModeState.
     */
    public com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeState getAmgStageModeState() {
      if (attributeTypeCase_ == 94) {
        com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeState result = com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeState.forNumber(
            (java.lang.Integer) attributeType_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeState.UNRECOGNIZED : result;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeState.AMG_STAGE_MODE_STATE_STAGING_NOT_ACTIVE;
    }

    public static final int AMG_STAGE_MODE_ERROR_FIELD_NUMBER = 95;
    /**
     * <code>.proto.AmgStageModeError amg_stage_mode_error = 95;</code>
     * @return Whether the amgStageModeError field is set.
     */
    @java.lang.Override
    public boolean hasAmgStageModeError() {
      return attributeTypeCase_ == 95;
    }
    /**
     * <code>.proto.AmgStageModeError amg_stage_mode_error = 95;</code>
     * @return The amgStageModeError.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError getAmgStageModeError() {
      if (attributeTypeCase_ == 95) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.getDefaultInstance();
    }
    /**
     * <code>.proto.AmgStageModeError amg_stage_mode_error = 95;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeErrorOrBuilder getAmgStageModeErrorOrBuilder() {
      if (attributeTypeCase_ == 95) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError) attributeType_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (timestamp_ != 0L) {
        output.writeInt64(1, timestamp_);
      }
      if (changed_ != false) {
        output.writeBool(2, changed_);
      }
      if (status_ != 0) {
        output.writeInt32(3, status_);
      }
      if (attributeTypeCase_ == 4) {
        output.writeInt64(
            4, (long)((java.lang.Long) attributeType_));
      }
      if (attributeTypeCase_ == 5) {
        output.writeBool(
            5, (boolean)((java.lang.Boolean) attributeType_));
      }
      if (attributeTypeCase_ == 6) {
        com.google.protobuf.GeneratedMessage.writeString(output, 6, attributeType_);
      }
      if (attributeTypeCase_ == 7) {
        output.writeDouble(
            7, (double)((java.lang.Double) attributeType_));
      }
      if (attributeTypeCase_ == 8) {
        output.writeBool(
            8, (boolean)((java.lang.Boolean) attributeType_));
      }
      if (attributeTypeCase_ == 9) {
        com.google.protobuf.GeneratedMessage.writeString(output, 9, attributeType_);
      }
      if (timestampInMs_ != 0L) {
        output.writeInt64(10, timestampInMs_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(displayValue_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 11, displayValue_);
      }
      if (displayUnitCase_ == 12) {
        output.writeEnum(12, ((java.lang.Integer) displayUnit_));
      }
      if (displayUnitCase_ == 13) {
        output.writeEnum(13, ((java.lang.Integer) displayUnit_));
      }
      if (displayUnitCase_ == 14) {
        output.writeEnum(14, ((java.lang.Integer) displayUnit_));
      }
      if (displayUnitCase_ == 15) {
        output.writeEnum(15, ((java.lang.Integer) displayUnit_));
      }
      if (displayUnitCase_ == 16) {
        output.writeEnum(16, ((java.lang.Integer) displayUnit_));
      }
      if (displayUnitCase_ == 17) {
        output.writeEnum(17, ((java.lang.Integer) displayUnit_));
      }
      if (displayUnitCase_ == 18) {
        output.writeEnum(18, ((java.lang.Integer) displayUnit_));
      }
      if (displayUnitCase_ == 19) {
        output.writeEnum(19, ((java.lang.Integer) displayUnit_));
      }
      if (attributeTypeCase_ == 20) {
        output.writeMessage(20, (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) attributeType_);
      }
      if (attributeTypeCase_ == 21) {
        output.writeMessage(21, (com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) attributeType_);
      }
      if (attributeTypeCase_ == 22) {
        output.writeMessage(22, (com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) attributeType_);
      }
      if (attributeTypeCase_ == 23) {
        output.writeMessage(23, (com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) attributeType_);
      }
      if (attributeTypeCase_ == 24) {
        output.writeMessage(24, (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) attributeType_);
      }
      if (displayUnitCase_ == 25) {
        output.writeEnum(25, ((java.lang.Integer) displayUnit_));
      }
      if (displayUnitCase_ == 26) {
        output.writeEnum(26, ((java.lang.Integer) displayUnit_));
      }
      if (attributeTypeCase_ == 27) {
        output.writeMessage(27, (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) attributeType_);
      }
      if (attributeTypeCase_ == 28) {
        output.writeMessage(28, (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) attributeType_);
      }
      if (attributeTypeCase_ == 29) {
        output.writeMessage(29, (com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) attributeType_);
      }
      if (getServiceIdsList().size() > 0) {
        output.writeUInt32NoTag(242);
        output.writeUInt32NoTag(serviceIdsMemoizedSerializedSize);
      }
      for (int i = 0; i < serviceIds_.size(); i++) {
        output.writeInt32NoTag(serviceIds_.getInt(i));
      }
      if (attributeTypeCase_ == 31) {
        output.writeMessage(31, (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) attributeType_);
      }
      if (attributeTypeCase_ == 32) {
        output.writeMessage(32, (com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue) attributeType_);
      }
      if (attributeTypeCase_ == 33) {
        output.writeMessage(33, (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl) attributeType_);
      }
      if (attributeTypeCase_ == 36) {
        output.writeMessage(36, (com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue) attributeType_);
      }
      if (attributeTypeCase_ == 37) {
        output.writeMessage(37, (com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue) attributeType_);
      }
      if (attributeTypeCase_ == 38) {
        output.writeEnum(38, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 39) {
        output.writeEnum(39, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 40) {
        output.writeEnum(40, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 41) {
        output.writeEnum(41, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 42) {
        output.writeEnum(42, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 43) {
        output.writeEnum(43, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 44) {
        output.writeMessage(44, (com.daimler.mbcarkit.proto.VehicleEvents.PrecondState) attributeType_);
      }
      if (attributeTypeCase_ == 45) {
        output.writeEnum(45, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 46) {
        output.writeEnum(46, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 47) {
        output.writeMessage(47, (com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus) attributeType_);
      }
      if (attributeTypeCase_ == 48) {
        output.writeEnum(48, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 49) {
        output.writeEnum(49, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 50) {
        output.writeEnum(50, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 51) {
        output.writeEnum(51, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 52) {
        output.writeEnum(52, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 53) {
        output.writeEnum(53, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 54) {
        output.writeEnum(54, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 55) {
        output.writeMessage(55, (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions) attributeType_);
      }
      if (attributeTypeCase_ == 56) {
        output.writeEnum(56, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 57) {
        output.writeEnum(57, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 58) {
        output.writeEnum(58, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 59) {
        output.writeEnum(59, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 60) {
        output.writeEnum(60, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 61) {
        output.writeMessage(61, (com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState) attributeType_);
      }
      if (attributeTypeCase_ == 62) {
        output.writeEnum(62, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 63) {
        output.writeEnum(63, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 64) {
        output.writeEnum(64, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 65) {
        output.writeEnum(65, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 66) {
        output.writeEnum(66, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 67) {
        output.writeEnum(67, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 68) {
        output.writeEnum(68, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 69) {
        output.writeEnum(69, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 70) {
        output.writeEnum(70, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 71) {
        output.writeEnum(71, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 72) {
        output.writeEnum(72, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 73) {
        output.writeEnum(73, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 78) {
        output.writeEnum(78, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 79) {
        output.writeEnum(79, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 80) {
        output.writeMessage(80, (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc) attributeType_);
      }
      if (attributeTypeCase_ == 81) {
        output.writeMessage(81, (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime) attributeType_);
      }
      if (attributeTypeCase_ == 82) {
        output.writeMessage(82, (com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive) attributeType_);
      }
      if (attributeTypeCase_ == 83) {
        output.writeEnum(83, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 84) {
        output.writeMessage(84, (com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps) attributeType_);
      }
      if (attributeTypeCase_ == 85) {
        output.writeMessage(85, (com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets) attributeType_);
      }
      if (attributeTypeCase_ == 86) {
        output.writeMessage(86, (com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer) attributeType_);
      }
      if (attributeTypeCase_ == 87) {
        output.writeEnum(87, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 88) {
        output.writeMessage(88, (com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested) attributeType_);
      }
      if (attributeTypeCase_ == 89) {
        output.writeEnum(89, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 90) {
        output.writeEnum(90, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 91) {
        output.writeEnum(91, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 92) {
        output.writeMessage(92, (com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState) attributeType_);
      }
      if (attributeTypeCase_ == 93) {
        output.writeMessage(93, (com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState) attributeType_);
      }
      if (attributeTypeCase_ == 94) {
        output.writeEnum(94, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 95) {
        output.writeMessage(95, (com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError) attributeType_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (timestamp_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, timestamp_);
      }
      if (changed_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, changed_);
      }
      if (status_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, status_);
      }
      if (attributeTypeCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              4, (long)((java.lang.Long) attributeType_));
      }
      if (attributeTypeCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(
              5, (boolean)((java.lang.Boolean) attributeType_));
      }
      if (attributeTypeCase_ == 6) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(6, attributeType_);
      }
      if (attributeTypeCase_ == 7) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(
              7, (double)((java.lang.Double) attributeType_));
      }
      if (attributeTypeCase_ == 8) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(
              8, (boolean)((java.lang.Boolean) attributeType_));
      }
      if (attributeTypeCase_ == 9) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(9, attributeType_);
      }
      if (timestampInMs_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(10, timestampInMs_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(displayValue_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(11, displayValue_);
      }
      if (displayUnitCase_ == 12) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(12, ((java.lang.Integer) displayUnit_));
      }
      if (displayUnitCase_ == 13) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(13, ((java.lang.Integer) displayUnit_));
      }
      if (displayUnitCase_ == 14) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(14, ((java.lang.Integer) displayUnit_));
      }
      if (displayUnitCase_ == 15) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(15, ((java.lang.Integer) displayUnit_));
      }
      if (displayUnitCase_ == 16) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(16, ((java.lang.Integer) displayUnit_));
      }
      if (displayUnitCase_ == 17) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(17, ((java.lang.Integer) displayUnit_));
      }
      if (displayUnitCase_ == 18) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(18, ((java.lang.Integer) displayUnit_));
      }
      if (displayUnitCase_ == 19) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(19, ((java.lang.Integer) displayUnit_));
      }
      if (attributeTypeCase_ == 20) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(20, (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) attributeType_);
      }
      if (attributeTypeCase_ == 21) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, (com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) attributeType_);
      }
      if (attributeTypeCase_ == 22) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(22, (com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) attributeType_);
      }
      if (attributeTypeCase_ == 23) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(23, (com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) attributeType_);
      }
      if (attributeTypeCase_ == 24) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(24, (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) attributeType_);
      }
      if (displayUnitCase_ == 25) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(25, ((java.lang.Integer) displayUnit_));
      }
      if (displayUnitCase_ == 26) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(26, ((java.lang.Integer) displayUnit_));
      }
      if (attributeTypeCase_ == 27) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(27, (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) attributeType_);
      }
      if (attributeTypeCase_ == 28) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(28, (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) attributeType_);
      }
      if (attributeTypeCase_ == 29) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(29, (com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) attributeType_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < serviceIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(serviceIds_.getInt(i));
        }
        size += dataSize;
        if (!getServiceIdsList().isEmpty()) {
          size += 2;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        serviceIdsMemoizedSerializedSize = dataSize;
      }
      if (attributeTypeCase_ == 31) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(31, (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) attributeType_);
      }
      if (attributeTypeCase_ == 32) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(32, (com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue) attributeType_);
      }
      if (attributeTypeCase_ == 33) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(33, (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl) attributeType_);
      }
      if (attributeTypeCase_ == 36) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(36, (com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue) attributeType_);
      }
      if (attributeTypeCase_ == 37) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(37, (com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue) attributeType_);
      }
      if (attributeTypeCase_ == 38) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(38, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 39) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(39, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 40) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(40, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 41) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(41, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 42) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(42, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 43) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(43, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 44) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(44, (com.daimler.mbcarkit.proto.VehicleEvents.PrecondState) attributeType_);
      }
      if (attributeTypeCase_ == 45) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(45, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 46) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(46, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 47) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(47, (com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus) attributeType_);
      }
      if (attributeTypeCase_ == 48) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(48, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 49) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(49, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 50) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(50, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 51) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(51, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 52) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(52, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 53) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(53, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 54) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(54, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 55) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(55, (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions) attributeType_);
      }
      if (attributeTypeCase_ == 56) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(56, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 57) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(57, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 58) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(58, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 59) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(59, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 60) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(60, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 61) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(61, (com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState) attributeType_);
      }
      if (attributeTypeCase_ == 62) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(62, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 63) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(63, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 64) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(64, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 65) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(65, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 66) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(66, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 67) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(67, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 68) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(68, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 69) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(69, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 70) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(70, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 71) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(71, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 72) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(72, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 73) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(73, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 78) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(78, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 79) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(79, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 80) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(80, (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc) attributeType_);
      }
      if (attributeTypeCase_ == 81) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(81, (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime) attributeType_);
      }
      if (attributeTypeCase_ == 82) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(82, (com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive) attributeType_);
      }
      if (attributeTypeCase_ == 83) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(83, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 84) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(84, (com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps) attributeType_);
      }
      if (attributeTypeCase_ == 85) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(85, (com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets) attributeType_);
      }
      if (attributeTypeCase_ == 86) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(86, (com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer) attributeType_);
      }
      if (attributeTypeCase_ == 87) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(87, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 88) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(88, (com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested) attributeType_);
      }
      if (attributeTypeCase_ == 89) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(89, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 90) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(90, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 91) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(91, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 92) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(92, (com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState) attributeType_);
      }
      if (attributeTypeCase_ == 93) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(93, (com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState) attributeType_);
      }
      if (attributeTypeCase_ == 94) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(94, ((java.lang.Integer) attributeType_));
      }
      if (attributeTypeCase_ == 95) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(95, (com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError) attributeType_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus other = (com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) obj;

      if (getTimestamp()
          != other.getTimestamp()) return false;
      if (getTimestampInMs()
          != other.getTimestampInMs()) return false;
      if (getChanged()
          != other.getChanged()) return false;
      if (getStatus()
          != other.getStatus()) return false;
      if (!getServiceIdsList()
          .equals(other.getServiceIdsList())) return false;
      if (!getDisplayValue()
          .equals(other.getDisplayValue())) return false;
      if (!getDisplayUnitCase().equals(other.getDisplayUnitCase())) return false;
      switch (displayUnitCase_) {
        case 12:
          if (getCombustionConsumptionUnitValue()
              != other.getCombustionConsumptionUnitValue()) return false;
          break;
        case 13:
          if (getGasConsumptionUnitValue()
              != other.getGasConsumptionUnitValue()) return false;
          break;
        case 14:
          if (getElectricityConsumptionUnitValue()
              != other.getElectricityConsumptionUnitValue()) return false;
          break;
        case 15:
          if (getSpeedDistanceUnitValue()
              != other.getSpeedDistanceUnitValue()) return false;
          break;
        case 25:
          if (getSpeedUnitValue()
              != other.getSpeedUnitValue()) return false;
          break;
        case 26:
          if (getDistanceUnitValue()
              != other.getDistanceUnitValue()) return false;
          break;
        case 16:
          if (getTemperatureUnitValue()
              != other.getTemperatureUnitValue()) return false;
          break;
        case 17:
          if (getPressureUnitValue()
              != other.getPressureUnitValue()) return false;
          break;
        case 18:
          if (getRatioUnitValue()
              != other.getRatioUnitValue()) return false;
          break;
        case 19:
          if (getClockHourUnitValue()
              != other.getClockHourUnitValue()) return false;
          break;
        case 0:
        default:
      }
      if (!getAttributeTypeCase().equals(other.getAttributeTypeCase())) return false;
      switch (attributeTypeCase_) {
        case 4:
          if (getIntValue()
              != other.getIntValue()) return false;
          break;
        case 5:
          if (getBoolValue()
              != other.getBoolValue()) return false;
          break;
        case 6:
          if (!getStringValue()
              .equals(other.getStringValue())) return false;
          break;
        case 7:
          if (java.lang.Double.doubleToLongBits(getDoubleValue())
              != java.lang.Double.doubleToLongBits(
                  other.getDoubleValue())) return false;
          break;
        case 8:
          if (getNilValue()
              != other.getNilValue()) return false;
          break;
        case 9:
          if (!getUnsupportedValue()
              .equals(other.getUnsupportedValue())) return false;
          break;
        case 20:
          if (!getTemperaturePointsValue()
              .equals(other.getTemperaturePointsValue())) return false;
          break;
        case 21:
          if (!getWeekdayTariffValue()
              .equals(other.getWeekdayTariffValue())) return false;
          break;
        case 22:
          if (!getWeekendTariffValue()
              .equals(other.getWeekendTariffValue())) return false;
          break;
        case 23:
          if (!getStateOfChargeProfileValue()
              .equals(other.getStateOfChargeProfileValue())) return false;
          break;
        case 24:
          if (!getWeeklySettingsHeadUnitValue()
              .equals(other.getWeeklySettingsHeadUnitValue())) return false;
          break;
        case 27:
          if (!getSpeedAlertConfigurationValue()
              .equals(other.getSpeedAlertConfigurationValue())) return false;
          break;
        case 28:
          if (!getEcoHistogramValue()
              .equals(other.getEcoHistogramValue())) return false;
          break;
        case 29:
          if (!getWeeklyProfileValue()
              .equals(other.getWeeklyProfileValue())) return false;
          break;
        case 31:
          if (!getChargeProgramsValue()
              .equals(other.getChargeProgramsValue())) return false;
          break;
        case 32:
          if (!getChargingbreakClocktimerValue()
              .equals(other.getChargingbreakClocktimerValue())) return false;
          break;
        case 33:
          if (!getChargingPowerControl()
              .equals(other.getChargingPowerControl())) return false;
          break;
        case 36:
          if (!getKeylineActivationStateValue()
              .equals(other.getKeylineActivationStateValue())) return false;
          break;
        case 37:
          if (!getNextDepartureTimeValue()
              .equals(other.getNextDepartureTimeValue())) return false;
          break;
        case 38:
          if (getTcuConnectionStateLowChannelValue()
              != other.getTcuConnectionStateLowChannelValue()) return false;
          break;
        case 39:
          if (getTurnOffEnginePreWarningValue()
              != other.getTurnOffEnginePreWarningValue()) return false;
          break;
        case 40:
          if (getChildPresenceDetectionWarningLastEventValue()
              != other.getChildPresenceDetectionWarningLastEventValue()) return false;
          break;
        case 41:
          if (getChildPresenceDetectionWarningLevelValue()
              != other.getChildPresenceDetectionWarningLevelValue()) return false;
          break;
        case 42:
          if (getPerformanceLimitationModeStatusValue()
              != other.getPerformanceLimitationModeStatusValue()) return false;
          break;
        case 43:
          if (getBatteryHealthValue()
              != other.getBatteryHealthValue()) return false;
          break;
        case 44:
          if (!getPrecondState()
              .equals(other.getPrecondState())) return false;
          break;
        case 45:
          if (getExteriorMonitoringStatusValue()
              != other.getExteriorMonitoringStatusValue()) return false;
          break;
        case 46:
          if (getInteriorMonitoringStatusValue()
              != other.getInteriorMonitoringStatusValue()) return false;
          break;
        case 47:
          if (!getRemoteUpdateStartStatus()
              .equals(other.getRemoteUpdateStartStatus())) return false;
          break;
        case 48:
          if (getSohCalibrationRequiredValue()
              != other.getSohCalibrationRequiredValue()) return false;
          break;
        case 49:
          if (getSocCalibrationRequestValue()
              != other.getSocCalibrationRequestValue()) return false;
          break;
        case 50:
          if (getSohCalibrationRequestValue()
              != other.getSohCalibrationRequestValue()) return false;
          break;
        case 51:
          if (getSohCalibrationStateValue()
              != other.getSohCalibrationStateValue()) return false;
          break;
        case 52:
          if (getSohCalibrationPlannedValue()
              != other.getSohCalibrationPlannedValue()) return false;
          break;
        case 53:
          if (getSohFavorableConditionsValue()
              != other.getSohFavorableConditionsValue()) return false;
          break;
        case 54:
          if (getSohCalibrationNotificationsValue()
              != other.getSohCalibrationNotificationsValue()) return false;
          break;
        case 55:
          if (!getChargingPowerRestrictions()
              .equals(other.getChargingPowerRestrictions())) return false;
          break;
        case 56:
          if (getChargingCouplerErrorDetailsValue()
              != other.getChargingCouplerErrorDetailsValue()) return false;
          break;
        case 57:
          if (getChargingStopErrorDetailsValue()
              != other.getChargingStopErrorDetailsValue()) return false;
          break;
        case 58:
          if (getChargingErrorVehicleNoSupport400VValue()
              != other.getChargingErrorVehicleNoSupport400VValue()) return false;
          break;
        case 59:
          if (getChargingErrorImpossibleChangeTo400VValue()
              != other.getChargingErrorImpossibleChangeTo400VValue()) return false;
          break;
        case 60:
          if (getChargingErrorImpossibleChangeTo800VValue()
              != other.getChargingErrorImpossibleChangeTo800VValue()) return false;
          break;
        case 61:
          if (!getPrecondOperabilityState()
              .equals(other.getPrecondOperabilityState())) return false;
          break;
        case 62:
          if (getPictureRecordingStatusValue()
              != other.getPictureRecordingStatusValue()) return false;
          break;
        case 63:
          if (getParkEventPictureSelectionStatusValue()
              != other.getParkEventPictureSelectionStatusValue()) return false;
          break;
        case 64:
          if (getPanicAlarmActiveValue()
              != other.getPanicAlarmActiveValue()) return false;
          break;
        case 65:
          if (getInteriorProtectionSelectionStatusValue()
              != other.getInteriorProtectionSelectionStatusValue()) return false;
          break;
        case 66:
          if (getInteriorProtectionActivationStatusValue()
              != other.getInteriorProtectionActivationStatusValue()) return false;
          break;
        case 67:
          if (getTowProtectionSelectionStatusValue()
              != other.getTowProtectionSelectionStatusValue()) return false;
          break;
        case 68:
          if (getTowProtectionActivationStatusValue()
              != other.getTowProtectionActivationStatusValue()) return false;
          break;
        case 69:
          if (getVehicleTheftAlarmInactiveReasonValue()
              != other.getVehicleTheftAlarmInactiveReasonValue()) return false;
          break;
        case 70:
          if (getParkCollisionSelectionStatusValue()
              != other.getParkCollisionSelectionStatusValue()) return false;
          break;
        case 71:
          if (getParkCollisionActivationStatusValue()
              != other.getParkCollisionActivationStatusValue()) return false;
          break;
        case 72:
          if (getParkCollisionInactiveReasonValue()
              != other.getParkCollisionInactiveReasonValue()) return false;
          break;
        case 73:
          if (getParkCollisionPictureTransferStatusValue()
              != other.getParkCollisionPictureTransferStatusValue()) return false;
          break;
        case 78:
          if (getEmergencyPowerSupplyValue()
              != other.getEmergencyPowerSupplyValue()) return false;
          break;
        case 79:
          if (getEvsePairingStateValue()
              != other.getEvsePairingStateValue()) return false;
          break;
        case 80:
          if (!getChargingPredictionSoc()
              .equals(other.getChargingPredictionSoc())) return false;
          break;
        case 81:
          if (!getChargingPredictionDepartureTime()
              .equals(other.getChargingPredictionDepartureTime())) return false;
          break;
        case 82:
          if (!getChargingScheduleActive()
              .equals(other.getChargingScheduleActive())) return false;
          break;
        case 83:
          if (getDcChargingProfileValue()
              != other.getDcChargingProfileValue()) return false;
          break;
        case 84:
          if (!getChargeFlaps()
              .equals(other.getChargeFlaps())) return false;
          break;
        case 85:
          if (!getChargeInlets()
              .equals(other.getChargeInlets())) return false;
          break;
        case 86:
          if (!getChargingTimer()
              .equals(other.getChargingTimer())) return false;
          break;
        case 87:
          if (getParkEventPictureTransmissionStatusValue()
              != other.getParkEventPictureTransmissionStatusValue()) return false;
          break;
        case 88:
          if (!getChargingScheduleRequested()
              .equals(other.getChargingScheduleRequested())) return false;
          break;
        case 89:
          if (getChargingFlapErrorDetailsValue()
              != other.getChargingFlapErrorDetailsValue()) return false;
          break;
        case 90:
          if (getChargingCompatibilityErrorValue()
              != other.getChargingCompatibilityErrorValue()) return false;
          break;
        case 91:
          if (getHvBatteryPrecondAvailabilityValue()
              != other.getHvBatteryPrecondAvailabilityValue()) return false;
          break;
        case 92:
          if (!getHvBatteryPrecondRequestState()
              .equals(other.getHvBatteryPrecondRequestState())) return false;
          break;
        case 93:
          if (!getHvBatteryPrecondState()
              .equals(other.getHvBatteryPrecondState())) return false;
          break;
        case 94:
          if (getAmgStageModeStateValue()
              != other.getAmgStageModeStateValue()) return false;
          break;
        case 95:
          if (!getAmgStageModeError()
              .equals(other.getAmgStageModeError())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTimestamp());
      hash = (37 * hash) + TIMESTAMP_IN_MS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTimestampInMs());
      hash = (37 * hash) + CHANGED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getChanged());
      hash = (37 * hash) + STATUS_FIELD_NUMBER;
      hash = (53 * hash) + getStatus();
      if (getServiceIdsCount() > 0) {
        hash = (37 * hash) + SERVICE_IDS_FIELD_NUMBER;
        hash = (53 * hash) + getServiceIdsList().hashCode();
      }
      hash = (37 * hash) + DISPLAY_VALUE_FIELD_NUMBER;
      hash = (53 * hash) + getDisplayValue().hashCode();
      switch (displayUnitCase_) {
        case 12:
          hash = (37 * hash) + COMBUSTION_CONSUMPTION_UNIT_FIELD_NUMBER;
          hash = (53 * hash) + getCombustionConsumptionUnitValue();
          break;
        case 13:
          hash = (37 * hash) + GAS_CONSUMPTION_UNIT_FIELD_NUMBER;
          hash = (53 * hash) + getGasConsumptionUnitValue();
          break;
        case 14:
          hash = (37 * hash) + ELECTRICITY_CONSUMPTION_UNIT_FIELD_NUMBER;
          hash = (53 * hash) + getElectricityConsumptionUnitValue();
          break;
        case 15:
          hash = (37 * hash) + SPEED_DISTANCE_UNIT_FIELD_NUMBER;
          hash = (53 * hash) + getSpeedDistanceUnitValue();
          break;
        case 25:
          hash = (37 * hash) + SPEED_UNIT_FIELD_NUMBER;
          hash = (53 * hash) + getSpeedUnitValue();
          break;
        case 26:
          hash = (37 * hash) + DISTANCE_UNIT_FIELD_NUMBER;
          hash = (53 * hash) + getDistanceUnitValue();
          break;
        case 16:
          hash = (37 * hash) + TEMPERATURE_UNIT_FIELD_NUMBER;
          hash = (53 * hash) + getTemperatureUnitValue();
          break;
        case 17:
          hash = (37 * hash) + PRESSURE_UNIT_FIELD_NUMBER;
          hash = (53 * hash) + getPressureUnitValue();
          break;
        case 18:
          hash = (37 * hash) + RATIO_UNIT_FIELD_NUMBER;
          hash = (53 * hash) + getRatioUnitValue();
          break;
        case 19:
          hash = (37 * hash) + CLOCK_HOUR_UNIT_FIELD_NUMBER;
          hash = (53 * hash) + getClockHourUnitValue();
          break;
        case 0:
        default:
      }
      switch (attributeTypeCase_) {
        case 4:
          hash = (37 * hash) + INT_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getIntValue());
          break;
        case 5:
          hash = (37 * hash) + BOOL_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getBoolValue());
          break;
        case 6:
          hash = (37 * hash) + STRING_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getStringValue().hashCode();
          break;
        case 7:
          hash = (37 * hash) + DOUBLE_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              java.lang.Double.doubleToLongBits(getDoubleValue()));
          break;
        case 8:
          hash = (37 * hash) + NIL_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getNilValue());
          break;
        case 9:
          hash = (37 * hash) + UNSUPPORTED_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getUnsupportedValue().hashCode();
          break;
        case 20:
          hash = (37 * hash) + TEMPERATURE_POINTS_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getTemperaturePointsValue().hashCode();
          break;
        case 21:
          hash = (37 * hash) + WEEKDAY_TARIFF_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getWeekdayTariffValue().hashCode();
          break;
        case 22:
          hash = (37 * hash) + WEEKEND_TARIFF_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getWeekendTariffValue().hashCode();
          break;
        case 23:
          hash = (37 * hash) + STATE_OF_CHARGE_PROFILE_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getStateOfChargeProfileValue().hashCode();
          break;
        case 24:
          hash = (37 * hash) + WEEKLY_SETTINGS_HEAD_UNIT_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getWeeklySettingsHeadUnitValue().hashCode();
          break;
        case 27:
          hash = (37 * hash) + SPEED_ALERT_CONFIGURATION_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getSpeedAlertConfigurationValue().hashCode();
          break;
        case 28:
          hash = (37 * hash) + ECO_HISTOGRAM_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getEcoHistogramValue().hashCode();
          break;
        case 29:
          hash = (37 * hash) + WEEKLY_PROFILE_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getWeeklyProfileValue().hashCode();
          break;
        case 31:
          hash = (37 * hash) + CHARGE_PROGRAMS_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getChargeProgramsValue().hashCode();
          break;
        case 32:
          hash = (37 * hash) + CHARGINGBREAK_CLOCKTIMER_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getChargingbreakClocktimerValue().hashCode();
          break;
        case 33:
          hash = (37 * hash) + CHARGING_POWER_CONTROL_FIELD_NUMBER;
          hash = (53 * hash) + getChargingPowerControl().hashCode();
          break;
        case 36:
          hash = (37 * hash) + KEYLINE_ACTIVATION_STATE_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getKeylineActivationStateValue().hashCode();
          break;
        case 37:
          hash = (37 * hash) + NEXT_DEPARTURE_TIME_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getNextDepartureTimeValue().hashCode();
          break;
        case 38:
          hash = (37 * hash) + TCU_CONNECTION_STATE_LOW_CHANNEL_FIELD_NUMBER;
          hash = (53 * hash) + getTcuConnectionStateLowChannelValue();
          break;
        case 39:
          hash = (37 * hash) + TURN_OFF_ENGINE_PRE_WARNING_FIELD_NUMBER;
          hash = (53 * hash) + getTurnOffEnginePreWarningValue();
          break;
        case 40:
          hash = (37 * hash) + CHILD_PRESENCE_DETECTION_WARNING_LAST_EVENT_FIELD_NUMBER;
          hash = (53 * hash) + getChildPresenceDetectionWarningLastEventValue();
          break;
        case 41:
          hash = (37 * hash) + CHILD_PRESENCE_DETECTION_WARNING_LEVEL_FIELD_NUMBER;
          hash = (53 * hash) + getChildPresenceDetectionWarningLevelValue();
          break;
        case 42:
          hash = (37 * hash) + PERFORMANCE_LIMITATION_MODE_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getPerformanceLimitationModeStatusValue();
          break;
        case 43:
          hash = (37 * hash) + BATTERY_HEALTH_FIELD_NUMBER;
          hash = (53 * hash) + getBatteryHealthValue();
          break;
        case 44:
          hash = (37 * hash) + PRECOND_STATE_FIELD_NUMBER;
          hash = (53 * hash) + getPrecondState().hashCode();
          break;
        case 45:
          hash = (37 * hash) + EXTERIOR_MONITORING_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getExteriorMonitoringStatusValue();
          break;
        case 46:
          hash = (37 * hash) + INTERIOR_MONITORING_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getInteriorMonitoringStatusValue();
          break;
        case 47:
          hash = (37 * hash) + REMOTE_UPDATE_START_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getRemoteUpdateStartStatus().hashCode();
          break;
        case 48:
          hash = (37 * hash) + SOH_CALIBRATION_REQUIRED_FIELD_NUMBER;
          hash = (53 * hash) + getSohCalibrationRequiredValue();
          break;
        case 49:
          hash = (37 * hash) + SOC_CALIBRATION_REQUEST_FIELD_NUMBER;
          hash = (53 * hash) + getSocCalibrationRequestValue();
          break;
        case 50:
          hash = (37 * hash) + SOH_CALIBRATION_REQUEST_FIELD_NUMBER;
          hash = (53 * hash) + getSohCalibrationRequestValue();
          break;
        case 51:
          hash = (37 * hash) + SOH_CALIBRATION_STATE_FIELD_NUMBER;
          hash = (53 * hash) + getSohCalibrationStateValue();
          break;
        case 52:
          hash = (37 * hash) + SOH_CALIBRATION_PLANNED_FIELD_NUMBER;
          hash = (53 * hash) + getSohCalibrationPlannedValue();
          break;
        case 53:
          hash = (37 * hash) + SOH_FAVORABLE_CONDITIONS_FIELD_NUMBER;
          hash = (53 * hash) + getSohFavorableConditionsValue();
          break;
        case 54:
          hash = (37 * hash) + SOH_CALIBRATION_NOTIFICATIONS_FIELD_NUMBER;
          hash = (53 * hash) + getSohCalibrationNotificationsValue();
          break;
        case 55:
          hash = (37 * hash) + CHARGING_POWER_RESTRICTIONS_FIELD_NUMBER;
          hash = (53 * hash) + getChargingPowerRestrictions().hashCode();
          break;
        case 56:
          hash = (37 * hash) + CHARGING_COUPLER_ERROR_DETAILS_FIELD_NUMBER;
          hash = (53 * hash) + getChargingCouplerErrorDetailsValue();
          break;
        case 57:
          hash = (37 * hash) + CHARGING_STOP_ERROR_DETAILS_FIELD_NUMBER;
          hash = (53 * hash) + getChargingStopErrorDetailsValue();
          break;
        case 58:
          hash = (37 * hash) + CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V_FIELD_NUMBER;
          hash = (53 * hash) + getChargingErrorVehicleNoSupport400VValue();
          break;
        case 59:
          hash = (37 * hash) + CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V_FIELD_NUMBER;
          hash = (53 * hash) + getChargingErrorImpossibleChangeTo400VValue();
          break;
        case 60:
          hash = (37 * hash) + CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V_FIELD_NUMBER;
          hash = (53 * hash) + getChargingErrorImpossibleChangeTo800VValue();
          break;
        case 61:
          hash = (37 * hash) + PRECOND_OPERABILITY_STATE_FIELD_NUMBER;
          hash = (53 * hash) + getPrecondOperabilityState().hashCode();
          break;
        case 62:
          hash = (37 * hash) + PICTURE_RECORDING_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getPictureRecordingStatusValue();
          break;
        case 63:
          hash = (37 * hash) + PARK_EVENT_PICTURE_SELECTION_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getParkEventPictureSelectionStatusValue();
          break;
        case 64:
          hash = (37 * hash) + PANIC_ALARM_ACTIVE_FIELD_NUMBER;
          hash = (53 * hash) + getPanicAlarmActiveValue();
          break;
        case 65:
          hash = (37 * hash) + INTERIOR_PROTECTION_SELECTION_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getInteriorProtectionSelectionStatusValue();
          break;
        case 66:
          hash = (37 * hash) + INTERIOR_PROTECTION_ACTIVATION_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getInteriorProtectionActivationStatusValue();
          break;
        case 67:
          hash = (37 * hash) + TOW_PROTECTION_SELECTION_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getTowProtectionSelectionStatusValue();
          break;
        case 68:
          hash = (37 * hash) + TOW_PROTECTION_ACTIVATION_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getTowProtectionActivationStatusValue();
          break;
        case 69:
          hash = (37 * hash) + VEHICLE_THEFT_ALARM_INACTIVE_REASON_FIELD_NUMBER;
          hash = (53 * hash) + getVehicleTheftAlarmInactiveReasonValue();
          break;
        case 70:
          hash = (37 * hash) + PARK_COLLISION_SELECTION_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getParkCollisionSelectionStatusValue();
          break;
        case 71:
          hash = (37 * hash) + PARK_COLLISION_ACTIVATION_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getParkCollisionActivationStatusValue();
          break;
        case 72:
          hash = (37 * hash) + PARK_COLLISION_INACTIVE_REASON_FIELD_NUMBER;
          hash = (53 * hash) + getParkCollisionInactiveReasonValue();
          break;
        case 73:
          hash = (37 * hash) + PARK_COLLISION_PICTURE_TRANSFER_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getParkCollisionPictureTransferStatusValue();
          break;
        case 78:
          hash = (37 * hash) + EMERGENCY_POWER_SUPPLY_FIELD_NUMBER;
          hash = (53 * hash) + getEmergencyPowerSupplyValue();
          break;
        case 79:
          hash = (37 * hash) + EVSE_PAIRING_STATE_FIELD_NUMBER;
          hash = (53 * hash) + getEvsePairingStateValue();
          break;
        case 80:
          hash = (37 * hash) + CHARGING_PREDICTION_SOC_FIELD_NUMBER;
          hash = (53 * hash) + getChargingPredictionSoc().hashCode();
          break;
        case 81:
          hash = (37 * hash) + CHARGING_PREDICTION_DEPARTURE_TIME_FIELD_NUMBER;
          hash = (53 * hash) + getChargingPredictionDepartureTime().hashCode();
          break;
        case 82:
          hash = (37 * hash) + CHARGING_SCHEDULE_ACTIVE_FIELD_NUMBER;
          hash = (53 * hash) + getChargingScheduleActive().hashCode();
          break;
        case 83:
          hash = (37 * hash) + DC_CHARGING_PROFILE_FIELD_NUMBER;
          hash = (53 * hash) + getDcChargingProfileValue();
          break;
        case 84:
          hash = (37 * hash) + CHARGE_FLAPS_FIELD_NUMBER;
          hash = (53 * hash) + getChargeFlaps().hashCode();
          break;
        case 85:
          hash = (37 * hash) + CHARGE_INLETS_FIELD_NUMBER;
          hash = (53 * hash) + getChargeInlets().hashCode();
          break;
        case 86:
          hash = (37 * hash) + CHARGING_TIMER_FIELD_NUMBER;
          hash = (53 * hash) + getChargingTimer().hashCode();
          break;
        case 87:
          hash = (37 * hash) + PARK_EVENT_PICTURE_TRANSMISSION_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getParkEventPictureTransmissionStatusValue();
          break;
        case 88:
          hash = (37 * hash) + CHARGING_SCHEDULE_REQUESTED_FIELD_NUMBER;
          hash = (53 * hash) + getChargingScheduleRequested().hashCode();
          break;
        case 89:
          hash = (37 * hash) + CHARGING_FLAP_ERROR_DETAILS_FIELD_NUMBER;
          hash = (53 * hash) + getChargingFlapErrorDetailsValue();
          break;
        case 90:
          hash = (37 * hash) + CHARGING_COMPATIBILITY_ERROR_FIELD_NUMBER;
          hash = (53 * hash) + getChargingCompatibilityErrorValue();
          break;
        case 91:
          hash = (37 * hash) + HV_BATTERY_PRECOND_AVAILABILITY_FIELD_NUMBER;
          hash = (53 * hash) + getHvBatteryPrecondAvailabilityValue();
          break;
        case 92:
          hash = (37 * hash) + HV_BATTERY_PRECOND_REQUEST_STATE_FIELD_NUMBER;
          hash = (53 * hash) + getHvBatteryPrecondRequestState().hashCode();
          break;
        case 93:
          hash = (37 * hash) + HV_BATTERY_PRECOND_STATE_FIELD_NUMBER;
          hash = (53 * hash) + getHvBatteryPrecondState().hashCode();
          break;
        case 94:
          hash = (37 * hash) + AMG_STAGE_MODE_STATE_FIELD_NUMBER;
          hash = (53 * hash) + getAmgStageModeStateValue();
          break;
        case 95:
          hash = (37 * hash) + AMG_STAGE_MODE_ERROR_FIELD_NUMBER;
          hash = (53 * hash) + getAmgStageModeError().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Part of a VEPUpdate
     * Sending direction: App &lt;- BFF &lt;- AppTwin
     * </pre>
     *
     * Protobuf type {@code proto.VehicleAttributeStatus}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.VehicleAttributeStatus)
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleAttributeStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleAttributeStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.class, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        bitField1_ = 0;
        bitField2_ = 0;
        timestamp_ = 0L;
        timestampInMs_ = 0L;
        changed_ = false;
        status_ = 0;
        serviceIds_ = emptyIntList();
        displayValue_ = "";
        if (temperaturePointsValueBuilder_ != null) {
          temperaturePointsValueBuilder_.clear();
        }
        if (weekdayTariffValueBuilder_ != null) {
          weekdayTariffValueBuilder_.clear();
        }
        if (weekendTariffValueBuilder_ != null) {
          weekendTariffValueBuilder_.clear();
        }
        if (stateOfChargeProfileValueBuilder_ != null) {
          stateOfChargeProfileValueBuilder_.clear();
        }
        if (weeklySettingsHeadUnitValueBuilder_ != null) {
          weeklySettingsHeadUnitValueBuilder_.clear();
        }
        if (speedAlertConfigurationValueBuilder_ != null) {
          speedAlertConfigurationValueBuilder_.clear();
        }
        if (ecoHistogramValueBuilder_ != null) {
          ecoHistogramValueBuilder_.clear();
        }
        if (weeklyProfileValueBuilder_ != null) {
          weeklyProfileValueBuilder_.clear();
        }
        if (chargeProgramsValueBuilder_ != null) {
          chargeProgramsValueBuilder_.clear();
        }
        if (chargingbreakClocktimerValueBuilder_ != null) {
          chargingbreakClocktimerValueBuilder_.clear();
        }
        if (chargingPowerControlBuilder_ != null) {
          chargingPowerControlBuilder_.clear();
        }
        if (keylineActivationStateValueBuilder_ != null) {
          keylineActivationStateValueBuilder_.clear();
        }
        if (nextDepartureTimeValueBuilder_ != null) {
          nextDepartureTimeValueBuilder_.clear();
        }
        if (precondStateBuilder_ != null) {
          precondStateBuilder_.clear();
        }
        if (remoteUpdateStartStatusBuilder_ != null) {
          remoteUpdateStartStatusBuilder_.clear();
        }
        if (chargingPowerRestrictionsBuilder_ != null) {
          chargingPowerRestrictionsBuilder_.clear();
        }
        if (precondOperabilityStateBuilder_ != null) {
          precondOperabilityStateBuilder_.clear();
        }
        if (chargingPredictionSocBuilder_ != null) {
          chargingPredictionSocBuilder_.clear();
        }
        if (chargingPredictionDepartureTimeBuilder_ != null) {
          chargingPredictionDepartureTimeBuilder_.clear();
        }
        if (chargingScheduleActiveBuilder_ != null) {
          chargingScheduleActiveBuilder_.clear();
        }
        if (chargeFlapsBuilder_ != null) {
          chargeFlapsBuilder_.clear();
        }
        if (chargeInletsBuilder_ != null) {
          chargeInletsBuilder_.clear();
        }
        if (chargingTimerBuilder_ != null) {
          chargingTimerBuilder_.clear();
        }
        if (chargingScheduleRequestedBuilder_ != null) {
          chargingScheduleRequestedBuilder_.clear();
        }
        if (hvBatteryPrecondRequestStateBuilder_ != null) {
          hvBatteryPrecondRequestStateBuilder_.clear();
        }
        if (hvBatteryPrecondStateBuilder_ != null) {
          hvBatteryPrecondStateBuilder_.clear();
        }
        if (amgStageModeErrorBuilder_ != null) {
          amgStageModeErrorBuilder_.clear();
        }
        displayUnitCase_ = 0;
        displayUnit_ = null;
        attributeTypeCase_ = 0;
        attributeType_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleAttributeStatus_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus build() {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus result = new com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        if (bitField1_ != 0) { buildPartial1(result); }
        if (bitField2_ != 0) { buildPartial2(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.timestamp_ = timestamp_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.timestampInMs_ = timestampInMs_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.changed_ = changed_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.status_ = status_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          serviceIds_.makeImmutable();
          result.serviceIds_ = serviceIds_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.displayValue_ = displayValue_;
        }
      }

      private void buildPartial1(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus result) {
        int from_bitField1_ = bitField1_;
      }

      private void buildPartial2(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus result) {
        int from_bitField2_ = bitField2_;
      }

      private void buildPartialOneofs(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus result) {
        result.displayUnitCase_ = displayUnitCase_;
        result.displayUnit_ = this.displayUnit_;
        result.attributeTypeCase_ = attributeTypeCase_;
        result.attributeType_ = this.attributeType_;
        if (attributeTypeCase_ == 20 &&
            temperaturePointsValueBuilder_ != null) {
          result.attributeType_ = temperaturePointsValueBuilder_.build();
        }
        if (attributeTypeCase_ == 21 &&
            weekdayTariffValueBuilder_ != null) {
          result.attributeType_ = weekdayTariffValueBuilder_.build();
        }
        if (attributeTypeCase_ == 22 &&
            weekendTariffValueBuilder_ != null) {
          result.attributeType_ = weekendTariffValueBuilder_.build();
        }
        if (attributeTypeCase_ == 23 &&
            stateOfChargeProfileValueBuilder_ != null) {
          result.attributeType_ = stateOfChargeProfileValueBuilder_.build();
        }
        if (attributeTypeCase_ == 24 &&
            weeklySettingsHeadUnitValueBuilder_ != null) {
          result.attributeType_ = weeklySettingsHeadUnitValueBuilder_.build();
        }
        if (attributeTypeCase_ == 27 &&
            speedAlertConfigurationValueBuilder_ != null) {
          result.attributeType_ = speedAlertConfigurationValueBuilder_.build();
        }
        if (attributeTypeCase_ == 28 &&
            ecoHistogramValueBuilder_ != null) {
          result.attributeType_ = ecoHistogramValueBuilder_.build();
        }
        if (attributeTypeCase_ == 29 &&
            weeklyProfileValueBuilder_ != null) {
          result.attributeType_ = weeklyProfileValueBuilder_.build();
        }
        if (attributeTypeCase_ == 31 &&
            chargeProgramsValueBuilder_ != null) {
          result.attributeType_ = chargeProgramsValueBuilder_.build();
        }
        if (attributeTypeCase_ == 32 &&
            chargingbreakClocktimerValueBuilder_ != null) {
          result.attributeType_ = chargingbreakClocktimerValueBuilder_.build();
        }
        if (attributeTypeCase_ == 33 &&
            chargingPowerControlBuilder_ != null) {
          result.attributeType_ = chargingPowerControlBuilder_.build();
        }
        if (attributeTypeCase_ == 36 &&
            keylineActivationStateValueBuilder_ != null) {
          result.attributeType_ = keylineActivationStateValueBuilder_.build();
        }
        if (attributeTypeCase_ == 37 &&
            nextDepartureTimeValueBuilder_ != null) {
          result.attributeType_ = nextDepartureTimeValueBuilder_.build();
        }
        if (attributeTypeCase_ == 44 &&
            precondStateBuilder_ != null) {
          result.attributeType_ = precondStateBuilder_.build();
        }
        if (attributeTypeCase_ == 47 &&
            remoteUpdateStartStatusBuilder_ != null) {
          result.attributeType_ = remoteUpdateStartStatusBuilder_.build();
        }
        if (attributeTypeCase_ == 55 &&
            chargingPowerRestrictionsBuilder_ != null) {
          result.attributeType_ = chargingPowerRestrictionsBuilder_.build();
        }
        if (attributeTypeCase_ == 61 &&
            precondOperabilityStateBuilder_ != null) {
          result.attributeType_ = precondOperabilityStateBuilder_.build();
        }
        if (attributeTypeCase_ == 80 &&
            chargingPredictionSocBuilder_ != null) {
          result.attributeType_ = chargingPredictionSocBuilder_.build();
        }
        if (attributeTypeCase_ == 81 &&
            chargingPredictionDepartureTimeBuilder_ != null) {
          result.attributeType_ = chargingPredictionDepartureTimeBuilder_.build();
        }
        if (attributeTypeCase_ == 82 &&
            chargingScheduleActiveBuilder_ != null) {
          result.attributeType_ = chargingScheduleActiveBuilder_.build();
        }
        if (attributeTypeCase_ == 84 &&
            chargeFlapsBuilder_ != null) {
          result.attributeType_ = chargeFlapsBuilder_.build();
        }
        if (attributeTypeCase_ == 85 &&
            chargeInletsBuilder_ != null) {
          result.attributeType_ = chargeInletsBuilder_.build();
        }
        if (attributeTypeCase_ == 86 &&
            chargingTimerBuilder_ != null) {
          result.attributeType_ = chargingTimerBuilder_.build();
        }
        if (attributeTypeCase_ == 88 &&
            chargingScheduleRequestedBuilder_ != null) {
          result.attributeType_ = chargingScheduleRequestedBuilder_.build();
        }
        if (attributeTypeCase_ == 92 &&
            hvBatteryPrecondRequestStateBuilder_ != null) {
          result.attributeType_ = hvBatteryPrecondRequestStateBuilder_.build();
        }
        if (attributeTypeCase_ == 93 &&
            hvBatteryPrecondStateBuilder_ != null) {
          result.attributeType_ = hvBatteryPrecondStateBuilder_.build();
        }
        if (attributeTypeCase_ == 95 &&
            amgStageModeErrorBuilder_ != null) {
          result.attributeType_ = amgStageModeErrorBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDefaultInstance()) return this;
        if (other.getTimestamp() != 0L) {
          setTimestamp(other.getTimestamp());
        }
        if (other.getTimestampInMs() != 0L) {
          setTimestampInMs(other.getTimestampInMs());
        }
        if (other.getChanged() != false) {
          setChanged(other.getChanged());
        }
        if (other.getStatus() != 0) {
          setStatus(other.getStatus());
        }
        if (!other.serviceIds_.isEmpty()) {
          if (serviceIds_.isEmpty()) {
            serviceIds_ = other.serviceIds_;
            serviceIds_.makeImmutable();
            bitField0_ |= 0x00000010;
          } else {
            ensureServiceIdsIsMutable();
            serviceIds_.addAll(other.serviceIds_);
          }
          onChanged();
        }
        if (!other.getDisplayValue().isEmpty()) {
          displayValue_ = other.displayValue_;
          bitField0_ |= 0x00000020;
          onChanged();
        }
        switch (other.getDisplayUnitCase()) {
          case COMBUSTION_CONSUMPTION_UNIT: {
            setCombustionConsumptionUnitValue(other.getCombustionConsumptionUnitValue());
            break;
          }
          case GAS_CONSUMPTION_UNIT: {
            setGasConsumptionUnitValue(other.getGasConsumptionUnitValue());
            break;
          }
          case ELECTRICITY_CONSUMPTION_UNIT: {
            setElectricityConsumptionUnitValue(other.getElectricityConsumptionUnitValue());
            break;
          }
          case SPEED_DISTANCE_UNIT: {
            setSpeedDistanceUnitValue(other.getSpeedDistanceUnitValue());
            break;
          }
          case SPEED_UNIT: {
            setSpeedUnitValue(other.getSpeedUnitValue());
            break;
          }
          case DISTANCE_UNIT: {
            setDistanceUnitValue(other.getDistanceUnitValue());
            break;
          }
          case TEMPERATURE_UNIT: {
            setTemperatureUnitValue(other.getTemperatureUnitValue());
            break;
          }
          case PRESSURE_UNIT: {
            setPressureUnitValue(other.getPressureUnitValue());
            break;
          }
          case RATIO_UNIT: {
            setRatioUnitValue(other.getRatioUnitValue());
            break;
          }
          case CLOCK_HOUR_UNIT: {
            setClockHourUnitValue(other.getClockHourUnitValue());
            break;
          }
          case DISPLAYUNIT_NOT_SET: {
            break;
          }
        }
        switch (other.getAttributeTypeCase()) {
          case INT_VALUE: {
            setIntValue(other.getIntValue());
            break;
          }
          case BOOL_VALUE: {
            setBoolValue(other.getBoolValue());
            break;
          }
          case STRING_VALUE: {
            attributeTypeCase_ = 6;
            attributeType_ = other.attributeType_;
            onChanged();
            break;
          }
          case DOUBLE_VALUE: {
            setDoubleValue(other.getDoubleValue());
            break;
          }
          case NIL_VALUE: {
            setNilValue(other.getNilValue());
            break;
          }
          case UNSUPPORTED_VALUE: {
            attributeTypeCase_ = 9;
            attributeType_ = other.attributeType_;
            onChanged();
            break;
          }
          case TEMPERATURE_POINTS_VALUE: {
            mergeTemperaturePointsValue(other.getTemperaturePointsValue());
            break;
          }
          case WEEKDAY_TARIFF_VALUE: {
            mergeWeekdayTariffValue(other.getWeekdayTariffValue());
            break;
          }
          case WEEKEND_TARIFF_VALUE: {
            mergeWeekendTariffValue(other.getWeekendTariffValue());
            break;
          }
          case STATE_OF_CHARGE_PROFILE_VALUE: {
            mergeStateOfChargeProfileValue(other.getStateOfChargeProfileValue());
            break;
          }
          case WEEKLY_SETTINGS_HEAD_UNIT_VALUE: {
            mergeWeeklySettingsHeadUnitValue(other.getWeeklySettingsHeadUnitValue());
            break;
          }
          case SPEED_ALERT_CONFIGURATION_VALUE: {
            mergeSpeedAlertConfigurationValue(other.getSpeedAlertConfigurationValue());
            break;
          }
          case ECO_HISTOGRAM_VALUE: {
            mergeEcoHistogramValue(other.getEcoHistogramValue());
            break;
          }
          case WEEKLY_PROFILE_VALUE: {
            mergeWeeklyProfileValue(other.getWeeklyProfileValue());
            break;
          }
          case CHARGE_PROGRAMS_VALUE: {
            mergeChargeProgramsValue(other.getChargeProgramsValue());
            break;
          }
          case CHARGINGBREAK_CLOCKTIMER_VALUE: {
            mergeChargingbreakClocktimerValue(other.getChargingbreakClocktimerValue());
            break;
          }
          case CHARGING_POWER_CONTROL: {
            mergeChargingPowerControl(other.getChargingPowerControl());
            break;
          }
          case KEYLINE_ACTIVATION_STATE_VALUE: {
            mergeKeylineActivationStateValue(other.getKeylineActivationStateValue());
            break;
          }
          case NEXT_DEPARTURE_TIME_VALUE: {
            mergeNextDepartureTimeValue(other.getNextDepartureTimeValue());
            break;
          }
          case TCU_CONNECTION_STATE_LOW_CHANNEL: {
            setTcuConnectionStateLowChannelValue(other.getTcuConnectionStateLowChannelValue());
            break;
          }
          case TURN_OFF_ENGINE_PRE_WARNING: {
            setTurnOffEnginePreWarningValue(other.getTurnOffEnginePreWarningValue());
            break;
          }
          case CHILD_PRESENCE_DETECTION_WARNING_LAST_EVENT: {
            setChildPresenceDetectionWarningLastEventValue(other.getChildPresenceDetectionWarningLastEventValue());
            break;
          }
          case CHILD_PRESENCE_DETECTION_WARNING_LEVEL: {
            setChildPresenceDetectionWarningLevelValue(other.getChildPresenceDetectionWarningLevelValue());
            break;
          }
          case PERFORMANCE_LIMITATION_MODE_STATUS: {
            setPerformanceLimitationModeStatusValue(other.getPerformanceLimitationModeStatusValue());
            break;
          }
          case BATTERY_HEALTH: {
            setBatteryHealthValue(other.getBatteryHealthValue());
            break;
          }
          case PRECOND_STATE: {
            mergePrecondState(other.getPrecondState());
            break;
          }
          case EXTERIOR_MONITORING_STATUS: {
            setExteriorMonitoringStatusValue(other.getExteriorMonitoringStatusValue());
            break;
          }
          case INTERIOR_MONITORING_STATUS: {
            setInteriorMonitoringStatusValue(other.getInteriorMonitoringStatusValue());
            break;
          }
          case REMOTE_UPDATE_START_STATUS: {
            mergeRemoteUpdateStartStatus(other.getRemoteUpdateStartStatus());
            break;
          }
          case SOH_CALIBRATION_REQUIRED: {
            setSohCalibrationRequiredValue(other.getSohCalibrationRequiredValue());
            break;
          }
          case SOC_CALIBRATION_REQUEST: {
            setSocCalibrationRequestValue(other.getSocCalibrationRequestValue());
            break;
          }
          case SOH_CALIBRATION_REQUEST: {
            setSohCalibrationRequestValue(other.getSohCalibrationRequestValue());
            break;
          }
          case SOH_CALIBRATION_STATE: {
            setSohCalibrationStateValue(other.getSohCalibrationStateValue());
            break;
          }
          case SOH_CALIBRATION_PLANNED: {
            setSohCalibrationPlannedValue(other.getSohCalibrationPlannedValue());
            break;
          }
          case SOH_FAVORABLE_CONDITIONS: {
            setSohFavorableConditionsValue(other.getSohFavorableConditionsValue());
            break;
          }
          case SOH_CALIBRATION_NOTIFICATIONS: {
            setSohCalibrationNotificationsValue(other.getSohCalibrationNotificationsValue());
            break;
          }
          case CHARGING_POWER_RESTRICTIONS: {
            mergeChargingPowerRestrictions(other.getChargingPowerRestrictions());
            break;
          }
          case CHARGING_COUPLER_ERROR_DETAILS: {
            setChargingCouplerErrorDetailsValue(other.getChargingCouplerErrorDetailsValue());
            break;
          }
          case CHARGING_STOP_ERROR_DETAILS: {
            setChargingStopErrorDetailsValue(other.getChargingStopErrorDetailsValue());
            break;
          }
          case CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V: {
            setChargingErrorVehicleNoSupport400VValue(other.getChargingErrorVehicleNoSupport400VValue());
            break;
          }
          case CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V: {
            setChargingErrorImpossibleChangeTo400VValue(other.getChargingErrorImpossibleChangeTo400VValue());
            break;
          }
          case CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V: {
            setChargingErrorImpossibleChangeTo800VValue(other.getChargingErrorImpossibleChangeTo800VValue());
            break;
          }
          case PRECOND_OPERABILITY_STATE: {
            mergePrecondOperabilityState(other.getPrecondOperabilityState());
            break;
          }
          case PICTURE_RECORDING_STATUS: {
            setPictureRecordingStatusValue(other.getPictureRecordingStatusValue());
            break;
          }
          case PARK_EVENT_PICTURE_SELECTION_STATUS: {
            setParkEventPictureSelectionStatusValue(other.getParkEventPictureSelectionStatusValue());
            break;
          }
          case PANIC_ALARM_ACTIVE: {
            setPanicAlarmActiveValue(other.getPanicAlarmActiveValue());
            break;
          }
          case INTERIOR_PROTECTION_SELECTION_STATUS: {
            setInteriorProtectionSelectionStatusValue(other.getInteriorProtectionSelectionStatusValue());
            break;
          }
          case INTERIOR_PROTECTION_ACTIVATION_STATUS: {
            setInteriorProtectionActivationStatusValue(other.getInteriorProtectionActivationStatusValue());
            break;
          }
          case TOW_PROTECTION_SELECTION_STATUS: {
            setTowProtectionSelectionStatusValue(other.getTowProtectionSelectionStatusValue());
            break;
          }
          case TOW_PROTECTION_ACTIVATION_STATUS: {
            setTowProtectionActivationStatusValue(other.getTowProtectionActivationStatusValue());
            break;
          }
          case VEHICLE_THEFT_ALARM_INACTIVE_REASON: {
            setVehicleTheftAlarmInactiveReasonValue(other.getVehicleTheftAlarmInactiveReasonValue());
            break;
          }
          case PARK_COLLISION_SELECTION_STATUS: {
            setParkCollisionSelectionStatusValue(other.getParkCollisionSelectionStatusValue());
            break;
          }
          case PARK_COLLISION_ACTIVATION_STATUS: {
            setParkCollisionActivationStatusValue(other.getParkCollisionActivationStatusValue());
            break;
          }
          case PARK_COLLISION_INACTIVE_REASON: {
            setParkCollisionInactiveReasonValue(other.getParkCollisionInactiveReasonValue());
            break;
          }
          case PARK_COLLISION_PICTURE_TRANSFER_STATUS: {
            setParkCollisionPictureTransferStatusValue(other.getParkCollisionPictureTransferStatusValue());
            break;
          }
          case EMERGENCY_POWER_SUPPLY: {
            setEmergencyPowerSupplyValue(other.getEmergencyPowerSupplyValue());
            break;
          }
          case EVSE_PAIRING_STATE: {
            setEvsePairingStateValue(other.getEvsePairingStateValue());
            break;
          }
          case CHARGING_PREDICTION_SOC: {
            mergeChargingPredictionSoc(other.getChargingPredictionSoc());
            break;
          }
          case CHARGING_PREDICTION_DEPARTURE_TIME: {
            mergeChargingPredictionDepartureTime(other.getChargingPredictionDepartureTime());
            break;
          }
          case CHARGING_SCHEDULE_ACTIVE: {
            mergeChargingScheduleActive(other.getChargingScheduleActive());
            break;
          }
          case DC_CHARGING_PROFILE: {
            setDcChargingProfileValue(other.getDcChargingProfileValue());
            break;
          }
          case CHARGE_FLAPS: {
            mergeChargeFlaps(other.getChargeFlaps());
            break;
          }
          case CHARGE_INLETS: {
            mergeChargeInlets(other.getChargeInlets());
            break;
          }
          case CHARGING_TIMER: {
            mergeChargingTimer(other.getChargingTimer());
            break;
          }
          case PARK_EVENT_PICTURE_TRANSMISSION_STATUS: {
            setParkEventPictureTransmissionStatusValue(other.getParkEventPictureTransmissionStatusValue());
            break;
          }
          case CHARGING_SCHEDULE_REQUESTED: {
            mergeChargingScheduleRequested(other.getChargingScheduleRequested());
            break;
          }
          case CHARGING_FLAP_ERROR_DETAILS: {
            setChargingFlapErrorDetailsValue(other.getChargingFlapErrorDetailsValue());
            break;
          }
          case CHARGING_COMPATIBILITY_ERROR: {
            setChargingCompatibilityErrorValue(other.getChargingCompatibilityErrorValue());
            break;
          }
          case HV_BATTERY_PRECOND_AVAILABILITY: {
            setHvBatteryPrecondAvailabilityValue(other.getHvBatteryPrecondAvailabilityValue());
            break;
          }
          case HV_BATTERY_PRECOND_REQUEST_STATE: {
            mergeHvBatteryPrecondRequestState(other.getHvBatteryPrecondRequestState());
            break;
          }
          case HV_BATTERY_PRECOND_STATE: {
            mergeHvBatteryPrecondState(other.getHvBatteryPrecondState());
            break;
          }
          case AMG_STAGE_MODE_STATE: {
            setAmgStageModeStateValue(other.getAmgStageModeStateValue());
            break;
          }
          case AMG_STAGE_MODE_ERROR: {
            mergeAmgStageModeError(other.getAmgStageModeError());
            break;
          }
          case ATTRIBUTETYPE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                timestamp_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                changed_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 16
              case 24: {
                status_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 24
              case 32: {
                attributeType_ = input.readInt64();
                attributeTypeCase_ = 4;
                break;
              } // case 32
              case 40: {
                attributeType_ = input.readBool();
                attributeTypeCase_ = 5;
                break;
              } // case 40
              case 50: {
                java.lang.String s = input.readStringRequireUtf8();
                attributeTypeCase_ = 6;
                attributeType_ = s;
                break;
              } // case 50
              case 57: {
                attributeType_ = input.readDouble();
                attributeTypeCase_ = 7;
                break;
              } // case 57
              case 64: {
                attributeType_ = input.readBool();
                attributeTypeCase_ = 8;
                break;
              } // case 64
              case 74: {
                java.lang.String s = input.readStringRequireUtf8();
                attributeTypeCase_ = 9;
                attributeType_ = s;
                break;
              } // case 74
              case 80: {
                timestampInMs_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 80
              case 90: {
                displayValue_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 90
              case 96: {
                int rawValue = input.readEnum();
                displayUnitCase_ = 12;
                displayUnit_ = rawValue;
                break;
              } // case 96
              case 104: {
                int rawValue = input.readEnum();
                displayUnitCase_ = 13;
                displayUnit_ = rawValue;
                break;
              } // case 104
              case 112: {
                int rawValue = input.readEnum();
                displayUnitCase_ = 14;
                displayUnit_ = rawValue;
                break;
              } // case 112
              case 120: {
                int rawValue = input.readEnum();
                displayUnitCase_ = 15;
                displayUnit_ = rawValue;
                break;
              } // case 120
              case 128: {
                int rawValue = input.readEnum();
                displayUnitCase_ = 16;
                displayUnit_ = rawValue;
                break;
              } // case 128
              case 136: {
                int rawValue = input.readEnum();
                displayUnitCase_ = 17;
                displayUnit_ = rawValue;
                break;
              } // case 136
              case 144: {
                int rawValue = input.readEnum();
                displayUnitCase_ = 18;
                displayUnit_ = rawValue;
                break;
              } // case 144
              case 152: {
                int rawValue = input.readEnum();
                displayUnitCase_ = 19;
                displayUnit_ = rawValue;
                break;
              } // case 152
              case 162: {
                input.readMessage(
                    internalGetTemperaturePointsValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 20;
                break;
              } // case 162
              case 170: {
                input.readMessage(
                    internalGetWeekdayTariffValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 21;
                break;
              } // case 170
              case 178: {
                input.readMessage(
                    internalGetWeekendTariffValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 22;
                break;
              } // case 178
              case 186: {
                input.readMessage(
                    internalGetStateOfChargeProfileValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 23;
                break;
              } // case 186
              case 194: {
                input.readMessage(
                    internalGetWeeklySettingsHeadUnitValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 24;
                break;
              } // case 194
              case 200: {
                int rawValue = input.readEnum();
                displayUnitCase_ = 25;
                displayUnit_ = rawValue;
                break;
              } // case 200
              case 208: {
                int rawValue = input.readEnum();
                displayUnitCase_ = 26;
                displayUnit_ = rawValue;
                break;
              } // case 208
              case 218: {
                input.readMessage(
                    internalGetSpeedAlertConfigurationValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 27;
                break;
              } // case 218
              case 226: {
                input.readMessage(
                    internalGetEcoHistogramValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 28;
                break;
              } // case 226
              case 234: {
                input.readMessage(
                    internalGetWeeklyProfileValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 29;
                break;
              } // case 234
              case 240: {
                int v = input.readInt32();
                ensureServiceIdsIsMutable();
                serviceIds_.addInt(v);
                break;
              } // case 240
              case 242: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureServiceIdsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  serviceIds_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 242
              case 250: {
                input.readMessage(
                    internalGetChargeProgramsValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 31;
                break;
              } // case 250
              case 258: {
                input.readMessage(
                    internalGetChargingbreakClocktimerValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 32;
                break;
              } // case 258
              case 266: {
                input.readMessage(
                    internalGetChargingPowerControlFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 33;
                break;
              } // case 266
              case 290: {
                input.readMessage(
                    internalGetKeylineActivationStateValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 36;
                break;
              } // case 290
              case 298: {
                input.readMessage(
                    internalGetNextDepartureTimeValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 37;
                break;
              } // case 298
              case 304: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 38;
                attributeType_ = rawValue;
                break;
              } // case 304
              case 312: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 39;
                attributeType_ = rawValue;
                break;
              } // case 312
              case 320: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 40;
                attributeType_ = rawValue;
                break;
              } // case 320
              case 328: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 41;
                attributeType_ = rawValue;
                break;
              } // case 328
              case 336: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 42;
                attributeType_ = rawValue;
                break;
              } // case 336
              case 344: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 43;
                attributeType_ = rawValue;
                break;
              } // case 344
              case 354: {
                input.readMessage(
                    internalGetPrecondStateFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 44;
                break;
              } // case 354
              case 360: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 45;
                attributeType_ = rawValue;
                break;
              } // case 360
              case 368: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 46;
                attributeType_ = rawValue;
                break;
              } // case 368
              case 378: {
                input.readMessage(
                    internalGetRemoteUpdateStartStatusFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 47;
                break;
              } // case 378
              case 384: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 48;
                attributeType_ = rawValue;
                break;
              } // case 384
              case 392: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 49;
                attributeType_ = rawValue;
                break;
              } // case 392
              case 400: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 50;
                attributeType_ = rawValue;
                break;
              } // case 400
              case 408: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 51;
                attributeType_ = rawValue;
                break;
              } // case 408
              case 416: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 52;
                attributeType_ = rawValue;
                break;
              } // case 416
              case 424: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 53;
                attributeType_ = rawValue;
                break;
              } // case 424
              case 432: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 54;
                attributeType_ = rawValue;
                break;
              } // case 432
              case 442: {
                input.readMessage(
                    internalGetChargingPowerRestrictionsFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 55;
                break;
              } // case 442
              case 448: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 56;
                attributeType_ = rawValue;
                break;
              } // case 448
              case 456: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 57;
                attributeType_ = rawValue;
                break;
              } // case 456
              case 464: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 58;
                attributeType_ = rawValue;
                break;
              } // case 464
              case 472: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 59;
                attributeType_ = rawValue;
                break;
              } // case 472
              case 480: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 60;
                attributeType_ = rawValue;
                break;
              } // case 480
              case 490: {
                input.readMessage(
                    internalGetPrecondOperabilityStateFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 61;
                break;
              } // case 490
              case 496: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 62;
                attributeType_ = rawValue;
                break;
              } // case 496
              case 504: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 63;
                attributeType_ = rawValue;
                break;
              } // case 504
              case 512: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 64;
                attributeType_ = rawValue;
                break;
              } // case 512
              case 520: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 65;
                attributeType_ = rawValue;
                break;
              } // case 520
              case 528: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 66;
                attributeType_ = rawValue;
                break;
              } // case 528
              case 536: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 67;
                attributeType_ = rawValue;
                break;
              } // case 536
              case 544: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 68;
                attributeType_ = rawValue;
                break;
              } // case 544
              case 552: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 69;
                attributeType_ = rawValue;
                break;
              } // case 552
              case 560: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 70;
                attributeType_ = rawValue;
                break;
              } // case 560
              case 568: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 71;
                attributeType_ = rawValue;
                break;
              } // case 568
              case 576: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 72;
                attributeType_ = rawValue;
                break;
              } // case 576
              case 584: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 73;
                attributeType_ = rawValue;
                break;
              } // case 584
              case 624: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 78;
                attributeType_ = rawValue;
                break;
              } // case 624
              case 632: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 79;
                attributeType_ = rawValue;
                break;
              } // case 632
              case 642: {
                input.readMessage(
                    internalGetChargingPredictionSocFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 80;
                break;
              } // case 642
              case 650: {
                input.readMessage(
                    internalGetChargingPredictionDepartureTimeFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 81;
                break;
              } // case 650
              case 658: {
                input.readMessage(
                    internalGetChargingScheduleActiveFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 82;
                break;
              } // case 658
              case 664: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 83;
                attributeType_ = rawValue;
                break;
              } // case 664
              case 674: {
                input.readMessage(
                    internalGetChargeFlapsFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 84;
                break;
              } // case 674
              case 682: {
                input.readMessage(
                    internalGetChargeInletsFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 85;
                break;
              } // case 682
              case 690: {
                input.readMessage(
                    internalGetChargingTimerFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 86;
                break;
              } // case 690
              case 696: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 87;
                attributeType_ = rawValue;
                break;
              } // case 696
              case 706: {
                input.readMessage(
                    internalGetChargingScheduleRequestedFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 88;
                break;
              } // case 706
              case 712: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 89;
                attributeType_ = rawValue;
                break;
              } // case 712
              case 720: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 90;
                attributeType_ = rawValue;
                break;
              } // case 720
              case 728: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 91;
                attributeType_ = rawValue;
                break;
              } // case 728
              case 738: {
                input.readMessage(
                    internalGetHvBatteryPrecondRequestStateFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 92;
                break;
              } // case 738
              case 746: {
                input.readMessage(
                    internalGetHvBatteryPrecondStateFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 93;
                break;
              } // case 746
              case 752: {
                int rawValue = input.readEnum();
                attributeTypeCase_ = 94;
                attributeType_ = rawValue;
                break;
              } // case 752
              case 762: {
                input.readMessage(
                    internalGetAmgStageModeErrorFieldBuilder().getBuilder(),
                    extensionRegistry);
                attributeTypeCase_ = 95;
                break;
              } // case 762
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int displayUnitCase_ = 0;
      private java.lang.Object displayUnit_;
      public DisplayUnitCase
          getDisplayUnitCase() {
        return DisplayUnitCase.forNumber(
            displayUnitCase_);
      }

      public Builder clearDisplayUnit() {
        displayUnitCase_ = 0;
        displayUnit_ = null;
        onChanged();
        return this;
      }

      private int attributeTypeCase_ = 0;
      private java.lang.Object attributeType_;
      public AttributeTypeCase
          getAttributeTypeCase() {
        return AttributeTypeCase.forNumber(
            attributeTypeCase_);
      }

      public Builder clearAttributeType() {
        attributeTypeCase_ = 0;
        attributeType_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;
      private int bitField1_;
      private int bitField2_;

      private long timestamp_ ;
      /**
       * <pre>
       * time of the attribute change in the car as unix timestamp in seconds with UTC timezone (deprecated)
       * </pre>
       *
       * <code>int64 timestamp = 1 [deprecated = true];</code>
       * @deprecated proto.VehicleAttributeStatus.timestamp is deprecated.
       *     See vehicle-events.proto;l=39
       * @return The timestamp.
       */
      @java.lang.Override
      @java.lang.Deprecated public long getTimestamp() {
        return timestamp_;
      }
      /**
       * <pre>
       * time of the attribute change in the car as unix timestamp in seconds with UTC timezone (deprecated)
       * </pre>
       *
       * <code>int64 timestamp = 1 [deprecated = true];</code>
       * @deprecated proto.VehicleAttributeStatus.timestamp is deprecated.
       *     See vehicle-events.proto;l=39
       * @param value The timestamp to set.
       * @return This builder for chaining.
       */
      @java.lang.Deprecated public Builder setTimestamp(long value) {

        timestamp_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * time of the attribute change in the car as unix timestamp in seconds with UTC timezone (deprecated)
       * </pre>
       *
       * <code>int64 timestamp = 1 [deprecated = true];</code>
       * @deprecated proto.VehicleAttributeStatus.timestamp is deprecated.
       *     See vehicle-events.proto;l=39
       * @return This builder for chaining.
       */
      @java.lang.Deprecated public Builder clearTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000001);
        timestamp_ = 0L;
        onChanged();
        return this;
      }

      private long timestampInMs_ ;
      /**
       * <pre>
       * time of the attribute change in the car as unix timestamp in milliseconds with UTC timezone
       * </pre>
       *
       * <code>int64 timestamp_in_ms = 10;</code>
       * @return The timestampInMs.
       */
      @java.lang.Override
      public long getTimestampInMs() {
        return timestampInMs_;
      }
      /**
       * <pre>
       * time of the attribute change in the car as unix timestamp in milliseconds with UTC timezone
       * </pre>
       *
       * <code>int64 timestamp_in_ms = 10;</code>
       * @param value The timestampInMs to set.
       * @return This builder for chaining.
       */
      public Builder setTimestampInMs(long value) {

        timestampInMs_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * time of the attribute change in the car as unix timestamp in milliseconds with UTC timezone
       * </pre>
       *
       * <code>int64 timestamp_in_ms = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimestampInMs() {
        bitField0_ = (bitField0_ & ~0x00000002);
        timestampInMs_ = 0L;
        onChanged();
        return this;
      }

      private boolean changed_ ;
      /**
       * <code>bool changed = 2;</code>
       * @return The changed.
       */
      @java.lang.Override
      public boolean getChanged() {
        return changed_;
      }
      /**
       * <code>bool changed = 2;</code>
       * @param value The changed to set.
       * @return This builder for chaining.
       */
      public Builder setChanged(boolean value) {

        changed_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>bool changed = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearChanged() {
        bitField0_ = (bitField0_ & ~0x00000004);
        changed_ = false;
        onChanged();
        return this;
      }

      private int status_ ;
      /**
       * <code>int32 status = 3;</code>
       * @return The status.
       */
      @java.lang.Override
      public int getStatus() {
        return status_;
      }
      /**
       * <code>int32 status = 3;</code>
       * @param value The status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(int value) {

        status_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>int32 status = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000008);
        status_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList serviceIds_ = emptyIntList();
      private void ensureServiceIdsIsMutable() {
        if (!serviceIds_.isModifiable()) {
          serviceIds_ = makeMutableCopy(serviceIds_);
        }
        bitField0_ |= 0x00000010;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>repeated int32 service_ids = 30;</code>
       * @return A list containing the serviceIds.
       */
      public java.util.List<java.lang.Integer>
          getServiceIdsList() {
        serviceIds_.makeImmutable();
        return serviceIds_;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>repeated int32 service_ids = 30;</code>
       * @return The count of serviceIds.
       */
      public int getServiceIdsCount() {
        return serviceIds_.size();
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>repeated int32 service_ids = 30;</code>
       * @param index The index of the element to return.
       * @return The serviceIds at the given index.
       */
      public int getServiceIds(int index) {
        return serviceIds_.getInt(index);
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>repeated int32 service_ids = 30;</code>
       * @param index The index to set the value at.
       * @param value The serviceIds to set.
       * @return This builder for chaining.
       */
      public Builder setServiceIds(
          int index, int value) {

        ensureServiceIdsIsMutable();
        serviceIds_.setInt(index, value);
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>repeated int32 service_ids = 30;</code>
       * @param value The serviceIds to add.
       * @return This builder for chaining.
       */
      public Builder addServiceIds(int value) {

        ensureServiceIdsIsMutable();
        serviceIds_.addInt(value);
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>repeated int32 service_ids = 30;</code>
       * @param values The serviceIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllServiceIds(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureServiceIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, serviceIds_);
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>repeated int32 service_ids = 30;</code>
       * @return This builder for chaining.
       */
      public Builder clearServiceIds() {
        serviceIds_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }

      private java.lang.Object displayValue_ = "";
      /**
       * <code>string display_value = 11;</code>
       * @return The displayValue.
       */
      public java.lang.String getDisplayValue() {
        java.lang.Object ref = displayValue_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          displayValue_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string display_value = 11;</code>
       * @return The bytes for displayValue.
       */
      public com.google.protobuf.ByteString
          getDisplayValueBytes() {
        java.lang.Object ref = displayValue_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          displayValue_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string display_value = 11;</code>
       * @param value The displayValue to set.
       * @return This builder for chaining.
       */
      public Builder setDisplayValue(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        displayValue_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>string display_value = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearDisplayValue() {
        displayValue_ = getDefaultInstance().getDisplayValue();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <code>string display_value = 11;</code>
       * @param value The bytes for displayValue to set.
       * @return This builder for chaining.
       */
      public Builder setDisplayValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        displayValue_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }

      /**
       * <code>.proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12;</code>
       * @return Whether the combustionConsumptionUnit field is set.
       */
      @java.lang.Override
      public boolean hasCombustionConsumptionUnit() {
        return displayUnitCase_ == 12;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12;</code>
       * @return The enum numeric value on the wire for combustionConsumptionUnit.
       */
      @java.lang.Override
      public int getCombustionConsumptionUnitValue() {
        if (displayUnitCase_ == 12) {
          return ((java.lang.Integer) displayUnit_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12;</code>
       * @param value The enum numeric value on the wire for combustionConsumptionUnit to set.
       * @return This builder for chaining.
       */
      public Builder setCombustionConsumptionUnitValue(int value) {
        displayUnitCase_ = 12;
        displayUnit_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12;</code>
       * @return The combustionConsumptionUnit.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit getCombustionConsumptionUnit() {
        if (displayUnitCase_ == 12) {
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit.forNumber(
              (java.lang.Integer) displayUnit_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit.UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12;</code>
       * @param value The combustionConsumptionUnit to set.
       * @return This builder for chaining.
       */
      public Builder setCombustionConsumptionUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit value) {
        if (value == null) { throw new NullPointerException(); }
        displayUnitCase_ = 12;
        displayUnit_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearCombustionConsumptionUnit() {
        if (displayUnitCase_ == 12) {
          displayUnitCase_ = 0;
          displayUnit_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13;</code>
       * @return Whether the gasConsumptionUnit field is set.
       */
      @java.lang.Override
      public boolean hasGasConsumptionUnit() {
        return displayUnitCase_ == 13;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13;</code>
       * @return The enum numeric value on the wire for gasConsumptionUnit.
       */
      @java.lang.Override
      public int getGasConsumptionUnitValue() {
        if (displayUnitCase_ == 13) {
          return ((java.lang.Integer) displayUnit_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13;</code>
       * @param value The enum numeric value on the wire for gasConsumptionUnit to set.
       * @return This builder for chaining.
       */
      public Builder setGasConsumptionUnitValue(int value) {
        displayUnitCase_ = 13;
        displayUnit_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13;</code>
       * @return The gasConsumptionUnit.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit getGasConsumptionUnit() {
        if (displayUnitCase_ == 13) {
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit.forNumber(
              (java.lang.Integer) displayUnit_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit.UNSPECIFIED_GAS_CONSUMPTION_UNIT;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13;</code>
       * @param value The gasConsumptionUnit to set.
       * @return This builder for chaining.
       */
      public Builder setGasConsumptionUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit value) {
        if (value == null) { throw new NullPointerException(); }
        displayUnitCase_ = 13;
        displayUnit_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearGasConsumptionUnit() {
        if (displayUnitCase_ == 13) {
          displayUnitCase_ = 0;
          displayUnit_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14;</code>
       * @return Whether the electricityConsumptionUnit field is set.
       */
      @java.lang.Override
      public boolean hasElectricityConsumptionUnit() {
        return displayUnitCase_ == 14;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14;</code>
       * @return The enum numeric value on the wire for electricityConsumptionUnit.
       */
      @java.lang.Override
      public int getElectricityConsumptionUnitValue() {
        if (displayUnitCase_ == 14) {
          return ((java.lang.Integer) displayUnit_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14;</code>
       * @param value The enum numeric value on the wire for electricityConsumptionUnit to set.
       * @return This builder for chaining.
       */
      public Builder setElectricityConsumptionUnitValue(int value) {
        displayUnitCase_ = 14;
        displayUnit_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14;</code>
       * @return The electricityConsumptionUnit.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit getElectricityConsumptionUnit() {
        if (displayUnitCase_ == 14) {
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit.forNumber(
              (java.lang.Integer) displayUnit_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit.UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14;</code>
       * @param value The electricityConsumptionUnit to set.
       * @return This builder for chaining.
       */
      public Builder setElectricityConsumptionUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit value) {
        if (value == null) { throw new NullPointerException(); }
        displayUnitCase_ = 14;
        displayUnit_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearElectricityConsumptionUnit() {
        if (displayUnitCase_ == 14) {
          displayUnitCase_ = 0;
          displayUnit_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <pre>
       * use speed unit / length unit instead
       * </pre>
       *
       * <code>.proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true];</code>
       * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated.
       *     See vehicle-events.proto;l=173
       * @return Whether the speedDistanceUnit field is set.
       */
      @java.lang.Override
      @java.lang.Deprecated public boolean hasSpeedDistanceUnit() {
        return displayUnitCase_ == 15;
      }
      /**
       * <pre>
       * use speed unit / length unit instead
       * </pre>
       *
       * <code>.proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true];</code>
       * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated.
       *     See vehicle-events.proto;l=173
       * @return The enum numeric value on the wire for speedDistanceUnit.
       */
      @java.lang.Override
      @java.lang.Deprecated public int getSpeedDistanceUnitValue() {
        if (displayUnitCase_ == 15) {
          return ((java.lang.Integer) displayUnit_).intValue();
        }
        return 0;
      }
      /**
       * <pre>
       * use speed unit / length unit instead
       * </pre>
       *
       * <code>.proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true];</code>
       * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated.
       *     See vehicle-events.proto;l=173
       * @param value The enum numeric value on the wire for speedDistanceUnit to set.
       * @return This builder for chaining.
       */
      @java.lang.Deprecated public Builder setSpeedDistanceUnitValue(int value) {
        displayUnitCase_ = 15;
        displayUnit_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * use speed unit / length unit instead
       * </pre>
       *
       * <code>.proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true];</code>
       * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated.
       *     See vehicle-events.proto;l=173
       * @return The speedDistanceUnit.
       */
      @java.lang.Override
      @java.lang.Deprecated public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit getSpeedDistanceUnit() {
        if (displayUnitCase_ == 15) {
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit.forNumber(
              (java.lang.Integer) displayUnit_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit.UNSPECIFIED_SPEED_DISTANCE_UNIT;
      }
      /**
       * <pre>
       * use speed unit / length unit instead
       * </pre>
       *
       * <code>.proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true];</code>
       * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated.
       *     See vehicle-events.proto;l=173
       * @param value The speedDistanceUnit to set.
       * @return This builder for chaining.
       */
      @java.lang.Deprecated public Builder setSpeedDistanceUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit value) {
        if (value == null) { throw new NullPointerException(); }
        displayUnitCase_ = 15;
        displayUnit_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * use speed unit / length unit instead
       * </pre>
       *
       * <code>.proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true];</code>
       * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated.
       *     See vehicle-events.proto;l=173
       * @return This builder for chaining.
       */
      @java.lang.Deprecated public Builder clearSpeedDistanceUnit() {
        if (displayUnitCase_ == 15) {
          displayUnitCase_ = 0;
          displayUnit_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25;</code>
       * @return Whether the speedUnit field is set.
       */
      @java.lang.Override
      public boolean hasSpeedUnit() {
        return displayUnitCase_ == 25;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25;</code>
       * @return The enum numeric value on the wire for speedUnit.
       */
      @java.lang.Override
      public int getSpeedUnitValue() {
        if (displayUnitCase_ == 25) {
          return ((java.lang.Integer) displayUnit_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25;</code>
       * @param value The enum numeric value on the wire for speedUnit to set.
       * @return This builder for chaining.
       */
      public Builder setSpeedUnitValue(int value) {
        displayUnitCase_ = 25;
        displayUnit_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25;</code>
       * @return The speedUnit.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit getSpeedUnit() {
        if (displayUnitCase_ == 25) {
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit.forNumber(
              (java.lang.Integer) displayUnit_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit.UNSPECIFIED_SPEED_UNIT;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25;</code>
       * @param value The speedUnit to set.
       * @return This builder for chaining.
       */
      public Builder setSpeedUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit value) {
        if (value == null) { throw new NullPointerException(); }
        displayUnitCase_ = 25;
        displayUnit_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpeedUnit() {
        if (displayUnitCase_ == 25) {
          displayUnitCase_ = 0;
          displayUnit_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26;</code>
       * @return Whether the distanceUnit field is set.
       */
      @java.lang.Override
      public boolean hasDistanceUnit() {
        return displayUnitCase_ == 26;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26;</code>
       * @return The enum numeric value on the wire for distanceUnit.
       */
      @java.lang.Override
      public int getDistanceUnitValue() {
        if (displayUnitCase_ == 26) {
          return ((java.lang.Integer) displayUnit_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26;</code>
       * @param value The enum numeric value on the wire for distanceUnit to set.
       * @return This builder for chaining.
       */
      public Builder setDistanceUnitValue(int value) {
        displayUnitCase_ = 26;
        displayUnit_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26;</code>
       * @return The distanceUnit.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit getDistanceUnit() {
        if (displayUnitCase_ == 26) {
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit.forNumber(
              (java.lang.Integer) displayUnit_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit.UNSPECIFIED_DISTANCE_UNIT;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26;</code>
       * @param value The distanceUnit to set.
       * @return This builder for chaining.
       */
      public Builder setDistanceUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit value) {
        if (value == null) { throw new NullPointerException(); }
        displayUnitCase_ = 26;
        displayUnit_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26;</code>
       * @return This builder for chaining.
       */
      public Builder clearDistanceUnit() {
        if (displayUnitCase_ == 26) {
          displayUnitCase_ = 0;
          displayUnit_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16;</code>
       * @return Whether the temperatureUnit field is set.
       */
      @java.lang.Override
      public boolean hasTemperatureUnit() {
        return displayUnitCase_ == 16;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16;</code>
       * @return The enum numeric value on the wire for temperatureUnit.
       */
      @java.lang.Override
      public int getTemperatureUnitValue() {
        if (displayUnitCase_ == 16) {
          return ((java.lang.Integer) displayUnit_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16;</code>
       * @param value The enum numeric value on the wire for temperatureUnit to set.
       * @return This builder for chaining.
       */
      public Builder setTemperatureUnitValue(int value) {
        displayUnitCase_ = 16;
        displayUnit_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16;</code>
       * @return The temperatureUnit.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit getTemperatureUnit() {
        if (displayUnitCase_ == 16) {
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit.forNumber(
              (java.lang.Integer) displayUnit_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit.UNSPECIFIED_TEMPERATURE_UNIT;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16;</code>
       * @param value The temperatureUnit to set.
       * @return This builder for chaining.
       */
      public Builder setTemperatureUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit value) {
        if (value == null) { throw new NullPointerException(); }
        displayUnitCase_ = 16;
        displayUnit_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearTemperatureUnit() {
        if (displayUnitCase_ == 16) {
          displayUnitCase_ = 0;
          displayUnit_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17;</code>
       * @return Whether the pressureUnit field is set.
       */
      @java.lang.Override
      public boolean hasPressureUnit() {
        return displayUnitCase_ == 17;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17;</code>
       * @return The enum numeric value on the wire for pressureUnit.
       */
      @java.lang.Override
      public int getPressureUnitValue() {
        if (displayUnitCase_ == 17) {
          return ((java.lang.Integer) displayUnit_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17;</code>
       * @param value The enum numeric value on the wire for pressureUnit to set.
       * @return This builder for chaining.
       */
      public Builder setPressureUnitValue(int value) {
        displayUnitCase_ = 17;
        displayUnit_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17;</code>
       * @return The pressureUnit.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit getPressureUnit() {
        if (displayUnitCase_ == 17) {
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit.forNumber(
              (java.lang.Integer) displayUnit_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit.UNSPECIFIED_PRESSURE_UNIT;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17;</code>
       * @param value The pressureUnit to set.
       * @return This builder for chaining.
       */
      public Builder setPressureUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit value) {
        if (value == null) { throw new NullPointerException(); }
        displayUnitCase_ = 17;
        displayUnit_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearPressureUnit() {
        if (displayUnitCase_ == 17) {
          displayUnitCase_ = 0;
          displayUnit_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18;</code>
       * @return Whether the ratioUnit field is set.
       */
      @java.lang.Override
      public boolean hasRatioUnit() {
        return displayUnitCase_ == 18;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18;</code>
       * @return The enum numeric value on the wire for ratioUnit.
       */
      @java.lang.Override
      public int getRatioUnitValue() {
        if (displayUnitCase_ == 18) {
          return ((java.lang.Integer) displayUnit_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18;</code>
       * @param value The enum numeric value on the wire for ratioUnit to set.
       * @return This builder for chaining.
       */
      public Builder setRatioUnitValue(int value) {
        displayUnitCase_ = 18;
        displayUnit_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18;</code>
       * @return The ratioUnit.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit getRatioUnit() {
        if (displayUnitCase_ == 18) {
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit.forNumber(
              (java.lang.Integer) displayUnit_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit.UNSPECIFIED_RATIO_UNIT;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18;</code>
       * @param value The ratioUnit to set.
       * @return This builder for chaining.
       */
      public Builder setRatioUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit value) {
        if (value == null) { throw new NullPointerException(); }
        displayUnitCase_ = 18;
        displayUnit_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearRatioUnit() {
        if (displayUnitCase_ == 18) {
          displayUnitCase_ = 0;
          displayUnit_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19;</code>
       * @return Whether the clockHourUnit field is set.
       */
      @java.lang.Override
      public boolean hasClockHourUnit() {
        return displayUnitCase_ == 19;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19;</code>
       * @return The enum numeric value on the wire for clockHourUnit.
       */
      @java.lang.Override
      public int getClockHourUnitValue() {
        if (displayUnitCase_ == 19) {
          return ((java.lang.Integer) displayUnit_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19;</code>
       * @param value The enum numeric value on the wire for clockHourUnit to set.
       * @return This builder for chaining.
       */
      public Builder setClockHourUnitValue(int value) {
        displayUnitCase_ = 19;
        displayUnit_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19;</code>
       * @return The clockHourUnit.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit getClockHourUnit() {
        if (displayUnitCase_ == 19) {
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit.forNumber(
              (java.lang.Integer) displayUnit_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit.UNSPECIFIED_CLOCK_HOUR_UNIT;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19;</code>
       * @param value The clockHourUnit to set.
       * @return This builder for chaining.
       */
      public Builder setClockHourUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit value) {
        if (value == null) { throw new NullPointerException(); }
        displayUnitCase_ = 19;
        displayUnit_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearClockHourUnit() {
        if (displayUnitCase_ == 19) {
          displayUnitCase_ = 0;
          displayUnit_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>int64 int_value = 4;</code>
       * @return Whether the intValue field is set.
       */
      public boolean hasIntValue() {
        return attributeTypeCase_ == 4;
      }
      /**
       * <code>int64 int_value = 4;</code>
       * @return The intValue.
       */
      public long getIntValue() {
        if (attributeTypeCase_ == 4) {
          return (java.lang.Long) attributeType_;
        }
        return 0L;
      }
      /**
       * <code>int64 int_value = 4;</code>
       * @param value The intValue to set.
       * @return This builder for chaining.
       */
      public Builder setIntValue(long value) {

        attributeTypeCase_ = 4;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 int_value = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearIntValue() {
        if (attributeTypeCase_ == 4) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>bool bool_value = 5;</code>
       * @return Whether the boolValue field is set.
       */
      public boolean hasBoolValue() {
        return attributeTypeCase_ == 5;
      }
      /**
       * <code>bool bool_value = 5;</code>
       * @return The boolValue.
       */
      public boolean getBoolValue() {
        if (attributeTypeCase_ == 5) {
          return (java.lang.Boolean) attributeType_;
        }
        return false;
      }
      /**
       * <code>bool bool_value = 5;</code>
       * @param value The boolValue to set.
       * @return This builder for chaining.
       */
      public Builder setBoolValue(boolean value) {

        attributeTypeCase_ = 5;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool bool_value = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearBoolValue() {
        if (attributeTypeCase_ == 5) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>string string_value = 6;</code>
       * @return Whether the stringValue field is set.
       */
      @java.lang.Override
      public boolean hasStringValue() {
        return attributeTypeCase_ == 6;
      }
      /**
       * <code>string string_value = 6;</code>
       * @return The stringValue.
       */
      @java.lang.Override
      public java.lang.String getStringValue() {
        java.lang.Object ref = "";
        if (attributeTypeCase_ == 6) {
          ref = attributeType_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (attributeTypeCase_ == 6) {
            attributeType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string string_value = 6;</code>
       * @return The bytes for stringValue.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getStringValueBytes() {
        java.lang.Object ref = "";
        if (attributeTypeCase_ == 6) {
          ref = attributeType_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (attributeTypeCase_ == 6) {
            attributeType_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string string_value = 6;</code>
       * @param value The stringValue to set.
       * @return This builder for chaining.
       */
      public Builder setStringValue(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 6;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string string_value = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearStringValue() {
        if (attributeTypeCase_ == 6) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <code>string string_value = 6;</code>
       * @param value The bytes for stringValue to set.
       * @return This builder for chaining.
       */
      public Builder setStringValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        attributeTypeCase_ = 6;
        attributeType_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>double double_value = 7;</code>
       * @return Whether the doubleValue field is set.
       */
      public boolean hasDoubleValue() {
        return attributeTypeCase_ == 7;
      }
      /**
       * <code>double double_value = 7;</code>
       * @return The doubleValue.
       */
      public double getDoubleValue() {
        if (attributeTypeCase_ == 7) {
          return (java.lang.Double) attributeType_;
        }
        return 0D;
      }
      /**
       * <code>double double_value = 7;</code>
       * @param value The doubleValue to set.
       * @return This builder for chaining.
       */
      public Builder setDoubleValue(double value) {

        attributeTypeCase_ = 7;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double double_value = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearDoubleValue() {
        if (attributeTypeCase_ == 7) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>bool nil_value = 8;</code>
       * @return Whether the nilValue field is set.
       */
      public boolean hasNilValue() {
        return attributeTypeCase_ == 8;
      }
      /**
       * <code>bool nil_value = 8;</code>
       * @return The nilValue.
       */
      public boolean getNilValue() {
        if (attributeTypeCase_ == 8) {
          return (java.lang.Boolean) attributeType_;
        }
        return false;
      }
      /**
       * <code>bool nil_value = 8;</code>
       * @param value The nilValue to set.
       * @return This builder for chaining.
       */
      public Builder setNilValue(boolean value) {

        attributeTypeCase_ = 8;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool nil_value = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearNilValue() {
        if (attributeTypeCase_ == 8) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>string unsupported_value = 9;</code>
       * @return Whether the unsupportedValue field is set.
       */
      @java.lang.Override
      public boolean hasUnsupportedValue() {
        return attributeTypeCase_ == 9;
      }
      /**
       * <code>string unsupported_value = 9;</code>
       * @return The unsupportedValue.
       */
      @java.lang.Override
      public java.lang.String getUnsupportedValue() {
        java.lang.Object ref = "";
        if (attributeTypeCase_ == 9) {
          ref = attributeType_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (attributeTypeCase_ == 9) {
            attributeType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string unsupported_value = 9;</code>
       * @return The bytes for unsupportedValue.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getUnsupportedValueBytes() {
        java.lang.Object ref = "";
        if (attributeTypeCase_ == 9) {
          ref = attributeType_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (attributeTypeCase_ == 9) {
            attributeType_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string unsupported_value = 9;</code>
       * @param value The unsupportedValue to set.
       * @return This builder for chaining.
       */
      public Builder setUnsupportedValue(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 9;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string unsupported_value = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearUnsupportedValue() {
        if (attributeTypeCase_ == 9) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <code>string unsupported_value = 9;</code>
       * @param value The bytes for unsupportedValue to set.
       * @return This builder for chaining.
       */
      public Builder setUnsupportedValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        attributeTypeCase_ = 9;
        attributeType_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValueOrBuilder> temperaturePointsValueBuilder_;
      /**
       * <code>.proto.TemperaturePointsValue temperature_points_value = 20;</code>
       * @return Whether the temperaturePointsValue field is set.
       */
      @java.lang.Override
      public boolean hasTemperaturePointsValue() {
        return attributeTypeCase_ == 20;
      }
      /**
       * <code>.proto.TemperaturePointsValue temperature_points_value = 20;</code>
       * @return The temperaturePointsValue.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue getTemperaturePointsValue() {
        if (temperaturePointsValueBuilder_ == null) {
          if (attributeTypeCase_ == 20) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 20) {
            return temperaturePointsValueBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.TemperaturePointsValue temperature_points_value = 20;</code>
       */
      public Builder setTemperaturePointsValue(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue value) {
        if (temperaturePointsValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          temperaturePointsValueBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 20;
        return this;
      }
      /**
       * <code>.proto.TemperaturePointsValue temperature_points_value = 20;</code>
       */
      public Builder setTemperaturePointsValue(
          com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.Builder builderForValue) {
        if (temperaturePointsValueBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          temperaturePointsValueBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 20;
        return this;
      }
      /**
       * <code>.proto.TemperaturePointsValue temperature_points_value = 20;</code>
       */
      public Builder mergeTemperaturePointsValue(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue value) {
        if (temperaturePointsValueBuilder_ == null) {
          if (attributeTypeCase_ == 20 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 20) {
            temperaturePointsValueBuilder_.mergeFrom(value);
          } else {
            temperaturePointsValueBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 20;
        return this;
      }
      /**
       * <code>.proto.TemperaturePointsValue temperature_points_value = 20;</code>
       */
      public Builder clearTemperaturePointsValue() {
        if (temperaturePointsValueBuilder_ == null) {
          if (attributeTypeCase_ == 20) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 20) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          temperaturePointsValueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.TemperaturePointsValue temperature_points_value = 20;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.Builder getTemperaturePointsValueBuilder() {
        return internalGetTemperaturePointsValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.TemperaturePointsValue temperature_points_value = 20;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValueOrBuilder getTemperaturePointsValueOrBuilder() {
        if ((attributeTypeCase_ == 20) && (temperaturePointsValueBuilder_ != null)) {
          return temperaturePointsValueBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 20) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.TemperaturePointsValue temperature_points_value = 20;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValueOrBuilder> 
          internalGetTemperaturePointsValueFieldBuilder() {
        if (temperaturePointsValueBuilder_ == null) {
          if (!(attributeTypeCase_ == 20)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance();
          }
          temperaturePointsValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValueOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 20;
        onChanged();
        return temperaturePointsValueBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue, com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValueOrBuilder> weekdayTariffValueBuilder_;
      /**
       * <code>.proto.WeekdayTariffValue weekday_tariff_value = 21;</code>
       * @return Whether the weekdayTariffValue field is set.
       */
      @java.lang.Override
      public boolean hasWeekdayTariffValue() {
        return attributeTypeCase_ == 21;
      }
      /**
       * <code>.proto.WeekdayTariffValue weekday_tariff_value = 21;</code>
       * @return The weekdayTariffValue.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue getWeekdayTariffValue() {
        if (weekdayTariffValueBuilder_ == null) {
          if (attributeTypeCase_ == 21) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 21) {
            return weekdayTariffValueBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.WeekdayTariffValue weekday_tariff_value = 21;</code>
       */
      public Builder setWeekdayTariffValue(com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue value) {
        if (weekdayTariffValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          weekdayTariffValueBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 21;
        return this;
      }
      /**
       * <code>.proto.WeekdayTariffValue weekday_tariff_value = 21;</code>
       */
      public Builder setWeekdayTariffValue(
          com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.Builder builderForValue) {
        if (weekdayTariffValueBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          weekdayTariffValueBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 21;
        return this;
      }
      /**
       * <code>.proto.WeekdayTariffValue weekday_tariff_value = 21;</code>
       */
      public Builder mergeWeekdayTariffValue(com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue value) {
        if (weekdayTariffValueBuilder_ == null) {
          if (attributeTypeCase_ == 21 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 21) {
            weekdayTariffValueBuilder_.mergeFrom(value);
          } else {
            weekdayTariffValueBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 21;
        return this;
      }
      /**
       * <code>.proto.WeekdayTariffValue weekday_tariff_value = 21;</code>
       */
      public Builder clearWeekdayTariffValue() {
        if (weekdayTariffValueBuilder_ == null) {
          if (attributeTypeCase_ == 21) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 21) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          weekdayTariffValueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.WeekdayTariffValue weekday_tariff_value = 21;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.Builder getWeekdayTariffValueBuilder() {
        return internalGetWeekdayTariffValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.WeekdayTariffValue weekday_tariff_value = 21;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValueOrBuilder getWeekdayTariffValueOrBuilder() {
        if ((attributeTypeCase_ == 21) && (weekdayTariffValueBuilder_ != null)) {
          return weekdayTariffValueBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 21) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.WeekdayTariffValue weekday_tariff_value = 21;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue, com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValueOrBuilder> 
          internalGetWeekdayTariffValueFieldBuilder() {
        if (weekdayTariffValueBuilder_ == null) {
          if (!(attributeTypeCase_ == 21)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance();
          }
          weekdayTariffValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue, com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValueOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 21;
        onChanged();
        return weekdayTariffValueBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue, com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValueOrBuilder> weekendTariffValueBuilder_;
      /**
       * <code>.proto.WeekendTariffValue weekend_tariff_value = 22;</code>
       * @return Whether the weekendTariffValue field is set.
       */
      @java.lang.Override
      public boolean hasWeekendTariffValue() {
        return attributeTypeCase_ == 22;
      }
      /**
       * <code>.proto.WeekendTariffValue weekend_tariff_value = 22;</code>
       * @return The weekendTariffValue.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue getWeekendTariffValue() {
        if (weekendTariffValueBuilder_ == null) {
          if (attributeTypeCase_ == 22) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 22) {
            return weekendTariffValueBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.WeekendTariffValue weekend_tariff_value = 22;</code>
       */
      public Builder setWeekendTariffValue(com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue value) {
        if (weekendTariffValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          weekendTariffValueBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 22;
        return this;
      }
      /**
       * <code>.proto.WeekendTariffValue weekend_tariff_value = 22;</code>
       */
      public Builder setWeekendTariffValue(
          com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.Builder builderForValue) {
        if (weekendTariffValueBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          weekendTariffValueBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 22;
        return this;
      }
      /**
       * <code>.proto.WeekendTariffValue weekend_tariff_value = 22;</code>
       */
      public Builder mergeWeekendTariffValue(com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue value) {
        if (weekendTariffValueBuilder_ == null) {
          if (attributeTypeCase_ == 22 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 22) {
            weekendTariffValueBuilder_.mergeFrom(value);
          } else {
            weekendTariffValueBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 22;
        return this;
      }
      /**
       * <code>.proto.WeekendTariffValue weekend_tariff_value = 22;</code>
       */
      public Builder clearWeekendTariffValue() {
        if (weekendTariffValueBuilder_ == null) {
          if (attributeTypeCase_ == 22) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 22) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          weekendTariffValueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.WeekendTariffValue weekend_tariff_value = 22;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.Builder getWeekendTariffValueBuilder() {
        return internalGetWeekendTariffValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.WeekendTariffValue weekend_tariff_value = 22;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValueOrBuilder getWeekendTariffValueOrBuilder() {
        if ((attributeTypeCase_ == 22) && (weekendTariffValueBuilder_ != null)) {
          return weekendTariffValueBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 22) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.WeekendTariffValue weekend_tariff_value = 22;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue, com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValueOrBuilder> 
          internalGetWeekendTariffValueFieldBuilder() {
        if (weekendTariffValueBuilder_ == null) {
          if (!(attributeTypeCase_ == 22)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance();
          }
          weekendTariffValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue, com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValueOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 22;
        onChanged();
        return weekendTariffValueBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValueOrBuilder> stateOfChargeProfileValueBuilder_;
      /**
       * <code>.proto.StateOfChargeProfileValue state_of_charge_profile_value = 23;</code>
       * @return Whether the stateOfChargeProfileValue field is set.
       */
      @java.lang.Override
      public boolean hasStateOfChargeProfileValue() {
        return attributeTypeCase_ == 23;
      }
      /**
       * <code>.proto.StateOfChargeProfileValue state_of_charge_profile_value = 23;</code>
       * @return The stateOfChargeProfileValue.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue getStateOfChargeProfileValue() {
        if (stateOfChargeProfileValueBuilder_ == null) {
          if (attributeTypeCase_ == 23) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 23) {
            return stateOfChargeProfileValueBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.StateOfChargeProfileValue state_of_charge_profile_value = 23;</code>
       */
      public Builder setStateOfChargeProfileValue(com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue value) {
        if (stateOfChargeProfileValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          stateOfChargeProfileValueBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 23;
        return this;
      }
      /**
       * <code>.proto.StateOfChargeProfileValue state_of_charge_profile_value = 23;</code>
       */
      public Builder setStateOfChargeProfileValue(
          com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.Builder builderForValue) {
        if (stateOfChargeProfileValueBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          stateOfChargeProfileValueBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 23;
        return this;
      }
      /**
       * <code>.proto.StateOfChargeProfileValue state_of_charge_profile_value = 23;</code>
       */
      public Builder mergeStateOfChargeProfileValue(com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue value) {
        if (stateOfChargeProfileValueBuilder_ == null) {
          if (attributeTypeCase_ == 23 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 23) {
            stateOfChargeProfileValueBuilder_.mergeFrom(value);
          } else {
            stateOfChargeProfileValueBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 23;
        return this;
      }
      /**
       * <code>.proto.StateOfChargeProfileValue state_of_charge_profile_value = 23;</code>
       */
      public Builder clearStateOfChargeProfileValue() {
        if (stateOfChargeProfileValueBuilder_ == null) {
          if (attributeTypeCase_ == 23) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 23) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          stateOfChargeProfileValueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.StateOfChargeProfileValue state_of_charge_profile_value = 23;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.Builder getStateOfChargeProfileValueBuilder() {
        return internalGetStateOfChargeProfileValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.StateOfChargeProfileValue state_of_charge_profile_value = 23;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValueOrBuilder getStateOfChargeProfileValueOrBuilder() {
        if ((attributeTypeCase_ == 23) && (stateOfChargeProfileValueBuilder_ != null)) {
          return stateOfChargeProfileValueBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 23) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.StateOfChargeProfileValue state_of_charge_profile_value = 23;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValueOrBuilder> 
          internalGetStateOfChargeProfileValueFieldBuilder() {
        if (stateOfChargeProfileValueBuilder_ == null) {
          if (!(attributeTypeCase_ == 23)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance();
          }
          stateOfChargeProfileValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValueOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 23;
        onChanged();
        return stateOfChargeProfileValueBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValueOrBuilder> weeklySettingsHeadUnitValueBuilder_;
      /**
       * <code>.proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24;</code>
       * @return Whether the weeklySettingsHeadUnitValue field is set.
       */
      @java.lang.Override
      public boolean hasWeeklySettingsHeadUnitValue() {
        return attributeTypeCase_ == 24;
      }
      /**
       * <code>.proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24;</code>
       * @return The weeklySettingsHeadUnitValue.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue getWeeklySettingsHeadUnitValue() {
        if (weeklySettingsHeadUnitValueBuilder_ == null) {
          if (attributeTypeCase_ == 24) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 24) {
            return weeklySettingsHeadUnitValueBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24;</code>
       */
      public Builder setWeeklySettingsHeadUnitValue(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue value) {
        if (weeklySettingsHeadUnitValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          weeklySettingsHeadUnitValueBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 24;
        return this;
      }
      /**
       * <code>.proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24;</code>
       */
      public Builder setWeeklySettingsHeadUnitValue(
          com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.Builder builderForValue) {
        if (weeklySettingsHeadUnitValueBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          weeklySettingsHeadUnitValueBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 24;
        return this;
      }
      /**
       * <code>.proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24;</code>
       */
      public Builder mergeWeeklySettingsHeadUnitValue(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue value) {
        if (weeklySettingsHeadUnitValueBuilder_ == null) {
          if (attributeTypeCase_ == 24 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 24) {
            weeklySettingsHeadUnitValueBuilder_.mergeFrom(value);
          } else {
            weeklySettingsHeadUnitValueBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 24;
        return this;
      }
      /**
       * <code>.proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24;</code>
       */
      public Builder clearWeeklySettingsHeadUnitValue() {
        if (weeklySettingsHeadUnitValueBuilder_ == null) {
          if (attributeTypeCase_ == 24) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 24) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          weeklySettingsHeadUnitValueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.Builder getWeeklySettingsHeadUnitValueBuilder() {
        return internalGetWeeklySettingsHeadUnitValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValueOrBuilder getWeeklySettingsHeadUnitValueOrBuilder() {
        if ((attributeTypeCase_ == 24) && (weeklySettingsHeadUnitValueBuilder_ != null)) {
          return weeklySettingsHeadUnitValueBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 24) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValueOrBuilder> 
          internalGetWeeklySettingsHeadUnitValueFieldBuilder() {
        if (weeklySettingsHeadUnitValueBuilder_ == null) {
          if (!(attributeTypeCase_ == 24)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance();
          }
          weeklySettingsHeadUnitValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValueOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 24;
        onChanged();
        return weeklySettingsHeadUnitValueBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValueOrBuilder> speedAlertConfigurationValueBuilder_;
      /**
       * <code>.proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27;</code>
       * @return Whether the speedAlertConfigurationValue field is set.
       */
      @java.lang.Override
      public boolean hasSpeedAlertConfigurationValue() {
        return attributeTypeCase_ == 27;
      }
      /**
       * <code>.proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27;</code>
       * @return The speedAlertConfigurationValue.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue getSpeedAlertConfigurationValue() {
        if (speedAlertConfigurationValueBuilder_ == null) {
          if (attributeTypeCase_ == 27) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 27) {
            return speedAlertConfigurationValueBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27;</code>
       */
      public Builder setSpeedAlertConfigurationValue(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue value) {
        if (speedAlertConfigurationValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          speedAlertConfigurationValueBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 27;
        return this;
      }
      /**
       * <code>.proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27;</code>
       */
      public Builder setSpeedAlertConfigurationValue(
          com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.Builder builderForValue) {
        if (speedAlertConfigurationValueBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          speedAlertConfigurationValueBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 27;
        return this;
      }
      /**
       * <code>.proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27;</code>
       */
      public Builder mergeSpeedAlertConfigurationValue(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue value) {
        if (speedAlertConfigurationValueBuilder_ == null) {
          if (attributeTypeCase_ == 27 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 27) {
            speedAlertConfigurationValueBuilder_.mergeFrom(value);
          } else {
            speedAlertConfigurationValueBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 27;
        return this;
      }
      /**
       * <code>.proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27;</code>
       */
      public Builder clearSpeedAlertConfigurationValue() {
        if (speedAlertConfigurationValueBuilder_ == null) {
          if (attributeTypeCase_ == 27) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 27) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          speedAlertConfigurationValueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.Builder getSpeedAlertConfigurationValueBuilder() {
        return internalGetSpeedAlertConfigurationValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValueOrBuilder getSpeedAlertConfigurationValueOrBuilder() {
        if ((attributeTypeCase_ == 27) && (speedAlertConfigurationValueBuilder_ != null)) {
          return speedAlertConfigurationValueBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 27) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValueOrBuilder> 
          internalGetSpeedAlertConfigurationValueFieldBuilder() {
        if (speedAlertConfigurationValueBuilder_ == null) {
          if (!(attributeTypeCase_ == 27)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance();
          }
          speedAlertConfigurationValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValueOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 27;
        onChanged();
        return speedAlertConfigurationValueBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValueOrBuilder> ecoHistogramValueBuilder_;
      /**
       * <code>.proto.EcoHistogramValue eco_histogram_value = 28;</code>
       * @return Whether the ecoHistogramValue field is set.
       */
      @java.lang.Override
      public boolean hasEcoHistogramValue() {
        return attributeTypeCase_ == 28;
      }
      /**
       * <code>.proto.EcoHistogramValue eco_histogram_value = 28;</code>
       * @return The ecoHistogramValue.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue getEcoHistogramValue() {
        if (ecoHistogramValueBuilder_ == null) {
          if (attributeTypeCase_ == 28) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 28) {
            return ecoHistogramValueBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.EcoHistogramValue eco_histogram_value = 28;</code>
       */
      public Builder setEcoHistogramValue(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue value) {
        if (ecoHistogramValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          ecoHistogramValueBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 28;
        return this;
      }
      /**
       * <code>.proto.EcoHistogramValue eco_histogram_value = 28;</code>
       */
      public Builder setEcoHistogramValue(
          com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.Builder builderForValue) {
        if (ecoHistogramValueBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          ecoHistogramValueBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 28;
        return this;
      }
      /**
       * <code>.proto.EcoHistogramValue eco_histogram_value = 28;</code>
       */
      public Builder mergeEcoHistogramValue(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue value) {
        if (ecoHistogramValueBuilder_ == null) {
          if (attributeTypeCase_ == 28 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 28) {
            ecoHistogramValueBuilder_.mergeFrom(value);
          } else {
            ecoHistogramValueBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 28;
        return this;
      }
      /**
       * <code>.proto.EcoHistogramValue eco_histogram_value = 28;</code>
       */
      public Builder clearEcoHistogramValue() {
        if (ecoHistogramValueBuilder_ == null) {
          if (attributeTypeCase_ == 28) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 28) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          ecoHistogramValueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.EcoHistogramValue eco_histogram_value = 28;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.Builder getEcoHistogramValueBuilder() {
        return internalGetEcoHistogramValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.EcoHistogramValue eco_histogram_value = 28;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValueOrBuilder getEcoHistogramValueOrBuilder() {
        if ((attributeTypeCase_ == 28) && (ecoHistogramValueBuilder_ != null)) {
          return ecoHistogramValueBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 28) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.EcoHistogramValue eco_histogram_value = 28;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValueOrBuilder> 
          internalGetEcoHistogramValueFieldBuilder() {
        if (ecoHistogramValueBuilder_ == null) {
          if (!(attributeTypeCase_ == 28)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance();
          }
          ecoHistogramValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValueOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 28;
        onChanged();
        return ecoHistogramValueBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue, com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValueOrBuilder> weeklyProfileValueBuilder_;
      /**
       * <code>.proto.WeeklyProfileValue weekly_profile_value = 29;</code>
       * @return Whether the weeklyProfileValue field is set.
       */
      @java.lang.Override
      public boolean hasWeeklyProfileValue() {
        return attributeTypeCase_ == 29;
      }
      /**
       * <code>.proto.WeeklyProfileValue weekly_profile_value = 29;</code>
       * @return The weeklyProfileValue.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue getWeeklyProfileValue() {
        if (weeklyProfileValueBuilder_ == null) {
          if (attributeTypeCase_ == 29) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 29) {
            return weeklyProfileValueBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.WeeklyProfileValue weekly_profile_value = 29;</code>
       */
      public Builder setWeeklyProfileValue(com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue value) {
        if (weeklyProfileValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          weeklyProfileValueBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 29;
        return this;
      }
      /**
       * <code>.proto.WeeklyProfileValue weekly_profile_value = 29;</code>
       */
      public Builder setWeeklyProfileValue(
          com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.Builder builderForValue) {
        if (weeklyProfileValueBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          weeklyProfileValueBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 29;
        return this;
      }
      /**
       * <code>.proto.WeeklyProfileValue weekly_profile_value = 29;</code>
       */
      public Builder mergeWeeklyProfileValue(com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue value) {
        if (weeklyProfileValueBuilder_ == null) {
          if (attributeTypeCase_ == 29 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 29) {
            weeklyProfileValueBuilder_.mergeFrom(value);
          } else {
            weeklyProfileValueBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 29;
        return this;
      }
      /**
       * <code>.proto.WeeklyProfileValue weekly_profile_value = 29;</code>
       */
      public Builder clearWeeklyProfileValue() {
        if (weeklyProfileValueBuilder_ == null) {
          if (attributeTypeCase_ == 29) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 29) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          weeklyProfileValueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.WeeklyProfileValue weekly_profile_value = 29;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.Builder getWeeklyProfileValueBuilder() {
        return internalGetWeeklyProfileValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.WeeklyProfileValue weekly_profile_value = 29;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValueOrBuilder getWeeklyProfileValueOrBuilder() {
        if ((attributeTypeCase_ == 29) && (weeklyProfileValueBuilder_ != null)) {
          return weeklyProfileValueBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 29) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.WeeklyProfileValue weekly_profile_value = 29;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue, com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValueOrBuilder> 
          internalGetWeeklyProfileValueFieldBuilder() {
        if (weeklyProfileValueBuilder_ == null) {
          if (!(attributeTypeCase_ == 29)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance();
          }
          weeklyProfileValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue, com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValueOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 29;
        onChanged();
        return weeklyProfileValueBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValueOrBuilder> chargeProgramsValueBuilder_;
      /**
       * <code>.proto.ChargeProgramsValue charge_programs_value = 31;</code>
       * @return Whether the chargeProgramsValue field is set.
       */
      @java.lang.Override
      public boolean hasChargeProgramsValue() {
        return attributeTypeCase_ == 31;
      }
      /**
       * <code>.proto.ChargeProgramsValue charge_programs_value = 31;</code>
       * @return The chargeProgramsValue.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue getChargeProgramsValue() {
        if (chargeProgramsValueBuilder_ == null) {
          if (attributeTypeCase_ == 31) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 31) {
            return chargeProgramsValueBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargeProgramsValue charge_programs_value = 31;</code>
       */
      public Builder setChargeProgramsValue(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue value) {
        if (chargeProgramsValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          chargeProgramsValueBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 31;
        return this;
      }
      /**
       * <code>.proto.ChargeProgramsValue charge_programs_value = 31;</code>
       */
      public Builder setChargeProgramsValue(
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.Builder builderForValue) {
        if (chargeProgramsValueBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          chargeProgramsValueBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 31;
        return this;
      }
      /**
       * <code>.proto.ChargeProgramsValue charge_programs_value = 31;</code>
       */
      public Builder mergeChargeProgramsValue(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue value) {
        if (chargeProgramsValueBuilder_ == null) {
          if (attributeTypeCase_ == 31 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 31) {
            chargeProgramsValueBuilder_.mergeFrom(value);
          } else {
            chargeProgramsValueBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 31;
        return this;
      }
      /**
       * <code>.proto.ChargeProgramsValue charge_programs_value = 31;</code>
       */
      public Builder clearChargeProgramsValue() {
        if (chargeProgramsValueBuilder_ == null) {
          if (attributeTypeCase_ == 31) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 31) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          chargeProgramsValueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.ChargeProgramsValue charge_programs_value = 31;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.Builder getChargeProgramsValueBuilder() {
        return internalGetChargeProgramsValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.ChargeProgramsValue charge_programs_value = 31;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValueOrBuilder getChargeProgramsValueOrBuilder() {
        if ((attributeTypeCase_ == 31) && (chargeProgramsValueBuilder_ != null)) {
          return chargeProgramsValueBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 31) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargeProgramsValue charge_programs_value = 31;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValueOrBuilder> 
          internalGetChargeProgramsValueFieldBuilder() {
        if (chargeProgramsValueBuilder_ == null) {
          if (!(attributeTypeCase_ == 31)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance();
          }
          chargeProgramsValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValueOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 31;
        onChanged();
        return chargeProgramsValueBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValueOrBuilder> chargingbreakClocktimerValueBuilder_;
      /**
       * <code>.proto.ChargingBreakClockTimerValue chargingbreak_clocktimer_value = 32;</code>
       * @return Whether the chargingbreakClocktimerValue field is set.
       */
      @java.lang.Override
      public boolean hasChargingbreakClocktimerValue() {
        return attributeTypeCase_ == 32;
      }
      /**
       * <code>.proto.ChargingBreakClockTimerValue chargingbreak_clocktimer_value = 32;</code>
       * @return The chargingbreakClocktimerValue.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue getChargingbreakClocktimerValue() {
        if (chargingbreakClocktimerValueBuilder_ == null) {
          if (attributeTypeCase_ == 32) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 32) {
            return chargingbreakClocktimerValueBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargingBreakClockTimerValue chargingbreak_clocktimer_value = 32;</code>
       */
      public Builder setChargingbreakClocktimerValue(com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue value) {
        if (chargingbreakClocktimerValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          chargingbreakClocktimerValueBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 32;
        return this;
      }
      /**
       * <code>.proto.ChargingBreakClockTimerValue chargingbreak_clocktimer_value = 32;</code>
       */
      public Builder setChargingbreakClocktimerValue(
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.Builder builderForValue) {
        if (chargingbreakClocktimerValueBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          chargingbreakClocktimerValueBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 32;
        return this;
      }
      /**
       * <code>.proto.ChargingBreakClockTimerValue chargingbreak_clocktimer_value = 32;</code>
       */
      public Builder mergeChargingbreakClocktimerValue(com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue value) {
        if (chargingbreakClocktimerValueBuilder_ == null) {
          if (attributeTypeCase_ == 32 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 32) {
            chargingbreakClocktimerValueBuilder_.mergeFrom(value);
          } else {
            chargingbreakClocktimerValueBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 32;
        return this;
      }
      /**
       * <code>.proto.ChargingBreakClockTimerValue chargingbreak_clocktimer_value = 32;</code>
       */
      public Builder clearChargingbreakClocktimerValue() {
        if (chargingbreakClocktimerValueBuilder_ == null) {
          if (attributeTypeCase_ == 32) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 32) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          chargingbreakClocktimerValueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.ChargingBreakClockTimerValue chargingbreak_clocktimer_value = 32;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.Builder getChargingbreakClocktimerValueBuilder() {
        return internalGetChargingbreakClocktimerValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.ChargingBreakClockTimerValue chargingbreak_clocktimer_value = 32;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValueOrBuilder getChargingbreakClocktimerValueOrBuilder() {
        if ((attributeTypeCase_ == 32) && (chargingbreakClocktimerValueBuilder_ != null)) {
          return chargingbreakClocktimerValueBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 32) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargingBreakClockTimerValue chargingbreak_clocktimer_value = 32;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValueOrBuilder> 
          internalGetChargingbreakClocktimerValueFieldBuilder() {
        if (chargingbreakClocktimerValueBuilder_ == null) {
          if (!(attributeTypeCase_ == 32)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.getDefaultInstance();
          }
          chargingbreakClocktimerValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValueOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 32;
        onChanged();
        return chargingbreakClocktimerValueBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControlOrBuilder> chargingPowerControlBuilder_;
      /**
       * <code>.proto.ChargingPowerControl charging_power_control = 33;</code>
       * @return Whether the chargingPowerControl field is set.
       */
      @java.lang.Override
      public boolean hasChargingPowerControl() {
        return attributeTypeCase_ == 33;
      }
      /**
       * <code>.proto.ChargingPowerControl charging_power_control = 33;</code>
       * @return The chargingPowerControl.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl getChargingPowerControl() {
        if (chargingPowerControlBuilder_ == null) {
          if (attributeTypeCase_ == 33) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 33) {
            return chargingPowerControlBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargingPowerControl charging_power_control = 33;</code>
       */
      public Builder setChargingPowerControl(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl value) {
        if (chargingPowerControlBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          chargingPowerControlBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 33;
        return this;
      }
      /**
       * <code>.proto.ChargingPowerControl charging_power_control = 33;</code>
       */
      public Builder setChargingPowerControl(
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.Builder builderForValue) {
        if (chargingPowerControlBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          chargingPowerControlBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 33;
        return this;
      }
      /**
       * <code>.proto.ChargingPowerControl charging_power_control = 33;</code>
       */
      public Builder mergeChargingPowerControl(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl value) {
        if (chargingPowerControlBuilder_ == null) {
          if (attributeTypeCase_ == 33 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 33) {
            chargingPowerControlBuilder_.mergeFrom(value);
          } else {
            chargingPowerControlBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 33;
        return this;
      }
      /**
       * <code>.proto.ChargingPowerControl charging_power_control = 33;</code>
       */
      public Builder clearChargingPowerControl() {
        if (chargingPowerControlBuilder_ == null) {
          if (attributeTypeCase_ == 33) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 33) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          chargingPowerControlBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.ChargingPowerControl charging_power_control = 33;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.Builder getChargingPowerControlBuilder() {
        return internalGetChargingPowerControlFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.ChargingPowerControl charging_power_control = 33;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControlOrBuilder getChargingPowerControlOrBuilder() {
        if ((attributeTypeCase_ == 33) && (chargingPowerControlBuilder_ != null)) {
          return chargingPowerControlBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 33) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargingPowerControl charging_power_control = 33;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControlOrBuilder> 
          internalGetChargingPowerControlFieldBuilder() {
        if (chargingPowerControlBuilder_ == null) {
          if (!(attributeTypeCase_ == 33)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.getDefaultInstance();
          }
          chargingPowerControlBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControlOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 33;
        onChanged();
        return chargingPowerControlBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue, com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValueOrBuilder> keylineActivationStateValueBuilder_;
      /**
       * <code>.proto.KeylineActivationStateValue keyline_activation_state_value = 36;</code>
       * @return Whether the keylineActivationStateValue field is set.
       */
      @java.lang.Override
      public boolean hasKeylineActivationStateValue() {
        return attributeTypeCase_ == 36;
      }
      /**
       * <code>.proto.KeylineActivationStateValue keyline_activation_state_value = 36;</code>
       * @return The keylineActivationStateValue.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue getKeylineActivationStateValue() {
        if (keylineActivationStateValueBuilder_ == null) {
          if (attributeTypeCase_ == 36) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 36) {
            return keylineActivationStateValueBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.KeylineActivationStateValue keyline_activation_state_value = 36;</code>
       */
      public Builder setKeylineActivationStateValue(com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue value) {
        if (keylineActivationStateValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          keylineActivationStateValueBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 36;
        return this;
      }
      /**
       * <code>.proto.KeylineActivationStateValue keyline_activation_state_value = 36;</code>
       */
      public Builder setKeylineActivationStateValue(
          com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.Builder builderForValue) {
        if (keylineActivationStateValueBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          keylineActivationStateValueBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 36;
        return this;
      }
      /**
       * <code>.proto.KeylineActivationStateValue keyline_activation_state_value = 36;</code>
       */
      public Builder mergeKeylineActivationStateValue(com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue value) {
        if (keylineActivationStateValueBuilder_ == null) {
          if (attributeTypeCase_ == 36 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 36) {
            keylineActivationStateValueBuilder_.mergeFrom(value);
          } else {
            keylineActivationStateValueBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 36;
        return this;
      }
      /**
       * <code>.proto.KeylineActivationStateValue keyline_activation_state_value = 36;</code>
       */
      public Builder clearKeylineActivationStateValue() {
        if (keylineActivationStateValueBuilder_ == null) {
          if (attributeTypeCase_ == 36) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 36) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          keylineActivationStateValueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.KeylineActivationStateValue keyline_activation_state_value = 36;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.Builder getKeylineActivationStateValueBuilder() {
        return internalGetKeylineActivationStateValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.KeylineActivationStateValue keyline_activation_state_value = 36;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValueOrBuilder getKeylineActivationStateValueOrBuilder() {
        if ((attributeTypeCase_ == 36) && (keylineActivationStateValueBuilder_ != null)) {
          return keylineActivationStateValueBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 36) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.KeylineActivationStateValue keyline_activation_state_value = 36;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue, com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValueOrBuilder> 
          internalGetKeylineActivationStateValueFieldBuilder() {
        if (keylineActivationStateValueBuilder_ == null) {
          if (!(attributeTypeCase_ == 36)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.getDefaultInstance();
          }
          keylineActivationStateValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue, com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValueOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 36;
        onChanged();
        return keylineActivationStateValueBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue, com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValueOrBuilder> nextDepartureTimeValueBuilder_;
      /**
       * <code>.proto.NextDepartureTimeValue next_departure_time_value = 37;</code>
       * @return Whether the nextDepartureTimeValue field is set.
       */
      @java.lang.Override
      public boolean hasNextDepartureTimeValue() {
        return attributeTypeCase_ == 37;
      }
      /**
       * <code>.proto.NextDepartureTimeValue next_departure_time_value = 37;</code>
       * @return The nextDepartureTimeValue.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue getNextDepartureTimeValue() {
        if (nextDepartureTimeValueBuilder_ == null) {
          if (attributeTypeCase_ == 37) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 37) {
            return nextDepartureTimeValueBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.NextDepartureTimeValue next_departure_time_value = 37;</code>
       */
      public Builder setNextDepartureTimeValue(com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue value) {
        if (nextDepartureTimeValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          nextDepartureTimeValueBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 37;
        return this;
      }
      /**
       * <code>.proto.NextDepartureTimeValue next_departure_time_value = 37;</code>
       */
      public Builder setNextDepartureTimeValue(
          com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.Builder builderForValue) {
        if (nextDepartureTimeValueBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          nextDepartureTimeValueBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 37;
        return this;
      }
      /**
       * <code>.proto.NextDepartureTimeValue next_departure_time_value = 37;</code>
       */
      public Builder mergeNextDepartureTimeValue(com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue value) {
        if (nextDepartureTimeValueBuilder_ == null) {
          if (attributeTypeCase_ == 37 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 37) {
            nextDepartureTimeValueBuilder_.mergeFrom(value);
          } else {
            nextDepartureTimeValueBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 37;
        return this;
      }
      /**
       * <code>.proto.NextDepartureTimeValue next_departure_time_value = 37;</code>
       */
      public Builder clearNextDepartureTimeValue() {
        if (nextDepartureTimeValueBuilder_ == null) {
          if (attributeTypeCase_ == 37) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 37) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          nextDepartureTimeValueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.NextDepartureTimeValue next_departure_time_value = 37;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.Builder getNextDepartureTimeValueBuilder() {
        return internalGetNextDepartureTimeValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.NextDepartureTimeValue next_departure_time_value = 37;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValueOrBuilder getNextDepartureTimeValueOrBuilder() {
        if ((attributeTypeCase_ == 37) && (nextDepartureTimeValueBuilder_ != null)) {
          return nextDepartureTimeValueBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 37) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.NextDepartureTimeValue next_departure_time_value = 37;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue, com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValueOrBuilder> 
          internalGetNextDepartureTimeValueFieldBuilder() {
        if (nextDepartureTimeValueBuilder_ == null) {
          if (!(attributeTypeCase_ == 37)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.getDefaultInstance();
          }
          nextDepartureTimeValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue, com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValueOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 37;
        onChanged();
        return nextDepartureTimeValueBuilder_;
      }

      /**
       * <code>.proto.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus tcu_connection_state_low_channel = 38;</code>
       * @return Whether the tcuConnectionStateLowChannel field is set.
       */
      @java.lang.Override
      public boolean hasTcuConnectionStateLowChannel() {
        return attributeTypeCase_ == 38;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus tcu_connection_state_low_channel = 38;</code>
       * @return The enum numeric value on the wire for tcuConnectionStateLowChannel.
       */
      @java.lang.Override
      public int getTcuConnectionStateLowChannelValue() {
        if (attributeTypeCase_ == 38) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus tcu_connection_state_low_channel = 38;</code>
       * @param value The enum numeric value on the wire for tcuConnectionStateLowChannel to set.
       * @return This builder for chaining.
       */
      public Builder setTcuConnectionStateLowChannelValue(int value) {
        attributeTypeCase_ = 38;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus tcu_connection_state_low_channel = 38;</code>
       * @return The tcuConnectionStateLowChannel.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus getTcuConnectionStateLowChannel() {
        if (attributeTypeCase_ == 38) {
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus.UNKNOWN_TCU_CONNECTION_STATE;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus tcu_connection_state_low_channel = 38;</code>
       * @param value The tcuConnectionStateLowChannel to set.
       * @return This builder for chaining.
       */
      public Builder setTcuConnectionStateLowChannel(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 38;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.TcuConnectionStateLowChannelStatus tcu_connection_state_low_channel = 38;</code>
       * @return This builder for chaining.
       */
      public Builder clearTcuConnectionStateLowChannel() {
        if (attributeTypeCase_ == 38) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.TurnOffEnginePreWarning turn_off_engine_pre_warning = 39;</code>
       * @return Whether the turnOffEnginePreWarning field is set.
       */
      @java.lang.Override
      public boolean hasTurnOffEnginePreWarning() {
        return attributeTypeCase_ == 39;
      }
      /**
       * <code>.proto.TurnOffEnginePreWarning turn_off_engine_pre_warning = 39;</code>
       * @return The enum numeric value on the wire for turnOffEnginePreWarning.
       */
      @java.lang.Override
      public int getTurnOffEnginePreWarningValue() {
        if (attributeTypeCase_ == 39) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.TurnOffEnginePreWarning turn_off_engine_pre_warning = 39;</code>
       * @param value The enum numeric value on the wire for turnOffEnginePreWarning to set.
       * @return This builder for chaining.
       */
      public Builder setTurnOffEnginePreWarningValue(int value) {
        attributeTypeCase_ = 39;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.TurnOffEnginePreWarning turn_off_engine_pre_warning = 39;</code>
       * @return The turnOffEnginePreWarning.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.TurnOffEnginePreWarning getTurnOffEnginePreWarning() {
        if (attributeTypeCase_ == 39) {
          com.daimler.mbcarkit.proto.VehicleEvents.TurnOffEnginePreWarning result = com.daimler.mbcarkit.proto.VehicleEvents.TurnOffEnginePreWarning.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.TurnOffEnginePreWarning.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.TurnOffEnginePreWarning.NO_MESSAGE_ACTIVE;
      }
      /**
       * <code>.proto.TurnOffEnginePreWarning turn_off_engine_pre_warning = 39;</code>
       * @param value The turnOffEnginePreWarning to set.
       * @return This builder for chaining.
       */
      public Builder setTurnOffEnginePreWarning(com.daimler.mbcarkit.proto.VehicleEvents.TurnOffEnginePreWarning value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 39;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.TurnOffEnginePreWarning turn_off_engine_pre_warning = 39;</code>
       * @return This builder for chaining.
       */
      public Builder clearTurnOffEnginePreWarning() {
        if (attributeTypeCase_ == 39) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.ChildPresenceDetectionWarningLastEvent child_presence_detection_warning_last_event = 40;</code>
       * @return Whether the childPresenceDetectionWarningLastEvent field is set.
       */
      @java.lang.Override
      public boolean hasChildPresenceDetectionWarningLastEvent() {
        return attributeTypeCase_ == 40;
      }
      /**
       * <code>.proto.ChildPresenceDetectionWarningLastEvent child_presence_detection_warning_last_event = 40;</code>
       * @return The enum numeric value on the wire for childPresenceDetectionWarningLastEvent.
       */
      @java.lang.Override
      public int getChildPresenceDetectionWarningLastEventValue() {
        if (attributeTypeCase_ == 40) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.ChildPresenceDetectionWarningLastEvent child_presence_detection_warning_last_event = 40;</code>
       * @param value The enum numeric value on the wire for childPresenceDetectionWarningLastEvent to set.
       * @return This builder for chaining.
       */
      public Builder setChildPresenceDetectionWarningLastEventValue(int value) {
        attributeTypeCase_ = 40;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChildPresenceDetectionWarningLastEvent child_presence_detection_warning_last_event = 40;</code>
       * @return The childPresenceDetectionWarningLastEvent.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLastEvent getChildPresenceDetectionWarningLastEvent() {
        if (attributeTypeCase_ == 40) {
          com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLastEvent result = com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLastEvent.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLastEvent.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLastEvent.NO_WARNING_INITIAL;
      }
      /**
       * <code>.proto.ChildPresenceDetectionWarningLastEvent child_presence_detection_warning_last_event = 40;</code>
       * @param value The childPresenceDetectionWarningLastEvent to set.
       * @return This builder for chaining.
       */
      public Builder setChildPresenceDetectionWarningLastEvent(com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLastEvent value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 40;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChildPresenceDetectionWarningLastEvent child_presence_detection_warning_last_event = 40;</code>
       * @return This builder for chaining.
       */
      public Builder clearChildPresenceDetectionWarningLastEvent() {
        if (attributeTypeCase_ == 40) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.ChildPresenceDetectionWarningLevel child_presence_detection_warning_level = 41;</code>
       * @return Whether the childPresenceDetectionWarningLevel field is set.
       */
      @java.lang.Override
      public boolean hasChildPresenceDetectionWarningLevel() {
        return attributeTypeCase_ == 41;
      }
      /**
       * <code>.proto.ChildPresenceDetectionWarningLevel child_presence_detection_warning_level = 41;</code>
       * @return The enum numeric value on the wire for childPresenceDetectionWarningLevel.
       */
      @java.lang.Override
      public int getChildPresenceDetectionWarningLevelValue() {
        if (attributeTypeCase_ == 41) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.ChildPresenceDetectionWarningLevel child_presence_detection_warning_level = 41;</code>
       * @param value The enum numeric value on the wire for childPresenceDetectionWarningLevel to set.
       * @return This builder for chaining.
       */
      public Builder setChildPresenceDetectionWarningLevelValue(int value) {
        attributeTypeCase_ = 41;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChildPresenceDetectionWarningLevel child_presence_detection_warning_level = 41;</code>
       * @return The childPresenceDetectionWarningLevel.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLevel getChildPresenceDetectionWarningLevel() {
        if (attributeTypeCase_ == 41) {
          com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLevel result = com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLevel.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLevel.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLevel.NO_WARNING;
      }
      /**
       * <code>.proto.ChildPresenceDetectionWarningLevel child_presence_detection_warning_level = 41;</code>
       * @param value The childPresenceDetectionWarningLevel to set.
       * @return This builder for chaining.
       */
      public Builder setChildPresenceDetectionWarningLevel(com.daimler.mbcarkit.proto.VehicleEvents.ChildPresenceDetectionWarningLevel value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 41;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChildPresenceDetectionWarningLevel child_presence_detection_warning_level = 41;</code>
       * @return This builder for chaining.
       */
      public Builder clearChildPresenceDetectionWarningLevel() {
        if (attributeTypeCase_ == 41) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.PerformanceLimitationModeStatus performance_limitation_mode_status = 42;</code>
       * @return Whether the performanceLimitationModeStatus field is set.
       */
      @java.lang.Override
      public boolean hasPerformanceLimitationModeStatus() {
        return attributeTypeCase_ == 42;
      }
      /**
       * <code>.proto.PerformanceLimitationModeStatus performance_limitation_mode_status = 42;</code>
       * @return The enum numeric value on the wire for performanceLimitationModeStatus.
       */
      @java.lang.Override
      public int getPerformanceLimitationModeStatusValue() {
        if (attributeTypeCase_ == 42) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.PerformanceLimitationModeStatus performance_limitation_mode_status = 42;</code>
       * @param value The enum numeric value on the wire for performanceLimitationModeStatus to set.
       * @return This builder for chaining.
       */
      public Builder setPerformanceLimitationModeStatusValue(int value) {
        attributeTypeCase_ = 42;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.PerformanceLimitationModeStatus performance_limitation_mode_status = 42;</code>
       * @return The performanceLimitationModeStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PerformanceLimitationModeStatus getPerformanceLimitationModeStatus() {
        if (attributeTypeCase_ == 42) {
          com.daimler.mbcarkit.proto.VehicleEvents.PerformanceLimitationModeStatus result = com.daimler.mbcarkit.proto.VehicleEvents.PerformanceLimitationModeStatus.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.PerformanceLimitationModeStatus.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.PerformanceLimitationModeStatus.PLM_NO_WARNING;
      }
      /**
       * <code>.proto.PerformanceLimitationModeStatus performance_limitation_mode_status = 42;</code>
       * @param value The performanceLimitationModeStatus to set.
       * @return This builder for chaining.
       */
      public Builder setPerformanceLimitationModeStatus(com.daimler.mbcarkit.proto.VehicleEvents.PerformanceLimitationModeStatus value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 42;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.PerformanceLimitationModeStatus performance_limitation_mode_status = 42;</code>
       * @return This builder for chaining.
       */
      public Builder clearPerformanceLimitationModeStatus() {
        if (attributeTypeCase_ == 42) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.BatteryHealth battery_health = 43;</code>
       * @return Whether the batteryHealth field is set.
       */
      @java.lang.Override
      public boolean hasBatteryHealth() {
        return attributeTypeCase_ == 43;
      }
      /**
       * <code>.proto.BatteryHealth battery_health = 43;</code>
       * @return The enum numeric value on the wire for batteryHealth.
       */
      @java.lang.Override
      public int getBatteryHealthValue() {
        if (attributeTypeCase_ == 43) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.BatteryHealth battery_health = 43;</code>
       * @param value The enum numeric value on the wire for batteryHealth to set.
       * @return This builder for chaining.
       */
      public Builder setBatteryHealthValue(int value) {
        attributeTypeCase_ = 43;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.BatteryHealth battery_health = 43;</code>
       * @return The batteryHealth.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.BatteryHealth getBatteryHealth() {
        if (attributeTypeCase_ == 43) {
          com.daimler.mbcarkit.proto.VehicleEvents.BatteryHealth result = com.daimler.mbcarkit.proto.VehicleEvents.BatteryHealth.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.BatteryHealth.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.BatteryHealth.BATTERY_GREEN_STATE;
      }
      /**
       * <code>.proto.BatteryHealth battery_health = 43;</code>
       * @param value The batteryHealth to set.
       * @return This builder for chaining.
       */
      public Builder setBatteryHealth(com.daimler.mbcarkit.proto.VehicleEvents.BatteryHealth value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 43;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.BatteryHealth battery_health = 43;</code>
       * @return This builder for chaining.
       */
      public Builder clearBatteryHealth() {
        if (attributeTypeCase_ == 43) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.PrecondState, com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.Builder, com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateOrBuilder> precondStateBuilder_;
      /**
       * <code>.proto.PrecondState precond_state = 44;</code>
       * @return Whether the precondState field is set.
       */
      @java.lang.Override
      public boolean hasPrecondState() {
        return attributeTypeCase_ == 44;
      }
      /**
       * <code>.proto.PrecondState precond_state = 44;</code>
       * @return The precondState.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PrecondState getPrecondState() {
        if (precondStateBuilder_ == null) {
          if (attributeTypeCase_ == 44) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.PrecondState) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 44) {
            return precondStateBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.PrecondState precond_state = 44;</code>
       */
      public Builder setPrecondState(com.daimler.mbcarkit.proto.VehicleEvents.PrecondState value) {
        if (precondStateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          precondStateBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 44;
        return this;
      }
      /**
       * <code>.proto.PrecondState precond_state = 44;</code>
       */
      public Builder setPrecondState(
          com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.Builder builderForValue) {
        if (precondStateBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          precondStateBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 44;
        return this;
      }
      /**
       * <code>.proto.PrecondState precond_state = 44;</code>
       */
      public Builder mergePrecondState(com.daimler.mbcarkit.proto.VehicleEvents.PrecondState value) {
        if (precondStateBuilder_ == null) {
          if (attributeTypeCase_ == 44 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.PrecondState) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 44) {
            precondStateBuilder_.mergeFrom(value);
          } else {
            precondStateBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 44;
        return this;
      }
      /**
       * <code>.proto.PrecondState precond_state = 44;</code>
       */
      public Builder clearPrecondState() {
        if (precondStateBuilder_ == null) {
          if (attributeTypeCase_ == 44) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 44) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          precondStateBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.PrecondState precond_state = 44;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.Builder getPrecondStateBuilder() {
        return internalGetPrecondStateFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.PrecondState precond_state = 44;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateOrBuilder getPrecondStateOrBuilder() {
        if ((attributeTypeCase_ == 44) && (precondStateBuilder_ != null)) {
          return precondStateBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 44) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.PrecondState) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.PrecondState precond_state = 44;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.PrecondState, com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.Builder, com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateOrBuilder> 
          internalGetPrecondStateFieldBuilder() {
        if (precondStateBuilder_ == null) {
          if (!(attributeTypeCase_ == 44)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.getDefaultInstance();
          }
          precondStateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.PrecondState, com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.Builder, com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.PrecondState) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 44;
        onChanged();
        return precondStateBuilder_;
      }

      /**
       * <code>.proto.ExteriorMonitoringStatus exterior_monitoring_status = 45;</code>
       * @return Whether the exteriorMonitoringStatus field is set.
       */
      @java.lang.Override
      public boolean hasExteriorMonitoringStatus() {
        return attributeTypeCase_ == 45;
      }
      /**
       * <code>.proto.ExteriorMonitoringStatus exterior_monitoring_status = 45;</code>
       * @return The enum numeric value on the wire for exteriorMonitoringStatus.
       */
      @java.lang.Override
      public int getExteriorMonitoringStatusValue() {
        if (attributeTypeCase_ == 45) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.ExteriorMonitoringStatus exterior_monitoring_status = 45;</code>
       * @param value The enum numeric value on the wire for exteriorMonitoringStatus to set.
       * @return This builder for chaining.
       */
      public Builder setExteriorMonitoringStatusValue(int value) {
        attributeTypeCase_ = 45;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ExteriorMonitoringStatus exterior_monitoring_status = 45;</code>
       * @return The exteriorMonitoringStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ExteriorMonitoringStatus getExteriorMonitoringStatus() {
        if (attributeTypeCase_ == 45) {
          com.daimler.mbcarkit.proto.VehicleEvents.ExteriorMonitoringStatus result = com.daimler.mbcarkit.proto.VehicleEvents.ExteriorMonitoringStatus.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ExteriorMonitoringStatus.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.ExteriorMonitoringStatus.EXM_IDLE;
      }
      /**
       * <code>.proto.ExteriorMonitoringStatus exterior_monitoring_status = 45;</code>
       * @param value The exteriorMonitoringStatus to set.
       * @return This builder for chaining.
       */
      public Builder setExteriorMonitoringStatus(com.daimler.mbcarkit.proto.VehicleEvents.ExteriorMonitoringStatus value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 45;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ExteriorMonitoringStatus exterior_monitoring_status = 45;</code>
       * @return This builder for chaining.
       */
      public Builder clearExteriorMonitoringStatus() {
        if (attributeTypeCase_ == 45) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.InteriorMonitoringStatus interior_monitoring_status = 46;</code>
       * @return Whether the interiorMonitoringStatus field is set.
       */
      @java.lang.Override
      public boolean hasInteriorMonitoringStatus() {
        return attributeTypeCase_ == 46;
      }
      /**
       * <code>.proto.InteriorMonitoringStatus interior_monitoring_status = 46;</code>
       * @return The enum numeric value on the wire for interiorMonitoringStatus.
       */
      @java.lang.Override
      public int getInteriorMonitoringStatusValue() {
        if (attributeTypeCase_ == 46) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.InteriorMonitoringStatus interior_monitoring_status = 46;</code>
       * @param value The enum numeric value on the wire for interiorMonitoringStatus to set.
       * @return This builder for chaining.
       */
      public Builder setInteriorMonitoringStatusValue(int value) {
        attributeTypeCase_ = 46;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.InteriorMonitoringStatus interior_monitoring_status = 46;</code>
       * @return The interiorMonitoringStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.InteriorMonitoringStatus getInteriorMonitoringStatus() {
        if (attributeTypeCase_ == 46) {
          com.daimler.mbcarkit.proto.VehicleEvents.InteriorMonitoringStatus result = com.daimler.mbcarkit.proto.VehicleEvents.InteriorMonitoringStatus.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.InteriorMonitoringStatus.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.InteriorMonitoringStatus.INM_IDLE;
      }
      /**
       * <code>.proto.InteriorMonitoringStatus interior_monitoring_status = 46;</code>
       * @param value The interiorMonitoringStatus to set.
       * @return This builder for chaining.
       */
      public Builder setInteriorMonitoringStatus(com.daimler.mbcarkit.proto.VehicleEvents.InteriorMonitoringStatus value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 46;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.InteriorMonitoringStatus interior_monitoring_status = 46;</code>
       * @return This builder for chaining.
       */
      public Builder clearInteriorMonitoringStatus() {
        if (attributeTypeCase_ == 46) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus, com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.Builder, com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatusOrBuilder> remoteUpdateStartStatusBuilder_;
      /**
       * <code>.proto.RemoteUpdateStartStatus remote_update_start_status = 47;</code>
       * @return Whether the remoteUpdateStartStatus field is set.
       */
      @java.lang.Override
      public boolean hasRemoteUpdateStartStatus() {
        return attributeTypeCase_ == 47;
      }
      /**
       * <code>.proto.RemoteUpdateStartStatus remote_update_start_status = 47;</code>
       * @return The remoteUpdateStartStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus getRemoteUpdateStartStatus() {
        if (remoteUpdateStartStatusBuilder_ == null) {
          if (attributeTypeCase_ == 47) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 47) {
            return remoteUpdateStartStatusBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.RemoteUpdateStartStatus remote_update_start_status = 47;</code>
       */
      public Builder setRemoteUpdateStartStatus(com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus value) {
        if (remoteUpdateStartStatusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          remoteUpdateStartStatusBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 47;
        return this;
      }
      /**
       * <code>.proto.RemoteUpdateStartStatus remote_update_start_status = 47;</code>
       */
      public Builder setRemoteUpdateStartStatus(
          com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.Builder builderForValue) {
        if (remoteUpdateStartStatusBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          remoteUpdateStartStatusBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 47;
        return this;
      }
      /**
       * <code>.proto.RemoteUpdateStartStatus remote_update_start_status = 47;</code>
       */
      public Builder mergeRemoteUpdateStartStatus(com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus value) {
        if (remoteUpdateStartStatusBuilder_ == null) {
          if (attributeTypeCase_ == 47 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 47) {
            remoteUpdateStartStatusBuilder_.mergeFrom(value);
          } else {
            remoteUpdateStartStatusBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 47;
        return this;
      }
      /**
       * <code>.proto.RemoteUpdateStartStatus remote_update_start_status = 47;</code>
       */
      public Builder clearRemoteUpdateStartStatus() {
        if (remoteUpdateStartStatusBuilder_ == null) {
          if (attributeTypeCase_ == 47) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 47) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          remoteUpdateStartStatusBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.RemoteUpdateStartStatus remote_update_start_status = 47;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.Builder getRemoteUpdateStartStatusBuilder() {
        return internalGetRemoteUpdateStartStatusFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.RemoteUpdateStartStatus remote_update_start_status = 47;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatusOrBuilder getRemoteUpdateStartStatusOrBuilder() {
        if ((attributeTypeCase_ == 47) && (remoteUpdateStartStatusBuilder_ != null)) {
          return remoteUpdateStartStatusBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 47) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.RemoteUpdateStartStatus remote_update_start_status = 47;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus, com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.Builder, com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatusOrBuilder> 
          internalGetRemoteUpdateStartStatusFieldBuilder() {
        if (remoteUpdateStartStatusBuilder_ == null) {
          if (!(attributeTypeCase_ == 47)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.getDefaultInstance();
          }
          remoteUpdateStartStatusBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus, com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.Builder, com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatusOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 47;
        onChanged();
        return remoteUpdateStartStatusBuilder_;
      }

      /**
       * <code>.proto.SohCalibrationRequired soh_calibration_required = 48;</code>
       * @return Whether the sohCalibrationRequired field is set.
       */
      @java.lang.Override
      public boolean hasSohCalibrationRequired() {
        return attributeTypeCase_ == 48;
      }
      /**
       * <code>.proto.SohCalibrationRequired soh_calibration_required = 48;</code>
       * @return The enum numeric value on the wire for sohCalibrationRequired.
       */
      @java.lang.Override
      public int getSohCalibrationRequiredValue() {
        if (attributeTypeCase_ == 48) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.SohCalibrationRequired soh_calibration_required = 48;</code>
       * @param value The enum numeric value on the wire for sohCalibrationRequired to set.
       * @return This builder for chaining.
       */
      public Builder setSohCalibrationRequiredValue(int value) {
        attributeTypeCase_ = 48;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SohCalibrationRequired soh_calibration_required = 48;</code>
       * @return The sohCalibrationRequired.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequired getSohCalibrationRequired() {
        if (attributeTypeCase_ == 48) {
          com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequired result = com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequired.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequired.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequired.SOH_CALIBRATION_NOT_REQUIRED;
      }
      /**
       * <code>.proto.SohCalibrationRequired soh_calibration_required = 48;</code>
       * @param value The sohCalibrationRequired to set.
       * @return This builder for chaining.
       */
      public Builder setSohCalibrationRequired(com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequired value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 48;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SohCalibrationRequired soh_calibration_required = 48;</code>
       * @return This builder for chaining.
       */
      public Builder clearSohCalibrationRequired() {
        if (attributeTypeCase_ == 48) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.SocCalibrationRequest soc_calibration_request = 49;</code>
       * @return Whether the socCalibrationRequest field is set.
       */
      @java.lang.Override
      public boolean hasSocCalibrationRequest() {
        return attributeTypeCase_ == 49;
      }
      /**
       * <code>.proto.SocCalibrationRequest soc_calibration_request = 49;</code>
       * @return The enum numeric value on the wire for socCalibrationRequest.
       */
      @java.lang.Override
      public int getSocCalibrationRequestValue() {
        if (attributeTypeCase_ == 49) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.SocCalibrationRequest soc_calibration_request = 49;</code>
       * @param value The enum numeric value on the wire for socCalibrationRequest to set.
       * @return This builder for chaining.
       */
      public Builder setSocCalibrationRequestValue(int value) {
        attributeTypeCase_ = 49;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SocCalibrationRequest soc_calibration_request = 49;</code>
       * @return The socCalibrationRequest.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.SocCalibrationRequest getSocCalibrationRequest() {
        if (attributeTypeCase_ == 49) {
          com.daimler.mbcarkit.proto.VehicleEvents.SocCalibrationRequest result = com.daimler.mbcarkit.proto.VehicleEvents.SocCalibrationRequest.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SocCalibrationRequest.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.SocCalibrationRequest.SOC_CALIBRATION_REQUEST_NO_REQUEST;
      }
      /**
       * <code>.proto.SocCalibrationRequest soc_calibration_request = 49;</code>
       * @param value The socCalibrationRequest to set.
       * @return This builder for chaining.
       */
      public Builder setSocCalibrationRequest(com.daimler.mbcarkit.proto.VehicleEvents.SocCalibrationRequest value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 49;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SocCalibrationRequest soc_calibration_request = 49;</code>
       * @return This builder for chaining.
       */
      public Builder clearSocCalibrationRequest() {
        if (attributeTypeCase_ == 49) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.SohCalibrationRequest soh_calibration_request = 50;</code>
       * @return Whether the sohCalibrationRequest field is set.
       */
      @java.lang.Override
      public boolean hasSohCalibrationRequest() {
        return attributeTypeCase_ == 50;
      }
      /**
       * <code>.proto.SohCalibrationRequest soh_calibration_request = 50;</code>
       * @return The enum numeric value on the wire for sohCalibrationRequest.
       */
      @java.lang.Override
      public int getSohCalibrationRequestValue() {
        if (attributeTypeCase_ == 50) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.SohCalibrationRequest soh_calibration_request = 50;</code>
       * @param value The enum numeric value on the wire for sohCalibrationRequest to set.
       * @return This builder for chaining.
       */
      public Builder setSohCalibrationRequestValue(int value) {
        attributeTypeCase_ = 50;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SohCalibrationRequest soh_calibration_request = 50;</code>
       * @return The sohCalibrationRequest.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequest getSohCalibrationRequest() {
        if (attributeTypeCase_ == 50) {
          com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequest result = com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequest.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequest.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequest.SOH_CALIBRATION_REQUEST_NO_REQUEST;
      }
      /**
       * <code>.proto.SohCalibrationRequest soh_calibration_request = 50;</code>
       * @param value The sohCalibrationRequest to set.
       * @return This builder for chaining.
       */
      public Builder setSohCalibrationRequest(com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationRequest value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 50;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SohCalibrationRequest soh_calibration_request = 50;</code>
       * @return This builder for chaining.
       */
      public Builder clearSohCalibrationRequest() {
        if (attributeTypeCase_ == 50) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.SohCalibrationState soh_calibration_state = 51;</code>
       * @return Whether the sohCalibrationState field is set.
       */
      @java.lang.Override
      public boolean hasSohCalibrationState() {
        return attributeTypeCase_ == 51;
      }
      /**
       * <code>.proto.SohCalibrationState soh_calibration_state = 51;</code>
       * @return The enum numeric value on the wire for sohCalibrationState.
       */
      @java.lang.Override
      public int getSohCalibrationStateValue() {
        if (attributeTypeCase_ == 51) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.SohCalibrationState soh_calibration_state = 51;</code>
       * @param value The enum numeric value on the wire for sohCalibrationState to set.
       * @return This builder for chaining.
       */
      public Builder setSohCalibrationStateValue(int value) {
        attributeTypeCase_ = 51;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SohCalibrationState soh_calibration_state = 51;</code>
       * @return The sohCalibrationState.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationState getSohCalibrationState() {
        if (attributeTypeCase_ == 51) {
          com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationState result = com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationState.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationState.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationState.SOH_CALIBRATION_STATE_NOT_ACTIVE;
      }
      /**
       * <code>.proto.SohCalibrationState soh_calibration_state = 51;</code>
       * @param value The sohCalibrationState to set.
       * @return This builder for chaining.
       */
      public Builder setSohCalibrationState(com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationState value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 51;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SohCalibrationState soh_calibration_state = 51;</code>
       * @return This builder for chaining.
       */
      public Builder clearSohCalibrationState() {
        if (attributeTypeCase_ == 51) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.SohCalibrationPlanned soh_calibration_planned = 52;</code>
       * @return Whether the sohCalibrationPlanned field is set.
       */
      @java.lang.Override
      public boolean hasSohCalibrationPlanned() {
        return attributeTypeCase_ == 52;
      }
      /**
       * <code>.proto.SohCalibrationPlanned soh_calibration_planned = 52;</code>
       * @return The enum numeric value on the wire for sohCalibrationPlanned.
       */
      @java.lang.Override
      public int getSohCalibrationPlannedValue() {
        if (attributeTypeCase_ == 52) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.SohCalibrationPlanned soh_calibration_planned = 52;</code>
       * @param value The enum numeric value on the wire for sohCalibrationPlanned to set.
       * @return This builder for chaining.
       */
      public Builder setSohCalibrationPlannedValue(int value) {
        attributeTypeCase_ = 52;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SohCalibrationPlanned soh_calibration_planned = 52;</code>
       * @return The sohCalibrationPlanned.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationPlanned getSohCalibrationPlanned() {
        if (attributeTypeCase_ == 52) {
          com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationPlanned result = com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationPlanned.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationPlanned.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationPlanned.SOH_CALIBRATION_NOT_PLANNED;
      }
      /**
       * <code>.proto.SohCalibrationPlanned soh_calibration_planned = 52;</code>
       * @param value The sohCalibrationPlanned to set.
       * @return This builder for chaining.
       */
      public Builder setSohCalibrationPlanned(com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationPlanned value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 52;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SohCalibrationPlanned soh_calibration_planned = 52;</code>
       * @return This builder for chaining.
       */
      public Builder clearSohCalibrationPlanned() {
        if (attributeTypeCase_ == 52) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.SohFavorableConditions soh_favorable_conditions = 53;</code>
       * @return Whether the sohFavorableConditions field is set.
       */
      @java.lang.Override
      public boolean hasSohFavorableConditions() {
        return attributeTypeCase_ == 53;
      }
      /**
       * <code>.proto.SohFavorableConditions soh_favorable_conditions = 53;</code>
       * @return The enum numeric value on the wire for sohFavorableConditions.
       */
      @java.lang.Override
      public int getSohFavorableConditionsValue() {
        if (attributeTypeCase_ == 53) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.SohFavorableConditions soh_favorable_conditions = 53;</code>
       * @param value The enum numeric value on the wire for sohFavorableConditions to set.
       * @return This builder for chaining.
       */
      public Builder setSohFavorableConditionsValue(int value) {
        attributeTypeCase_ = 53;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SohFavorableConditions soh_favorable_conditions = 53;</code>
       * @return The sohFavorableConditions.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.SohFavorableConditions getSohFavorableConditions() {
        if (attributeTypeCase_ == 53) {
          com.daimler.mbcarkit.proto.VehicleEvents.SohFavorableConditions result = com.daimler.mbcarkit.proto.VehicleEvents.SohFavorableConditions.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SohFavorableConditions.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.SohFavorableConditions.SOH_FAVORABLE_CONDITIONS_NOT_FAVORABLE;
      }
      /**
       * <code>.proto.SohFavorableConditions soh_favorable_conditions = 53;</code>
       * @param value The sohFavorableConditions to set.
       * @return This builder for chaining.
       */
      public Builder setSohFavorableConditions(com.daimler.mbcarkit.proto.VehicleEvents.SohFavorableConditions value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 53;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SohFavorableConditions soh_favorable_conditions = 53;</code>
       * @return This builder for chaining.
       */
      public Builder clearSohFavorableConditions() {
        if (attributeTypeCase_ == 53) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.SohCalibrationNotifications soh_calibration_notifications = 54;</code>
       * @return Whether the sohCalibrationNotifications field is set.
       */
      @java.lang.Override
      public boolean hasSohCalibrationNotifications() {
        return attributeTypeCase_ == 54;
      }
      /**
       * <code>.proto.SohCalibrationNotifications soh_calibration_notifications = 54;</code>
       * @return The enum numeric value on the wire for sohCalibrationNotifications.
       */
      @java.lang.Override
      public int getSohCalibrationNotificationsValue() {
        if (attributeTypeCase_ == 54) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.SohCalibrationNotifications soh_calibration_notifications = 54;</code>
       * @param value The enum numeric value on the wire for sohCalibrationNotifications to set.
       * @return This builder for chaining.
       */
      public Builder setSohCalibrationNotificationsValue(int value) {
        attributeTypeCase_ = 54;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SohCalibrationNotifications soh_calibration_notifications = 54;</code>
       * @return The sohCalibrationNotifications.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationNotifications getSohCalibrationNotifications() {
        if (attributeTypeCase_ == 54) {
          com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationNotifications result = com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationNotifications.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationNotifications.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationNotifications.SOH_CALIBRATION_NOTIFICATIONS_NO_SOH_CALIBRATION_NECESSARY;
      }
      /**
       * <code>.proto.SohCalibrationNotifications soh_calibration_notifications = 54;</code>
       * @param value The sohCalibrationNotifications to set.
       * @return This builder for chaining.
       */
      public Builder setSohCalibrationNotifications(com.daimler.mbcarkit.proto.VehicleEvents.SohCalibrationNotifications value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 54;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SohCalibrationNotifications soh_calibration_notifications = 54;</code>
       * @return This builder for chaining.
       */
      public Builder clearSohCalibrationNotifications() {
        if (attributeTypeCase_ == 54) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictionsOrBuilder> chargingPowerRestrictionsBuilder_;
      /**
       * <code>.proto.ChargingPowerRestrictions charging_power_restrictions = 55;</code>
       * @return Whether the chargingPowerRestrictions field is set.
       */
      @java.lang.Override
      public boolean hasChargingPowerRestrictions() {
        return attributeTypeCase_ == 55;
      }
      /**
       * <code>.proto.ChargingPowerRestrictions charging_power_restrictions = 55;</code>
       * @return The chargingPowerRestrictions.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions getChargingPowerRestrictions() {
        if (chargingPowerRestrictionsBuilder_ == null) {
          if (attributeTypeCase_ == 55) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 55) {
            return chargingPowerRestrictionsBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargingPowerRestrictions charging_power_restrictions = 55;</code>
       */
      public Builder setChargingPowerRestrictions(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions value) {
        if (chargingPowerRestrictionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          chargingPowerRestrictionsBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 55;
        return this;
      }
      /**
       * <code>.proto.ChargingPowerRestrictions charging_power_restrictions = 55;</code>
       */
      public Builder setChargingPowerRestrictions(
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.Builder builderForValue) {
        if (chargingPowerRestrictionsBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          chargingPowerRestrictionsBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 55;
        return this;
      }
      /**
       * <code>.proto.ChargingPowerRestrictions charging_power_restrictions = 55;</code>
       */
      public Builder mergeChargingPowerRestrictions(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions value) {
        if (chargingPowerRestrictionsBuilder_ == null) {
          if (attributeTypeCase_ == 55 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 55) {
            chargingPowerRestrictionsBuilder_.mergeFrom(value);
          } else {
            chargingPowerRestrictionsBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 55;
        return this;
      }
      /**
       * <code>.proto.ChargingPowerRestrictions charging_power_restrictions = 55;</code>
       */
      public Builder clearChargingPowerRestrictions() {
        if (chargingPowerRestrictionsBuilder_ == null) {
          if (attributeTypeCase_ == 55) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 55) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          chargingPowerRestrictionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.ChargingPowerRestrictions charging_power_restrictions = 55;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.Builder getChargingPowerRestrictionsBuilder() {
        return internalGetChargingPowerRestrictionsFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.ChargingPowerRestrictions charging_power_restrictions = 55;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictionsOrBuilder getChargingPowerRestrictionsOrBuilder() {
        if ((attributeTypeCase_ == 55) && (chargingPowerRestrictionsBuilder_ != null)) {
          return chargingPowerRestrictionsBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 55) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargingPowerRestrictions charging_power_restrictions = 55;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictionsOrBuilder> 
          internalGetChargingPowerRestrictionsFieldBuilder() {
        if (chargingPowerRestrictionsBuilder_ == null) {
          if (!(attributeTypeCase_ == 55)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.getDefaultInstance();
          }
          chargingPowerRestrictionsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictionsOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 55;
        onChanged();
        return chargingPowerRestrictionsBuilder_;
      }

      /**
       * <code>.proto.VehicleAttributeStatus.ChargingCouplerErrorDetails charging_coupler_error_details = 56;</code>
       * @return Whether the chargingCouplerErrorDetails field is set.
       */
      @java.lang.Override
      public boolean hasChargingCouplerErrorDetails() {
        return attributeTypeCase_ == 56;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingCouplerErrorDetails charging_coupler_error_details = 56;</code>
       * @return The enum numeric value on the wire for chargingCouplerErrorDetails.
       */
      @java.lang.Override
      public int getChargingCouplerErrorDetailsValue() {
        if (attributeTypeCase_ == 56) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingCouplerErrorDetails charging_coupler_error_details = 56;</code>
       * @param value The enum numeric value on the wire for chargingCouplerErrorDetails to set.
       * @return This builder for chaining.
       */
      public Builder setChargingCouplerErrorDetailsValue(int value) {
        attributeTypeCase_ = 56;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingCouplerErrorDetails charging_coupler_error_details = 56;</code>
       * @return The chargingCouplerErrorDetails.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingCouplerErrorDetails getChargingCouplerErrorDetails() {
        if (attributeTypeCase_ == 56) {
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingCouplerErrorDetails result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingCouplerErrorDetails.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingCouplerErrorDetails.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingCouplerErrorDetails.CHARING_COUPLER_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingCouplerErrorDetails charging_coupler_error_details = 56;</code>
       * @param value The chargingCouplerErrorDetails to set.
       * @return This builder for chaining.
       */
      public Builder setChargingCouplerErrorDetails(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingCouplerErrorDetails value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 56;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingCouplerErrorDetails charging_coupler_error_details = 56;</code>
       * @return This builder for chaining.
       */
      public Builder clearChargingCouplerErrorDetails() {
        if (attributeTypeCase_ == 56) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.ChargingStopErrorDetails charging_stop_error_details = 57;</code>
       * @return Whether the chargingStopErrorDetails field is set.
       */
      @java.lang.Override
      public boolean hasChargingStopErrorDetails() {
        return attributeTypeCase_ == 57;
      }
      /**
       * <code>.proto.ChargingStopErrorDetails charging_stop_error_details = 57;</code>
       * @return The enum numeric value on the wire for chargingStopErrorDetails.
       */
      @java.lang.Override
      public int getChargingStopErrorDetailsValue() {
        if (attributeTypeCase_ == 57) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.ChargingStopErrorDetails charging_stop_error_details = 57;</code>
       * @param value The enum numeric value on the wire for chargingStopErrorDetails to set.
       * @return This builder for chaining.
       */
      public Builder setChargingStopErrorDetailsValue(int value) {
        attributeTypeCase_ = 57;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingStopErrorDetails charging_stop_error_details = 57;</code>
       * @return The chargingStopErrorDetails.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingStopErrorDetails getChargingStopErrorDetails() {
        if (attributeTypeCase_ == 57) {
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingStopErrorDetails result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingStopErrorDetails.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingStopErrorDetails.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingStopErrorDetails.CHARGING_STOP_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE;
      }
      /**
       * <code>.proto.ChargingStopErrorDetails charging_stop_error_details = 57;</code>
       * @param value The chargingStopErrorDetails to set.
       * @return This builder for chaining.
       */
      public Builder setChargingStopErrorDetails(com.daimler.mbcarkit.proto.VehicleEvents.ChargingStopErrorDetails value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 57;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingStopErrorDetails charging_stop_error_details = 57;</code>
       * @return This builder for chaining.
       */
      public Builder clearChargingStopErrorDetails() {
        if (attributeTypeCase_ == 57) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V charging_error_vehicle_no_support_400v = 58;</code>
       * @return Whether the chargingErrorVehicleNoSupport400v field is set.
       */
      @java.lang.Override
      public boolean hasChargingErrorVehicleNoSupport400V() {
        return attributeTypeCase_ == 58;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V charging_error_vehicle_no_support_400v = 58;</code>
       * @return The enum numeric value on the wire for chargingErrorVehicleNoSupport400v.
       */
      @java.lang.Override
      public int getChargingErrorVehicleNoSupport400VValue() {
        if (attributeTypeCase_ == 58) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V charging_error_vehicle_no_support_400v = 58;</code>
       * @param value The enum numeric value on the wire for chargingErrorVehicleNoSupport400v to set.
       * @return This builder for chaining.
       */
      public Builder setChargingErrorVehicleNoSupport400VValue(int value) {
        attributeTypeCase_ = 58;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V charging_error_vehicle_no_support_400v = 58;</code>
       * @return The chargingErrorVehicleNoSupport400v.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V getChargingErrorVehicleNoSupport400V() {
        if (attributeTypeCase_ == 58) {
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V.CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V_NO_INFO;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V charging_error_vehicle_no_support_400v = 58;</code>
       * @param value The chargingErrorVehicleNoSupport400v to set.
       * @return This builder for chaining.
       */
      public Builder setChargingErrorVehicleNoSupport400V(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 58;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorVehicleNoSupport400V charging_error_vehicle_no_support_400v = 58;</code>
       * @return This builder for chaining.
       */
      public Builder clearChargingErrorVehicleNoSupport400V() {
        if (attributeTypeCase_ == 58) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V charging_error_impossible_change_to_400v = 59;</code>
       * @return Whether the chargingErrorImpossibleChangeTo400v field is set.
       */
      @java.lang.Override
      public boolean hasChargingErrorImpossibleChangeTo400V() {
        return attributeTypeCase_ == 59;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V charging_error_impossible_change_to_400v = 59;</code>
       * @return The enum numeric value on the wire for chargingErrorImpossibleChangeTo400v.
       */
      @java.lang.Override
      public int getChargingErrorImpossibleChangeTo400VValue() {
        if (attributeTypeCase_ == 59) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V charging_error_impossible_change_to_400v = 59;</code>
       * @param value The enum numeric value on the wire for chargingErrorImpossibleChangeTo400v to set.
       * @return This builder for chaining.
       */
      public Builder setChargingErrorImpossibleChangeTo400VValue(int value) {
        attributeTypeCase_ = 59;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V charging_error_impossible_change_to_400v = 59;</code>
       * @return The chargingErrorImpossibleChangeTo400v.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V getChargingErrorImpossibleChangeTo400V() {
        if (attributeTypeCase_ == 59) {
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V.CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_400V_NO_INFO;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V charging_error_impossible_change_to_400v = 59;</code>
       * @param value The chargingErrorImpossibleChangeTo400v to set.
       * @return This builder for chaining.
       */
      public Builder setChargingErrorImpossibleChangeTo400V(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 59;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo400V charging_error_impossible_change_to_400v = 59;</code>
       * @return This builder for chaining.
       */
      public Builder clearChargingErrorImpossibleChangeTo400V() {
        if (attributeTypeCase_ == 59) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V charging_error_impossible_change_to_800v = 60;</code>
       * @return Whether the chargingErrorImpossibleChangeTo800v field is set.
       */
      @java.lang.Override
      public boolean hasChargingErrorImpossibleChangeTo800V() {
        return attributeTypeCase_ == 60;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V charging_error_impossible_change_to_800v = 60;</code>
       * @return The enum numeric value on the wire for chargingErrorImpossibleChangeTo800v.
       */
      @java.lang.Override
      public int getChargingErrorImpossibleChangeTo800VValue() {
        if (attributeTypeCase_ == 60) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V charging_error_impossible_change_to_800v = 60;</code>
       * @param value The enum numeric value on the wire for chargingErrorImpossibleChangeTo800v to set.
       * @return This builder for chaining.
       */
      public Builder setChargingErrorImpossibleChangeTo800VValue(int value) {
        attributeTypeCase_ = 60;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V charging_error_impossible_change_to_800v = 60;</code>
       * @return The chargingErrorImpossibleChangeTo800v.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V getChargingErrorImpossibleChangeTo800V() {
        if (attributeTypeCase_ == 60) {
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V.CHARGING_ERROR_IMPOSSIBLE_CHANGE_TO_800V_NO_INFO;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V charging_error_impossible_change_to_800v = 60;</code>
       * @param value The chargingErrorImpossibleChangeTo800v to set.
       * @return This builder for chaining.
       */
      public Builder setChargingErrorImpossibleChangeTo800V(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 60;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleAttributeStatus.ChargingErrorImpossibleChangeTo800V charging_error_impossible_change_to_800v = 60;</code>
       * @return This builder for chaining.
       */
      public Builder clearChargingErrorImpossibleChangeTo800V() {
        if (attributeTypeCase_ == 60) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState, com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.Builder, com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityStateOrBuilder> precondOperabilityStateBuilder_;
      /**
       * <code>.proto.PrecondOperabilityState precond_operability_state = 61;</code>
       * @return Whether the precondOperabilityState field is set.
       */
      @java.lang.Override
      public boolean hasPrecondOperabilityState() {
        return attributeTypeCase_ == 61;
      }
      /**
       * <code>.proto.PrecondOperabilityState precond_operability_state = 61;</code>
       * @return The precondOperabilityState.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState getPrecondOperabilityState() {
        if (precondOperabilityStateBuilder_ == null) {
          if (attributeTypeCase_ == 61) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 61) {
            return precondOperabilityStateBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.PrecondOperabilityState precond_operability_state = 61;</code>
       */
      public Builder setPrecondOperabilityState(com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState value) {
        if (precondOperabilityStateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          precondOperabilityStateBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 61;
        return this;
      }
      /**
       * <code>.proto.PrecondOperabilityState precond_operability_state = 61;</code>
       */
      public Builder setPrecondOperabilityState(
          com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.Builder builderForValue) {
        if (precondOperabilityStateBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          precondOperabilityStateBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 61;
        return this;
      }
      /**
       * <code>.proto.PrecondOperabilityState precond_operability_state = 61;</code>
       */
      public Builder mergePrecondOperabilityState(com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState value) {
        if (precondOperabilityStateBuilder_ == null) {
          if (attributeTypeCase_ == 61 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 61) {
            precondOperabilityStateBuilder_.mergeFrom(value);
          } else {
            precondOperabilityStateBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 61;
        return this;
      }
      /**
       * <code>.proto.PrecondOperabilityState precond_operability_state = 61;</code>
       */
      public Builder clearPrecondOperabilityState() {
        if (precondOperabilityStateBuilder_ == null) {
          if (attributeTypeCase_ == 61) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 61) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          precondOperabilityStateBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.PrecondOperabilityState precond_operability_state = 61;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.Builder getPrecondOperabilityStateBuilder() {
        return internalGetPrecondOperabilityStateFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.PrecondOperabilityState precond_operability_state = 61;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityStateOrBuilder getPrecondOperabilityStateOrBuilder() {
        if ((attributeTypeCase_ == 61) && (precondOperabilityStateBuilder_ != null)) {
          return precondOperabilityStateBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 61) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.PrecondOperabilityState precond_operability_state = 61;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState, com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.Builder, com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityStateOrBuilder> 
          internalGetPrecondOperabilityStateFieldBuilder() {
        if (precondOperabilityStateBuilder_ == null) {
          if (!(attributeTypeCase_ == 61)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.getDefaultInstance();
          }
          precondOperabilityStateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState, com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.Builder, com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityStateOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 61;
        onChanged();
        return precondOperabilityStateBuilder_;
      }

      /**
       * <code>.proto.PictureRecordingStatus picture_recording_status = 62;</code>
       * @return Whether the pictureRecordingStatus field is set.
       */
      @java.lang.Override
      public boolean hasPictureRecordingStatus() {
        return attributeTypeCase_ == 62;
      }
      /**
       * <code>.proto.PictureRecordingStatus picture_recording_status = 62;</code>
       * @return The enum numeric value on the wire for pictureRecordingStatus.
       */
      @java.lang.Override
      public int getPictureRecordingStatusValue() {
        if (attributeTypeCase_ == 62) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.PictureRecordingStatus picture_recording_status = 62;</code>
       * @param value The enum numeric value on the wire for pictureRecordingStatus to set.
       * @return This builder for chaining.
       */
      public Builder setPictureRecordingStatusValue(int value) {
        attributeTypeCase_ = 62;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.PictureRecordingStatus picture_recording_status = 62;</code>
       * @return The pictureRecordingStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PictureRecordingStatus getPictureRecordingStatus() {
        if (attributeTypeCase_ == 62) {
          com.daimler.mbcarkit.proto.VehicleEvents.PictureRecordingStatus result = com.daimler.mbcarkit.proto.VehicleEvents.PictureRecordingStatus.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.PictureRecordingStatus.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.PictureRecordingStatus.PICTURE_RECORDING_STATUS_NOT_ACTIVE;
      }
      /**
       * <code>.proto.PictureRecordingStatus picture_recording_status = 62;</code>
       * @param value The pictureRecordingStatus to set.
       * @return This builder for chaining.
       */
      public Builder setPictureRecordingStatus(com.daimler.mbcarkit.proto.VehicleEvents.PictureRecordingStatus value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 62;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.PictureRecordingStatus picture_recording_status = 62;</code>
       * @return This builder for chaining.
       */
      public Builder clearPictureRecordingStatus() {
        if (attributeTypeCase_ == 62) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.ParkEventPictureSelectionStatus park_event_picture_selection_status = 63;</code>
       * @return Whether the parkEventPictureSelectionStatus field is set.
       */
      @java.lang.Override
      public boolean hasParkEventPictureSelectionStatus() {
        return attributeTypeCase_ == 63;
      }
      /**
       * <code>.proto.ParkEventPictureSelectionStatus park_event_picture_selection_status = 63;</code>
       * @return The enum numeric value on the wire for parkEventPictureSelectionStatus.
       */
      @java.lang.Override
      public int getParkEventPictureSelectionStatusValue() {
        if (attributeTypeCase_ == 63) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.ParkEventPictureSelectionStatus park_event_picture_selection_status = 63;</code>
       * @param value The enum numeric value on the wire for parkEventPictureSelectionStatus to set.
       * @return This builder for chaining.
       */
      public Builder setParkEventPictureSelectionStatusValue(int value) {
        attributeTypeCase_ = 63;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ParkEventPictureSelectionStatus park_event_picture_selection_status = 63;</code>
       * @return The parkEventPictureSelectionStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureSelectionStatus getParkEventPictureSelectionStatus() {
        if (attributeTypeCase_ == 63) {
          com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureSelectionStatus result = com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureSelectionStatus.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureSelectionStatus.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureSelectionStatus.PARK_EVENT_PICTURE_SELECTION_STATUS_NOT_SELECTED;
      }
      /**
       * <code>.proto.ParkEventPictureSelectionStatus park_event_picture_selection_status = 63;</code>
       * @param value The parkEventPictureSelectionStatus to set.
       * @return This builder for chaining.
       */
      public Builder setParkEventPictureSelectionStatus(com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureSelectionStatus value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 63;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ParkEventPictureSelectionStatus park_event_picture_selection_status = 63;</code>
       * @return This builder for chaining.
       */
      public Builder clearParkEventPictureSelectionStatus() {
        if (attributeTypeCase_ == 63) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.PanicAlarmActive panic_alarm_active = 64;</code>
       * @return Whether the panicAlarmActive field is set.
       */
      @java.lang.Override
      public boolean hasPanicAlarmActive() {
        return attributeTypeCase_ == 64;
      }
      /**
       * <code>.proto.PanicAlarmActive panic_alarm_active = 64;</code>
       * @return The enum numeric value on the wire for panicAlarmActive.
       */
      @java.lang.Override
      public int getPanicAlarmActiveValue() {
        if (attributeTypeCase_ == 64) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.PanicAlarmActive panic_alarm_active = 64;</code>
       * @param value The enum numeric value on the wire for panicAlarmActive to set.
       * @return This builder for chaining.
       */
      public Builder setPanicAlarmActiveValue(int value) {
        attributeTypeCase_ = 64;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.PanicAlarmActive panic_alarm_active = 64;</code>
       * @return The panicAlarmActive.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PanicAlarmActive getPanicAlarmActive() {
        if (attributeTypeCase_ == 64) {
          com.daimler.mbcarkit.proto.VehicleEvents.PanicAlarmActive result = com.daimler.mbcarkit.proto.VehicleEvents.PanicAlarmActive.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.PanicAlarmActive.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.PanicAlarmActive.PANIC_ALARM_ACTIVE_CONFIRMED;
      }
      /**
       * <code>.proto.PanicAlarmActive panic_alarm_active = 64;</code>
       * @param value The panicAlarmActive to set.
       * @return This builder for chaining.
       */
      public Builder setPanicAlarmActive(com.daimler.mbcarkit.proto.VehicleEvents.PanicAlarmActive value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 64;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.PanicAlarmActive panic_alarm_active = 64;</code>
       * @return This builder for chaining.
       */
      public Builder clearPanicAlarmActive() {
        if (attributeTypeCase_ == 64) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.InteriorProtectionSelectionStatus interior_protection_selection_status = 65;</code>
       * @return Whether the interiorProtectionSelectionStatus field is set.
       */
      @java.lang.Override
      public boolean hasInteriorProtectionSelectionStatus() {
        return attributeTypeCase_ == 65;
      }
      /**
       * <code>.proto.InteriorProtectionSelectionStatus interior_protection_selection_status = 65;</code>
       * @return The enum numeric value on the wire for interiorProtectionSelectionStatus.
       */
      @java.lang.Override
      public int getInteriorProtectionSelectionStatusValue() {
        if (attributeTypeCase_ == 65) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.InteriorProtectionSelectionStatus interior_protection_selection_status = 65;</code>
       * @param value The enum numeric value on the wire for interiorProtectionSelectionStatus to set.
       * @return This builder for chaining.
       */
      public Builder setInteriorProtectionSelectionStatusValue(int value) {
        attributeTypeCase_ = 65;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.InteriorProtectionSelectionStatus interior_protection_selection_status = 65;</code>
       * @return The interiorProtectionSelectionStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionSelectionStatus getInteriorProtectionSelectionStatus() {
        if (attributeTypeCase_ == 65) {
          com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionSelectionStatus result = com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionSelectionStatus.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionSelectionStatus.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionSelectionStatus.INTERIOR_PROTECTION_SELECTION_STATUS_DESELETED;
      }
      /**
       * <code>.proto.InteriorProtectionSelectionStatus interior_protection_selection_status = 65;</code>
       * @param value The interiorProtectionSelectionStatus to set.
       * @return This builder for chaining.
       */
      public Builder setInteriorProtectionSelectionStatus(com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionSelectionStatus value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 65;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.InteriorProtectionSelectionStatus interior_protection_selection_status = 65;</code>
       * @return This builder for chaining.
       */
      public Builder clearInteriorProtectionSelectionStatus() {
        if (attributeTypeCase_ == 65) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.InteriorProtectionActivationStatus interior_protection_activation_status = 66;</code>
       * @return Whether the interiorProtectionActivationStatus field is set.
       */
      @java.lang.Override
      public boolean hasInteriorProtectionActivationStatus() {
        return attributeTypeCase_ == 66;
      }
      /**
       * <code>.proto.InteriorProtectionActivationStatus interior_protection_activation_status = 66;</code>
       * @return The enum numeric value on the wire for interiorProtectionActivationStatus.
       */
      @java.lang.Override
      public int getInteriorProtectionActivationStatusValue() {
        if (attributeTypeCase_ == 66) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.InteriorProtectionActivationStatus interior_protection_activation_status = 66;</code>
       * @param value The enum numeric value on the wire for interiorProtectionActivationStatus to set.
       * @return This builder for chaining.
       */
      public Builder setInteriorProtectionActivationStatusValue(int value) {
        attributeTypeCase_ = 66;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.InteriorProtectionActivationStatus interior_protection_activation_status = 66;</code>
       * @return The interiorProtectionActivationStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionActivationStatus getInteriorProtectionActivationStatus() {
        if (attributeTypeCase_ == 66) {
          com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionActivationStatus result = com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionActivationStatus.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionActivationStatus.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionActivationStatus.INTERIOR_PROTECTION_ACTIVATION_STATUS_OFF;
      }
      /**
       * <code>.proto.InteriorProtectionActivationStatus interior_protection_activation_status = 66;</code>
       * @param value The interiorProtectionActivationStatus to set.
       * @return This builder for chaining.
       */
      public Builder setInteriorProtectionActivationStatus(com.daimler.mbcarkit.proto.VehicleEvents.InteriorProtectionActivationStatus value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 66;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.InteriorProtectionActivationStatus interior_protection_activation_status = 66;</code>
       * @return This builder for chaining.
       */
      public Builder clearInteriorProtectionActivationStatus() {
        if (attributeTypeCase_ == 66) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.TowProtectionSelectionStatus tow_protection_selection_status = 67;</code>
       * @return Whether the towProtectionSelectionStatus field is set.
       */
      @java.lang.Override
      public boolean hasTowProtectionSelectionStatus() {
        return attributeTypeCase_ == 67;
      }
      /**
       * <code>.proto.TowProtectionSelectionStatus tow_protection_selection_status = 67;</code>
       * @return The enum numeric value on the wire for towProtectionSelectionStatus.
       */
      @java.lang.Override
      public int getTowProtectionSelectionStatusValue() {
        if (attributeTypeCase_ == 67) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.TowProtectionSelectionStatus tow_protection_selection_status = 67;</code>
       * @param value The enum numeric value on the wire for towProtectionSelectionStatus to set.
       * @return This builder for chaining.
       */
      public Builder setTowProtectionSelectionStatusValue(int value) {
        attributeTypeCase_ = 67;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.TowProtectionSelectionStatus tow_protection_selection_status = 67;</code>
       * @return The towProtectionSelectionStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionSelectionStatus getTowProtectionSelectionStatus() {
        if (attributeTypeCase_ == 67) {
          com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionSelectionStatus result = com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionSelectionStatus.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionSelectionStatus.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionSelectionStatus.TOW_PROTECTION_SELECTION_STATUS_DESELETED;
      }
      /**
       * <code>.proto.TowProtectionSelectionStatus tow_protection_selection_status = 67;</code>
       * @param value The towProtectionSelectionStatus to set.
       * @return This builder for chaining.
       */
      public Builder setTowProtectionSelectionStatus(com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionSelectionStatus value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 67;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.TowProtectionSelectionStatus tow_protection_selection_status = 67;</code>
       * @return This builder for chaining.
       */
      public Builder clearTowProtectionSelectionStatus() {
        if (attributeTypeCase_ == 67) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.TowProtectionActivationStatus tow_protection_activation_status = 68;</code>
       * @return Whether the towProtectionActivationStatus field is set.
       */
      @java.lang.Override
      public boolean hasTowProtectionActivationStatus() {
        return attributeTypeCase_ == 68;
      }
      /**
       * <code>.proto.TowProtectionActivationStatus tow_protection_activation_status = 68;</code>
       * @return The enum numeric value on the wire for towProtectionActivationStatus.
       */
      @java.lang.Override
      public int getTowProtectionActivationStatusValue() {
        if (attributeTypeCase_ == 68) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.TowProtectionActivationStatus tow_protection_activation_status = 68;</code>
       * @param value The enum numeric value on the wire for towProtectionActivationStatus to set.
       * @return This builder for chaining.
       */
      public Builder setTowProtectionActivationStatusValue(int value) {
        attributeTypeCase_ = 68;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.TowProtectionActivationStatus tow_protection_activation_status = 68;</code>
       * @return The towProtectionActivationStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionActivationStatus getTowProtectionActivationStatus() {
        if (attributeTypeCase_ == 68) {
          com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionActivationStatus result = com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionActivationStatus.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionActivationStatus.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionActivationStatus.TOW_PROTECTION_ACTIVATION_STATUS_OFF;
      }
      /**
       * <code>.proto.TowProtectionActivationStatus tow_protection_activation_status = 68;</code>
       * @param value The towProtectionActivationStatus to set.
       * @return This builder for chaining.
       */
      public Builder setTowProtectionActivationStatus(com.daimler.mbcarkit.proto.VehicleEvents.TowProtectionActivationStatus value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 68;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.TowProtectionActivationStatus tow_protection_activation_status = 68;</code>
       * @return This builder for chaining.
       */
      public Builder clearTowProtectionActivationStatus() {
        if (attributeTypeCase_ == 68) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.VehicleTheftAlarmInactiveReason vehicle_theft_alarm_inactive_reason = 69;</code>
       * @return Whether the vehicleTheftAlarmInactiveReason field is set.
       */
      @java.lang.Override
      public boolean hasVehicleTheftAlarmInactiveReason() {
        return attributeTypeCase_ == 69;
      }
      /**
       * <code>.proto.VehicleTheftAlarmInactiveReason vehicle_theft_alarm_inactive_reason = 69;</code>
       * @return The enum numeric value on the wire for vehicleTheftAlarmInactiveReason.
       */
      @java.lang.Override
      public int getVehicleTheftAlarmInactiveReasonValue() {
        if (attributeTypeCase_ == 69) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.VehicleTheftAlarmInactiveReason vehicle_theft_alarm_inactive_reason = 69;</code>
       * @param value The enum numeric value on the wire for vehicleTheftAlarmInactiveReason to set.
       * @return This builder for chaining.
       */
      public Builder setVehicleTheftAlarmInactiveReasonValue(int value) {
        attributeTypeCase_ = 69;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleTheftAlarmInactiveReason vehicle_theft_alarm_inactive_reason = 69;</code>
       * @return The vehicleTheftAlarmInactiveReason.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleTheftAlarmInactiveReason getVehicleTheftAlarmInactiveReason() {
        if (attributeTypeCase_ == 69) {
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleTheftAlarmInactiveReason result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleTheftAlarmInactiveReason.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleTheftAlarmInactiveReason.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleTheftAlarmInactiveReason.VEHICLE_THEFT_ALARM_INACTIVE_REASON_NO_ERROR;
      }
      /**
       * <code>.proto.VehicleTheftAlarmInactiveReason vehicle_theft_alarm_inactive_reason = 69;</code>
       * @param value The vehicleTheftAlarmInactiveReason to set.
       * @return This builder for chaining.
       */
      public Builder setVehicleTheftAlarmInactiveReason(com.daimler.mbcarkit.proto.VehicleEvents.VehicleTheftAlarmInactiveReason value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 69;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.VehicleTheftAlarmInactiveReason vehicle_theft_alarm_inactive_reason = 69;</code>
       * @return This builder for chaining.
       */
      public Builder clearVehicleTheftAlarmInactiveReason() {
        if (attributeTypeCase_ == 69) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.ParkCollisionSelectionStatus park_collision_selection_status = 70;</code>
       * @return Whether the parkCollisionSelectionStatus field is set.
       */
      @java.lang.Override
      public boolean hasParkCollisionSelectionStatus() {
        return attributeTypeCase_ == 70;
      }
      /**
       * <code>.proto.ParkCollisionSelectionStatus park_collision_selection_status = 70;</code>
       * @return The enum numeric value on the wire for parkCollisionSelectionStatus.
       */
      @java.lang.Override
      public int getParkCollisionSelectionStatusValue() {
        if (attributeTypeCase_ == 70) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.ParkCollisionSelectionStatus park_collision_selection_status = 70;</code>
       * @param value The enum numeric value on the wire for parkCollisionSelectionStatus to set.
       * @return This builder for chaining.
       */
      public Builder setParkCollisionSelectionStatusValue(int value) {
        attributeTypeCase_ = 70;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ParkCollisionSelectionStatus park_collision_selection_status = 70;</code>
       * @return The parkCollisionSelectionStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionSelectionStatus getParkCollisionSelectionStatus() {
        if (attributeTypeCase_ == 70) {
          com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionSelectionStatus result = com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionSelectionStatus.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionSelectionStatus.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionSelectionStatus.PARK_COLLISION_SELECTION_STATUS_DESELETED;
      }
      /**
       * <code>.proto.ParkCollisionSelectionStatus park_collision_selection_status = 70;</code>
       * @param value The parkCollisionSelectionStatus to set.
       * @return This builder for chaining.
       */
      public Builder setParkCollisionSelectionStatus(com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionSelectionStatus value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 70;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ParkCollisionSelectionStatus park_collision_selection_status = 70;</code>
       * @return This builder for chaining.
       */
      public Builder clearParkCollisionSelectionStatus() {
        if (attributeTypeCase_ == 70) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.ParkCollisionActivationStatus park_collision_activation_status = 71;</code>
       * @return Whether the parkCollisionActivationStatus field is set.
       */
      @java.lang.Override
      public boolean hasParkCollisionActivationStatus() {
        return attributeTypeCase_ == 71;
      }
      /**
       * <code>.proto.ParkCollisionActivationStatus park_collision_activation_status = 71;</code>
       * @return The enum numeric value on the wire for parkCollisionActivationStatus.
       */
      @java.lang.Override
      public int getParkCollisionActivationStatusValue() {
        if (attributeTypeCase_ == 71) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.ParkCollisionActivationStatus park_collision_activation_status = 71;</code>
       * @param value The enum numeric value on the wire for parkCollisionActivationStatus to set.
       * @return This builder for chaining.
       */
      public Builder setParkCollisionActivationStatusValue(int value) {
        attributeTypeCase_ = 71;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ParkCollisionActivationStatus park_collision_activation_status = 71;</code>
       * @return The parkCollisionActivationStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionActivationStatus getParkCollisionActivationStatus() {
        if (attributeTypeCase_ == 71) {
          com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionActivationStatus result = com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionActivationStatus.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionActivationStatus.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionActivationStatus.PARK_COLLISION_ACTIVATION_STATUS_OFF;
      }
      /**
       * <code>.proto.ParkCollisionActivationStatus park_collision_activation_status = 71;</code>
       * @param value The parkCollisionActivationStatus to set.
       * @return This builder for chaining.
       */
      public Builder setParkCollisionActivationStatus(com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionActivationStatus value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 71;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ParkCollisionActivationStatus park_collision_activation_status = 71;</code>
       * @return This builder for chaining.
       */
      public Builder clearParkCollisionActivationStatus() {
        if (attributeTypeCase_ == 71) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.ParkCollisionInactiveReason park_collision_inactive_reason = 72;</code>
       * @return Whether the parkCollisionInactiveReason field is set.
       */
      @java.lang.Override
      public boolean hasParkCollisionInactiveReason() {
        return attributeTypeCase_ == 72;
      }
      /**
       * <code>.proto.ParkCollisionInactiveReason park_collision_inactive_reason = 72;</code>
       * @return The enum numeric value on the wire for parkCollisionInactiveReason.
       */
      @java.lang.Override
      public int getParkCollisionInactiveReasonValue() {
        if (attributeTypeCase_ == 72) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.ParkCollisionInactiveReason park_collision_inactive_reason = 72;</code>
       * @param value The enum numeric value on the wire for parkCollisionInactiveReason to set.
       * @return This builder for chaining.
       */
      public Builder setParkCollisionInactiveReasonValue(int value) {
        attributeTypeCase_ = 72;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ParkCollisionInactiveReason park_collision_inactive_reason = 72;</code>
       * @return The parkCollisionInactiveReason.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionInactiveReason getParkCollisionInactiveReason() {
        if (attributeTypeCase_ == 72) {
          com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionInactiveReason result = com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionInactiveReason.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionInactiveReason.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionInactiveReason.PARK_COLLISION_INACTIVE_REASON_DISABLED;
      }
      /**
       * <code>.proto.ParkCollisionInactiveReason park_collision_inactive_reason = 72;</code>
       * @param value The parkCollisionInactiveReason to set.
       * @return This builder for chaining.
       */
      public Builder setParkCollisionInactiveReason(com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionInactiveReason value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 72;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ParkCollisionInactiveReason park_collision_inactive_reason = 72;</code>
       * @return This builder for chaining.
       */
      public Builder clearParkCollisionInactiveReason() {
        if (attributeTypeCase_ == 72) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.ParkCollisionPictureTransferStatus park_collision_picture_transfer_status = 73;</code>
       * @return Whether the parkCollisionPictureTransferStatus field is set.
       */
      @java.lang.Override
      public boolean hasParkCollisionPictureTransferStatus() {
        return attributeTypeCase_ == 73;
      }
      /**
       * <code>.proto.ParkCollisionPictureTransferStatus park_collision_picture_transfer_status = 73;</code>
       * @return The enum numeric value on the wire for parkCollisionPictureTransferStatus.
       */
      @java.lang.Override
      public int getParkCollisionPictureTransferStatusValue() {
        if (attributeTypeCase_ == 73) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.ParkCollisionPictureTransferStatus park_collision_picture_transfer_status = 73;</code>
       * @param value The enum numeric value on the wire for parkCollisionPictureTransferStatus to set.
       * @return This builder for chaining.
       */
      public Builder setParkCollisionPictureTransferStatusValue(int value) {
        attributeTypeCase_ = 73;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ParkCollisionPictureTransferStatus park_collision_picture_transfer_status = 73;</code>
       * @return The parkCollisionPictureTransferStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionPictureTransferStatus getParkCollisionPictureTransferStatus() {
        if (attributeTypeCase_ == 73) {
          com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionPictureTransferStatus result = com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionPictureTransferStatus.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionPictureTransferStatus.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionPictureTransferStatus.PARK_COLLISION_PICTURE_TRANSFER_STATUS_DESELETED;
      }
      /**
       * <code>.proto.ParkCollisionPictureTransferStatus park_collision_picture_transfer_status = 73;</code>
       * @param value The parkCollisionPictureTransferStatus to set.
       * @return This builder for chaining.
       */
      public Builder setParkCollisionPictureTransferStatus(com.daimler.mbcarkit.proto.VehicleEvents.ParkCollisionPictureTransferStatus value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 73;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ParkCollisionPictureTransferStatus park_collision_picture_transfer_status = 73;</code>
       * @return This builder for chaining.
       */
      public Builder clearParkCollisionPictureTransferStatus() {
        if (attributeTypeCase_ == 73) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.EmergencyPowerSupply emergency_power_supply = 78;</code>
       * @return Whether the emergencyPowerSupply field is set.
       */
      @java.lang.Override
      public boolean hasEmergencyPowerSupply() {
        return attributeTypeCase_ == 78;
      }
      /**
       * <code>.proto.EmergencyPowerSupply emergency_power_supply = 78;</code>
       * @return The enum numeric value on the wire for emergencyPowerSupply.
       */
      @java.lang.Override
      public int getEmergencyPowerSupplyValue() {
        if (attributeTypeCase_ == 78) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.EmergencyPowerSupply emergency_power_supply = 78;</code>
       * @param value The enum numeric value on the wire for emergencyPowerSupply to set.
       * @return This builder for chaining.
       */
      public Builder setEmergencyPowerSupplyValue(int value) {
        attributeTypeCase_ = 78;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.EmergencyPowerSupply emergency_power_supply = 78;</code>
       * @return The emergencyPowerSupply.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.EmergencyPowerSupply getEmergencyPowerSupply() {
        if (attributeTypeCase_ == 78) {
          com.daimler.mbcarkit.proto.VehicleEvents.EmergencyPowerSupply result = com.daimler.mbcarkit.proto.VehicleEvents.EmergencyPowerSupply.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.EmergencyPowerSupply.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.EmergencyPowerSupply.EMERGENCY_POWER_SUPPLY_OFF;
      }
      /**
       * <code>.proto.EmergencyPowerSupply emergency_power_supply = 78;</code>
       * @param value The emergencyPowerSupply to set.
       * @return This builder for chaining.
       */
      public Builder setEmergencyPowerSupply(com.daimler.mbcarkit.proto.VehicleEvents.EmergencyPowerSupply value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 78;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.EmergencyPowerSupply emergency_power_supply = 78;</code>
       * @return This builder for chaining.
       */
      public Builder clearEmergencyPowerSupply() {
        if (attributeTypeCase_ == 78) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.EvsePairingState evse_pairing_state = 79;</code>
       * @return Whether the evsePairingState field is set.
       */
      @java.lang.Override
      public boolean hasEvsePairingState() {
        return attributeTypeCase_ == 79;
      }
      /**
       * <code>.proto.EvsePairingState evse_pairing_state = 79;</code>
       * @return The enum numeric value on the wire for evsePairingState.
       */
      @java.lang.Override
      public int getEvsePairingStateValue() {
        if (attributeTypeCase_ == 79) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.EvsePairingState evse_pairing_state = 79;</code>
       * @param value The enum numeric value on the wire for evsePairingState to set.
       * @return This builder for chaining.
       */
      public Builder setEvsePairingStateValue(int value) {
        attributeTypeCase_ = 79;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.EvsePairingState evse_pairing_state = 79;</code>
       * @return The evsePairingState.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.EvsePairingState getEvsePairingState() {
        if (attributeTypeCase_ == 79) {
          com.daimler.mbcarkit.proto.VehicleEvents.EvsePairingState result = com.daimler.mbcarkit.proto.VehicleEvents.EvsePairingState.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.EvsePairingState.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.EvsePairingState.EVSE_PAIRING_STATE_IDLE;
      }
      /**
       * <code>.proto.EvsePairingState evse_pairing_state = 79;</code>
       * @param value The evsePairingState to set.
       * @return This builder for chaining.
       */
      public Builder setEvsePairingState(com.daimler.mbcarkit.proto.VehicleEvents.EvsePairingState value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 79;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.EvsePairingState evse_pairing_state = 79;</code>
       * @return This builder for chaining.
       */
      public Builder clearEvsePairingState() {
        if (attributeTypeCase_ == 79) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSocOrBuilder> chargingPredictionSocBuilder_;
      /**
       * <code>.proto.ChargingPredictionSoc charging_prediction_soc = 80;</code>
       * @return Whether the chargingPredictionSoc field is set.
       */
      @java.lang.Override
      public boolean hasChargingPredictionSoc() {
        return attributeTypeCase_ == 80;
      }
      /**
       * <code>.proto.ChargingPredictionSoc charging_prediction_soc = 80;</code>
       * @return The chargingPredictionSoc.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc getChargingPredictionSoc() {
        if (chargingPredictionSocBuilder_ == null) {
          if (attributeTypeCase_ == 80) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 80) {
            return chargingPredictionSocBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargingPredictionSoc charging_prediction_soc = 80;</code>
       */
      public Builder setChargingPredictionSoc(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc value) {
        if (chargingPredictionSocBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          chargingPredictionSocBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 80;
        return this;
      }
      /**
       * <code>.proto.ChargingPredictionSoc charging_prediction_soc = 80;</code>
       */
      public Builder setChargingPredictionSoc(
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.Builder builderForValue) {
        if (chargingPredictionSocBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          chargingPredictionSocBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 80;
        return this;
      }
      /**
       * <code>.proto.ChargingPredictionSoc charging_prediction_soc = 80;</code>
       */
      public Builder mergeChargingPredictionSoc(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc value) {
        if (chargingPredictionSocBuilder_ == null) {
          if (attributeTypeCase_ == 80 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 80) {
            chargingPredictionSocBuilder_.mergeFrom(value);
          } else {
            chargingPredictionSocBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 80;
        return this;
      }
      /**
       * <code>.proto.ChargingPredictionSoc charging_prediction_soc = 80;</code>
       */
      public Builder clearChargingPredictionSoc() {
        if (chargingPredictionSocBuilder_ == null) {
          if (attributeTypeCase_ == 80) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 80) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          chargingPredictionSocBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.ChargingPredictionSoc charging_prediction_soc = 80;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.Builder getChargingPredictionSocBuilder() {
        return internalGetChargingPredictionSocFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.ChargingPredictionSoc charging_prediction_soc = 80;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSocOrBuilder getChargingPredictionSocOrBuilder() {
        if ((attributeTypeCase_ == 80) && (chargingPredictionSocBuilder_ != null)) {
          return chargingPredictionSocBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 80) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargingPredictionSoc charging_prediction_soc = 80;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSocOrBuilder> 
          internalGetChargingPredictionSocFieldBuilder() {
        if (chargingPredictionSocBuilder_ == null) {
          if (!(attributeTypeCase_ == 80)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.getDefaultInstance();
          }
          chargingPredictionSocBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSocOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 80;
        onChanged();
        return chargingPredictionSocBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTimeOrBuilder> chargingPredictionDepartureTimeBuilder_;
      /**
       * <code>.proto.ChargingPredictionDepartureTime charging_prediction_departure_time = 81;</code>
       * @return Whether the chargingPredictionDepartureTime field is set.
       */
      @java.lang.Override
      public boolean hasChargingPredictionDepartureTime() {
        return attributeTypeCase_ == 81;
      }
      /**
       * <code>.proto.ChargingPredictionDepartureTime charging_prediction_departure_time = 81;</code>
       * @return The chargingPredictionDepartureTime.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime getChargingPredictionDepartureTime() {
        if (chargingPredictionDepartureTimeBuilder_ == null) {
          if (attributeTypeCase_ == 81) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 81) {
            return chargingPredictionDepartureTimeBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargingPredictionDepartureTime charging_prediction_departure_time = 81;</code>
       */
      public Builder setChargingPredictionDepartureTime(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime value) {
        if (chargingPredictionDepartureTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          chargingPredictionDepartureTimeBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 81;
        return this;
      }
      /**
       * <code>.proto.ChargingPredictionDepartureTime charging_prediction_departure_time = 81;</code>
       */
      public Builder setChargingPredictionDepartureTime(
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.Builder builderForValue) {
        if (chargingPredictionDepartureTimeBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          chargingPredictionDepartureTimeBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 81;
        return this;
      }
      /**
       * <code>.proto.ChargingPredictionDepartureTime charging_prediction_departure_time = 81;</code>
       */
      public Builder mergeChargingPredictionDepartureTime(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime value) {
        if (chargingPredictionDepartureTimeBuilder_ == null) {
          if (attributeTypeCase_ == 81 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 81) {
            chargingPredictionDepartureTimeBuilder_.mergeFrom(value);
          } else {
            chargingPredictionDepartureTimeBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 81;
        return this;
      }
      /**
       * <code>.proto.ChargingPredictionDepartureTime charging_prediction_departure_time = 81;</code>
       */
      public Builder clearChargingPredictionDepartureTime() {
        if (chargingPredictionDepartureTimeBuilder_ == null) {
          if (attributeTypeCase_ == 81) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 81) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          chargingPredictionDepartureTimeBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.ChargingPredictionDepartureTime charging_prediction_departure_time = 81;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.Builder getChargingPredictionDepartureTimeBuilder() {
        return internalGetChargingPredictionDepartureTimeFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.ChargingPredictionDepartureTime charging_prediction_departure_time = 81;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTimeOrBuilder getChargingPredictionDepartureTimeOrBuilder() {
        if ((attributeTypeCase_ == 81) && (chargingPredictionDepartureTimeBuilder_ != null)) {
          return chargingPredictionDepartureTimeBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 81) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargingPredictionDepartureTime charging_prediction_departure_time = 81;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTimeOrBuilder> 
          internalGetChargingPredictionDepartureTimeFieldBuilder() {
        if (chargingPredictionDepartureTimeBuilder_ == null) {
          if (!(attributeTypeCase_ == 81)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.getDefaultInstance();
          }
          chargingPredictionDepartureTimeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTimeOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 81;
        onChanged();
        return chargingPredictionDepartureTimeBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActiveOrBuilder> chargingScheduleActiveBuilder_;
      /**
       * <code>.proto.ChargingScheduleActive charging_schedule_active = 82;</code>
       * @return Whether the chargingScheduleActive field is set.
       */
      @java.lang.Override
      public boolean hasChargingScheduleActive() {
        return attributeTypeCase_ == 82;
      }
      /**
       * <code>.proto.ChargingScheduleActive charging_schedule_active = 82;</code>
       * @return The chargingScheduleActive.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive getChargingScheduleActive() {
        if (chargingScheduleActiveBuilder_ == null) {
          if (attributeTypeCase_ == 82) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 82) {
            return chargingScheduleActiveBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargingScheduleActive charging_schedule_active = 82;</code>
       */
      public Builder setChargingScheduleActive(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive value) {
        if (chargingScheduleActiveBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          chargingScheduleActiveBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 82;
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleActive charging_schedule_active = 82;</code>
       */
      public Builder setChargingScheduleActive(
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.Builder builderForValue) {
        if (chargingScheduleActiveBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          chargingScheduleActiveBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 82;
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleActive charging_schedule_active = 82;</code>
       */
      public Builder mergeChargingScheduleActive(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive value) {
        if (chargingScheduleActiveBuilder_ == null) {
          if (attributeTypeCase_ == 82 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 82) {
            chargingScheduleActiveBuilder_.mergeFrom(value);
          } else {
            chargingScheduleActiveBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 82;
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleActive charging_schedule_active = 82;</code>
       */
      public Builder clearChargingScheduleActive() {
        if (chargingScheduleActiveBuilder_ == null) {
          if (attributeTypeCase_ == 82) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 82) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          chargingScheduleActiveBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleActive charging_schedule_active = 82;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.Builder getChargingScheduleActiveBuilder() {
        return internalGetChargingScheduleActiveFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.ChargingScheduleActive charging_schedule_active = 82;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActiveOrBuilder getChargingScheduleActiveOrBuilder() {
        if ((attributeTypeCase_ == 82) && (chargingScheduleActiveBuilder_ != null)) {
          return chargingScheduleActiveBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 82) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargingScheduleActive charging_schedule_active = 82;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActiveOrBuilder> 
          internalGetChargingScheduleActiveFieldBuilder() {
        if (chargingScheduleActiveBuilder_ == null) {
          if (!(attributeTypeCase_ == 82)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.getDefaultInstance();
          }
          chargingScheduleActiveBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActiveOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 82;
        onChanged();
        return chargingScheduleActiveBuilder_;
      }

      /**
       * <code>.proto.DcChargingProfile dc_charging_profile = 83;</code>
       * @return Whether the dcChargingProfile field is set.
       */
      @java.lang.Override
      public boolean hasDcChargingProfile() {
        return attributeTypeCase_ == 83;
      }
      /**
       * <code>.proto.DcChargingProfile dc_charging_profile = 83;</code>
       * @return The enum numeric value on the wire for dcChargingProfile.
       */
      @java.lang.Override
      public int getDcChargingProfileValue() {
        if (attributeTypeCase_ == 83) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.DcChargingProfile dc_charging_profile = 83;</code>
       * @param value The enum numeric value on the wire for dcChargingProfile to set.
       * @return This builder for chaining.
       */
      public Builder setDcChargingProfileValue(int value) {
        attributeTypeCase_ = 83;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.DcChargingProfile dc_charging_profile = 83;</code>
       * @return The dcChargingProfile.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.DcChargingProfile getDcChargingProfile() {
        if (attributeTypeCase_ == 83) {
          com.daimler.mbcarkit.proto.VehicleEvents.DcChargingProfile result = com.daimler.mbcarkit.proto.VehicleEvents.DcChargingProfile.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.DcChargingProfile.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.DcChargingProfile.DC_CHARGING_PROFILE_UNKNOWN;
      }
      /**
       * <code>.proto.DcChargingProfile dc_charging_profile = 83;</code>
       * @param value The dcChargingProfile to set.
       * @return This builder for chaining.
       */
      public Builder setDcChargingProfile(com.daimler.mbcarkit.proto.VehicleEvents.DcChargingProfile value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 83;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.DcChargingProfile dc_charging_profile = 83;</code>
       * @return This builder for chaining.
       */
      public Builder clearDcChargingProfile() {
        if (attributeTypeCase_ == 83) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsOrBuilder> chargeFlapsBuilder_;
      /**
       * <code>.proto.ChargeFlaps charge_flaps = 84;</code>
       * @return Whether the chargeFlaps field is set.
       */
      @java.lang.Override
      public boolean hasChargeFlaps() {
        return attributeTypeCase_ == 84;
      }
      /**
       * <code>.proto.ChargeFlaps charge_flaps = 84;</code>
       * @return The chargeFlaps.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps getChargeFlaps() {
        if (chargeFlapsBuilder_ == null) {
          if (attributeTypeCase_ == 84) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 84) {
            return chargeFlapsBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargeFlaps charge_flaps = 84;</code>
       */
      public Builder setChargeFlaps(com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps value) {
        if (chargeFlapsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          chargeFlapsBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 84;
        return this;
      }
      /**
       * <code>.proto.ChargeFlaps charge_flaps = 84;</code>
       */
      public Builder setChargeFlaps(
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.Builder builderForValue) {
        if (chargeFlapsBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          chargeFlapsBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 84;
        return this;
      }
      /**
       * <code>.proto.ChargeFlaps charge_flaps = 84;</code>
       */
      public Builder mergeChargeFlaps(com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps value) {
        if (chargeFlapsBuilder_ == null) {
          if (attributeTypeCase_ == 84 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 84) {
            chargeFlapsBuilder_.mergeFrom(value);
          } else {
            chargeFlapsBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 84;
        return this;
      }
      /**
       * <code>.proto.ChargeFlaps charge_flaps = 84;</code>
       */
      public Builder clearChargeFlaps() {
        if (chargeFlapsBuilder_ == null) {
          if (attributeTypeCase_ == 84) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 84) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          chargeFlapsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.ChargeFlaps charge_flaps = 84;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.Builder getChargeFlapsBuilder() {
        return internalGetChargeFlapsFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.ChargeFlaps charge_flaps = 84;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsOrBuilder getChargeFlapsOrBuilder() {
        if ((attributeTypeCase_ == 84) && (chargeFlapsBuilder_ != null)) {
          return chargeFlapsBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 84) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargeFlaps charge_flaps = 84;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsOrBuilder> 
          internalGetChargeFlapsFieldBuilder() {
        if (chargeFlapsBuilder_ == null) {
          if (!(attributeTypeCase_ == 84)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.getDefaultInstance();
          }
          chargeFlapsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 84;
        onChanged();
        return chargeFlapsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsOrBuilder> chargeInletsBuilder_;
      /**
       * <code>.proto.ChargeInlets charge_inlets = 85;</code>
       * @return Whether the chargeInlets field is set.
       */
      @java.lang.Override
      public boolean hasChargeInlets() {
        return attributeTypeCase_ == 85;
      }
      /**
       * <code>.proto.ChargeInlets charge_inlets = 85;</code>
       * @return The chargeInlets.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets getChargeInlets() {
        if (chargeInletsBuilder_ == null) {
          if (attributeTypeCase_ == 85) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 85) {
            return chargeInletsBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargeInlets charge_inlets = 85;</code>
       */
      public Builder setChargeInlets(com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets value) {
        if (chargeInletsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          chargeInletsBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 85;
        return this;
      }
      /**
       * <code>.proto.ChargeInlets charge_inlets = 85;</code>
       */
      public Builder setChargeInlets(
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.Builder builderForValue) {
        if (chargeInletsBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          chargeInletsBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 85;
        return this;
      }
      /**
       * <code>.proto.ChargeInlets charge_inlets = 85;</code>
       */
      public Builder mergeChargeInlets(com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets value) {
        if (chargeInletsBuilder_ == null) {
          if (attributeTypeCase_ == 85 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 85) {
            chargeInletsBuilder_.mergeFrom(value);
          } else {
            chargeInletsBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 85;
        return this;
      }
      /**
       * <code>.proto.ChargeInlets charge_inlets = 85;</code>
       */
      public Builder clearChargeInlets() {
        if (chargeInletsBuilder_ == null) {
          if (attributeTypeCase_ == 85) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 85) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          chargeInletsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.ChargeInlets charge_inlets = 85;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.Builder getChargeInletsBuilder() {
        return internalGetChargeInletsFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.ChargeInlets charge_inlets = 85;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsOrBuilder getChargeInletsOrBuilder() {
        if ((attributeTypeCase_ == 85) && (chargeInletsBuilder_ != null)) {
          return chargeInletsBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 85) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargeInlets charge_inlets = 85;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsOrBuilder> 
          internalGetChargeInletsFieldBuilder() {
        if (chargeInletsBuilder_ == null) {
          if (!(attributeTypeCase_ == 85)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.getDefaultInstance();
          }
          chargeInletsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 85;
        onChanged();
        return chargeInletsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerOrBuilder> chargingTimerBuilder_;
      /**
       * <code>.proto.ChargingTimer charging_timer = 86;</code>
       * @return Whether the chargingTimer field is set.
       */
      @java.lang.Override
      public boolean hasChargingTimer() {
        return attributeTypeCase_ == 86;
      }
      /**
       * <code>.proto.ChargingTimer charging_timer = 86;</code>
       * @return The chargingTimer.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer getChargingTimer() {
        if (chargingTimerBuilder_ == null) {
          if (attributeTypeCase_ == 86) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 86) {
            return chargingTimerBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargingTimer charging_timer = 86;</code>
       */
      public Builder setChargingTimer(com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer value) {
        if (chargingTimerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          chargingTimerBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 86;
        return this;
      }
      /**
       * <code>.proto.ChargingTimer charging_timer = 86;</code>
       */
      public Builder setChargingTimer(
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.Builder builderForValue) {
        if (chargingTimerBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          chargingTimerBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 86;
        return this;
      }
      /**
       * <code>.proto.ChargingTimer charging_timer = 86;</code>
       */
      public Builder mergeChargingTimer(com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer value) {
        if (chargingTimerBuilder_ == null) {
          if (attributeTypeCase_ == 86 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 86) {
            chargingTimerBuilder_.mergeFrom(value);
          } else {
            chargingTimerBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 86;
        return this;
      }
      /**
       * <code>.proto.ChargingTimer charging_timer = 86;</code>
       */
      public Builder clearChargingTimer() {
        if (chargingTimerBuilder_ == null) {
          if (attributeTypeCase_ == 86) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 86) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          chargingTimerBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.ChargingTimer charging_timer = 86;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.Builder getChargingTimerBuilder() {
        return internalGetChargingTimerFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.ChargingTimer charging_timer = 86;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerOrBuilder getChargingTimerOrBuilder() {
        if ((attributeTypeCase_ == 86) && (chargingTimerBuilder_ != null)) {
          return chargingTimerBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 86) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargingTimer charging_timer = 86;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerOrBuilder> 
          internalGetChargingTimerFieldBuilder() {
        if (chargingTimerBuilder_ == null) {
          if (!(attributeTypeCase_ == 86)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.getDefaultInstance();
          }
          chargingTimerBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 86;
        onChanged();
        return chargingTimerBuilder_;
      }

      /**
       * <code>.proto.ParkEventPictureTransmissionStatus park_event_picture_transmission_status = 87;</code>
       * @return Whether the parkEventPictureTransmissionStatus field is set.
       */
      @java.lang.Override
      public boolean hasParkEventPictureTransmissionStatus() {
        return attributeTypeCase_ == 87;
      }
      /**
       * <code>.proto.ParkEventPictureTransmissionStatus park_event_picture_transmission_status = 87;</code>
       * @return The enum numeric value on the wire for parkEventPictureTransmissionStatus.
       */
      @java.lang.Override
      public int getParkEventPictureTransmissionStatusValue() {
        if (attributeTypeCase_ == 87) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.ParkEventPictureTransmissionStatus park_event_picture_transmission_status = 87;</code>
       * @param value The enum numeric value on the wire for parkEventPictureTransmissionStatus to set.
       * @return This builder for chaining.
       */
      public Builder setParkEventPictureTransmissionStatusValue(int value) {
        attributeTypeCase_ = 87;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ParkEventPictureTransmissionStatus park_event_picture_transmission_status = 87;</code>
       * @return The parkEventPictureTransmissionStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureTransmissionStatus getParkEventPictureTransmissionStatus() {
        if (attributeTypeCase_ == 87) {
          com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureTransmissionStatus result = com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureTransmissionStatus.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureTransmissionStatus.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureTransmissionStatus.PARK_EVENT_PICTURE_TRANSMISSION_STATUS_IDLE;
      }
      /**
       * <code>.proto.ParkEventPictureTransmissionStatus park_event_picture_transmission_status = 87;</code>
       * @param value The parkEventPictureTransmissionStatus to set.
       * @return This builder for chaining.
       */
      public Builder setParkEventPictureTransmissionStatus(com.daimler.mbcarkit.proto.VehicleEvents.ParkEventPictureTransmissionStatus value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 87;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ParkEventPictureTransmissionStatus park_event_picture_transmission_status = 87;</code>
       * @return This builder for chaining.
       */
      public Builder clearParkEventPictureTransmissionStatus() {
        if (attributeTypeCase_ == 87) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequestedOrBuilder> chargingScheduleRequestedBuilder_;
      /**
       * <code>.proto.ChargingScheduleRequested charging_schedule_requested = 88;</code>
       * @return Whether the chargingScheduleRequested field is set.
       */
      @java.lang.Override
      public boolean hasChargingScheduleRequested() {
        return attributeTypeCase_ == 88;
      }
      /**
       * <code>.proto.ChargingScheduleRequested charging_schedule_requested = 88;</code>
       * @return The chargingScheduleRequested.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested getChargingScheduleRequested() {
        if (chargingScheduleRequestedBuilder_ == null) {
          if (attributeTypeCase_ == 88) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 88) {
            return chargingScheduleRequestedBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargingScheduleRequested charging_schedule_requested = 88;</code>
       */
      public Builder setChargingScheduleRequested(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested value) {
        if (chargingScheduleRequestedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          chargingScheduleRequestedBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 88;
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleRequested charging_schedule_requested = 88;</code>
       */
      public Builder setChargingScheduleRequested(
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.Builder builderForValue) {
        if (chargingScheduleRequestedBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          chargingScheduleRequestedBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 88;
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleRequested charging_schedule_requested = 88;</code>
       */
      public Builder mergeChargingScheduleRequested(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested value) {
        if (chargingScheduleRequestedBuilder_ == null) {
          if (attributeTypeCase_ == 88 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 88) {
            chargingScheduleRequestedBuilder_.mergeFrom(value);
          } else {
            chargingScheduleRequestedBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 88;
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleRequested charging_schedule_requested = 88;</code>
       */
      public Builder clearChargingScheduleRequested() {
        if (chargingScheduleRequestedBuilder_ == null) {
          if (attributeTypeCase_ == 88) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 88) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          chargingScheduleRequestedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleRequested charging_schedule_requested = 88;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.Builder getChargingScheduleRequestedBuilder() {
        return internalGetChargingScheduleRequestedFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.ChargingScheduleRequested charging_schedule_requested = 88;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequestedOrBuilder getChargingScheduleRequestedOrBuilder() {
        if ((attributeTypeCase_ == 88) && (chargingScheduleRequestedBuilder_ != null)) {
          return chargingScheduleRequestedBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 88) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ChargingScheduleRequested charging_schedule_requested = 88;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequestedOrBuilder> 
          internalGetChargingScheduleRequestedFieldBuilder() {
        if (chargingScheduleRequestedBuilder_ == null) {
          if (!(attributeTypeCase_ == 88)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.getDefaultInstance();
          }
          chargingScheduleRequestedBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequestedOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 88;
        onChanged();
        return chargingScheduleRequestedBuilder_;
      }

      /**
       * <code>.proto.ChargingFlapErrorDetails charging_flap_error_details = 89;</code>
       * @return Whether the chargingFlapErrorDetails field is set.
       */
      @java.lang.Override
      public boolean hasChargingFlapErrorDetails() {
        return attributeTypeCase_ == 89;
      }
      /**
       * <code>.proto.ChargingFlapErrorDetails charging_flap_error_details = 89;</code>
       * @return The enum numeric value on the wire for chargingFlapErrorDetails.
       */
      @java.lang.Override
      public int getChargingFlapErrorDetailsValue() {
        if (attributeTypeCase_ == 89) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.ChargingFlapErrorDetails charging_flap_error_details = 89;</code>
       * @param value The enum numeric value on the wire for chargingFlapErrorDetails to set.
       * @return This builder for chaining.
       */
      public Builder setChargingFlapErrorDetailsValue(int value) {
        attributeTypeCase_ = 89;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingFlapErrorDetails charging_flap_error_details = 89;</code>
       * @return The chargingFlapErrorDetails.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingFlapErrorDetails getChargingFlapErrorDetails() {
        if (attributeTypeCase_ == 89) {
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingFlapErrorDetails result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingFlapErrorDetails.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingFlapErrorDetails.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingFlapErrorDetails.CHARGING_FLAP_ERROR_DETAILS_NO_INFO_OR_ERROR_MESSAGE;
      }
      /**
       * <code>.proto.ChargingFlapErrorDetails charging_flap_error_details = 89;</code>
       * @param value The chargingFlapErrorDetails to set.
       * @return This builder for chaining.
       */
      public Builder setChargingFlapErrorDetails(com.daimler.mbcarkit.proto.VehicleEvents.ChargingFlapErrorDetails value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 89;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingFlapErrorDetails charging_flap_error_details = 89;</code>
       * @return This builder for chaining.
       */
      public Builder clearChargingFlapErrorDetails() {
        if (attributeTypeCase_ == 89) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.ChargingCompatibilityError charging_compatibility_error = 90;</code>
       * @return Whether the chargingCompatibilityError field is set.
       */
      @java.lang.Override
      public boolean hasChargingCompatibilityError() {
        return attributeTypeCase_ == 90;
      }
      /**
       * <code>.proto.ChargingCompatibilityError charging_compatibility_error = 90;</code>
       * @return The enum numeric value on the wire for chargingCompatibilityError.
       */
      @java.lang.Override
      public int getChargingCompatibilityErrorValue() {
        if (attributeTypeCase_ == 90) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.ChargingCompatibilityError charging_compatibility_error = 90;</code>
       * @param value The enum numeric value on the wire for chargingCompatibilityError to set.
       * @return This builder for chaining.
       */
      public Builder setChargingCompatibilityErrorValue(int value) {
        attributeTypeCase_ = 90;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingCompatibilityError charging_compatibility_error = 90;</code>
       * @return The chargingCompatibilityError.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingCompatibilityError getChargingCompatibilityError() {
        if (attributeTypeCase_ == 90) {
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingCompatibilityError result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingCompatibilityError.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingCompatibilityError.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingCompatibilityError.CHARGING_COMPATIBILITY_ERROR_DEFAULT;
      }
      /**
       * <code>.proto.ChargingCompatibilityError charging_compatibility_error = 90;</code>
       * @param value The chargingCompatibilityError to set.
       * @return This builder for chaining.
       */
      public Builder setChargingCompatibilityError(com.daimler.mbcarkit.proto.VehicleEvents.ChargingCompatibilityError value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 90;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingCompatibilityError charging_compatibility_error = 90;</code>
       * @return This builder for chaining.
       */
      public Builder clearChargingCompatibilityError() {
        if (attributeTypeCase_ == 90) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>.proto.HvBatteryPrecondAvailability hv_battery_precond_availability = 91;</code>
       * @return Whether the hvBatteryPrecondAvailability field is set.
       */
      @java.lang.Override
      public boolean hasHvBatteryPrecondAvailability() {
        return attributeTypeCase_ == 91;
      }
      /**
       * <code>.proto.HvBatteryPrecondAvailability hv_battery_precond_availability = 91;</code>
       * @return The enum numeric value on the wire for hvBatteryPrecondAvailability.
       */
      @java.lang.Override
      public int getHvBatteryPrecondAvailabilityValue() {
        if (attributeTypeCase_ == 91) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.HvBatteryPrecondAvailability hv_battery_precond_availability = 91;</code>
       * @param value The enum numeric value on the wire for hvBatteryPrecondAvailability to set.
       * @return This builder for chaining.
       */
      public Builder setHvBatteryPrecondAvailabilityValue(int value) {
        attributeTypeCase_ = 91;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.HvBatteryPrecondAvailability hv_battery_precond_availability = 91;</code>
       * @return The hvBatteryPrecondAvailability.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondAvailability getHvBatteryPrecondAvailability() {
        if (attributeTypeCase_ == 91) {
          com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondAvailability result = com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondAvailability.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondAvailability.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondAvailability.HV_BATTERY_PRECOND_AVAILABILITY_NOT_AVAILABLE;
      }
      /**
       * <code>.proto.HvBatteryPrecondAvailability hv_battery_precond_availability = 91;</code>
       * @param value The hvBatteryPrecondAvailability to set.
       * @return This builder for chaining.
       */
      public Builder setHvBatteryPrecondAvailability(com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondAvailability value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 91;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.HvBatteryPrecondAvailability hv_battery_precond_availability = 91;</code>
       * @return This builder for chaining.
       */
      public Builder clearHvBatteryPrecondAvailability() {
        if (attributeTypeCase_ == 91) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState, com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.Builder, com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestStateOrBuilder> hvBatteryPrecondRequestStateBuilder_;
      /**
       * <code>.proto.HvBatteryPrecondRequestState hv_battery_precond_request_state = 92;</code>
       * @return Whether the hvBatteryPrecondRequestState field is set.
       */
      @java.lang.Override
      public boolean hasHvBatteryPrecondRequestState() {
        return attributeTypeCase_ == 92;
      }
      /**
       * <code>.proto.HvBatteryPrecondRequestState hv_battery_precond_request_state = 92;</code>
       * @return The hvBatteryPrecondRequestState.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState getHvBatteryPrecondRequestState() {
        if (hvBatteryPrecondRequestStateBuilder_ == null) {
          if (attributeTypeCase_ == 92) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 92) {
            return hvBatteryPrecondRequestStateBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.HvBatteryPrecondRequestState hv_battery_precond_request_state = 92;</code>
       */
      public Builder setHvBatteryPrecondRequestState(com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState value) {
        if (hvBatteryPrecondRequestStateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          hvBatteryPrecondRequestStateBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 92;
        return this;
      }
      /**
       * <code>.proto.HvBatteryPrecondRequestState hv_battery_precond_request_state = 92;</code>
       */
      public Builder setHvBatteryPrecondRequestState(
          com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.Builder builderForValue) {
        if (hvBatteryPrecondRequestStateBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          hvBatteryPrecondRequestStateBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 92;
        return this;
      }
      /**
       * <code>.proto.HvBatteryPrecondRequestState hv_battery_precond_request_state = 92;</code>
       */
      public Builder mergeHvBatteryPrecondRequestState(com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState value) {
        if (hvBatteryPrecondRequestStateBuilder_ == null) {
          if (attributeTypeCase_ == 92 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 92) {
            hvBatteryPrecondRequestStateBuilder_.mergeFrom(value);
          } else {
            hvBatteryPrecondRequestStateBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 92;
        return this;
      }
      /**
       * <code>.proto.HvBatteryPrecondRequestState hv_battery_precond_request_state = 92;</code>
       */
      public Builder clearHvBatteryPrecondRequestState() {
        if (hvBatteryPrecondRequestStateBuilder_ == null) {
          if (attributeTypeCase_ == 92) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 92) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          hvBatteryPrecondRequestStateBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.HvBatteryPrecondRequestState hv_battery_precond_request_state = 92;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.Builder getHvBatteryPrecondRequestStateBuilder() {
        return internalGetHvBatteryPrecondRequestStateFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.HvBatteryPrecondRequestState hv_battery_precond_request_state = 92;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestStateOrBuilder getHvBatteryPrecondRequestStateOrBuilder() {
        if ((attributeTypeCase_ == 92) && (hvBatteryPrecondRequestStateBuilder_ != null)) {
          return hvBatteryPrecondRequestStateBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 92) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.HvBatteryPrecondRequestState hv_battery_precond_request_state = 92;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState, com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.Builder, com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestStateOrBuilder> 
          internalGetHvBatteryPrecondRequestStateFieldBuilder() {
        if (hvBatteryPrecondRequestStateBuilder_ == null) {
          if (!(attributeTypeCase_ == 92)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.getDefaultInstance();
          }
          hvBatteryPrecondRequestStateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState, com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.Builder, com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestStateOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 92;
        onChanged();
        return hvBatteryPrecondRequestStateBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState, com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.Builder, com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStateOrBuilder> hvBatteryPrecondStateBuilder_;
      /**
       * <code>.proto.HvBatteryPrecondState hv_battery_precond_state = 93;</code>
       * @return Whether the hvBatteryPrecondState field is set.
       */
      @java.lang.Override
      public boolean hasHvBatteryPrecondState() {
        return attributeTypeCase_ == 93;
      }
      /**
       * <code>.proto.HvBatteryPrecondState hv_battery_precond_state = 93;</code>
       * @return The hvBatteryPrecondState.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState getHvBatteryPrecondState() {
        if (hvBatteryPrecondStateBuilder_ == null) {
          if (attributeTypeCase_ == 93) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 93) {
            return hvBatteryPrecondStateBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.HvBatteryPrecondState hv_battery_precond_state = 93;</code>
       */
      public Builder setHvBatteryPrecondState(com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState value) {
        if (hvBatteryPrecondStateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          hvBatteryPrecondStateBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 93;
        return this;
      }
      /**
       * <code>.proto.HvBatteryPrecondState hv_battery_precond_state = 93;</code>
       */
      public Builder setHvBatteryPrecondState(
          com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.Builder builderForValue) {
        if (hvBatteryPrecondStateBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          hvBatteryPrecondStateBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 93;
        return this;
      }
      /**
       * <code>.proto.HvBatteryPrecondState hv_battery_precond_state = 93;</code>
       */
      public Builder mergeHvBatteryPrecondState(com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState value) {
        if (hvBatteryPrecondStateBuilder_ == null) {
          if (attributeTypeCase_ == 93 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 93) {
            hvBatteryPrecondStateBuilder_.mergeFrom(value);
          } else {
            hvBatteryPrecondStateBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 93;
        return this;
      }
      /**
       * <code>.proto.HvBatteryPrecondState hv_battery_precond_state = 93;</code>
       */
      public Builder clearHvBatteryPrecondState() {
        if (hvBatteryPrecondStateBuilder_ == null) {
          if (attributeTypeCase_ == 93) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 93) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          hvBatteryPrecondStateBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.HvBatteryPrecondState hv_battery_precond_state = 93;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.Builder getHvBatteryPrecondStateBuilder() {
        return internalGetHvBatteryPrecondStateFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.HvBatteryPrecondState hv_battery_precond_state = 93;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStateOrBuilder getHvBatteryPrecondStateOrBuilder() {
        if ((attributeTypeCase_ == 93) && (hvBatteryPrecondStateBuilder_ != null)) {
          return hvBatteryPrecondStateBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 93) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.HvBatteryPrecondState hv_battery_precond_state = 93;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState, com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.Builder, com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStateOrBuilder> 
          internalGetHvBatteryPrecondStateFieldBuilder() {
        if (hvBatteryPrecondStateBuilder_ == null) {
          if (!(attributeTypeCase_ == 93)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.getDefaultInstance();
          }
          hvBatteryPrecondStateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState, com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.Builder, com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStateOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 93;
        onChanged();
        return hvBatteryPrecondStateBuilder_;
      }

      /**
       * <code>.proto.AmgStageModeState amg_stage_mode_state = 94;</code>
       * @return Whether the amgStageModeState field is set.
       */
      @java.lang.Override
      public boolean hasAmgStageModeState() {
        return attributeTypeCase_ == 94;
      }
      /**
       * <code>.proto.AmgStageModeState amg_stage_mode_state = 94;</code>
       * @return The enum numeric value on the wire for amgStageModeState.
       */
      @java.lang.Override
      public int getAmgStageModeStateValue() {
        if (attributeTypeCase_ == 94) {
          return ((java.lang.Integer) attributeType_).intValue();
        }
        return 0;
      }
      /**
       * <code>.proto.AmgStageModeState amg_stage_mode_state = 94;</code>
       * @param value The enum numeric value on the wire for amgStageModeState to set.
       * @return This builder for chaining.
       */
      public Builder setAmgStageModeStateValue(int value) {
        attributeTypeCase_ = 94;
        attributeType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.AmgStageModeState amg_stage_mode_state = 94;</code>
       * @return The amgStageModeState.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeState getAmgStageModeState() {
        if (attributeTypeCase_ == 94) {
          com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeState result = com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeState.forNumber(
              (java.lang.Integer) attributeType_);
          return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeState.UNRECOGNIZED : result;
        }
        return com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeState.AMG_STAGE_MODE_STATE_STAGING_NOT_ACTIVE;
      }
      /**
       * <code>.proto.AmgStageModeState amg_stage_mode_state = 94;</code>
       * @param value The amgStageModeState to set.
       * @return This builder for chaining.
       */
      public Builder setAmgStageModeState(com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeState value) {
        if (value == null) { throw new NullPointerException(); }
        attributeTypeCase_ = 94;
        attributeType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.AmgStageModeState amg_stage_mode_state = 94;</code>
       * @return This builder for chaining.
       */
      public Builder clearAmgStageModeState() {
        if (attributeTypeCase_ == 94) {
          attributeTypeCase_ = 0;
          attributeType_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError, com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.Builder, com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeErrorOrBuilder> amgStageModeErrorBuilder_;
      /**
       * <code>.proto.AmgStageModeError amg_stage_mode_error = 95;</code>
       * @return Whether the amgStageModeError field is set.
       */
      @java.lang.Override
      public boolean hasAmgStageModeError() {
        return attributeTypeCase_ == 95;
      }
      /**
       * <code>.proto.AmgStageModeError amg_stage_mode_error = 95;</code>
       * @return The amgStageModeError.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError getAmgStageModeError() {
        if (amgStageModeErrorBuilder_ == null) {
          if (attributeTypeCase_ == 95) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.getDefaultInstance();
        } else {
          if (attributeTypeCase_ == 95) {
            return amgStageModeErrorBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.AmgStageModeError amg_stage_mode_error = 95;</code>
       */
      public Builder setAmgStageModeError(com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError value) {
        if (amgStageModeErrorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          attributeType_ = value;
          onChanged();
        } else {
          amgStageModeErrorBuilder_.setMessage(value);
        }
        attributeTypeCase_ = 95;
        return this;
      }
      /**
       * <code>.proto.AmgStageModeError amg_stage_mode_error = 95;</code>
       */
      public Builder setAmgStageModeError(
          com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.Builder builderForValue) {
        if (amgStageModeErrorBuilder_ == null) {
          attributeType_ = builderForValue.build();
          onChanged();
        } else {
          amgStageModeErrorBuilder_.setMessage(builderForValue.build());
        }
        attributeTypeCase_ = 95;
        return this;
      }
      /**
       * <code>.proto.AmgStageModeError amg_stage_mode_error = 95;</code>
       */
      public Builder mergeAmgStageModeError(com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError value) {
        if (amgStageModeErrorBuilder_ == null) {
          if (attributeTypeCase_ == 95 &&
              attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.getDefaultInstance()) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError) attributeType_)
                .mergeFrom(value).buildPartial();
          } else {
            attributeType_ = value;
          }
          onChanged();
        } else {
          if (attributeTypeCase_ == 95) {
            amgStageModeErrorBuilder_.mergeFrom(value);
          } else {
            amgStageModeErrorBuilder_.setMessage(value);
          }
        }
        attributeTypeCase_ = 95;
        return this;
      }
      /**
       * <code>.proto.AmgStageModeError amg_stage_mode_error = 95;</code>
       */
      public Builder clearAmgStageModeError() {
        if (amgStageModeErrorBuilder_ == null) {
          if (attributeTypeCase_ == 95) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
            onChanged();
          }
        } else {
          if (attributeTypeCase_ == 95) {
            attributeTypeCase_ = 0;
            attributeType_ = null;
          }
          amgStageModeErrorBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.AmgStageModeError amg_stage_mode_error = 95;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.Builder getAmgStageModeErrorBuilder() {
        return internalGetAmgStageModeErrorFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.AmgStageModeError amg_stage_mode_error = 95;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeErrorOrBuilder getAmgStageModeErrorOrBuilder() {
        if ((attributeTypeCase_ == 95) && (amgStageModeErrorBuilder_ != null)) {
          return amgStageModeErrorBuilder_.getMessageOrBuilder();
        } else {
          if (attributeTypeCase_ == 95) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError) attributeType_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.AmgStageModeError amg_stage_mode_error = 95;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError, com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.Builder, com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeErrorOrBuilder> 
          internalGetAmgStageModeErrorFieldBuilder() {
        if (amgStageModeErrorBuilder_ == null) {
          if (!(attributeTypeCase_ == 95)) {
            attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.getDefaultInstance();
          }
          amgStageModeErrorBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError, com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.Builder, com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeErrorOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError) attributeType_,
                  getParentForChildren(),
                  isClean());
          attributeType_ = null;
        }
        attributeTypeCase_ = 95;
        onChanged();
        return amgStageModeErrorBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:proto.VehicleAttributeStatus)
    }

    // @@protoc_insertion_point(class_scope:proto.VehicleAttributeStatus)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<VehicleAttributeStatus>
        PARSER = new com.google.protobuf.AbstractParser<VehicleAttributeStatus>() {
      @java.lang.Override
      public VehicleAttributeStatus parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<VehicleAttributeStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<VehicleAttributeStatus> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AmgStageModeErrorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.AmgStageModeError)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>bool rear_spoiler = 1;</code>
     * @return The rearSpoiler.
     */
    boolean getRearSpoiler();

    /**
     * <code>bool bow_wave = 2;</code>
     * @return The bowWave.
     */
    boolean getBowWave();

    /**
     * <code>bool diffuser = 3;</code>
     * @return The diffuser.
     */
    boolean getDiffuser();

    /**
     * <code>bool light = 4;</code>
     * @return The light.
     */
    boolean getLight();

    /**
     * <code>bool mirror = 5;</code>
     * @return The mirror.
     */
    boolean getMirror();

    /**
     * <code>bool sound = 6;</code>
     * @return The sound.
     */
    boolean getSound();

    /**
     * <code>bool air_control_system = 7;</code>
     * @return The airControlSystem.
     */
    boolean getAirControlSystem();

    /**
     * <code>bool venturi = 8;</code>
     * @return The venturi.
     */
    boolean getVenturi();
  }
  /**
   * Protobuf type {@code proto.AmgStageModeError}
   */
  public static final class AmgStageModeError extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.AmgStageModeError)
      AmgStageModeErrorOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "AmgStageModeError");
    }
    // Use AmgStageModeError.newBuilder() to construct.
    private AmgStageModeError(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AmgStageModeError() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AmgStageModeError_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AmgStageModeError_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.class, com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.Builder.class);
    }

    public static final int REAR_SPOILER_FIELD_NUMBER = 1;
    private boolean rearSpoiler_ = false;
    /**
     * <code>bool rear_spoiler = 1;</code>
     * @return The rearSpoiler.
     */
    @java.lang.Override
    public boolean getRearSpoiler() {
      return rearSpoiler_;
    }

    public static final int BOW_WAVE_FIELD_NUMBER = 2;
    private boolean bowWave_ = false;
    /**
     * <code>bool bow_wave = 2;</code>
     * @return The bowWave.
     */
    @java.lang.Override
    public boolean getBowWave() {
      return bowWave_;
    }

    public static final int DIFFUSER_FIELD_NUMBER = 3;
    private boolean diffuser_ = false;
    /**
     * <code>bool diffuser = 3;</code>
     * @return The diffuser.
     */
    @java.lang.Override
    public boolean getDiffuser() {
      return diffuser_;
    }

    public static final int LIGHT_FIELD_NUMBER = 4;
    private boolean light_ = false;
    /**
     * <code>bool light = 4;</code>
     * @return The light.
     */
    @java.lang.Override
    public boolean getLight() {
      return light_;
    }

    public static final int MIRROR_FIELD_NUMBER = 5;
    private boolean mirror_ = false;
    /**
     * <code>bool mirror = 5;</code>
     * @return The mirror.
     */
    @java.lang.Override
    public boolean getMirror() {
      return mirror_;
    }

    public static final int SOUND_FIELD_NUMBER = 6;
    private boolean sound_ = false;
    /**
     * <code>bool sound = 6;</code>
     * @return The sound.
     */
    @java.lang.Override
    public boolean getSound() {
      return sound_;
    }

    public static final int AIR_CONTROL_SYSTEM_FIELD_NUMBER = 7;
    private boolean airControlSystem_ = false;
    /**
     * <code>bool air_control_system = 7;</code>
     * @return The airControlSystem.
     */
    @java.lang.Override
    public boolean getAirControlSystem() {
      return airControlSystem_;
    }

    public static final int VENTURI_FIELD_NUMBER = 8;
    private boolean venturi_ = false;
    /**
     * <code>bool venturi = 8;</code>
     * @return The venturi.
     */
    @java.lang.Override
    public boolean getVenturi() {
      return venturi_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (rearSpoiler_ != false) {
        output.writeBool(1, rearSpoiler_);
      }
      if (bowWave_ != false) {
        output.writeBool(2, bowWave_);
      }
      if (diffuser_ != false) {
        output.writeBool(3, diffuser_);
      }
      if (light_ != false) {
        output.writeBool(4, light_);
      }
      if (mirror_ != false) {
        output.writeBool(5, mirror_);
      }
      if (sound_ != false) {
        output.writeBool(6, sound_);
      }
      if (airControlSystem_ != false) {
        output.writeBool(7, airControlSystem_);
      }
      if (venturi_ != false) {
        output.writeBool(8, venturi_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (rearSpoiler_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, rearSpoiler_);
      }
      if (bowWave_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, bowWave_);
      }
      if (diffuser_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, diffuser_);
      }
      if (light_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, light_);
      }
      if (mirror_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, mirror_);
      }
      if (sound_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, sound_);
      }
      if (airControlSystem_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(7, airControlSystem_);
      }
      if (venturi_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, venturi_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError other = (com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError) obj;

      if (getRearSpoiler()
          != other.getRearSpoiler()) return false;
      if (getBowWave()
          != other.getBowWave()) return false;
      if (getDiffuser()
          != other.getDiffuser()) return false;
      if (getLight()
          != other.getLight()) return false;
      if (getMirror()
          != other.getMirror()) return false;
      if (getSound()
          != other.getSound()) return false;
      if (getAirControlSystem()
          != other.getAirControlSystem()) return false;
      if (getVenturi()
          != other.getVenturi()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + REAR_SPOILER_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getRearSpoiler());
      hash = (37 * hash) + BOW_WAVE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getBowWave());
      hash = (37 * hash) + DIFFUSER_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDiffuser());
      hash = (37 * hash) + LIGHT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getLight());
      hash = (37 * hash) + MIRROR_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getMirror());
      hash = (37 * hash) + SOUND_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getSound());
      hash = (37 * hash) + AIR_CONTROL_SYSTEM_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getAirControlSystem());
      hash = (37 * hash) + VENTURI_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getVenturi());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.AmgStageModeError}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.AmgStageModeError)
        com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeErrorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AmgStageModeError_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AmgStageModeError_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.class, com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        rearSpoiler_ = false;
        bowWave_ = false;
        diffuser_ = false;
        light_ = false;
        mirror_ = false;
        sound_ = false;
        airControlSystem_ = false;
        venturi_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AmgStageModeError_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError build() {
        com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError result = new com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.rearSpoiler_ = rearSpoiler_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.bowWave_ = bowWave_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.diffuser_ = diffuser_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.light_ = light_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.mirror_ = mirror_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.sound_ = sound_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.airControlSystem_ = airControlSystem_;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.venturi_ = venturi_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError.getDefaultInstance()) return this;
        if (other.getRearSpoiler() != false) {
          setRearSpoiler(other.getRearSpoiler());
        }
        if (other.getBowWave() != false) {
          setBowWave(other.getBowWave());
        }
        if (other.getDiffuser() != false) {
          setDiffuser(other.getDiffuser());
        }
        if (other.getLight() != false) {
          setLight(other.getLight());
        }
        if (other.getMirror() != false) {
          setMirror(other.getMirror());
        }
        if (other.getSound() != false) {
          setSound(other.getSound());
        }
        if (other.getAirControlSystem() != false) {
          setAirControlSystem(other.getAirControlSystem());
        }
        if (other.getVenturi() != false) {
          setVenturi(other.getVenturi());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                rearSpoiler_ = input.readBool();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                bowWave_ = input.readBool();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                diffuser_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                light_ = input.readBool();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                mirror_ = input.readBool();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                sound_ = input.readBool();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 56: {
                airControlSystem_ = input.readBool();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 64: {
                venturi_ = input.readBool();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private boolean rearSpoiler_ ;
      /**
       * <code>bool rear_spoiler = 1;</code>
       * @return The rearSpoiler.
       */
      @java.lang.Override
      public boolean getRearSpoiler() {
        return rearSpoiler_;
      }
      /**
       * <code>bool rear_spoiler = 1;</code>
       * @param value The rearSpoiler to set.
       * @return This builder for chaining.
       */
      public Builder setRearSpoiler(boolean value) {

        rearSpoiler_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>bool rear_spoiler = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRearSpoiler() {
        bitField0_ = (bitField0_ & ~0x00000001);
        rearSpoiler_ = false;
        onChanged();
        return this;
      }

      private boolean bowWave_ ;
      /**
       * <code>bool bow_wave = 2;</code>
       * @return The bowWave.
       */
      @java.lang.Override
      public boolean getBowWave() {
        return bowWave_;
      }
      /**
       * <code>bool bow_wave = 2;</code>
       * @param value The bowWave to set.
       * @return This builder for chaining.
       */
      public Builder setBowWave(boolean value) {

        bowWave_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>bool bow_wave = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearBowWave() {
        bitField0_ = (bitField0_ & ~0x00000002);
        bowWave_ = false;
        onChanged();
        return this;
      }

      private boolean diffuser_ ;
      /**
       * <code>bool diffuser = 3;</code>
       * @return The diffuser.
       */
      @java.lang.Override
      public boolean getDiffuser() {
        return diffuser_;
      }
      /**
       * <code>bool diffuser = 3;</code>
       * @param value The diffuser to set.
       * @return This builder for chaining.
       */
      public Builder setDiffuser(boolean value) {

        diffuser_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>bool diffuser = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDiffuser() {
        bitField0_ = (bitField0_ & ~0x00000004);
        diffuser_ = false;
        onChanged();
        return this;
      }

      private boolean light_ ;
      /**
       * <code>bool light = 4;</code>
       * @return The light.
       */
      @java.lang.Override
      public boolean getLight() {
        return light_;
      }
      /**
       * <code>bool light = 4;</code>
       * @param value The light to set.
       * @return This builder for chaining.
       */
      public Builder setLight(boolean value) {

        light_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>bool light = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearLight() {
        bitField0_ = (bitField0_ & ~0x00000008);
        light_ = false;
        onChanged();
        return this;
      }

      private boolean mirror_ ;
      /**
       * <code>bool mirror = 5;</code>
       * @return The mirror.
       */
      @java.lang.Override
      public boolean getMirror() {
        return mirror_;
      }
      /**
       * <code>bool mirror = 5;</code>
       * @param value The mirror to set.
       * @return This builder for chaining.
       */
      public Builder setMirror(boolean value) {

        mirror_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>bool mirror = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearMirror() {
        bitField0_ = (bitField0_ & ~0x00000010);
        mirror_ = false;
        onChanged();
        return this;
      }

      private boolean sound_ ;
      /**
       * <code>bool sound = 6;</code>
       * @return The sound.
       */
      @java.lang.Override
      public boolean getSound() {
        return sound_;
      }
      /**
       * <code>bool sound = 6;</code>
       * @param value The sound to set.
       * @return This builder for chaining.
       */
      public Builder setSound(boolean value) {

        sound_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>bool sound = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearSound() {
        bitField0_ = (bitField0_ & ~0x00000020);
        sound_ = false;
        onChanged();
        return this;
      }

      private boolean airControlSystem_ ;
      /**
       * <code>bool air_control_system = 7;</code>
       * @return The airControlSystem.
       */
      @java.lang.Override
      public boolean getAirControlSystem() {
        return airControlSystem_;
      }
      /**
       * <code>bool air_control_system = 7;</code>
       * @param value The airControlSystem to set.
       * @return This builder for chaining.
       */
      public Builder setAirControlSystem(boolean value) {

        airControlSystem_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>bool air_control_system = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearAirControlSystem() {
        bitField0_ = (bitField0_ & ~0x00000040);
        airControlSystem_ = false;
        onChanged();
        return this;
      }

      private boolean venturi_ ;
      /**
       * <code>bool venturi = 8;</code>
       * @return The venturi.
       */
      @java.lang.Override
      public boolean getVenturi() {
        return venturi_;
      }
      /**
       * <code>bool venturi = 8;</code>
       * @param value The venturi to set.
       * @return This builder for chaining.
       */
      public Builder setVenturi(boolean value) {

        venturi_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>bool venturi = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearVenturi() {
        bitField0_ = (bitField0_ & ~0x00000080);
        venturi_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.AmgStageModeError)
    }

    // @@protoc_insertion_point(class_scope:proto.AmgStageModeError)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AmgStageModeError>
        PARSER = new com.google.protobuf.AbstractParser<AmgStageModeError>() {
      @java.lang.Override
      public AmgStageModeError parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AmgStageModeError> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AmgStageModeError> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.AmgStageModeError getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface KeylineActivationStateValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.KeylineActivationStateValue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.proto.KeylineActivationStates state = 1;</code>
     * @return The enum numeric value on the wire for state.
     */
    int getStateValue();
    /**
     * <code>.proto.KeylineActivationStates state = 1;</code>
     * @return The state.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStates getState();

    /**
     * <code>repeated int64 active_keylines = 2;</code>
     * @return A list containing the activeKeylines.
     */
    java.util.List<java.lang.Long> getActiveKeylinesList();
    /**
     * <code>repeated int64 active_keylines = 2;</code>
     * @return The count of activeKeylines.
     */
    int getActiveKeylinesCount();
    /**
     * <code>repeated int64 active_keylines = 2;</code>
     * @param index The index of the element to return.
     * @return The activeKeylines at the given index.
     */
    long getActiveKeylines(int index);
  }
  /**
   * <pre>
   * Keyline activation state value with active keylines
   * </pre>
   *
   * Protobuf type {@code proto.KeylineActivationStateValue}
   */
  public static final class KeylineActivationStateValue extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.KeylineActivationStateValue)
      KeylineActivationStateValueOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "KeylineActivationStateValue");
    }
    // Use KeylineActivationStateValue.newBuilder() to construct.
    private KeylineActivationStateValue(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private KeylineActivationStateValue() {
      state_ = 0;
      activeKeylines_ = emptyLongList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_KeylineActivationStateValue_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_KeylineActivationStateValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.class, com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.Builder.class);
    }

    public static final int STATE_FIELD_NUMBER = 1;
    private int state_ = 0;
    /**
     * <code>.proto.KeylineActivationStates state = 1;</code>
     * @return The enum numeric value on the wire for state.
     */
    @java.lang.Override public int getStateValue() {
      return state_;
    }
    /**
     * <code>.proto.KeylineActivationStates state = 1;</code>
     * @return The state.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStates getState() {
      com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStates result = com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStates.forNumber(state_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStates.UNRECOGNIZED : result;
    }

    public static final int ACTIVE_KEYLINES_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.LongList activeKeylines_ =
        emptyLongList();
    /**
     * <code>repeated int64 active_keylines = 2;</code>
     * @return A list containing the activeKeylines.
     */
    @java.lang.Override
    public java.util.List<java.lang.Long>
        getActiveKeylinesList() {
      return activeKeylines_;
    }
    /**
     * <code>repeated int64 active_keylines = 2;</code>
     * @return The count of activeKeylines.
     */
    public int getActiveKeylinesCount() {
      return activeKeylines_.size();
    }
    /**
     * <code>repeated int64 active_keylines = 2;</code>
     * @param index The index of the element to return.
     * @return The activeKeylines at the given index.
     */
    public long getActiveKeylines(int index) {
      return activeKeylines_.getLong(index);
    }
    private int activeKeylinesMemoizedSerializedSize = -1;

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (state_ != com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStates.UNKNOWN_KEYLINE_ACTIVATION_STATE.getNumber()) {
        output.writeEnum(1, state_);
      }
      if (getActiveKeylinesList().size() > 0) {
        output.writeUInt32NoTag(18);
        output.writeUInt32NoTag(activeKeylinesMemoizedSerializedSize);
      }
      for (int i = 0; i < activeKeylines_.size(); i++) {
        output.writeInt64NoTag(activeKeylines_.getLong(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (state_ != com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStates.UNKNOWN_KEYLINE_ACTIVATION_STATE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, state_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < activeKeylines_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt64SizeNoTag(activeKeylines_.getLong(i));
        }
        size += dataSize;
        if (!getActiveKeylinesList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        activeKeylinesMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue other = (com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue) obj;

      if (state_ != other.state_) return false;
      if (!getActiveKeylinesList()
          .equals(other.getActiveKeylinesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + STATE_FIELD_NUMBER;
      hash = (53 * hash) + state_;
      if (getActiveKeylinesCount() > 0) {
        hash = (37 * hash) + ACTIVE_KEYLINES_FIELD_NUMBER;
        hash = (53 * hash) + getActiveKeylinesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Keyline activation state value with active keylines
     * </pre>
     *
     * Protobuf type {@code proto.KeylineActivationStateValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.KeylineActivationStateValue)
        com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_KeylineActivationStateValue_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_KeylineActivationStateValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.class, com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        state_ = 0;
        activeKeylines_ = emptyLongList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_KeylineActivationStateValue_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue build() {
        com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue result = new com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.state_ = state_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          activeKeylines_.makeImmutable();
          result.activeKeylines_ = activeKeylines_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue.getDefaultInstance()) return this;
        if (other.state_ != 0) {
          setStateValue(other.getStateValue());
        }
        if (!other.activeKeylines_.isEmpty()) {
          if (activeKeylines_.isEmpty()) {
            activeKeylines_ = other.activeKeylines_;
            activeKeylines_.makeImmutable();
            bitField0_ |= 0x00000002;
          } else {
            ensureActiveKeylinesIsMutable();
            activeKeylines_.addAll(other.activeKeylines_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                state_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                long v = input.readInt64();
                ensureActiveKeylinesIsMutable();
                activeKeylines_.addLong(v);
                break;
              } // case 16
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureActiveKeylinesIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  activeKeylines_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int state_ = 0;
      /**
       * <code>.proto.KeylineActivationStates state = 1;</code>
       * @return The enum numeric value on the wire for state.
       */
      @java.lang.Override public int getStateValue() {
        return state_;
      }
      /**
       * <code>.proto.KeylineActivationStates state = 1;</code>
       * @param value The enum numeric value on the wire for state to set.
       * @return This builder for chaining.
       */
      public Builder setStateValue(int value) {
        state_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.KeylineActivationStates state = 1;</code>
       * @return The state.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStates getState() {
        com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStates result = com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStates.forNumber(state_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStates.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.KeylineActivationStates state = 1;</code>
       * @param value The state to set.
       * @return This builder for chaining.
       */
      public Builder setState(com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStates value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        state_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.KeylineActivationStates state = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearState() {
        bitField0_ = (bitField0_ & ~0x00000001);
        state_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.LongList activeKeylines_ = emptyLongList();
      private void ensureActiveKeylinesIsMutable() {
        if (!activeKeylines_.isModifiable()) {
          activeKeylines_ = makeMutableCopy(activeKeylines_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>repeated int64 active_keylines = 2;</code>
       * @return A list containing the activeKeylines.
       */
      public java.util.List<java.lang.Long>
          getActiveKeylinesList() {
        activeKeylines_.makeImmutable();
        return activeKeylines_;
      }
      /**
       * <code>repeated int64 active_keylines = 2;</code>
       * @return The count of activeKeylines.
       */
      public int getActiveKeylinesCount() {
        return activeKeylines_.size();
      }
      /**
       * <code>repeated int64 active_keylines = 2;</code>
       * @param index The index of the element to return.
       * @return The activeKeylines at the given index.
       */
      public long getActiveKeylines(int index) {
        return activeKeylines_.getLong(index);
      }
      /**
       * <code>repeated int64 active_keylines = 2;</code>
       * @param index The index to set the value at.
       * @param value The activeKeylines to set.
       * @return This builder for chaining.
       */
      public Builder setActiveKeylines(
          int index, long value) {

        ensureActiveKeylinesIsMutable();
        activeKeylines_.setLong(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 active_keylines = 2;</code>
       * @param value The activeKeylines to add.
       * @return This builder for chaining.
       */
      public Builder addActiveKeylines(long value) {

        ensureActiveKeylinesIsMutable();
        activeKeylines_.addLong(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 active_keylines = 2;</code>
       * @param values The activeKeylines to add.
       * @return This builder for chaining.
       */
      public Builder addAllActiveKeylines(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureActiveKeylinesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, activeKeylines_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 active_keylines = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearActiveKeylines() {
        activeKeylines_ = emptyLongList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.KeylineActivationStateValue)
    }

    // @@protoc_insertion_point(class_scope:proto.KeylineActivationStateValue)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<KeylineActivationStateValue>
        PARSER = new com.google.protobuf.AbstractParser<KeylineActivationStateValue>() {
      @java.lang.Override
      public KeylineActivationStateValue parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<KeylineActivationStateValue> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<KeylineActivationStateValue> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.KeylineActivationStateValue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface NextDepartureTimeValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.NextDepartureTimeValue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int64 hour = 1;</code>
     * @return The hour.
     */
    long getHour();

    /**
     * <code>int64 minute = 2;</code>
     * @return The minute.
     */
    long getMinute();
  }
  /**
   * <pre>
   * Next departure time value
   * </pre>
   *
   * Protobuf type {@code proto.NextDepartureTimeValue}
   */
  public static final class NextDepartureTimeValue extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.NextDepartureTimeValue)
      NextDepartureTimeValueOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "NextDepartureTimeValue");
    }
    // Use NextDepartureTimeValue.newBuilder() to construct.
    private NextDepartureTimeValue(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private NextDepartureTimeValue() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_NextDepartureTimeValue_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_NextDepartureTimeValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.class, com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.Builder.class);
    }

    public static final int HOUR_FIELD_NUMBER = 1;
    private long hour_ = 0L;
    /**
     * <code>int64 hour = 1;</code>
     * @return The hour.
     */
    @java.lang.Override
    public long getHour() {
      return hour_;
    }

    public static final int MINUTE_FIELD_NUMBER = 2;
    private long minute_ = 0L;
    /**
     * <code>int64 minute = 2;</code>
     * @return The minute.
     */
    @java.lang.Override
    public long getMinute() {
      return minute_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (hour_ != 0L) {
        output.writeInt64(1, hour_);
      }
      if (minute_ != 0L) {
        output.writeInt64(2, minute_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (hour_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, hour_);
      }
      if (minute_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, minute_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue other = (com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue) obj;

      if (getHour()
          != other.getHour()) return false;
      if (getMinute()
          != other.getMinute()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + HOUR_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getHour());
      hash = (37 * hash) + MINUTE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getMinute());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Next departure time value
     * </pre>
     *
     * Protobuf type {@code proto.NextDepartureTimeValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.NextDepartureTimeValue)
        com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_NextDepartureTimeValue_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_NextDepartureTimeValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.class, com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        hour_ = 0L;
        minute_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_NextDepartureTimeValue_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue build() {
        com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue result = new com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.hour_ = hour_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.minute_ = minute_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue.getDefaultInstance()) return this;
        if (other.getHour() != 0L) {
          setHour(other.getHour());
        }
        if (other.getMinute() != 0L) {
          setMinute(other.getMinute());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                hour_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                minute_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long hour_ ;
      /**
       * <code>int64 hour = 1;</code>
       * @return The hour.
       */
      @java.lang.Override
      public long getHour() {
        return hour_;
      }
      /**
       * <code>int64 hour = 1;</code>
       * @param value The hour to set.
       * @return This builder for chaining.
       */
      public Builder setHour(long value) {

        hour_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int64 hour = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearHour() {
        bitField0_ = (bitField0_ & ~0x00000001);
        hour_ = 0L;
        onChanged();
        return this;
      }

      private long minute_ ;
      /**
       * <code>int64 minute = 2;</code>
       * @return The minute.
       */
      @java.lang.Override
      public long getMinute() {
        return minute_;
      }
      /**
       * <code>int64 minute = 2;</code>
       * @param value The minute to set.
       * @return This builder for chaining.
       */
      public Builder setMinute(long value) {

        minute_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int64 minute = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearMinute() {
        bitField0_ = (bitField0_ & ~0x00000002);
        minute_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.NextDepartureTimeValue)
    }

    // @@protoc_insertion_point(class_scope:proto.NextDepartureTimeValue)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<NextDepartureTimeValue>
        PARSER = new com.google.protobuf.AbstractParser<NextDepartureTimeValue>() {
      @java.lang.Override
      public NextDepartureTimeValue parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<NextDepartureTimeValue> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NextDepartureTimeValue> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.NextDepartureTimeValue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RemoteUpdateStartStatusOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.RemoteUpdateStartStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 duration_after_runtime = 1;</code>
     * @return The durationAfterRuntime.
     */
    int getDurationAfterRuntime();

    /**
     * <code>string package_id = 2;</code>
     * @return The packageId.
     */
    java.lang.String getPackageId();
    /**
     * <code>string package_id = 2;</code>
     * @return The bytes for packageId.
     */
    com.google.protobuf.ByteString
        getPackageIdBytes();

    /**
     * <code>.proto.UpdateStatus update_status = 3;</code>
     * @return The enum numeric value on the wire for updateStatus.
     */
    int getUpdateStatusValue();
    /**
     * <code>.proto.UpdateStatus update_status = 3;</code>
     * @return The updateStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.UpdateStatus getUpdateStatus();

    /**
     * <code>string release_id = 4;</code>
     * @return The releaseId.
     */
    java.lang.String getReleaseId();
    /**
     * <code>string release_id = 4;</code>
     * @return The bytes for releaseId.
     */
    com.google.protobuf.ByteString
        getReleaseIdBytes();
  }
  /**
   * <pre>
   * Remote update start status message
   * </pre>
   *
   * Protobuf type {@code proto.RemoteUpdateStartStatus}
   */
  public static final class RemoteUpdateStartStatus extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.RemoteUpdateStartStatus)
      RemoteUpdateStartStatusOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "RemoteUpdateStartStatus");
    }
    // Use RemoteUpdateStartStatus.newBuilder() to construct.
    private RemoteUpdateStartStatus(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private RemoteUpdateStartStatus() {
      packageId_ = "";
      updateStatus_ = 0;
      releaseId_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_RemoteUpdateStartStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_RemoteUpdateStartStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.class, com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.Builder.class);
    }

    public static final int DURATION_AFTER_RUNTIME_FIELD_NUMBER = 1;
    private int durationAfterRuntime_ = 0;
    /**
     * <code>int32 duration_after_runtime = 1;</code>
     * @return The durationAfterRuntime.
     */
    @java.lang.Override
    public int getDurationAfterRuntime() {
      return durationAfterRuntime_;
    }

    public static final int PACKAGE_ID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object packageId_ = "";
    /**
     * <code>string package_id = 2;</code>
     * @return The packageId.
     */
    @java.lang.Override
    public java.lang.String getPackageId() {
      java.lang.Object ref = packageId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        packageId_ = s;
        return s;
      }
    }
    /**
     * <code>string package_id = 2;</code>
     * @return The bytes for packageId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPackageIdBytes() {
      java.lang.Object ref = packageId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        packageId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int UPDATE_STATUS_FIELD_NUMBER = 3;
    private int updateStatus_ = 0;
    /**
     * <code>.proto.UpdateStatus update_status = 3;</code>
     * @return The enum numeric value on the wire for updateStatus.
     */
    @java.lang.Override public int getUpdateStatusValue() {
      return updateStatus_;
    }
    /**
     * <code>.proto.UpdateStatus update_status = 3;</code>
     * @return The updateStatus.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.UpdateStatus getUpdateStatus() {
      com.daimler.mbcarkit.proto.VehicleEvents.UpdateStatus result = com.daimler.mbcarkit.proto.VehicleEvents.UpdateStatus.forNumber(updateStatus_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.UpdateStatus.UNRECOGNIZED : result;
    }

    public static final int RELEASE_ID_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object releaseId_ = "";
    /**
     * <code>string release_id = 4;</code>
     * @return The releaseId.
     */
    @java.lang.Override
    public java.lang.String getReleaseId() {
      java.lang.Object ref = releaseId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        releaseId_ = s;
        return s;
      }
    }
    /**
     * <code>string release_id = 4;</code>
     * @return The bytes for releaseId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getReleaseIdBytes() {
      java.lang.Object ref = releaseId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        releaseId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (durationAfterRuntime_ != 0) {
        output.writeInt32(1, durationAfterRuntime_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(packageId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, packageId_);
      }
      if (updateStatus_ != com.daimler.mbcarkit.proto.VehicleEvents.UpdateStatus.UPDATE_STATUS_UNKNOWN.getNumber()) {
        output.writeEnum(3, updateStatus_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(releaseId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, releaseId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (durationAfterRuntime_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, durationAfterRuntime_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(packageId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, packageId_);
      }
      if (updateStatus_ != com.daimler.mbcarkit.proto.VehicleEvents.UpdateStatus.UPDATE_STATUS_UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, updateStatus_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(releaseId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, releaseId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus other = (com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus) obj;

      if (getDurationAfterRuntime()
          != other.getDurationAfterRuntime()) return false;
      if (!getPackageId()
          .equals(other.getPackageId())) return false;
      if (updateStatus_ != other.updateStatus_) return false;
      if (!getReleaseId()
          .equals(other.getReleaseId())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + DURATION_AFTER_RUNTIME_FIELD_NUMBER;
      hash = (53 * hash) + getDurationAfterRuntime();
      hash = (37 * hash) + PACKAGE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getPackageId().hashCode();
      hash = (37 * hash) + UPDATE_STATUS_FIELD_NUMBER;
      hash = (53 * hash) + updateStatus_;
      hash = (37 * hash) + RELEASE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getReleaseId().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Remote update start status message
     * </pre>
     *
     * Protobuf type {@code proto.RemoteUpdateStartStatus}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.RemoteUpdateStartStatus)
        com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_RemoteUpdateStartStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_RemoteUpdateStartStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.class, com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        durationAfterRuntime_ = 0;
        packageId_ = "";
        updateStatus_ = 0;
        releaseId_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_RemoteUpdateStartStatus_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus build() {
        com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus result = new com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.durationAfterRuntime_ = durationAfterRuntime_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.packageId_ = packageId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.updateStatus_ = updateStatus_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.releaseId_ = releaseId_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus.getDefaultInstance()) return this;
        if (other.getDurationAfterRuntime() != 0) {
          setDurationAfterRuntime(other.getDurationAfterRuntime());
        }
        if (!other.getPackageId().isEmpty()) {
          packageId_ = other.packageId_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.updateStatus_ != 0) {
          setUpdateStatusValue(other.getUpdateStatusValue());
        }
        if (!other.getReleaseId().isEmpty()) {
          releaseId_ = other.releaseId_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                durationAfterRuntime_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                packageId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                updateStatus_ = input.readEnum();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                releaseId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int durationAfterRuntime_ ;
      /**
       * <code>int32 duration_after_runtime = 1;</code>
       * @return The durationAfterRuntime.
       */
      @java.lang.Override
      public int getDurationAfterRuntime() {
        return durationAfterRuntime_;
      }
      /**
       * <code>int32 duration_after_runtime = 1;</code>
       * @param value The durationAfterRuntime to set.
       * @return This builder for chaining.
       */
      public Builder setDurationAfterRuntime(int value) {

        durationAfterRuntime_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 duration_after_runtime = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearDurationAfterRuntime() {
        bitField0_ = (bitField0_ & ~0x00000001);
        durationAfterRuntime_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object packageId_ = "";
      /**
       * <code>string package_id = 2;</code>
       * @return The packageId.
       */
      public java.lang.String getPackageId() {
        java.lang.Object ref = packageId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          packageId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string package_id = 2;</code>
       * @return The bytes for packageId.
       */
      public com.google.protobuf.ByteString
          getPackageIdBytes() {
        java.lang.Object ref = packageId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          packageId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string package_id = 2;</code>
       * @param value The packageId to set.
       * @return This builder for chaining.
       */
      public Builder setPackageId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        packageId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string package_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPackageId() {
        packageId_ = getDefaultInstance().getPackageId();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string package_id = 2;</code>
       * @param value The bytes for packageId to set.
       * @return This builder for chaining.
       */
      public Builder setPackageIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        packageId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private int updateStatus_ = 0;
      /**
       * <code>.proto.UpdateStatus update_status = 3;</code>
       * @return The enum numeric value on the wire for updateStatus.
       */
      @java.lang.Override public int getUpdateStatusValue() {
        return updateStatus_;
      }
      /**
       * <code>.proto.UpdateStatus update_status = 3;</code>
       * @param value The enum numeric value on the wire for updateStatus to set.
       * @return This builder for chaining.
       */
      public Builder setUpdateStatusValue(int value) {
        updateStatus_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.UpdateStatus update_status = 3;</code>
       * @return The updateStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.UpdateStatus getUpdateStatus() {
        com.daimler.mbcarkit.proto.VehicleEvents.UpdateStatus result = com.daimler.mbcarkit.proto.VehicleEvents.UpdateStatus.forNumber(updateStatus_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.UpdateStatus.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.UpdateStatus update_status = 3;</code>
       * @param value The updateStatus to set.
       * @return This builder for chaining.
       */
      public Builder setUpdateStatus(com.daimler.mbcarkit.proto.VehicleEvents.UpdateStatus value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000004;
        updateStatus_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.UpdateStatus update_status = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearUpdateStatus() {
        bitField0_ = (bitField0_ & ~0x00000004);
        updateStatus_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object releaseId_ = "";
      /**
       * <code>string release_id = 4;</code>
       * @return The releaseId.
       */
      public java.lang.String getReleaseId() {
        java.lang.Object ref = releaseId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          releaseId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string release_id = 4;</code>
       * @return The bytes for releaseId.
       */
      public com.google.protobuf.ByteString
          getReleaseIdBytes() {
        java.lang.Object ref = releaseId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          releaseId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string release_id = 4;</code>
       * @param value The releaseId to set.
       * @return This builder for chaining.
       */
      public Builder setReleaseId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        releaseId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>string release_id = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearReleaseId() {
        releaseId_ = getDefaultInstance().getReleaseId();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>string release_id = 4;</code>
       * @param value The bytes for releaseId to set.
       * @return This builder for chaining.
       */
      public Builder setReleaseIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        releaseId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.RemoteUpdateStartStatus)
    }

    // @@protoc_insertion_point(class_scope:proto.RemoteUpdateStartStatus)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RemoteUpdateStartStatus>
        PARSER = new com.google.protobuf.AbstractParser<RemoteUpdateStartStatus>() {
      @java.lang.Override
      public RemoteUpdateStartStatus parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<RemoteUpdateStartStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RemoteUpdateStartStatus> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.RemoteUpdateStartStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargingScheduleActiveOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ChargingScheduleActive)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int64 schedule_id_deprecated = 1 [deprecated = true];</code>
     * @deprecated proto.ChargingScheduleActive.schedule_id_deprecated is deprecated.
     *     See vehicle-events.proto;l=472
     * @return The scheduleIdDeprecated.
     */
    @java.lang.Deprecated long getScheduleIdDeprecated();

    /**
     * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveUseCaseId use_case_id_deprecated = 2 [deprecated = true];</code>
     * @deprecated proto.ChargingScheduleActive.use_case_id_deprecated is deprecated.
     *     See vehicle-events.proto;l=473
     * @return The enum numeric value on the wire for useCaseIdDeprecated.
     */
    @java.lang.Deprecated int getUseCaseIdDeprecatedValue();
    /**
     * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveUseCaseId use_case_id_deprecated = 2 [deprecated = true];</code>
     * @deprecated proto.ChargingScheduleActive.use_case_id_deprecated is deprecated.
     *     See vehicle-events.proto;l=473
     * @return The useCaseIdDeprecated.
     */
    @java.lang.Deprecated com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveUseCaseId getUseCaseIdDeprecated();

    /**
     * <code>.google.protobuf.Timestamp start_time = 3;</code>
     * @return Whether the startTime field is set.
     */
    boolean hasStartTime();
    /**
     * <code>.google.protobuf.Timestamp start_time = 3;</code>
     * @return The startTime.
     */
    com.google.protobuf.Timestamp getStartTime();
    /**
     * <code>.google.protobuf.Timestamp start_time = 3;</code>
     */
    com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder();

    /**
     * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveOfflineMode offline_mode = 4;</code>
     * @return The enum numeric value on the wire for offlineMode.
     */
    int getOfflineModeValue();
    /**
     * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveOfflineMode offline_mode = 4;</code>
     * @return The offlineMode.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveOfflineMode getOfflineMode();

    /**
     * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule> 
        getScheduleList();
    /**
     * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule getSchedule(int index);
    /**
     * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
     */
    int getScheduleCount();
    /**
     * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
     */
    java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveScheduleOrBuilder> 
        getScheduleOrBuilderList();
    /**
     * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveScheduleOrBuilder getScheduleOrBuilder(
        int index);

    /**
     * <code>.proto.ChargingScheduleUseCaseId use_case_id = 6;</code>
     * @return The enum numeric value on the wire for useCaseId.
     */
    int getUseCaseIdValue();
    /**
     * <code>.proto.ChargingScheduleUseCaseId use_case_id = 6;</code>
     * @return The useCaseId.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleUseCaseId getUseCaseId();

    /**
     * <code>.proto.ScheduleIdStatus schedule_id_status = 7;</code>
     * @return The enum numeric value on the wire for scheduleIdStatus.
     */
    int getScheduleIdStatusValue();
    /**
     * <code>.proto.ScheduleIdStatus schedule_id_status = 7;</code>
     * @return The scheduleIdStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ScheduleIdStatus getScheduleIdStatus();
  }
  /**
   * <pre>
   * Charging schedule active message
   * </pre>
   *
   * Protobuf type {@code proto.ChargingScheduleActive}
   */
  public static final class ChargingScheduleActive extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.ChargingScheduleActive)
      ChargingScheduleActiveOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargingScheduleActive");
    }
    // Use ChargingScheduleActive.newBuilder() to construct.
    private ChargingScheduleActive(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ChargingScheduleActive() {
      useCaseIdDeprecated_ = 0;
      offlineMode_ = 0;
      schedule_ = java.util.Collections.emptyList();
      useCaseId_ = 0;
      scheduleIdStatus_ = 0;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingScheduleActive_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingScheduleActive_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.Builder.class);
    }

    /**
     * <pre>
     * Nested enum for use case id (deprecated)
     * </pre>
     *
     * Protobuf enum {@code proto.ChargingScheduleActive.ChargingScheduleActiveUseCaseId}
     */
    @java.lang.Deprecated public enum ChargingScheduleActiveUseCaseId
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SMART_CHARGING = 0;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SMART_CHARGING(0),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_MERCEDES_INTELLIGENT_CHARGING = 1;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_MERCEDES_INTELLIGENT_CHARGING(1),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_BETA_COMMUNITY_CHARGING = 2;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_BETA_COMMUNITY_CHARGING(2),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SOLAR_CHARGING = 10;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SOLAR_CHARGING(10),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_GREEN_CHARGING = 11;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_GREEN_CHARGING(11),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_EFFICIENT_CHARGING = 12;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_EFFICIENT_CHARGING(12),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_ECO_FRIENDLY_CHARGING = 13;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_ECO_FRIENDLY_CHARGING(13),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SUSTAINABLE_CHARGING = 14;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SUSTAINABLE_CHARGING(14),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_INTELLIGENT_CHARGING = 15;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_INTELLIGENT_CHARGING(15),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_WORKPLACE_CHARGING_PLAN = 16;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_WORKPLACE_CHARGING_PLAN(16),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_HOME_CHARGING_PLAN = 17;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_HOME_CHARGING_PLAN(17),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_FLEET_MANAGED_CHARGING = 18;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_FLEET_MANAGED_CHARGING(18),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_PRICE_OPTIMIZED_CHARGING = 19;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_PRICE_OPTIMIZED_CHARGING(19),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_BATTERY_FRIENDLY_CHARGING = 20;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_BATTERY_FRIENDLY_CHARGING(20),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_EXTERNAL_NOISE_OPTIMIZED_CHARGING = 21;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_EXTERNAL_NOISE_OPTIMIZED_CHARGING(21),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_VIDEO_WATCHING_OPTIMIZED_CHARGING = 22;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_VIDEO_WATCHING_OPTIMIZED_CHARGING(22),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TIME_CONTROLLED_CHARGING = 23;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TIME_CONTROLLED_CHARGING(23),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_PEAK_SHAVING_CHARGING = 24;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_PEAK_SHAVING_CHARGING(24),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DYNAMIC_LOAD_BALANCED_CHARGING = 25;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DYNAMIC_LOAD_BALANCED_CHARGING(25),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_BUSINESS_SPECIFIC_CHARGING = 26;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_BUSINESS_SPECIFIC_CHARGING(26),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_PREFERRED_CHARGING_TIMES = 27;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_PREFERRED_CHARGING_TIMES(27),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_ENPAL = 100;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_ENPAL(100),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TIBBER = 101;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TIBBER(101),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_THE_MOBILITY_HOUSE = 102;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_THE_MOBILITY_HOUSE(102),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_AWATTAR = 103;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_AWATTAR(103),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TRONITY = 104;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TRONITY(104),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DPD = 200;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DPD(200),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DEUTSCHE_POST = 201;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DEUTSCHE_POST(201),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_HACKATHON = 250;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_HACKATHON(250),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SANDBOX_MODE = 251;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SANDBOX_MODE(251),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DEVELOPER_MODE = 252;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DEVELOPER_MODE(252),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TEST_MODE = 253;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TEST_MODE(253),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DEBUG_MODE = 254;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DEBUG_MODE(254),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "ChargingScheduleActiveUseCaseId");
      }
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SMART_CHARGING = 0;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SMART_CHARGING_VALUE = 0;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_MERCEDES_INTELLIGENT_CHARGING = 1;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_MERCEDES_INTELLIGENT_CHARGING_VALUE = 1;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_BETA_COMMUNITY_CHARGING = 2;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_BETA_COMMUNITY_CHARGING_VALUE = 2;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SOLAR_CHARGING = 10;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SOLAR_CHARGING_VALUE = 10;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_GREEN_CHARGING = 11;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_GREEN_CHARGING_VALUE = 11;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_EFFICIENT_CHARGING = 12;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_EFFICIENT_CHARGING_VALUE = 12;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_ECO_FRIENDLY_CHARGING = 13;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_ECO_FRIENDLY_CHARGING_VALUE = 13;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SUSTAINABLE_CHARGING = 14;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SUSTAINABLE_CHARGING_VALUE = 14;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_INTELLIGENT_CHARGING = 15;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_INTELLIGENT_CHARGING_VALUE = 15;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_WORKPLACE_CHARGING_PLAN = 16;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_WORKPLACE_CHARGING_PLAN_VALUE = 16;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_HOME_CHARGING_PLAN = 17;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_HOME_CHARGING_PLAN_VALUE = 17;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_FLEET_MANAGED_CHARGING = 18;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_FLEET_MANAGED_CHARGING_VALUE = 18;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_PRICE_OPTIMIZED_CHARGING = 19;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_PRICE_OPTIMIZED_CHARGING_VALUE = 19;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_BATTERY_FRIENDLY_CHARGING = 20;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_BATTERY_FRIENDLY_CHARGING_VALUE = 20;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_EXTERNAL_NOISE_OPTIMIZED_CHARGING = 21;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_EXTERNAL_NOISE_OPTIMIZED_CHARGING_VALUE = 21;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_VIDEO_WATCHING_OPTIMIZED_CHARGING = 22;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_VIDEO_WATCHING_OPTIMIZED_CHARGING_VALUE = 22;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TIME_CONTROLLED_CHARGING = 23;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TIME_CONTROLLED_CHARGING_VALUE = 23;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_PEAK_SHAVING_CHARGING = 24;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_PEAK_SHAVING_CHARGING_VALUE = 24;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DYNAMIC_LOAD_BALANCED_CHARGING = 25;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DYNAMIC_LOAD_BALANCED_CHARGING_VALUE = 25;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_BUSINESS_SPECIFIC_CHARGING = 26;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_BUSINESS_SPECIFIC_CHARGING_VALUE = 26;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_PREFERRED_CHARGING_TIMES = 27;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_PREFERRED_CHARGING_TIMES_VALUE = 27;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_ENPAL = 100;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_ENPAL_VALUE = 100;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TIBBER = 101;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TIBBER_VALUE = 101;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_THE_MOBILITY_HOUSE = 102;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_THE_MOBILITY_HOUSE_VALUE = 102;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_AWATTAR = 103;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_AWATTAR_VALUE = 103;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TRONITY = 104;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TRONITY_VALUE = 104;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DPD = 200;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DPD_VALUE = 200;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DEUTSCHE_POST = 201;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DEUTSCHE_POST_VALUE = 201;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_HACKATHON = 250;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_HACKATHON_VALUE = 250;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SANDBOX_MODE = 251;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SANDBOX_MODE_VALUE = 251;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DEVELOPER_MODE = 252;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DEVELOPER_MODE_VALUE = 252;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TEST_MODE = 253;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TEST_MODE_VALUE = 253;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DEBUG_MODE = 254;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DEBUG_MODE_VALUE = 254;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ChargingScheduleActiveUseCaseId valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ChargingScheduleActiveUseCaseId forNumber(int value) {
        switch (value) {
          case 0: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SMART_CHARGING;
          case 1: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_MERCEDES_INTELLIGENT_CHARGING;
          case 2: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_BETA_COMMUNITY_CHARGING;
          case 10: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SOLAR_CHARGING;
          case 11: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_GREEN_CHARGING;
          case 12: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_EFFICIENT_CHARGING;
          case 13: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_ECO_FRIENDLY_CHARGING;
          case 14: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SUSTAINABLE_CHARGING;
          case 15: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_INTELLIGENT_CHARGING;
          case 16: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_WORKPLACE_CHARGING_PLAN;
          case 17: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_HOME_CHARGING_PLAN;
          case 18: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_FLEET_MANAGED_CHARGING;
          case 19: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_PRICE_OPTIMIZED_CHARGING;
          case 20: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_BATTERY_FRIENDLY_CHARGING;
          case 21: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_EXTERNAL_NOISE_OPTIMIZED_CHARGING;
          case 22: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_VIDEO_WATCHING_OPTIMIZED_CHARGING;
          case 23: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TIME_CONTROLLED_CHARGING;
          case 24: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_PEAK_SHAVING_CHARGING;
          case 25: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DYNAMIC_LOAD_BALANCED_CHARGING;
          case 26: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_BUSINESS_SPECIFIC_CHARGING;
          case 27: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_PREFERRED_CHARGING_TIMES;
          case 100: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_ENPAL;
          case 101: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TIBBER;
          case 102: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_THE_MOBILITY_HOUSE;
          case 103: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_AWATTAR;
          case 104: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TRONITY;
          case 200: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DPD;
          case 201: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DEUTSCHE_POST;
          case 250: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_HACKATHON;
          case 251: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SANDBOX_MODE;
          case 252: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DEVELOPER_MODE;
          case 253: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_TEST_MODE;
          case 254: return CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_DEBUG_MODE;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ChargingScheduleActiveUseCaseId>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ChargingScheduleActiveUseCaseId> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ChargingScheduleActiveUseCaseId>() {
              public ChargingScheduleActiveUseCaseId findValueByNumber(int number) {
                return ChargingScheduleActiveUseCaseId.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.getDescriptor().getEnumTypes().get(0);
      }

      private static final ChargingScheduleActiveUseCaseId[] VALUES = values();

      public static ChargingScheduleActiveUseCaseId valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ChargingScheduleActiveUseCaseId(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.ChargingScheduleActive.ChargingScheduleActiveUseCaseId)
    }

    /**
     * <pre>
     * Nested enum for offline mode
     * </pre>
     *
     * Protobuf enum {@code proto.ChargingScheduleActive.ChargingScheduleActiveOfflineMode}
     */
    public enum ChargingScheduleActiveOfflineMode
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_UNKNOWN = 0;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_UNKNOWN(0),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_OFF = 1;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_OFF(1),
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_ON = 2;</code>
       */
      CHARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_ON(2),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "ChargingScheduleActiveOfflineMode");
      }
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_UNKNOWN = 0;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_UNKNOWN_VALUE = 0;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_OFF = 1;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_OFF_VALUE = 1;
      /**
       * <code>CHARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_ON = 2;</code>
       */
      public static final int CHARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_ON_VALUE = 2;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ChargingScheduleActiveOfflineMode valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ChargingScheduleActiveOfflineMode forNumber(int value) {
        switch (value) {
          case 0: return CHARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_UNKNOWN;
          case 1: return CHARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_OFF;
          case 2: return CHARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_ON;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ChargingScheduleActiveOfflineMode>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ChargingScheduleActiveOfflineMode> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ChargingScheduleActiveOfflineMode>() {
              public ChargingScheduleActiveOfflineMode findValueByNumber(int number) {
                return ChargingScheduleActiveOfflineMode.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.getDescriptor().getEnumTypes().get(1);
      }

      private static final ChargingScheduleActiveOfflineMode[] VALUES = values();

      public static ChargingScheduleActiveOfflineMode valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ChargingScheduleActiveOfflineMode(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.ChargingScheduleActive.ChargingScheduleActiveOfflineMode)
    }

    public interface ChargingScheduleActiveScheduleOrBuilder extends
        // @@protoc_insertion_point(interface_extends:proto.ChargingScheduleActive.ChargingScheduleActiveSchedule)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>double power_values = 1;</code>
       * @return The powerValues.
       */
      double getPowerValues();

      /**
       * <code>int64 duration_values = 2;</code>
       * @return The durationValues.
       */
      long getDurationValues();
    }
    /**
     * <pre>
     * Nested message for schedule entry
     * </pre>
     *
     * Protobuf type {@code proto.ChargingScheduleActive.ChargingScheduleActiveSchedule}
     */
    public static final class ChargingScheduleActiveSchedule extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:proto.ChargingScheduleActive.ChargingScheduleActiveSchedule)
        ChargingScheduleActiveScheduleOrBuilder {
    private static final long serialVersionUID = 0L;
      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "ChargingScheduleActiveSchedule");
      }
      // Use ChargingScheduleActiveSchedule.newBuilder() to construct.
      private ChargingScheduleActiveSchedule(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
      }
      private ChargingScheduleActiveSchedule() {
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingScheduleActive_ChargingScheduleActiveSchedule_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingScheduleActive_ChargingScheduleActiveSchedule_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.Builder.class);
      }

      public static final int POWER_VALUES_FIELD_NUMBER = 1;
      private double powerValues_ = 0D;
      /**
       * <code>double power_values = 1;</code>
       * @return The powerValues.
       */
      @java.lang.Override
      public double getPowerValues() {
        return powerValues_;
      }

      public static final int DURATION_VALUES_FIELD_NUMBER = 2;
      private long durationValues_ = 0L;
      /**
       * <code>int64 duration_values = 2;</code>
       * @return The durationValues.
       */
      @java.lang.Override
      public long getDurationValues() {
        return durationValues_;
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (java.lang.Double.doubleToRawLongBits(powerValues_) != 0) {
          output.writeDouble(1, powerValues_);
        }
        if (durationValues_ != 0L) {
          output.writeInt64(2, durationValues_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (java.lang.Double.doubleToRawLongBits(powerValues_) != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeDoubleSize(1, powerValues_);
        }
        if (durationValues_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, durationValues_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule)) {
          return super.equals(obj);
        }
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule) obj;

        if (java.lang.Double.doubleToLongBits(getPowerValues())
            != java.lang.Double.doubleToLongBits(
                other.getPowerValues())) return false;
        if (getDurationValues()
            != other.getDurationValues()) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + POWER_VALUES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getPowerValues()));
        hash = (37 * hash) + DURATION_VALUES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getDurationValues());
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Nested message for schedule entry
       * </pre>
       *
       * Protobuf type {@code proto.ChargingScheduleActive.ChargingScheduleActiveSchedule}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:proto.ChargingScheduleActive.ChargingScheduleActiveSchedule)
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveScheduleOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingScheduleActive_ChargingScheduleActiveSchedule_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingScheduleActive_ChargingScheduleActiveSchedule_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.Builder.class);
        }

        // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          powerValues_ = 0D;
          durationValues_ = 0L;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingScheduleActive_ChargingScheduleActiveSchedule_descriptor;
        }

        @java.lang.Override
        public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule getDefaultInstanceForType() {
          return com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.getDefaultInstance();
        }

        @java.lang.Override
        public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule build() {
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule buildPartial() {
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.powerValues_ = powerValues_;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.durationValues_ = durationValues_;
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule) {
            return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule other) {
          if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.getDefaultInstance()) return this;
          if (java.lang.Double.doubleToRawLongBits(other.getPowerValues()) != 0) {
            setPowerValues(other.getPowerValues());
          }
          if (other.getDurationValues() != 0L) {
            setDurationValues(other.getDurationValues());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 9: {
                  powerValues_ = input.readDouble();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 9
                case 16: {
                  durationValues_ = input.readInt64();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 16
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private double powerValues_ ;
        /**
         * <code>double power_values = 1;</code>
         * @return The powerValues.
         */
        @java.lang.Override
        public double getPowerValues() {
          return powerValues_;
        }
        /**
         * <code>double power_values = 1;</code>
         * @param value The powerValues to set.
         * @return This builder for chaining.
         */
        public Builder setPowerValues(double value) {

          powerValues_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>double power_values = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearPowerValues() {
          bitField0_ = (bitField0_ & ~0x00000001);
          powerValues_ = 0D;
          onChanged();
          return this;
        }

        private long durationValues_ ;
        /**
         * <code>int64 duration_values = 2;</code>
         * @return The durationValues.
         */
        @java.lang.Override
        public long getDurationValues() {
          return durationValues_;
        }
        /**
         * <code>int64 duration_values = 2;</code>
         * @param value The durationValues to set.
         * @return This builder for chaining.
         */
        public Builder setDurationValues(long value) {

          durationValues_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>int64 duration_values = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearDurationValues() {
          bitField0_ = (bitField0_ & ~0x00000002);
          durationValues_ = 0L;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:proto.ChargingScheduleActive.ChargingScheduleActiveSchedule)
      }

      // @@protoc_insertion_point(class_scope:proto.ChargingScheduleActive.ChargingScheduleActiveSchedule)
      private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule();
      }

      public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<ChargingScheduleActiveSchedule>
          PARSER = new com.google.protobuf.AbstractParser<ChargingScheduleActiveSchedule>() {
        @java.lang.Override
        public ChargingScheduleActiveSchedule parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<ChargingScheduleActiveSchedule> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<ChargingScheduleActiveSchedule> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int SCHEDULE_ID_DEPRECATED_FIELD_NUMBER = 1;
    private long scheduleIdDeprecated_ = 0L;
    /**
     * <code>int64 schedule_id_deprecated = 1 [deprecated = true];</code>
     * @deprecated proto.ChargingScheduleActive.schedule_id_deprecated is deprecated.
     *     See vehicle-events.proto;l=472
     * @return The scheduleIdDeprecated.
     */
    @java.lang.Override
    @java.lang.Deprecated public long getScheduleIdDeprecated() {
      return scheduleIdDeprecated_;
    }

    public static final int USE_CASE_ID_DEPRECATED_FIELD_NUMBER = 2;
    private int useCaseIdDeprecated_ = 0;
    /**
     * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveUseCaseId use_case_id_deprecated = 2 [deprecated = true];</code>
     * @deprecated proto.ChargingScheduleActive.use_case_id_deprecated is deprecated.
     *     See vehicle-events.proto;l=473
     * @return The enum numeric value on the wire for useCaseIdDeprecated.
     */
    @java.lang.Override @java.lang.Deprecated public int getUseCaseIdDeprecatedValue() {
      return useCaseIdDeprecated_;
    }
    /**
     * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveUseCaseId use_case_id_deprecated = 2 [deprecated = true];</code>
     * @deprecated proto.ChargingScheduleActive.use_case_id_deprecated is deprecated.
     *     See vehicle-events.proto;l=473
     * @return The useCaseIdDeprecated.
     */
    @java.lang.Override @java.lang.Deprecated public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveUseCaseId getUseCaseIdDeprecated() {
      com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveUseCaseId result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveUseCaseId.forNumber(useCaseIdDeprecated_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveUseCaseId.UNRECOGNIZED : result;
    }

    public static final int START_TIME_FIELD_NUMBER = 3;
    private com.google.protobuf.Timestamp startTime_;
    /**
     * <code>.google.protobuf.Timestamp start_time = 3;</code>
     * @return Whether the startTime field is set.
     */
    @java.lang.Override
    public boolean hasStartTime() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.google.protobuf.Timestamp start_time = 3;</code>
     * @return The startTime.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getStartTime() {
      return startTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startTime_;
    }
    /**
     * <code>.google.protobuf.Timestamp start_time = 3;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder() {
      return startTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startTime_;
    }

    public static final int OFFLINE_MODE_FIELD_NUMBER = 4;
    private int offlineMode_ = 0;
    /**
     * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveOfflineMode offline_mode = 4;</code>
     * @return The enum numeric value on the wire for offlineMode.
     */
    @java.lang.Override public int getOfflineModeValue() {
      return offlineMode_;
    }
    /**
     * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveOfflineMode offline_mode = 4;</code>
     * @return The offlineMode.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveOfflineMode getOfflineMode() {
      com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveOfflineMode result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveOfflineMode.forNumber(offlineMode_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveOfflineMode.UNRECOGNIZED : result;
    }

    public static final int SCHEDULE_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule> schedule_;
    /**
     * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule> getScheduleList() {
      return schedule_;
    }
    /**
     * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveScheduleOrBuilder> 
        getScheduleOrBuilderList() {
      return schedule_;
    }
    /**
     * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
     */
    @java.lang.Override
    public int getScheduleCount() {
      return schedule_.size();
    }
    /**
     * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule getSchedule(int index) {
      return schedule_.get(index);
    }
    /**
     * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveScheduleOrBuilder getScheduleOrBuilder(
        int index) {
      return schedule_.get(index);
    }

    public static final int USE_CASE_ID_FIELD_NUMBER = 6;
    private int useCaseId_ = 0;
    /**
     * <code>.proto.ChargingScheduleUseCaseId use_case_id = 6;</code>
     * @return The enum numeric value on the wire for useCaseId.
     */
    @java.lang.Override public int getUseCaseIdValue() {
      return useCaseId_;
    }
    /**
     * <code>.proto.ChargingScheduleUseCaseId use_case_id = 6;</code>
     * @return The useCaseId.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleUseCaseId getUseCaseId() {
      com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleUseCaseId result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleUseCaseId.forNumber(useCaseId_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleUseCaseId.UNRECOGNIZED : result;
    }

    public static final int SCHEDULE_ID_STATUS_FIELD_NUMBER = 7;
    private int scheduleIdStatus_ = 0;
    /**
     * <code>.proto.ScheduleIdStatus schedule_id_status = 7;</code>
     * @return The enum numeric value on the wire for scheduleIdStatus.
     */
    @java.lang.Override public int getScheduleIdStatusValue() {
      return scheduleIdStatus_;
    }
    /**
     * <code>.proto.ScheduleIdStatus schedule_id_status = 7;</code>
     * @return The scheduleIdStatus.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.ScheduleIdStatus getScheduleIdStatus() {
      com.daimler.mbcarkit.proto.VehicleEvents.ScheduleIdStatus result = com.daimler.mbcarkit.proto.VehicleEvents.ScheduleIdStatus.forNumber(scheduleIdStatus_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ScheduleIdStatus.UNRECOGNIZED : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (scheduleIdDeprecated_ != 0L) {
        output.writeInt64(1, scheduleIdDeprecated_);
      }
      if (useCaseIdDeprecated_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveUseCaseId.CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SMART_CHARGING.getNumber()) {
        output.writeEnum(2, useCaseIdDeprecated_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(3, getStartTime());
      }
      if (offlineMode_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveOfflineMode.CHARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_UNKNOWN.getNumber()) {
        output.writeEnum(4, offlineMode_);
      }
      for (int i = 0; i < schedule_.size(); i++) {
        output.writeMessage(5, schedule_.get(i));
      }
      if (useCaseId_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleUseCaseId.CHARGING_SCHEDULE_USE_CASE_ID_SMART_CHARGING.getNumber()) {
        output.writeEnum(6, useCaseId_);
      }
      if (scheduleIdStatus_ != com.daimler.mbcarkit.proto.VehicleEvents.ScheduleIdStatus.SCHEDULE_ID_STATUS_INITIAL.getNumber()) {
        output.writeEnum(7, scheduleIdStatus_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (scheduleIdDeprecated_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, scheduleIdDeprecated_);
      }
      if (useCaseIdDeprecated_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveUseCaseId.CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_SMART_CHARGING.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, useCaseIdDeprecated_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getStartTime());
      }
      if (offlineMode_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveOfflineMode.CHARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, offlineMode_);
      }
      for (int i = 0; i < schedule_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, schedule_.get(i));
      }
      if (useCaseId_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleUseCaseId.CHARGING_SCHEDULE_USE_CASE_ID_SMART_CHARGING.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(6, useCaseId_);
      }
      if (scheduleIdStatus_ != com.daimler.mbcarkit.proto.VehicleEvents.ScheduleIdStatus.SCHEDULE_ID_STATUS_INITIAL.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(7, scheduleIdStatus_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive) obj;

      if (getScheduleIdDeprecated()
          != other.getScheduleIdDeprecated()) return false;
      if (useCaseIdDeprecated_ != other.useCaseIdDeprecated_) return false;
      if (hasStartTime() != other.hasStartTime()) return false;
      if (hasStartTime()) {
        if (!getStartTime()
            .equals(other.getStartTime())) return false;
      }
      if (offlineMode_ != other.offlineMode_) return false;
      if (!getScheduleList()
          .equals(other.getScheduleList())) return false;
      if (useCaseId_ != other.useCaseId_) return false;
      if (scheduleIdStatus_ != other.scheduleIdStatus_) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SCHEDULE_ID_DEPRECATED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getScheduleIdDeprecated());
      hash = (37 * hash) + USE_CASE_ID_DEPRECATED_FIELD_NUMBER;
      hash = (53 * hash) + useCaseIdDeprecated_;
      if (hasStartTime()) {
        hash = (37 * hash) + START_TIME_FIELD_NUMBER;
        hash = (53 * hash) + getStartTime().hashCode();
      }
      hash = (37 * hash) + OFFLINE_MODE_FIELD_NUMBER;
      hash = (53 * hash) + offlineMode_;
      if (getScheduleCount() > 0) {
        hash = (37 * hash) + SCHEDULE_FIELD_NUMBER;
        hash = (53 * hash) + getScheduleList().hashCode();
      }
      hash = (37 * hash) + USE_CASE_ID_FIELD_NUMBER;
      hash = (53 * hash) + useCaseId_;
      hash = (37 * hash) + SCHEDULE_ID_STATUS_FIELD_NUMBER;
      hash = (53 * hash) + scheduleIdStatus_;
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Charging schedule active message
     * </pre>
     *
     * Protobuf type {@code proto.ChargingScheduleActive}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ChargingScheduleActive)
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActiveOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingScheduleActive_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingScheduleActive_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetStartTimeFieldBuilder();
          internalGetScheduleFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        scheduleIdDeprecated_ = 0L;
        useCaseIdDeprecated_ = 0;
        startTime_ = null;
        if (startTimeBuilder_ != null) {
          startTimeBuilder_.dispose();
          startTimeBuilder_ = null;
        }
        offlineMode_ = 0;
        if (scheduleBuilder_ == null) {
          schedule_ = java.util.Collections.emptyList();
        } else {
          schedule_ = null;
          scheduleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        useCaseId_ = 0;
        scheduleIdStatus_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingScheduleActive_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive build() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive result) {
        if (scheduleBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0)) {
            schedule_ = java.util.Collections.unmodifiableList(schedule_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.schedule_ = schedule_;
        } else {
          result.schedule_ = scheduleBuilder_.build();
        }
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.scheduleIdDeprecated_ = scheduleIdDeprecated_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.useCaseIdDeprecated_ = useCaseIdDeprecated_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.startTime_ = startTimeBuilder_ == null
              ? startTime_
              : startTimeBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.offlineMode_ = offlineMode_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.useCaseId_ = useCaseId_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.scheduleIdStatus_ = scheduleIdStatus_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.getDefaultInstance()) return this;
        if (other.getScheduleIdDeprecated() != 0L) {
          setScheduleIdDeprecated(other.getScheduleIdDeprecated());
        }
        if (other.useCaseIdDeprecated_ != 0) {
          setUseCaseIdDeprecatedValue(other.getUseCaseIdDeprecatedValue());
        }
        if (other.hasStartTime()) {
          mergeStartTime(other.getStartTime());
        }
        if (other.offlineMode_ != 0) {
          setOfflineModeValue(other.getOfflineModeValue());
        }
        if (scheduleBuilder_ == null) {
          if (!other.schedule_.isEmpty()) {
            if (schedule_.isEmpty()) {
              schedule_ = other.schedule_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureScheduleIsMutable();
              schedule_.addAll(other.schedule_);
            }
            onChanged();
          }
        } else {
          if (!other.schedule_.isEmpty()) {
            if (scheduleBuilder_.isEmpty()) {
              scheduleBuilder_.dispose();
              scheduleBuilder_ = null;
              schedule_ = other.schedule_;
              bitField0_ = (bitField0_ & ~0x00000010);
              scheduleBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetScheduleFieldBuilder() : null;
            } else {
              scheduleBuilder_.addAllMessages(other.schedule_);
            }
          }
        }
        if (other.useCaseId_ != 0) {
          setUseCaseIdValue(other.getUseCaseIdValue());
        }
        if (other.scheduleIdStatus_ != 0) {
          setScheduleIdStatusValue(other.getScheduleIdStatusValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                scheduleIdDeprecated_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                useCaseIdDeprecated_ = input.readEnum();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                input.readMessage(
                    internalGetStartTimeFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                offlineMode_ = input.readEnum();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 42: {
                com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule m =
                    input.readMessage(
                        com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.parser(),
                        extensionRegistry);
                if (scheduleBuilder_ == null) {
                  ensureScheduleIsMutable();
                  schedule_.add(m);
                } else {
                  scheduleBuilder_.addMessage(m);
                }
                break;
              } // case 42
              case 48: {
                useCaseId_ = input.readEnum();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 56: {
                scheduleIdStatus_ = input.readEnum();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long scheduleIdDeprecated_ ;
      /**
       * <code>int64 schedule_id_deprecated = 1 [deprecated = true];</code>
       * @deprecated proto.ChargingScheduleActive.schedule_id_deprecated is deprecated.
       *     See vehicle-events.proto;l=472
       * @return The scheduleIdDeprecated.
       */
      @java.lang.Override
      @java.lang.Deprecated public long getScheduleIdDeprecated() {
        return scheduleIdDeprecated_;
      }
      /**
       * <code>int64 schedule_id_deprecated = 1 [deprecated = true];</code>
       * @deprecated proto.ChargingScheduleActive.schedule_id_deprecated is deprecated.
       *     See vehicle-events.proto;l=472
       * @param value The scheduleIdDeprecated to set.
       * @return This builder for chaining.
       */
      @java.lang.Deprecated public Builder setScheduleIdDeprecated(long value) {

        scheduleIdDeprecated_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int64 schedule_id_deprecated = 1 [deprecated = true];</code>
       * @deprecated proto.ChargingScheduleActive.schedule_id_deprecated is deprecated.
       *     See vehicle-events.proto;l=472
       * @return This builder for chaining.
       */
      @java.lang.Deprecated public Builder clearScheduleIdDeprecated() {
        bitField0_ = (bitField0_ & ~0x00000001);
        scheduleIdDeprecated_ = 0L;
        onChanged();
        return this;
      }

      private int useCaseIdDeprecated_ = 0;
      /**
       * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveUseCaseId use_case_id_deprecated = 2 [deprecated = true];</code>
       * @deprecated proto.ChargingScheduleActive.use_case_id_deprecated is deprecated.
       *     See vehicle-events.proto;l=473
       * @return The enum numeric value on the wire for useCaseIdDeprecated.
       */
      @java.lang.Override @java.lang.Deprecated public int getUseCaseIdDeprecatedValue() {
        return useCaseIdDeprecated_;
      }
      /**
       * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveUseCaseId use_case_id_deprecated = 2 [deprecated = true];</code>
       * @deprecated proto.ChargingScheduleActive.use_case_id_deprecated is deprecated.
       *     See vehicle-events.proto;l=473
       * @param value The enum numeric value on the wire for useCaseIdDeprecated to set.
       * @return This builder for chaining.
       */
      @java.lang.Deprecated public Builder setUseCaseIdDeprecatedValue(int value) {
        useCaseIdDeprecated_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveUseCaseId use_case_id_deprecated = 2 [deprecated = true];</code>
       * @deprecated proto.ChargingScheduleActive.use_case_id_deprecated is deprecated.
       *     See vehicle-events.proto;l=473
       * @return The useCaseIdDeprecated.
       */
      @java.lang.Override
      @java.lang.Deprecated public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveUseCaseId getUseCaseIdDeprecated() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveUseCaseId result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveUseCaseId.forNumber(useCaseIdDeprecated_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveUseCaseId.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveUseCaseId use_case_id_deprecated = 2 [deprecated = true];</code>
       * @deprecated proto.ChargingScheduleActive.use_case_id_deprecated is deprecated.
       *     See vehicle-events.proto;l=473
       * @param value The useCaseIdDeprecated to set.
       * @return This builder for chaining.
       */
      @java.lang.Deprecated public Builder setUseCaseIdDeprecated(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveUseCaseId value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000002;
        useCaseIdDeprecated_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveUseCaseId use_case_id_deprecated = 2 [deprecated = true];</code>
       * @deprecated proto.ChargingScheduleActive.use_case_id_deprecated is deprecated.
       *     See vehicle-events.proto;l=473
       * @return This builder for chaining.
       */
      @java.lang.Deprecated public Builder clearUseCaseIdDeprecated() {
        bitField0_ = (bitField0_ & ~0x00000002);
        useCaseIdDeprecated_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp startTime_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> startTimeBuilder_;
      /**
       * <code>.google.protobuf.Timestamp start_time = 3;</code>
       * @return Whether the startTime field is set.
       */
      public boolean hasStartTime() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>.google.protobuf.Timestamp start_time = 3;</code>
       * @return The startTime.
       */
      public com.google.protobuf.Timestamp getStartTime() {
        if (startTimeBuilder_ == null) {
          return startTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startTime_;
        } else {
          return startTimeBuilder_.getMessage();
        }
      }
      /**
       * <code>.google.protobuf.Timestamp start_time = 3;</code>
       */
      public Builder setStartTime(com.google.protobuf.Timestamp value) {
        if (startTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          startTime_ = value;
        } else {
          startTimeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp start_time = 3;</code>
       */
      public Builder setStartTime(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (startTimeBuilder_ == null) {
          startTime_ = builderForValue.build();
        } else {
          startTimeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp start_time = 3;</code>
       */
      public Builder mergeStartTime(com.google.protobuf.Timestamp value) {
        if (startTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            startTime_ != null &&
            startTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getStartTimeBuilder().mergeFrom(value);
          } else {
            startTime_ = value;
          }
        } else {
          startTimeBuilder_.mergeFrom(value);
        }
        if (startTime_ != null) {
          bitField0_ |= 0x00000004;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp start_time = 3;</code>
       */
      public Builder clearStartTime() {
        bitField0_ = (bitField0_ & ~0x00000004);
        startTime_ = null;
        if (startTimeBuilder_ != null) {
          startTimeBuilder_.dispose();
          startTimeBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp start_time = 3;</code>
       */
      public com.google.protobuf.Timestamp.Builder getStartTimeBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return internalGetStartTimeFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Timestamp start_time = 3;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder() {
        if (startTimeBuilder_ != null) {
          return startTimeBuilder_.getMessageOrBuilder();
        } else {
          return startTime_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : startTime_;
        }
      }
      /**
       * <code>.google.protobuf.Timestamp start_time = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetStartTimeFieldBuilder() {
        if (startTimeBuilder_ == null) {
          startTimeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getStartTime(),
                  getParentForChildren(),
                  isClean());
          startTime_ = null;
        }
        return startTimeBuilder_;
      }

      private int offlineMode_ = 0;
      /**
       * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveOfflineMode offline_mode = 4;</code>
       * @return The enum numeric value on the wire for offlineMode.
       */
      @java.lang.Override public int getOfflineModeValue() {
        return offlineMode_;
      }
      /**
       * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveOfflineMode offline_mode = 4;</code>
       * @param value The enum numeric value on the wire for offlineMode to set.
       * @return This builder for chaining.
       */
      public Builder setOfflineModeValue(int value) {
        offlineMode_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveOfflineMode offline_mode = 4;</code>
       * @return The offlineMode.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveOfflineMode getOfflineMode() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveOfflineMode result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveOfflineMode.forNumber(offlineMode_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveOfflineMode.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveOfflineMode offline_mode = 4;</code>
       * @param value The offlineMode to set.
       * @return This builder for chaining.
       */
      public Builder setOfflineMode(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveOfflineMode value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000008;
        offlineMode_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleActive.ChargingScheduleActiveOfflineMode offline_mode = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearOfflineMode() {
        bitField0_ = (bitField0_ & ~0x00000008);
        offlineMode_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule> schedule_ =
        java.util.Collections.emptyList();
      private void ensureScheduleIsMutable() {
        if (!((bitField0_ & 0x00000010) != 0)) {
          schedule_ = new java.util.ArrayList<com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule>(schedule_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveScheduleOrBuilder> scheduleBuilder_;

      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule> getScheduleList() {
        if (scheduleBuilder_ == null) {
          return java.util.Collections.unmodifiableList(schedule_);
        } else {
          return scheduleBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public int getScheduleCount() {
        if (scheduleBuilder_ == null) {
          return schedule_.size();
        } else {
          return scheduleBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule getSchedule(int index) {
        if (scheduleBuilder_ == null) {
          return schedule_.get(index);
        } else {
          return scheduleBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public Builder setSchedule(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule value) {
        if (scheduleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureScheduleIsMutable();
          schedule_.set(index, value);
          onChanged();
        } else {
          scheduleBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public Builder setSchedule(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.Builder builderForValue) {
        if (scheduleBuilder_ == null) {
          ensureScheduleIsMutable();
          schedule_.set(index, builderForValue.build());
          onChanged();
        } else {
          scheduleBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public Builder addSchedule(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule value) {
        if (scheduleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureScheduleIsMutable();
          schedule_.add(value);
          onChanged();
        } else {
          scheduleBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public Builder addSchedule(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule value) {
        if (scheduleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureScheduleIsMutable();
          schedule_.add(index, value);
          onChanged();
        } else {
          scheduleBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public Builder addSchedule(
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.Builder builderForValue) {
        if (scheduleBuilder_ == null) {
          ensureScheduleIsMutable();
          schedule_.add(builderForValue.build());
          onChanged();
        } else {
          scheduleBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public Builder addSchedule(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.Builder builderForValue) {
        if (scheduleBuilder_ == null) {
          ensureScheduleIsMutable();
          schedule_.add(index, builderForValue.build());
          onChanged();
        } else {
          scheduleBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public Builder addAllSchedule(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule> values) {
        if (scheduleBuilder_ == null) {
          ensureScheduleIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, schedule_);
          onChanged();
        } else {
          scheduleBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public Builder clearSchedule() {
        if (scheduleBuilder_ == null) {
          schedule_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          scheduleBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public Builder removeSchedule(int index) {
        if (scheduleBuilder_ == null) {
          ensureScheduleIsMutable();
          schedule_.remove(index);
          onChanged();
        } else {
          scheduleBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.Builder getScheduleBuilder(
          int index) {
        return internalGetScheduleFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveScheduleOrBuilder getScheduleOrBuilder(
          int index) {
        if (scheduleBuilder_ == null) {
          return schedule_.get(index);  } else {
          return scheduleBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveScheduleOrBuilder> 
           getScheduleOrBuilderList() {
        if (scheduleBuilder_ != null) {
          return scheduleBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(schedule_);
        }
      }
      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.Builder addScheduleBuilder() {
        return internalGetScheduleFieldBuilder().addBuilder(
            com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.Builder addScheduleBuilder(
          int index) {
        return internalGetScheduleFieldBuilder().addBuilder(
            index, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.ChargingScheduleActive.ChargingScheduleActiveSchedule schedule = 5;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.Builder> 
           getScheduleBuilderList() {
        return internalGetScheduleFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveScheduleOrBuilder> 
          internalGetScheduleFieldBuilder() {
        if (scheduleBuilder_ == null) {
          scheduleBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveSchedule.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive.ChargingScheduleActiveScheduleOrBuilder>(
                  schedule_,
                  ((bitField0_ & 0x00000010) != 0),
                  getParentForChildren(),
                  isClean());
          schedule_ = null;
        }
        return scheduleBuilder_;
      }

      private int useCaseId_ = 0;
      /**
       * <code>.proto.ChargingScheduleUseCaseId use_case_id = 6;</code>
       * @return The enum numeric value on the wire for useCaseId.
       */
      @java.lang.Override public int getUseCaseIdValue() {
        return useCaseId_;
      }
      /**
       * <code>.proto.ChargingScheduleUseCaseId use_case_id = 6;</code>
       * @param value The enum numeric value on the wire for useCaseId to set.
       * @return This builder for chaining.
       */
      public Builder setUseCaseIdValue(int value) {
        useCaseId_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleUseCaseId use_case_id = 6;</code>
       * @return The useCaseId.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleUseCaseId getUseCaseId() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleUseCaseId result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleUseCaseId.forNumber(useCaseId_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleUseCaseId.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.ChargingScheduleUseCaseId use_case_id = 6;</code>
       * @param value The useCaseId to set.
       * @return This builder for chaining.
       */
      public Builder setUseCaseId(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleUseCaseId value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000020;
        useCaseId_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleUseCaseId use_case_id = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearUseCaseId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        useCaseId_ = 0;
        onChanged();
        return this;
      }

      private int scheduleIdStatus_ = 0;
      /**
       * <code>.proto.ScheduleIdStatus schedule_id_status = 7;</code>
       * @return The enum numeric value on the wire for scheduleIdStatus.
       */
      @java.lang.Override public int getScheduleIdStatusValue() {
        return scheduleIdStatus_;
      }
      /**
       * <code>.proto.ScheduleIdStatus schedule_id_status = 7;</code>
       * @param value The enum numeric value on the wire for scheduleIdStatus to set.
       * @return This builder for chaining.
       */
      public Builder setScheduleIdStatusValue(int value) {
        scheduleIdStatus_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ScheduleIdStatus schedule_id_status = 7;</code>
       * @return The scheduleIdStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ScheduleIdStatus getScheduleIdStatus() {
        com.daimler.mbcarkit.proto.VehicleEvents.ScheduleIdStatus result = com.daimler.mbcarkit.proto.VehicleEvents.ScheduleIdStatus.forNumber(scheduleIdStatus_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ScheduleIdStatus.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.ScheduleIdStatus schedule_id_status = 7;</code>
       * @param value The scheduleIdStatus to set.
       * @return This builder for chaining.
       */
      public Builder setScheduleIdStatus(com.daimler.mbcarkit.proto.VehicleEvents.ScheduleIdStatus value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000040;
        scheduleIdStatus_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ScheduleIdStatus schedule_id_status = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearScheduleIdStatus() {
        bitField0_ = (bitField0_ & ~0x00000040);
        scheduleIdStatus_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.ChargingScheduleActive)
    }

    // @@protoc_insertion_point(class_scope:proto.ChargingScheduleActive)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChargingScheduleActive>
        PARSER = new com.google.protobuf.AbstractParser<ChargingScheduleActive>() {
      @java.lang.Override
      public ChargingScheduleActive parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChargingScheduleActive> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChargingScheduleActive> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleActive getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HvBatteryPrecondStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.HvBatteryPrecondState)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.proto.HvBatteryPrecondStatesCharging charging = 1;</code>
     * @return The enum numeric value on the wire for charging.
     */
    int getChargingValue();
    /**
     * <code>.proto.HvBatteryPrecondStatesCharging charging = 1;</code>
     * @return The charging.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesCharging getCharging();

    /**
     * <code>.proto.HvBatteryPrecondStatesDischarging discharging = 2;</code>
     * @return The enum numeric value on the wire for discharging.
     */
    int getDischargingValue();
    /**
     * <code>.proto.HvBatteryPrecondStatesDischarging discharging = 2;</code>
     * @return The discharging.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesDischarging getDischarging();
  }
  /**
   * Protobuf type {@code proto.HvBatteryPrecondState}
   */
  public static final class HvBatteryPrecondState extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.HvBatteryPrecondState)
      HvBatteryPrecondStateOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "HvBatteryPrecondState");
    }
    // Use HvBatteryPrecondState.newBuilder() to construct.
    private HvBatteryPrecondState(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private HvBatteryPrecondState() {
      charging_ = 0;
      discharging_ = 0;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_HvBatteryPrecondState_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_HvBatteryPrecondState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.class, com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.Builder.class);
    }

    public static final int CHARGING_FIELD_NUMBER = 1;
    private int charging_ = 0;
    /**
     * <code>.proto.HvBatteryPrecondStatesCharging charging = 1;</code>
     * @return The enum numeric value on the wire for charging.
     */
    @java.lang.Override public int getChargingValue() {
      return charging_;
    }
    /**
     * <code>.proto.HvBatteryPrecondStatesCharging charging = 1;</code>
     * @return The charging.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesCharging getCharging() {
      com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesCharging result = com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesCharging.forNumber(charging_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesCharging.UNRECOGNIZED : result;
    }

    public static final int DISCHARGING_FIELD_NUMBER = 2;
    private int discharging_ = 0;
    /**
     * <code>.proto.HvBatteryPrecondStatesDischarging discharging = 2;</code>
     * @return The enum numeric value on the wire for discharging.
     */
    @java.lang.Override public int getDischargingValue() {
      return discharging_;
    }
    /**
     * <code>.proto.HvBatteryPrecondStatesDischarging discharging = 2;</code>
     * @return The discharging.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesDischarging getDischarging() {
      com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesDischarging result = com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesDischarging.forNumber(discharging_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesDischarging.UNRECOGNIZED : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (charging_ != com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesCharging.CHARGING_HEATING_INACTIVE.getNumber()) {
        output.writeEnum(1, charging_);
      }
      if (discharging_ != com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesDischarging.DISCHARGING_INACTIVE.getNumber()) {
        output.writeEnum(2, discharging_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (charging_ != com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesCharging.CHARGING_HEATING_INACTIVE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, charging_);
      }
      if (discharging_ != com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesDischarging.DISCHARGING_INACTIVE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, discharging_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState other = (com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState) obj;

      if (charging_ != other.charging_) return false;
      if (discharging_ != other.discharging_) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + CHARGING_FIELD_NUMBER;
      hash = (53 * hash) + charging_;
      hash = (37 * hash) + DISCHARGING_FIELD_NUMBER;
      hash = (53 * hash) + discharging_;
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.HvBatteryPrecondState}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.HvBatteryPrecondState)
        com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_HvBatteryPrecondState_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_HvBatteryPrecondState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.class, com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        charging_ = 0;
        discharging_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_HvBatteryPrecondState_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState build() {
        com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState result = new com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.charging_ = charging_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.discharging_ = discharging_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState.getDefaultInstance()) return this;
        if (other.charging_ != 0) {
          setChargingValue(other.getChargingValue());
        }
        if (other.discharging_ != 0) {
          setDischargingValue(other.getDischargingValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                charging_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                discharging_ = input.readEnum();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int charging_ = 0;
      /**
       * <code>.proto.HvBatteryPrecondStatesCharging charging = 1;</code>
       * @return The enum numeric value on the wire for charging.
       */
      @java.lang.Override public int getChargingValue() {
        return charging_;
      }
      /**
       * <code>.proto.HvBatteryPrecondStatesCharging charging = 1;</code>
       * @param value The enum numeric value on the wire for charging to set.
       * @return This builder for chaining.
       */
      public Builder setChargingValue(int value) {
        charging_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.HvBatteryPrecondStatesCharging charging = 1;</code>
       * @return The charging.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesCharging getCharging() {
        com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesCharging result = com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesCharging.forNumber(charging_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesCharging.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.HvBatteryPrecondStatesCharging charging = 1;</code>
       * @param value The charging to set.
       * @return This builder for chaining.
       */
      public Builder setCharging(com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesCharging value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        charging_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.HvBatteryPrecondStatesCharging charging = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearCharging() {
        bitField0_ = (bitField0_ & ~0x00000001);
        charging_ = 0;
        onChanged();
        return this;
      }

      private int discharging_ = 0;
      /**
       * <code>.proto.HvBatteryPrecondStatesDischarging discharging = 2;</code>
       * @return The enum numeric value on the wire for discharging.
       */
      @java.lang.Override public int getDischargingValue() {
        return discharging_;
      }
      /**
       * <code>.proto.HvBatteryPrecondStatesDischarging discharging = 2;</code>
       * @param value The enum numeric value on the wire for discharging to set.
       * @return This builder for chaining.
       */
      public Builder setDischargingValue(int value) {
        discharging_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.HvBatteryPrecondStatesDischarging discharging = 2;</code>
       * @return The discharging.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesDischarging getDischarging() {
        com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesDischarging result = com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesDischarging.forNumber(discharging_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesDischarging.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.HvBatteryPrecondStatesDischarging discharging = 2;</code>
       * @param value The discharging to set.
       * @return This builder for chaining.
       */
      public Builder setDischarging(com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondStatesDischarging value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000002;
        discharging_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.HvBatteryPrecondStatesDischarging discharging = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDischarging() {
        bitField0_ = (bitField0_ & ~0x00000002);
        discharging_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.HvBatteryPrecondState)
    }

    // @@protoc_insertion_point(class_scope:proto.HvBatteryPrecondState)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<HvBatteryPrecondState>
        PARSER = new com.google.protobuf.AbstractParser<HvBatteryPrecondState>() {
      @java.lang.Override
      public HvBatteryPrecondState parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<HvBatteryPrecondState> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<HvBatteryPrecondState> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HvBatteryPrecondRequestStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.HvBatteryPrecondRequestState)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.proto.MainCategory main_category = 1;</code>
     * @return The enum numeric value on the wire for mainCategory.
     */
    int getMainCategoryValue();
    /**
     * <code>.proto.MainCategory main_category = 1;</code>
     * @return The mainCategory.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.MainCategory getMainCategory();

    /**
     * <code>.proto.SubCategory sub_category = 2;</code>
     * @return The enum numeric value on the wire for subCategory.
     */
    int getSubCategoryValue();
    /**
     * <code>.proto.SubCategory sub_category = 2;</code>
     * @return The subCategory.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.SubCategory getSubCategory();

    /**
     * <code>.proto.SpecificCategory specific_category = 3;</code>
     * @return The enum numeric value on the wire for specificCategory.
     */
    int getSpecificCategoryValue();
    /**
     * <code>.proto.SpecificCategory specific_category = 3;</code>
     * @return The specificCategory.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.SpecificCategory getSpecificCategory();

    /**
     * <code>.proto.Method method = 4;</code>
     * @return The enum numeric value on the wire for method.
     */
    int getMethodValue();
    /**
     * <code>.proto.Method method = 4;</code>
     * @return The method.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.Method getMethod();

    /**
     * <code>.proto.Status status = 5;</code>
     * @return The enum numeric value on the wire for status.
     */
    int getStatusValue();
    /**
     * <code>.proto.Status status = 5;</code>
     * @return The status.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.Status getStatus();
  }
  /**
   * Protobuf type {@code proto.HvBatteryPrecondRequestState}
   */
  public static final class HvBatteryPrecondRequestState extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.HvBatteryPrecondRequestState)
      HvBatteryPrecondRequestStateOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "HvBatteryPrecondRequestState");
    }
    // Use HvBatteryPrecondRequestState.newBuilder() to construct.
    private HvBatteryPrecondRequestState(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private HvBatteryPrecondRequestState() {
      mainCategory_ = 0;
      subCategory_ = 0;
      specificCategory_ = 0;
      method_ = 0;
      status_ = 0;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_HvBatteryPrecondRequestState_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_HvBatteryPrecondRequestState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.class, com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.Builder.class);
    }

    public static final int MAIN_CATEGORY_FIELD_NUMBER = 1;
    private int mainCategory_ = 0;
    /**
     * <code>.proto.MainCategory main_category = 1;</code>
     * @return The enum numeric value on the wire for mainCategory.
     */
    @java.lang.Override public int getMainCategoryValue() {
      return mainCategory_;
    }
    /**
     * <code>.proto.MainCategory main_category = 1;</code>
     * @return The mainCategory.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.MainCategory getMainCategory() {
      com.daimler.mbcarkit.proto.VehicleEvents.MainCategory result = com.daimler.mbcarkit.proto.VehicleEvents.MainCategory.forNumber(mainCategory_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.MainCategory.UNRECOGNIZED : result;
    }

    public static final int SUB_CATEGORY_FIELD_NUMBER = 2;
    private int subCategory_ = 0;
    /**
     * <code>.proto.SubCategory sub_category = 2;</code>
     * @return The enum numeric value on the wire for subCategory.
     */
    @java.lang.Override public int getSubCategoryValue() {
      return subCategory_;
    }
    /**
     * <code>.proto.SubCategory sub_category = 2;</code>
     * @return The subCategory.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.SubCategory getSubCategory() {
      com.daimler.mbcarkit.proto.VehicleEvents.SubCategory result = com.daimler.mbcarkit.proto.VehicleEvents.SubCategory.forNumber(subCategory_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SubCategory.UNRECOGNIZED : result;
    }

    public static final int SPECIFIC_CATEGORY_FIELD_NUMBER = 3;
    private int specificCategory_ = 0;
    /**
     * <code>.proto.SpecificCategory specific_category = 3;</code>
     * @return The enum numeric value on the wire for specificCategory.
     */
    @java.lang.Override public int getSpecificCategoryValue() {
      return specificCategory_;
    }
    /**
     * <code>.proto.SpecificCategory specific_category = 3;</code>
     * @return The specificCategory.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.SpecificCategory getSpecificCategory() {
      com.daimler.mbcarkit.proto.VehicleEvents.SpecificCategory result = com.daimler.mbcarkit.proto.VehicleEvents.SpecificCategory.forNumber(specificCategory_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SpecificCategory.UNRECOGNIZED : result;
    }

    public static final int METHOD_FIELD_NUMBER = 4;
    private int method_ = 0;
    /**
     * <code>.proto.Method method = 4;</code>
     * @return The enum numeric value on the wire for method.
     */
    @java.lang.Override public int getMethodValue() {
      return method_;
    }
    /**
     * <code>.proto.Method method = 4;</code>
     * @return The method.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.Method getMethod() {
      com.daimler.mbcarkit.proto.VehicleEvents.Method result = com.daimler.mbcarkit.proto.VehicleEvents.Method.forNumber(method_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.Method.UNRECOGNIZED : result;
    }

    public static final int STATUS_FIELD_NUMBER = 5;
    private int status_ = 0;
    /**
     * <code>.proto.Status status = 5;</code>
     * @return The enum numeric value on the wire for status.
     */
    @java.lang.Override public int getStatusValue() {
      return status_;
    }
    /**
     * <code>.proto.Status status = 5;</code>
     * @return The status.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.Status getStatus() {
      com.daimler.mbcarkit.proto.VehicleEvents.Status result = com.daimler.mbcarkit.proto.VehicleEvents.Status.forNumber(status_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.Status.UNRECOGNIZED : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (mainCategory_ != com.daimler.mbcarkit.proto.VehicleEvents.MainCategory.MAIN_CATEGORY_SERVER.getNumber()) {
        output.writeEnum(1, mainCategory_);
      }
      if (subCategory_ != com.daimler.mbcarkit.proto.VehicleEvents.SubCategory.SUB_CATEGORY_UNKNOWN.getNumber()) {
        output.writeEnum(2, subCategory_);
      }
      if (specificCategory_ != com.daimler.mbcarkit.proto.VehicleEvents.SpecificCategory.SPECIFIC_CATEGORY_UNKNOWN.getNumber()) {
        output.writeEnum(3, specificCategory_);
      }
      if (method_ != com.daimler.mbcarkit.proto.VehicleEvents.Method.METHOD_COND_REQ_TO_REACH_TARGET_TEMP.getNumber()) {
        output.writeEnum(4, method_);
      }
      if (status_ != com.daimler.mbcarkit.proto.VehicleEvents.Status.STATE_OK.getNumber()) {
        output.writeEnum(5, status_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (mainCategory_ != com.daimler.mbcarkit.proto.VehicleEvents.MainCategory.MAIN_CATEGORY_SERVER.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, mainCategory_);
      }
      if (subCategory_ != com.daimler.mbcarkit.proto.VehicleEvents.SubCategory.SUB_CATEGORY_UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, subCategory_);
      }
      if (specificCategory_ != com.daimler.mbcarkit.proto.VehicleEvents.SpecificCategory.SPECIFIC_CATEGORY_UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, specificCategory_);
      }
      if (method_ != com.daimler.mbcarkit.proto.VehicleEvents.Method.METHOD_COND_REQ_TO_REACH_TARGET_TEMP.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, method_);
      }
      if (status_ != com.daimler.mbcarkit.proto.VehicleEvents.Status.STATE_OK.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, status_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState other = (com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState) obj;

      if (mainCategory_ != other.mainCategory_) return false;
      if (subCategory_ != other.subCategory_) return false;
      if (specificCategory_ != other.specificCategory_) return false;
      if (method_ != other.method_) return false;
      if (status_ != other.status_) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + MAIN_CATEGORY_FIELD_NUMBER;
      hash = (53 * hash) + mainCategory_;
      hash = (37 * hash) + SUB_CATEGORY_FIELD_NUMBER;
      hash = (53 * hash) + subCategory_;
      hash = (37 * hash) + SPECIFIC_CATEGORY_FIELD_NUMBER;
      hash = (53 * hash) + specificCategory_;
      hash = (37 * hash) + METHOD_FIELD_NUMBER;
      hash = (53 * hash) + method_;
      hash = (37 * hash) + STATUS_FIELD_NUMBER;
      hash = (53 * hash) + status_;
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.HvBatteryPrecondRequestState}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.HvBatteryPrecondRequestState)
        com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestStateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_HvBatteryPrecondRequestState_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_HvBatteryPrecondRequestState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.class, com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        mainCategory_ = 0;
        subCategory_ = 0;
        specificCategory_ = 0;
        method_ = 0;
        status_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_HvBatteryPrecondRequestState_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState build() {
        com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState result = new com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.mainCategory_ = mainCategory_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.subCategory_ = subCategory_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.specificCategory_ = specificCategory_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.method_ = method_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.status_ = status_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState.getDefaultInstance()) return this;
        if (other.mainCategory_ != 0) {
          setMainCategoryValue(other.getMainCategoryValue());
        }
        if (other.subCategory_ != 0) {
          setSubCategoryValue(other.getSubCategoryValue());
        }
        if (other.specificCategory_ != 0) {
          setSpecificCategoryValue(other.getSpecificCategoryValue());
        }
        if (other.method_ != 0) {
          setMethodValue(other.getMethodValue());
        }
        if (other.status_ != 0) {
          setStatusValue(other.getStatusValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                mainCategory_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                subCategory_ = input.readEnum();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                specificCategory_ = input.readEnum();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                method_ = input.readEnum();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                status_ = input.readEnum();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int mainCategory_ = 0;
      /**
       * <code>.proto.MainCategory main_category = 1;</code>
       * @return The enum numeric value on the wire for mainCategory.
       */
      @java.lang.Override public int getMainCategoryValue() {
        return mainCategory_;
      }
      /**
       * <code>.proto.MainCategory main_category = 1;</code>
       * @param value The enum numeric value on the wire for mainCategory to set.
       * @return This builder for chaining.
       */
      public Builder setMainCategoryValue(int value) {
        mainCategory_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.MainCategory main_category = 1;</code>
       * @return The mainCategory.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.MainCategory getMainCategory() {
        com.daimler.mbcarkit.proto.VehicleEvents.MainCategory result = com.daimler.mbcarkit.proto.VehicleEvents.MainCategory.forNumber(mainCategory_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.MainCategory.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.MainCategory main_category = 1;</code>
       * @param value The mainCategory to set.
       * @return This builder for chaining.
       */
      public Builder setMainCategory(com.daimler.mbcarkit.proto.VehicleEvents.MainCategory value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        mainCategory_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.MainCategory main_category = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMainCategory() {
        bitField0_ = (bitField0_ & ~0x00000001);
        mainCategory_ = 0;
        onChanged();
        return this;
      }

      private int subCategory_ = 0;
      /**
       * <code>.proto.SubCategory sub_category = 2;</code>
       * @return The enum numeric value on the wire for subCategory.
       */
      @java.lang.Override public int getSubCategoryValue() {
        return subCategory_;
      }
      /**
       * <code>.proto.SubCategory sub_category = 2;</code>
       * @param value The enum numeric value on the wire for subCategory to set.
       * @return This builder for chaining.
       */
      public Builder setSubCategoryValue(int value) {
        subCategory_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SubCategory sub_category = 2;</code>
       * @return The subCategory.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.SubCategory getSubCategory() {
        com.daimler.mbcarkit.proto.VehicleEvents.SubCategory result = com.daimler.mbcarkit.proto.VehicleEvents.SubCategory.forNumber(subCategory_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SubCategory.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.SubCategory sub_category = 2;</code>
       * @param value The subCategory to set.
       * @return This builder for chaining.
       */
      public Builder setSubCategory(com.daimler.mbcarkit.proto.VehicleEvents.SubCategory value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000002;
        subCategory_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SubCategory sub_category = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSubCategory() {
        bitField0_ = (bitField0_ & ~0x00000002);
        subCategory_ = 0;
        onChanged();
        return this;
      }

      private int specificCategory_ = 0;
      /**
       * <code>.proto.SpecificCategory specific_category = 3;</code>
       * @return The enum numeric value on the wire for specificCategory.
       */
      @java.lang.Override public int getSpecificCategoryValue() {
        return specificCategory_;
      }
      /**
       * <code>.proto.SpecificCategory specific_category = 3;</code>
       * @param value The enum numeric value on the wire for specificCategory to set.
       * @return This builder for chaining.
       */
      public Builder setSpecificCategoryValue(int value) {
        specificCategory_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SpecificCategory specific_category = 3;</code>
       * @return The specificCategory.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.SpecificCategory getSpecificCategory() {
        com.daimler.mbcarkit.proto.VehicleEvents.SpecificCategory result = com.daimler.mbcarkit.proto.VehicleEvents.SpecificCategory.forNumber(specificCategory_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.SpecificCategory.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.SpecificCategory specific_category = 3;</code>
       * @param value The specificCategory to set.
       * @return This builder for chaining.
       */
      public Builder setSpecificCategory(com.daimler.mbcarkit.proto.VehicleEvents.SpecificCategory value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000004;
        specificCategory_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.SpecificCategory specific_category = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpecificCategory() {
        bitField0_ = (bitField0_ & ~0x00000004);
        specificCategory_ = 0;
        onChanged();
        return this;
      }

      private int method_ = 0;
      /**
       * <code>.proto.Method method = 4;</code>
       * @return The enum numeric value on the wire for method.
       */
      @java.lang.Override public int getMethodValue() {
        return method_;
      }
      /**
       * <code>.proto.Method method = 4;</code>
       * @param value The enum numeric value on the wire for method to set.
       * @return This builder for chaining.
       */
      public Builder setMethodValue(int value) {
        method_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.Method method = 4;</code>
       * @return The method.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.Method getMethod() {
        com.daimler.mbcarkit.proto.VehicleEvents.Method result = com.daimler.mbcarkit.proto.VehicleEvents.Method.forNumber(method_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.Method.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.Method method = 4;</code>
       * @param value The method to set.
       * @return This builder for chaining.
       */
      public Builder setMethod(com.daimler.mbcarkit.proto.VehicleEvents.Method value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000008;
        method_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.Method method = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearMethod() {
        bitField0_ = (bitField0_ & ~0x00000008);
        method_ = 0;
        onChanged();
        return this;
      }

      private int status_ = 0;
      /**
       * <code>.proto.Status status = 5;</code>
       * @return The enum numeric value on the wire for status.
       */
      @java.lang.Override public int getStatusValue() {
        return status_;
      }
      /**
       * <code>.proto.Status status = 5;</code>
       * @param value The enum numeric value on the wire for status to set.
       * @return This builder for chaining.
       */
      public Builder setStatusValue(int value) {
        status_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.Status status = 5;</code>
       * @return The status.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.Status getStatus() {
        com.daimler.mbcarkit.proto.VehicleEvents.Status result = com.daimler.mbcarkit.proto.VehicleEvents.Status.forNumber(status_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.Status.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.Status status = 5;</code>
       * @param value The status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(com.daimler.mbcarkit.proto.VehicleEvents.Status value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000010;
        status_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.Status status = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000010);
        status_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.HvBatteryPrecondRequestState)
    }

    // @@protoc_insertion_point(class_scope:proto.HvBatteryPrecondRequestState)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<HvBatteryPrecondRequestState>
        PARSER = new com.google.protobuf.AbstractParser<HvBatteryPrecondRequestState>() {
      @java.lang.Override
      public HvBatteryPrecondRequestState parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<HvBatteryPrecondRequestState> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<HvBatteryPrecondRequestState> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.HvBatteryPrecondRequestState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PrecondOperabilityStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.PrecondOperabilityState)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>bool precond_available = 1;</code>
     * @return The precondAvailable.
     */
    boolean getPrecondAvailable();

    /**
     * <code>.proto.PrecondOperabilityState.PrecondErrorState precond_error_state = 2;</code>
     * @return The enum numeric value on the wire for precondErrorState.
     */
    int getPrecondErrorStateValue();
    /**
     * <code>.proto.PrecondOperabilityState.PrecondErrorState precond_error_state = 2;</code>
     * @return The precondErrorState.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.PrecondErrorState getPrecondErrorState();
  }
  /**
   * Protobuf type {@code proto.PrecondOperabilityState}
   */
  public static final class PrecondOperabilityState extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.PrecondOperabilityState)
      PrecondOperabilityStateOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "PrecondOperabilityState");
    }
    // Use PrecondOperabilityState.newBuilder() to construct.
    private PrecondOperabilityState(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private PrecondOperabilityState() {
      precondErrorState_ = 0;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PrecondOperabilityState_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PrecondOperabilityState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.class, com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.Builder.class);
    }

    /**
     * Protobuf enum {@code proto.PrecondOperabilityState.PrecondErrorState}
     */
    public enum PrecondErrorState
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>PRECOND_ERROR_STATE_NO_ERROR = 0;</code>
       */
      PRECOND_ERROR_STATE_NO_ERROR(0),
      /**
       * <code>PRECOND_ERROR_STATE_PLAY_PROTECTION = 1;</code>
       */
      PRECOND_ERROR_STATE_PLAY_PROTECTION(1),
      /**
       * <code>PRECOND_ERROR_STATE_NO_ENERGY_BUDGET_AVAILABLE = 2;</code>
       */
      PRECOND_ERROR_STATE_NO_ENERGY_BUDGET_AVAILABLE(2),
      /**
       * <code>PRECOND_ERROR_STATE_LOW_BUDGET = 3;</code>
       */
      PRECOND_ERROR_STATE_LOW_BUDGET(3),
      /**
       * <code>PRECOND_ERROR_STATE_SYSTEM_NOT_AVAILABLE = 4;</code>
       */
      PRECOND_ERROR_STATE_SYSTEM_NOT_AVAILABLE(4),
      /**
       * <code>PRECOND_ERROR_STATE_PRECONDITIONING_ABORTED = 5;</code>
       */
      PRECOND_ERROR_STATE_PRECONDITIONING_ABORTED(5),
      /**
       * <code>PRECOND_ERROR_STATE_REGULAR_CLIMATIZATION_ACTIVE = 6;</code>
       */
      PRECOND_ERROR_STATE_REGULAR_CLIMATIZATION_ACTIVE(6),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "PrecondErrorState");
      }
      /**
       * <code>PRECOND_ERROR_STATE_NO_ERROR = 0;</code>
       */
      public static final int PRECOND_ERROR_STATE_NO_ERROR_VALUE = 0;
      /**
       * <code>PRECOND_ERROR_STATE_PLAY_PROTECTION = 1;</code>
       */
      public static final int PRECOND_ERROR_STATE_PLAY_PROTECTION_VALUE = 1;
      /**
       * <code>PRECOND_ERROR_STATE_NO_ENERGY_BUDGET_AVAILABLE = 2;</code>
       */
      public static final int PRECOND_ERROR_STATE_NO_ENERGY_BUDGET_AVAILABLE_VALUE = 2;
      /**
       * <code>PRECOND_ERROR_STATE_LOW_BUDGET = 3;</code>
       */
      public static final int PRECOND_ERROR_STATE_LOW_BUDGET_VALUE = 3;
      /**
       * <code>PRECOND_ERROR_STATE_SYSTEM_NOT_AVAILABLE = 4;</code>
       */
      public static final int PRECOND_ERROR_STATE_SYSTEM_NOT_AVAILABLE_VALUE = 4;
      /**
       * <code>PRECOND_ERROR_STATE_PRECONDITIONING_ABORTED = 5;</code>
       */
      public static final int PRECOND_ERROR_STATE_PRECONDITIONING_ABORTED_VALUE = 5;
      /**
       * <code>PRECOND_ERROR_STATE_REGULAR_CLIMATIZATION_ACTIVE = 6;</code>
       */
      public static final int PRECOND_ERROR_STATE_REGULAR_CLIMATIZATION_ACTIVE_VALUE = 6;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static PrecondErrorState valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static PrecondErrorState forNumber(int value) {
        switch (value) {
          case 0: return PRECOND_ERROR_STATE_NO_ERROR;
          case 1: return PRECOND_ERROR_STATE_PLAY_PROTECTION;
          case 2: return PRECOND_ERROR_STATE_NO_ENERGY_BUDGET_AVAILABLE;
          case 3: return PRECOND_ERROR_STATE_LOW_BUDGET;
          case 4: return PRECOND_ERROR_STATE_SYSTEM_NOT_AVAILABLE;
          case 5: return PRECOND_ERROR_STATE_PRECONDITIONING_ABORTED;
          case 6: return PRECOND_ERROR_STATE_REGULAR_CLIMATIZATION_ACTIVE;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<PrecondErrorState>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          PrecondErrorState> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<PrecondErrorState>() {
              public PrecondErrorState findValueByNumber(int number) {
                return PrecondErrorState.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.getDescriptor().getEnumTypes().get(0);
      }

      private static final PrecondErrorState[] VALUES = values();

      public static PrecondErrorState valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private PrecondErrorState(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.PrecondOperabilityState.PrecondErrorState)
    }

    public static final int PRECOND_AVAILABLE_FIELD_NUMBER = 1;
    private boolean precondAvailable_ = false;
    /**
     * <code>bool precond_available = 1;</code>
     * @return The precondAvailable.
     */
    @java.lang.Override
    public boolean getPrecondAvailable() {
      return precondAvailable_;
    }

    public static final int PRECOND_ERROR_STATE_FIELD_NUMBER = 2;
    private int precondErrorState_ = 0;
    /**
     * <code>.proto.PrecondOperabilityState.PrecondErrorState precond_error_state = 2;</code>
     * @return The enum numeric value on the wire for precondErrorState.
     */
    @java.lang.Override public int getPrecondErrorStateValue() {
      return precondErrorState_;
    }
    /**
     * <code>.proto.PrecondOperabilityState.PrecondErrorState precond_error_state = 2;</code>
     * @return The precondErrorState.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.PrecondErrorState getPrecondErrorState() {
      com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.PrecondErrorState result = com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.PrecondErrorState.forNumber(precondErrorState_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.PrecondErrorState.UNRECOGNIZED : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (precondAvailable_ != false) {
        output.writeBool(1, precondAvailable_);
      }
      if (precondErrorState_ != com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.PrecondErrorState.PRECOND_ERROR_STATE_NO_ERROR.getNumber()) {
        output.writeEnum(2, precondErrorState_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (precondAvailable_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, precondAvailable_);
      }
      if (precondErrorState_ != com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.PrecondErrorState.PRECOND_ERROR_STATE_NO_ERROR.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, precondErrorState_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState other = (com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState) obj;

      if (getPrecondAvailable()
          != other.getPrecondAvailable()) return false;
      if (precondErrorState_ != other.precondErrorState_) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + PRECOND_AVAILABLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getPrecondAvailable());
      hash = (37 * hash) + PRECOND_ERROR_STATE_FIELD_NUMBER;
      hash = (53 * hash) + precondErrorState_;
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.PrecondOperabilityState}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.PrecondOperabilityState)
        com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityStateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PrecondOperabilityState_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PrecondOperabilityState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.class, com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        precondAvailable_ = false;
        precondErrorState_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PrecondOperabilityState_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState build() {
        com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState result = new com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.precondAvailable_ = precondAvailable_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.precondErrorState_ = precondErrorState_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.getDefaultInstance()) return this;
        if (other.getPrecondAvailable() != false) {
          setPrecondAvailable(other.getPrecondAvailable());
        }
        if (other.precondErrorState_ != 0) {
          setPrecondErrorStateValue(other.getPrecondErrorStateValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                precondAvailable_ = input.readBool();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                precondErrorState_ = input.readEnum();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private boolean precondAvailable_ ;
      /**
       * <code>bool precond_available = 1;</code>
       * @return The precondAvailable.
       */
      @java.lang.Override
      public boolean getPrecondAvailable() {
        return precondAvailable_;
      }
      /**
       * <code>bool precond_available = 1;</code>
       * @param value The precondAvailable to set.
       * @return This builder for chaining.
       */
      public Builder setPrecondAvailable(boolean value) {

        precondAvailable_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>bool precond_available = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearPrecondAvailable() {
        bitField0_ = (bitField0_ & ~0x00000001);
        precondAvailable_ = false;
        onChanged();
        return this;
      }

      private int precondErrorState_ = 0;
      /**
       * <code>.proto.PrecondOperabilityState.PrecondErrorState precond_error_state = 2;</code>
       * @return The enum numeric value on the wire for precondErrorState.
       */
      @java.lang.Override public int getPrecondErrorStateValue() {
        return precondErrorState_;
      }
      /**
       * <code>.proto.PrecondOperabilityState.PrecondErrorState precond_error_state = 2;</code>
       * @param value The enum numeric value on the wire for precondErrorState to set.
       * @return This builder for chaining.
       */
      public Builder setPrecondErrorStateValue(int value) {
        precondErrorState_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.PrecondOperabilityState.PrecondErrorState precond_error_state = 2;</code>
       * @return The precondErrorState.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.PrecondErrorState getPrecondErrorState() {
        com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.PrecondErrorState result = com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.PrecondErrorState.forNumber(precondErrorState_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.PrecondErrorState.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.PrecondOperabilityState.PrecondErrorState precond_error_state = 2;</code>
       * @param value The precondErrorState to set.
       * @return This builder for chaining.
       */
      public Builder setPrecondErrorState(com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState.PrecondErrorState value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000002;
        precondErrorState_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.PrecondOperabilityState.PrecondErrorState precond_error_state = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPrecondErrorState() {
        bitField0_ = (bitField0_ & ~0x00000002);
        precondErrorState_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.PrecondOperabilityState)
    }

    // @@protoc_insertion_point(class_scope:proto.PrecondOperabilityState)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PrecondOperabilityState>
        PARSER = new com.google.protobuf.AbstractParser<PrecondOperabilityState>() {
      @java.lang.Override
      public PrecondOperabilityState parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PrecondOperabilityState> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PrecondOperabilityState> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.PrecondOperabilityState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargingScheduleRequestedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ChargingScheduleRequested)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.proto.ChargingScheduleRequested.ScheduleIdStatus schedule_id_status = 1;</code>
     * @return The enum numeric value on the wire for scheduleIdStatus.
     */
    int getScheduleIdStatusValue();
    /**
     * <code>.proto.ChargingScheduleRequested.ScheduleIdStatus schedule_id_status = 1;</code>
     * @return The scheduleIdStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ScheduleIdStatus getScheduleIdStatus();

    /**
     * <code>.proto.ChargingScheduleRequested.ChargingScheduleUseCaseId use_case_id = 2;</code>
     * @return The enum numeric value on the wire for useCaseId.
     */
    int getUseCaseIdValue();
    /**
     * <code>.proto.ChargingScheduleRequested.ChargingScheduleUseCaseId use_case_id = 2;</code>
     * @return The useCaseId.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ChargingScheduleUseCaseId getUseCaseId();
  }
  /**
   * Protobuf type {@code proto.ChargingScheduleRequested}
   */
  public static final class ChargingScheduleRequested extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.ChargingScheduleRequested)
      ChargingScheduleRequestedOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargingScheduleRequested");
    }
    // Use ChargingScheduleRequested.newBuilder() to construct.
    private ChargingScheduleRequested(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ChargingScheduleRequested() {
      scheduleIdStatus_ = 0;
      useCaseId_ = 0;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingScheduleRequested_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingScheduleRequested_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.Builder.class);
    }

    /**
     * Protobuf enum {@code proto.ChargingScheduleRequested.ScheduleIdStatus}
     */
    public enum ScheduleIdStatus
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>SCHEDULE_ID_STATUS_DELETED = 0;</code>
       */
      SCHEDULE_ID_STATUS_DELETED(0),
      /**
       * <pre>
       * 210?
       * </pre>
       *
       * <code>SCHEDULE_ID_STATUS_INITIAL = 1;</code>
       */
      SCHEDULE_ID_STATUS_INITIAL(1),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "ScheduleIdStatus");
      }
      /**
       * <code>SCHEDULE_ID_STATUS_DELETED = 0;</code>
       */
      public static final int SCHEDULE_ID_STATUS_DELETED_VALUE = 0;
      /**
       * <pre>
       * 210?
       * </pre>
       *
       * <code>SCHEDULE_ID_STATUS_INITIAL = 1;</code>
       */
      public static final int SCHEDULE_ID_STATUS_INITIAL_VALUE = 1;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ScheduleIdStatus valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ScheduleIdStatus forNumber(int value) {
        switch (value) {
          case 0: return SCHEDULE_ID_STATUS_DELETED;
          case 1: return SCHEDULE_ID_STATUS_INITIAL;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ScheduleIdStatus>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ScheduleIdStatus> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ScheduleIdStatus>() {
              public ScheduleIdStatus findValueByNumber(int number) {
                return ScheduleIdStatus.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.getDescriptor().getEnumTypes().get(0);
      }

      private static final ScheduleIdStatus[] VALUES = values();

      public static ScheduleIdStatus valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ScheduleIdStatus(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.ChargingScheduleRequested.ScheduleIdStatus)
    }

    /**
     * Protobuf enum {@code proto.ChargingScheduleRequested.ChargingScheduleUseCaseId}
     */
    public enum ChargingScheduleUseCaseId
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_SMART_CHARGING = 0;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_SMART_CHARGING(0),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_MERCEDES_INTELLIGENT_CHARGING = 1;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_MERCEDES_INTELLIGENT_CHARGING(1),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_BETA_COMMUNITY_CHARGING = 2;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_BETA_COMMUNITY_CHARGING(2),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_SOLAR_CHARGING = 3;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_SOLAR_CHARGING(3),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_GREEN_CHARGING = 4;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_GREEN_CHARGING(4),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_EFFICIENT_CHARGING = 5;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_EFFICIENT_CHARGING(5),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_ECO_FRIENDLY_CHARGING = 6;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_ECO_FRIENDLY_CHARGING(6),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_SUSTAINABLE_CHARGING = 7;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_SUSTAINABLE_CHARGING(7),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_INTELLIGENT_CHARGING = 8;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_INTELLIGENT_CHARGING(8),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_WORKPLACE_CHARGING_PLAN = 9;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_WORKPLACE_CHARGING_PLAN(9),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_HOME_CHARGING_PLAN = 10;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_HOME_CHARGING_PLAN(10),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_FLEET_MANAGED_CHARGING = 11;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_FLEET_MANAGED_CHARGING(11),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_PRICE_OPTIMIZED_CHARGING = 12;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_PRICE_OPTIMIZED_CHARGING(12),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_BATTERY_FRIENDLY_CHARGING = 13;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_BATTERY_FRIENDLY_CHARGING(13),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_EXTERNAL_NOISE_OPTIMIZED_CHARGING = 14;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_EXTERNAL_NOISE_OPTIMIZED_CHARGING(14),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_VIDEO_WATCHING_OPTIMIZED_CHARGING = 15;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_VIDEO_WATCHING_OPTIMIZED_CHARGING(15),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_TIME_CONTROLLED_CHARGING = 16;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_TIME_CONTROLLED_CHARGING(16),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_PEAK_SHAVING_CHARGING = 17;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_PEAK_SHAVING_CHARGING(17),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_DYNAMIC_LOAD_BALANCED_CHARGING = 18;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_DYNAMIC_LOAD_BALANCED_CHARGING(18),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_BUSINESS_SPECIFIC_CHARGING = 19;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_BUSINESS_SPECIFIC_CHARGING(19),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_PREFERRED_CHARGING_TIMES = 20;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_PREFERRED_CHARGING_TIMES(20),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_ENPAL = 21;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_ENPAL(21),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_TIBBER = 22;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_TIBBER(22),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_THE_MOBILITY_HOUSE = 23;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_THE_MOBILITY_HOUSE(23),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_AWATTAR = 24;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_AWATTAR(24),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_TRONITY = 25;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_TRONITY(25),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_DPD = 26;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_DPD(26),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_DEUTSCHE_POST = 27;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_DEUTSCHE_POST(27),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_HACKATHON = 28;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_HACKATHON(28),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_SANDBOX_MODE = 29;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_SANDBOX_MODE(29),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_DEVELOPER_MODE = 30;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_DEVELOPER_MODE(30),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_TEST_MODE = 31;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_TEST_MODE(31),
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_DEBUG_MODE = 32;</code>
       */
      CHARGING_SCHEDULE_USE_CASE_ID_DEBUG_MODE(32),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "ChargingScheduleUseCaseId");
      }
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_SMART_CHARGING = 0;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_SMART_CHARGING_VALUE = 0;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_MERCEDES_INTELLIGENT_CHARGING = 1;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_MERCEDES_INTELLIGENT_CHARGING_VALUE = 1;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_BETA_COMMUNITY_CHARGING = 2;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_BETA_COMMUNITY_CHARGING_VALUE = 2;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_SOLAR_CHARGING = 3;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_SOLAR_CHARGING_VALUE = 3;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_GREEN_CHARGING = 4;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_GREEN_CHARGING_VALUE = 4;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_EFFICIENT_CHARGING = 5;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_EFFICIENT_CHARGING_VALUE = 5;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_ECO_FRIENDLY_CHARGING = 6;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_ECO_FRIENDLY_CHARGING_VALUE = 6;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_SUSTAINABLE_CHARGING = 7;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_SUSTAINABLE_CHARGING_VALUE = 7;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_INTELLIGENT_CHARGING = 8;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_INTELLIGENT_CHARGING_VALUE = 8;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_WORKPLACE_CHARGING_PLAN = 9;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_WORKPLACE_CHARGING_PLAN_VALUE = 9;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_HOME_CHARGING_PLAN = 10;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_HOME_CHARGING_PLAN_VALUE = 10;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_FLEET_MANAGED_CHARGING = 11;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_FLEET_MANAGED_CHARGING_VALUE = 11;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_PRICE_OPTIMIZED_CHARGING = 12;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_PRICE_OPTIMIZED_CHARGING_VALUE = 12;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_BATTERY_FRIENDLY_CHARGING = 13;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_BATTERY_FRIENDLY_CHARGING_VALUE = 13;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_EXTERNAL_NOISE_OPTIMIZED_CHARGING = 14;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_EXTERNAL_NOISE_OPTIMIZED_CHARGING_VALUE = 14;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_VIDEO_WATCHING_OPTIMIZED_CHARGING = 15;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_VIDEO_WATCHING_OPTIMIZED_CHARGING_VALUE = 15;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_TIME_CONTROLLED_CHARGING = 16;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_TIME_CONTROLLED_CHARGING_VALUE = 16;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_PEAK_SHAVING_CHARGING = 17;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_PEAK_SHAVING_CHARGING_VALUE = 17;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_DYNAMIC_LOAD_BALANCED_CHARGING = 18;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_DYNAMIC_LOAD_BALANCED_CHARGING_VALUE = 18;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_BUSINESS_SPECIFIC_CHARGING = 19;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_BUSINESS_SPECIFIC_CHARGING_VALUE = 19;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_PREFERRED_CHARGING_TIMES = 20;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_PREFERRED_CHARGING_TIMES_VALUE = 20;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_ENPAL = 21;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_ENPAL_VALUE = 21;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_TIBBER = 22;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_TIBBER_VALUE = 22;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_THE_MOBILITY_HOUSE = 23;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_THE_MOBILITY_HOUSE_VALUE = 23;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_AWATTAR = 24;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_AWATTAR_VALUE = 24;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_TRONITY = 25;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_TRONITY_VALUE = 25;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_DPD = 26;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_DPD_VALUE = 26;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_DEUTSCHE_POST = 27;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_DEUTSCHE_POST_VALUE = 27;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_HACKATHON = 28;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_HACKATHON_VALUE = 28;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_SANDBOX_MODE = 29;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_SANDBOX_MODE_VALUE = 29;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_DEVELOPER_MODE = 30;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_DEVELOPER_MODE_VALUE = 30;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_TEST_MODE = 31;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_TEST_MODE_VALUE = 31;
      /**
       * <code>CHARGING_SCHEDULE_USE_CASE_ID_DEBUG_MODE = 32;</code>
       */
      public static final int CHARGING_SCHEDULE_USE_CASE_ID_DEBUG_MODE_VALUE = 32;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ChargingScheduleUseCaseId valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ChargingScheduleUseCaseId forNumber(int value) {
        switch (value) {
          case 0: return CHARGING_SCHEDULE_USE_CASE_ID_SMART_CHARGING;
          case 1: return CHARGING_SCHEDULE_USE_CASE_ID_MERCEDES_INTELLIGENT_CHARGING;
          case 2: return CHARGING_SCHEDULE_USE_CASE_ID_BETA_COMMUNITY_CHARGING;
          case 3: return CHARGING_SCHEDULE_USE_CASE_ID_SOLAR_CHARGING;
          case 4: return CHARGING_SCHEDULE_USE_CASE_ID_GREEN_CHARGING;
          case 5: return CHARGING_SCHEDULE_USE_CASE_ID_EFFICIENT_CHARGING;
          case 6: return CHARGING_SCHEDULE_USE_CASE_ID_ECO_FRIENDLY_CHARGING;
          case 7: return CHARGING_SCHEDULE_USE_CASE_ID_SUSTAINABLE_CHARGING;
          case 8: return CHARGING_SCHEDULE_USE_CASE_ID_INTELLIGENT_CHARGING;
          case 9: return CHARGING_SCHEDULE_USE_CASE_ID_WORKPLACE_CHARGING_PLAN;
          case 10: return CHARGING_SCHEDULE_USE_CASE_ID_HOME_CHARGING_PLAN;
          case 11: return CHARGING_SCHEDULE_USE_CASE_ID_FLEET_MANAGED_CHARGING;
          case 12: return CHARGING_SCHEDULE_USE_CASE_ID_PRICE_OPTIMIZED_CHARGING;
          case 13: return CHARGING_SCHEDULE_USE_CASE_ID_BATTERY_FRIENDLY_CHARGING;
          case 14: return CHARGING_SCHEDULE_USE_CASE_ID_EXTERNAL_NOISE_OPTIMIZED_CHARGING;
          case 15: return CHARGING_SCHEDULE_USE_CASE_ID_VIDEO_WATCHING_OPTIMIZED_CHARGING;
          case 16: return CHARGING_SCHEDULE_USE_CASE_ID_TIME_CONTROLLED_CHARGING;
          case 17: return CHARGING_SCHEDULE_USE_CASE_ID_PEAK_SHAVING_CHARGING;
          case 18: return CHARGING_SCHEDULE_USE_CASE_ID_DYNAMIC_LOAD_BALANCED_CHARGING;
          case 19: return CHARGING_SCHEDULE_USE_CASE_ID_BUSINESS_SPECIFIC_CHARGING;
          case 20: return CHARGING_SCHEDULE_USE_CASE_ID_PREFERRED_CHARGING_TIMES;
          case 21: return CHARGING_SCHEDULE_USE_CASE_ID_ENPAL;
          case 22: return CHARGING_SCHEDULE_USE_CASE_ID_TIBBER;
          case 23: return CHARGING_SCHEDULE_USE_CASE_ID_THE_MOBILITY_HOUSE;
          case 24: return CHARGING_SCHEDULE_USE_CASE_ID_AWATTAR;
          case 25: return CHARGING_SCHEDULE_USE_CASE_ID_TRONITY;
          case 26: return CHARGING_SCHEDULE_USE_CASE_ID_DPD;
          case 27: return CHARGING_SCHEDULE_USE_CASE_ID_DEUTSCHE_POST;
          case 28: return CHARGING_SCHEDULE_USE_CASE_ID_HACKATHON;
          case 29: return CHARGING_SCHEDULE_USE_CASE_ID_SANDBOX_MODE;
          case 30: return CHARGING_SCHEDULE_USE_CASE_ID_DEVELOPER_MODE;
          case 31: return CHARGING_SCHEDULE_USE_CASE_ID_TEST_MODE;
          case 32: return CHARGING_SCHEDULE_USE_CASE_ID_DEBUG_MODE;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ChargingScheduleUseCaseId>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ChargingScheduleUseCaseId> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ChargingScheduleUseCaseId>() {
              public ChargingScheduleUseCaseId findValueByNumber(int number) {
                return ChargingScheduleUseCaseId.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.getDescriptor().getEnumTypes().get(1);
      }

      private static final ChargingScheduleUseCaseId[] VALUES = values();

      public static ChargingScheduleUseCaseId valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ChargingScheduleUseCaseId(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.ChargingScheduleRequested.ChargingScheduleUseCaseId)
    }

    public static final int SCHEDULE_ID_STATUS_FIELD_NUMBER = 1;
    private int scheduleIdStatus_ = 0;
    /**
     * <code>.proto.ChargingScheduleRequested.ScheduleIdStatus schedule_id_status = 1;</code>
     * @return The enum numeric value on the wire for scheduleIdStatus.
     */
    @java.lang.Override public int getScheduleIdStatusValue() {
      return scheduleIdStatus_;
    }
    /**
     * <code>.proto.ChargingScheduleRequested.ScheduleIdStatus schedule_id_status = 1;</code>
     * @return The scheduleIdStatus.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ScheduleIdStatus getScheduleIdStatus() {
      com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ScheduleIdStatus result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ScheduleIdStatus.forNumber(scheduleIdStatus_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ScheduleIdStatus.UNRECOGNIZED : result;
    }

    public static final int USE_CASE_ID_FIELD_NUMBER = 2;
    private int useCaseId_ = 0;
    /**
     * <code>.proto.ChargingScheduleRequested.ChargingScheduleUseCaseId use_case_id = 2;</code>
     * @return The enum numeric value on the wire for useCaseId.
     */
    @java.lang.Override public int getUseCaseIdValue() {
      return useCaseId_;
    }
    /**
     * <code>.proto.ChargingScheduleRequested.ChargingScheduleUseCaseId use_case_id = 2;</code>
     * @return The useCaseId.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ChargingScheduleUseCaseId getUseCaseId() {
      com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ChargingScheduleUseCaseId result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ChargingScheduleUseCaseId.forNumber(useCaseId_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ChargingScheduleUseCaseId.UNRECOGNIZED : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (scheduleIdStatus_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ScheduleIdStatus.SCHEDULE_ID_STATUS_DELETED.getNumber()) {
        output.writeEnum(1, scheduleIdStatus_);
      }
      if (useCaseId_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ChargingScheduleUseCaseId.CHARGING_SCHEDULE_USE_CASE_ID_SMART_CHARGING.getNumber()) {
        output.writeEnum(2, useCaseId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (scheduleIdStatus_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ScheduleIdStatus.SCHEDULE_ID_STATUS_DELETED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, scheduleIdStatus_);
      }
      if (useCaseId_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ChargingScheduleUseCaseId.CHARGING_SCHEDULE_USE_CASE_ID_SMART_CHARGING.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, useCaseId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested) obj;

      if (scheduleIdStatus_ != other.scheduleIdStatus_) return false;
      if (useCaseId_ != other.useCaseId_) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SCHEDULE_ID_STATUS_FIELD_NUMBER;
      hash = (53 * hash) + scheduleIdStatus_;
      hash = (37 * hash) + USE_CASE_ID_FIELD_NUMBER;
      hash = (53 * hash) + useCaseId_;
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.ChargingScheduleRequested}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ChargingScheduleRequested)
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequestedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingScheduleRequested_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingScheduleRequested_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        scheduleIdStatus_ = 0;
        useCaseId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingScheduleRequested_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested build() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.scheduleIdStatus_ = scheduleIdStatus_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.useCaseId_ = useCaseId_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.getDefaultInstance()) return this;
        if (other.scheduleIdStatus_ != 0) {
          setScheduleIdStatusValue(other.getScheduleIdStatusValue());
        }
        if (other.useCaseId_ != 0) {
          setUseCaseIdValue(other.getUseCaseIdValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                scheduleIdStatus_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                useCaseId_ = input.readEnum();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int scheduleIdStatus_ = 0;
      /**
       * <code>.proto.ChargingScheduleRequested.ScheduleIdStatus schedule_id_status = 1;</code>
       * @return The enum numeric value on the wire for scheduleIdStatus.
       */
      @java.lang.Override public int getScheduleIdStatusValue() {
        return scheduleIdStatus_;
      }
      /**
       * <code>.proto.ChargingScheduleRequested.ScheduleIdStatus schedule_id_status = 1;</code>
       * @param value The enum numeric value on the wire for scheduleIdStatus to set.
       * @return This builder for chaining.
       */
      public Builder setScheduleIdStatusValue(int value) {
        scheduleIdStatus_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleRequested.ScheduleIdStatus schedule_id_status = 1;</code>
       * @return The scheduleIdStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ScheduleIdStatus getScheduleIdStatus() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ScheduleIdStatus result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ScheduleIdStatus.forNumber(scheduleIdStatus_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ScheduleIdStatus.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.ChargingScheduleRequested.ScheduleIdStatus schedule_id_status = 1;</code>
       * @param value The scheduleIdStatus to set.
       * @return This builder for chaining.
       */
      public Builder setScheduleIdStatus(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ScheduleIdStatus value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        scheduleIdStatus_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleRequested.ScheduleIdStatus schedule_id_status = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearScheduleIdStatus() {
        bitField0_ = (bitField0_ & ~0x00000001);
        scheduleIdStatus_ = 0;
        onChanged();
        return this;
      }

      private int useCaseId_ = 0;
      /**
       * <code>.proto.ChargingScheduleRequested.ChargingScheduleUseCaseId use_case_id = 2;</code>
       * @return The enum numeric value on the wire for useCaseId.
       */
      @java.lang.Override public int getUseCaseIdValue() {
        return useCaseId_;
      }
      /**
       * <code>.proto.ChargingScheduleRequested.ChargingScheduleUseCaseId use_case_id = 2;</code>
       * @param value The enum numeric value on the wire for useCaseId to set.
       * @return This builder for chaining.
       */
      public Builder setUseCaseIdValue(int value) {
        useCaseId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleRequested.ChargingScheduleUseCaseId use_case_id = 2;</code>
       * @return The useCaseId.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ChargingScheduleUseCaseId getUseCaseId() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ChargingScheduleUseCaseId result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ChargingScheduleUseCaseId.forNumber(useCaseId_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ChargingScheduleUseCaseId.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.ChargingScheduleRequested.ChargingScheduleUseCaseId use_case_id = 2;</code>
       * @param value The useCaseId to set.
       * @return This builder for chaining.
       */
      public Builder setUseCaseId(com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested.ChargingScheduleUseCaseId value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000002;
        useCaseId_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingScheduleRequested.ChargingScheduleUseCaseId use_case_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearUseCaseId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        useCaseId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.ChargingScheduleRequested)
    }

    // @@protoc_insertion_point(class_scope:proto.ChargingScheduleRequested)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChargingScheduleRequested>
        PARSER = new com.google.protobuf.AbstractParser<ChargingScheduleRequested>() {
      @java.lang.Override
      public ChargingScheduleRequested parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChargingScheduleRequested> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChargingScheduleRequested> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingScheduleRequested getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargingTimerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ChargingTimer)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry> 
        getEntriesList();
    /**
     * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry getEntries(int index);
    /**
     * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
     */
    int getEntriesCount();
    /**
     * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
     */
    java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntryOrBuilder> 
        getEntriesOrBuilderList();
    /**
     * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntryOrBuilder getEntriesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code proto.ChargingTimer}
   */
  public static final class ChargingTimer extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.ChargingTimer)
      ChargingTimerOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargingTimer");
    }
    // Use ChargingTimer.newBuilder() to construct.
    private ChargingTimer(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ChargingTimer() {
      entries_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingTimer_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingTimer_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.Builder.class);
    }

    public static final int ENTRIES_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry> entries_;
    /**
     * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry> getEntriesList() {
      return entries_;
    }
    /**
     * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntryOrBuilder> 
        getEntriesOrBuilderList() {
      return entries_;
    }
    /**
     * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
     */
    @java.lang.Override
    public int getEntriesCount() {
      return entries_.size();
    }
    /**
     * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry getEntries(int index) {
      return entries_.get(index);
    }
    /**
     * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntryOrBuilder getEntriesOrBuilder(
        int index) {
      return entries_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < entries_.size(); i++) {
        output.writeMessage(1, entries_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < entries_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, entries_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer) obj;

      if (!getEntriesList()
          .equals(other.getEntriesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getEntriesCount() > 0) {
        hash = (37 * hash) + ENTRIES_FIELD_NUMBER;
        hash = (53 * hash) + getEntriesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.ChargingTimer}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ChargingTimer)
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingTimer_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingTimer_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
        } else {
          entries_ = null;
          entriesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingTimer_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer build() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer result) {
        if (entriesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            entries_ = java.util.Collections.unmodifiableList(entries_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.entries_ = entries_;
        } else {
          result.entries_ = entriesBuilder_.build();
        }
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer.getDefaultInstance()) return this;
        if (entriesBuilder_ == null) {
          if (!other.entries_.isEmpty()) {
            if (entries_.isEmpty()) {
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureEntriesIsMutable();
              entries_.addAll(other.entries_);
            }
            onChanged();
          }
        } else {
          if (!other.entries_.isEmpty()) {
            if (entriesBuilder_.isEmpty()) {
              entriesBuilder_.dispose();
              entriesBuilder_ = null;
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000001);
              entriesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetEntriesFieldBuilder() : null;
            } else {
              entriesBuilder_.addAllMessages(other.entries_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry m =
                    input.readMessage(
                        com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.parser(),
                        extensionRegistry);
                if (entriesBuilder_ == null) {
                  ensureEntriesIsMutable();
                  entries_.add(m);
                } else {
                  entriesBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry> entries_ =
        java.util.Collections.emptyList();
      private void ensureEntriesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          entries_ = new java.util.ArrayList<com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry>(entries_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntryOrBuilder> entriesBuilder_;

      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry> getEntriesList() {
        if (entriesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(entries_);
        } else {
          return entriesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public int getEntriesCount() {
        if (entriesBuilder_ == null) {
          return entries_.size();
        } else {
          return entriesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry getEntries(int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);
        } else {
          return entriesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public Builder setEntries(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.set(index, value);
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public Builder setEntries(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.set(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public Builder addEntries(com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public Builder addEntries(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(index, value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public Builder addEntries(
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public Builder addEntries(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public Builder addAllEntries(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry> values) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, entries_);
          onChanged();
        } else {
          entriesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public Builder clearEntries() {
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          entriesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public Builder removeEntries(int index) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.remove(index);
          onChanged();
        } else {
          entriesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.Builder getEntriesBuilder(
          int index) {
        return internalGetEntriesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntryOrBuilder getEntriesOrBuilder(
          int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);  } else {
          return entriesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntryOrBuilder> 
           getEntriesOrBuilderList() {
        if (entriesBuilder_ != null) {
          return entriesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(entries_);
        }
      }
      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.Builder addEntriesBuilder() {
        return internalGetEntriesFieldBuilder().addBuilder(
            com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.Builder addEntriesBuilder(
          int index) {
        return internalGetEntriesFieldBuilder().addBuilder(
            index, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.ChargingTimerEntry entries = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.Builder> 
           getEntriesBuilderList() {
        return internalGetEntriesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntryOrBuilder> 
          internalGetEntriesFieldBuilder() {
        if (entriesBuilder_ == null) {
          entriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntryOrBuilder>(
                  entries_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          entries_ = null;
        }
        return entriesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:proto.ChargingTimer)
    }

    // @@protoc_insertion_point(class_scope:proto.ChargingTimer)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChargingTimer>
        PARSER = new com.google.protobuf.AbstractParser<ChargingTimer>() {
      @java.lang.Override
      public ChargingTimer parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChargingTimer> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChargingTimer> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimer getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargingTimerEntryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ChargingTimerEntry)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int64 timerId = 1;</code>
     * @return The timerId.
     */
    long getTimerId();

    /**
     * <code>.proto.ChargingTimerEntry.ChargingTimerAction action = 2;</code>
     * @return The enum numeric value on the wire for action.
     */
    int getActionValue();
    /**
     * <code>.proto.ChargingTimerEntry.ChargingTimerAction action = 2;</code>
     * @return The action.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.ChargingTimerAction getAction();

    /**
     * <code>int32 start_time_hour = 3;</code>
     * @return The startTimeHour.
     */
    int getStartTimeHour();

    /**
     * <code>int32 start_time_min = 4;</code>
     * @return The startTimeMin.
     */
    int getStartTimeMin();

    /**
     * <code>int32 end_time_hour = 5;</code>
     * @return The endTimeHour.
     */
    int getEndTimeHour();

    /**
     * <code>int32 end_time_min = 6;</code>
     * @return The endTimeMin.
     */
    int getEndTimeMin();

    /**
     * <code>repeated .proto.TimeProfileDay day = 7;</code>
     * @return A list containing the day.
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay> getDayList();
    /**
     * <code>repeated .proto.TimeProfileDay day = 7;</code>
     * @return The count of day.
     */
    int getDayCount();
    /**
     * <code>repeated .proto.TimeProfileDay day = 7;</code>
     * @param index The index of the element to return.
     * @return The day at the given index.
     */
    com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay getDay(int index);
    /**
     * <code>repeated .proto.TimeProfileDay day = 7;</code>
     * @return A list containing the enum numeric values on the wire for day.
     */
    java.util.List<java.lang.Integer>
    getDayValueList();
    /**
     * <code>repeated .proto.TimeProfileDay day = 7;</code>
     * @param index The index of the value to return.
     * @return The enum numeric value on the wire of day at the given index.
     */
    int getDayValue(int index);
  }
  /**
   * Protobuf type {@code proto.ChargingTimerEntry}
   */
  public static final class ChargingTimerEntry extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.ChargingTimerEntry)
      ChargingTimerEntryOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargingTimerEntry");
    }
    // Use ChargingTimerEntry.newBuilder() to construct.
    private ChargingTimerEntry(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ChargingTimerEntry() {
      action_ = 0;
      day_ = emptyIntList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingTimerEntry_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingTimerEntry_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.Builder.class);
    }

    /**
     * Protobuf enum {@code proto.ChargingTimerEntry.ChargingTimerAction}
     */
    public enum ChargingTimerAction
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>CHARGING_TIMER_ACTION_UNKNOWN = 0;</code>
       */
      CHARGING_TIMER_ACTION_UNKNOWN(0),
      /**
       * <code>CHARGING_TIMER_ACTION_DEACTIVATED = 1;</code>
       */
      CHARGING_TIMER_ACTION_DEACTIVATED(1),
      /**
       * <code>CHARGING_TIMER_ACTION_ACTIVE = 2;</code>
       */
      CHARGING_TIMER_ACTION_ACTIVE(2),
      /**
       * <code>CHARGING_TIMER_ACTION_DELETED = 3;</code>
       */
      CHARGING_TIMER_ACTION_DELETED(3),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "ChargingTimerAction");
      }
      /**
       * <code>CHARGING_TIMER_ACTION_UNKNOWN = 0;</code>
       */
      public static final int CHARGING_TIMER_ACTION_UNKNOWN_VALUE = 0;
      /**
       * <code>CHARGING_TIMER_ACTION_DEACTIVATED = 1;</code>
       */
      public static final int CHARGING_TIMER_ACTION_DEACTIVATED_VALUE = 1;
      /**
       * <code>CHARGING_TIMER_ACTION_ACTIVE = 2;</code>
       */
      public static final int CHARGING_TIMER_ACTION_ACTIVE_VALUE = 2;
      /**
       * <code>CHARGING_TIMER_ACTION_DELETED = 3;</code>
       */
      public static final int CHARGING_TIMER_ACTION_DELETED_VALUE = 3;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ChargingTimerAction valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ChargingTimerAction forNumber(int value) {
        switch (value) {
          case 0: return CHARGING_TIMER_ACTION_UNKNOWN;
          case 1: return CHARGING_TIMER_ACTION_DEACTIVATED;
          case 2: return CHARGING_TIMER_ACTION_ACTIVE;
          case 3: return CHARGING_TIMER_ACTION_DELETED;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ChargingTimerAction>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ChargingTimerAction> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ChargingTimerAction>() {
              public ChargingTimerAction findValueByNumber(int number) {
                return ChargingTimerAction.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.getDescriptor().getEnumTypes().get(0);
      }

      private static final ChargingTimerAction[] VALUES = values();

      public static ChargingTimerAction valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ChargingTimerAction(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.ChargingTimerEntry.ChargingTimerAction)
    }

    public static final int TIMERID_FIELD_NUMBER = 1;
    private long timerId_ = 0L;
    /**
     * <code>int64 timerId = 1;</code>
     * @return The timerId.
     */
    @java.lang.Override
    public long getTimerId() {
      return timerId_;
    }

    public static final int ACTION_FIELD_NUMBER = 2;
    private int action_ = 0;
    /**
     * <code>.proto.ChargingTimerEntry.ChargingTimerAction action = 2;</code>
     * @return The enum numeric value on the wire for action.
     */
    @java.lang.Override public int getActionValue() {
      return action_;
    }
    /**
     * <code>.proto.ChargingTimerEntry.ChargingTimerAction action = 2;</code>
     * @return The action.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.ChargingTimerAction getAction() {
      com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.ChargingTimerAction result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.ChargingTimerAction.forNumber(action_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.ChargingTimerAction.UNRECOGNIZED : result;
    }

    public static final int START_TIME_HOUR_FIELD_NUMBER = 3;
    private int startTimeHour_ = 0;
    /**
     * <code>int32 start_time_hour = 3;</code>
     * @return The startTimeHour.
     */
    @java.lang.Override
    public int getStartTimeHour() {
      return startTimeHour_;
    }

    public static final int START_TIME_MIN_FIELD_NUMBER = 4;
    private int startTimeMin_ = 0;
    /**
     * <code>int32 start_time_min = 4;</code>
     * @return The startTimeMin.
     */
    @java.lang.Override
    public int getStartTimeMin() {
      return startTimeMin_;
    }

    public static final int END_TIME_HOUR_FIELD_NUMBER = 5;
    private int endTimeHour_ = 0;
    /**
     * <code>int32 end_time_hour = 5;</code>
     * @return The endTimeHour.
     */
    @java.lang.Override
    public int getEndTimeHour() {
      return endTimeHour_;
    }

    public static final int END_TIME_MIN_FIELD_NUMBER = 6;
    private int endTimeMin_ = 0;
    /**
     * <code>int32 end_time_min = 6;</code>
     * @return The endTimeMin.
     */
    @java.lang.Override
    public int getEndTimeMin() {
      return endTimeMin_;
    }

    public static final int DAY_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList day_ =
        emptyIntList();
    private static final     com.google.protobuf.Internal.IntListAdapter.IntConverter<
        com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay> day_converter_ =
            new com.google.protobuf.Internal.IntListAdapter.IntConverter<
                com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay>() {
              public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay convert(int from) {
                com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay result = com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay.forNumber(from);
                return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay.UNRECOGNIZED : result;
              }
            };
    /**
     * <code>repeated .proto.TimeProfileDay day = 7;</code>
     * @return A list containing the day.
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay> getDayList() {
      return new com.google.protobuf.Internal.IntListAdapter<
          com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay>(day_, day_converter_);
    }
    /**
     * <code>repeated .proto.TimeProfileDay day = 7;</code>
     * @return The count of day.
     */
    @java.lang.Override
    public int getDayCount() {
      return day_.size();
    }
    /**
     * <code>repeated .proto.TimeProfileDay day = 7;</code>
     * @param index The index of the element to return.
     * @return The day at the given index.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay getDay(int index) {
      return day_converter_.convert(day_.getInt(index));
    }
    /**
     * <code>repeated .proto.TimeProfileDay day = 7;</code>
     * @return A list containing the enum numeric values on the wire for day.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
    getDayValueList() {
      return day_;
    }
    /**
     * <code>repeated .proto.TimeProfileDay day = 7;</code>
     * @param index The index of the value to return.
     * @return The enum numeric value on the wire of day at the given index.
     */
    @java.lang.Override
    public int getDayValue(int index) {
      return day_.getInt(index);
    }
    private int dayMemoizedSerializedSize;

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (timerId_ != 0L) {
        output.writeInt64(1, timerId_);
      }
      if (action_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.ChargingTimerAction.CHARGING_TIMER_ACTION_UNKNOWN.getNumber()) {
        output.writeEnum(2, action_);
      }
      if (startTimeHour_ != 0) {
        output.writeInt32(3, startTimeHour_);
      }
      if (startTimeMin_ != 0) {
        output.writeInt32(4, startTimeMin_);
      }
      if (endTimeHour_ != 0) {
        output.writeInt32(5, endTimeHour_);
      }
      if (endTimeMin_ != 0) {
        output.writeInt32(6, endTimeMin_);
      }
      if (getDayList().size() > 0) {
        output.writeUInt32NoTag(58);
        output.writeUInt32NoTag(dayMemoizedSerializedSize);
      }
      for (int i = 0; i < day_.size(); i++) {
        output.writeEnumNoTag(day_.getInt(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (timerId_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, timerId_);
      }
      if (action_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.ChargingTimerAction.CHARGING_TIMER_ACTION_UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, action_);
      }
      if (startTimeHour_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, startTimeHour_);
      }
      if (startTimeMin_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, startTimeMin_);
      }
      if (endTimeHour_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, endTimeHour_);
      }
      if (endTimeMin_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, endTimeMin_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < day_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeEnumSizeNoTag(day_.getInt(i));
        }
        size += dataSize;
        if (!getDayList().isEmpty()) {  size += 1;
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(dataSize);
        }dayMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry) obj;

      if (getTimerId()
          != other.getTimerId()) return false;
      if (action_ != other.action_) return false;
      if (getStartTimeHour()
          != other.getStartTimeHour()) return false;
      if (getStartTimeMin()
          != other.getStartTimeMin()) return false;
      if (getEndTimeHour()
          != other.getEndTimeHour()) return false;
      if (getEndTimeMin()
          != other.getEndTimeMin()) return false;
      if (!day_.equals(other.day_)) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + TIMERID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTimerId());
      hash = (37 * hash) + ACTION_FIELD_NUMBER;
      hash = (53 * hash) + action_;
      hash = (37 * hash) + START_TIME_HOUR_FIELD_NUMBER;
      hash = (53 * hash) + getStartTimeHour();
      hash = (37 * hash) + START_TIME_MIN_FIELD_NUMBER;
      hash = (53 * hash) + getStartTimeMin();
      hash = (37 * hash) + END_TIME_HOUR_FIELD_NUMBER;
      hash = (53 * hash) + getEndTimeHour();
      hash = (37 * hash) + END_TIME_MIN_FIELD_NUMBER;
      hash = (53 * hash) + getEndTimeMin();
      if (getDayCount() > 0) {
        hash = (37 * hash) + DAY_FIELD_NUMBER;
        hash = (53 * hash) + day_.hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.ChargingTimerEntry}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ChargingTimerEntry)
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingTimerEntry_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingTimerEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        timerId_ = 0L;
        action_ = 0;
        startTimeHour_ = 0;
        startTimeMin_ = 0;
        endTimeHour_ = 0;
        endTimeMin_ = 0;
        day_ = emptyIntList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingTimerEntry_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry build() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.timerId_ = timerId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.action_ = action_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.startTimeHour_ = startTimeHour_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.startTimeMin_ = startTimeMin_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.endTimeHour_ = endTimeHour_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.endTimeMin_ = endTimeMin_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          day_.makeImmutable();
          result.day_ = day_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.getDefaultInstance()) return this;
        if (other.getTimerId() != 0L) {
          setTimerId(other.getTimerId());
        }
        if (other.action_ != 0) {
          setActionValue(other.getActionValue());
        }
        if (other.getStartTimeHour() != 0) {
          setStartTimeHour(other.getStartTimeHour());
        }
        if (other.getStartTimeMin() != 0) {
          setStartTimeMin(other.getStartTimeMin());
        }
        if (other.getEndTimeHour() != 0) {
          setEndTimeHour(other.getEndTimeHour());
        }
        if (other.getEndTimeMin() != 0) {
          setEndTimeMin(other.getEndTimeMin());
        }
        if (!other.day_.isEmpty()) {
          if (day_.isEmpty()) {
            day_ = other.day_;
            day_.makeImmutable();
            bitField0_ |= 0x00000040;
          } else {
            ensureDayIsMutable();
            day_.addAll(other.day_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                timerId_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                action_ = input.readEnum();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                startTimeHour_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                startTimeMin_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                endTimeHour_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                endTimeMin_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 56: {
                int tmpRaw = input.readEnum();
                ensureDayIsMutable();
                day_.addInt(tmpRaw);
                break;
              } // case 56
              case 58: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureDayIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  day_.addInt(input.readEnum());
                }
                input.popLimit(limit);
                break;
              } // case 58
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long timerId_ ;
      /**
       * <code>int64 timerId = 1;</code>
       * @return The timerId.
       */
      @java.lang.Override
      public long getTimerId() {
        return timerId_;
      }
      /**
       * <code>int64 timerId = 1;</code>
       * @param value The timerId to set.
       * @return This builder for chaining.
       */
      public Builder setTimerId(long value) {

        timerId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int64 timerId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        timerId_ = 0L;
        onChanged();
        return this;
      }

      private int action_ = 0;
      /**
       * <code>.proto.ChargingTimerEntry.ChargingTimerAction action = 2;</code>
       * @return The enum numeric value on the wire for action.
       */
      @java.lang.Override public int getActionValue() {
        return action_;
      }
      /**
       * <code>.proto.ChargingTimerEntry.ChargingTimerAction action = 2;</code>
       * @param value The enum numeric value on the wire for action to set.
       * @return This builder for chaining.
       */
      public Builder setActionValue(int value) {
        action_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingTimerEntry.ChargingTimerAction action = 2;</code>
       * @return The action.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.ChargingTimerAction getAction() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.ChargingTimerAction result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.ChargingTimerAction.forNumber(action_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.ChargingTimerAction.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.ChargingTimerEntry.ChargingTimerAction action = 2;</code>
       * @param value The action to set.
       * @return This builder for chaining.
       */
      public Builder setAction(com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry.ChargingTimerAction value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000002;
        action_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingTimerEntry.ChargingTimerAction action = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAction() {
        bitField0_ = (bitField0_ & ~0x00000002);
        action_ = 0;
        onChanged();
        return this;
      }

      private int startTimeHour_ ;
      /**
       * <code>int32 start_time_hour = 3;</code>
       * @return The startTimeHour.
       */
      @java.lang.Override
      public int getStartTimeHour() {
        return startTimeHour_;
      }
      /**
       * <code>int32 start_time_hour = 3;</code>
       * @param value The startTimeHour to set.
       * @return This builder for chaining.
       */
      public Builder setStartTimeHour(int value) {

        startTimeHour_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 start_time_hour = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartTimeHour() {
        bitField0_ = (bitField0_ & ~0x00000004);
        startTimeHour_ = 0;
        onChanged();
        return this;
      }

      private int startTimeMin_ ;
      /**
       * <code>int32 start_time_min = 4;</code>
       * @return The startTimeMin.
       */
      @java.lang.Override
      public int getStartTimeMin() {
        return startTimeMin_;
      }
      /**
       * <code>int32 start_time_min = 4;</code>
       * @param value The startTimeMin to set.
       * @return This builder for chaining.
       */
      public Builder setStartTimeMin(int value) {

        startTimeMin_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>int32 start_time_min = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartTimeMin() {
        bitField0_ = (bitField0_ & ~0x00000008);
        startTimeMin_ = 0;
        onChanged();
        return this;
      }

      private int endTimeHour_ ;
      /**
       * <code>int32 end_time_hour = 5;</code>
       * @return The endTimeHour.
       */
      @java.lang.Override
      public int getEndTimeHour() {
        return endTimeHour_;
      }
      /**
       * <code>int32 end_time_hour = 5;</code>
       * @param value The endTimeHour to set.
       * @return This builder for chaining.
       */
      public Builder setEndTimeHour(int value) {

        endTimeHour_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>int32 end_time_hour = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndTimeHour() {
        bitField0_ = (bitField0_ & ~0x00000010);
        endTimeHour_ = 0;
        onChanged();
        return this;
      }

      private int endTimeMin_ ;
      /**
       * <code>int32 end_time_min = 6;</code>
       * @return The endTimeMin.
       */
      @java.lang.Override
      public int getEndTimeMin() {
        return endTimeMin_;
      }
      /**
       * <code>int32 end_time_min = 6;</code>
       * @param value The endTimeMin to set.
       * @return This builder for chaining.
       */
      public Builder setEndTimeMin(int value) {

        endTimeMin_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>int32 end_time_min = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndTimeMin() {
        bitField0_ = (bitField0_ & ~0x00000020);
        endTimeMin_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList day_ = emptyIntList();
      private void ensureDayIsMutable() {
        if (!day_.isModifiable()) {
          day_ = makeMutableCopy(day_);
        }
        bitField0_ |= 0x00000040;
      }
      /**
       * <code>repeated .proto.TimeProfileDay day = 7;</code>
       * @return A list containing the day.
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay> getDayList() {
        return new com.google.protobuf.Internal.IntListAdapter<
            com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay>(day_, day_converter_);
      }
      /**
       * <code>repeated .proto.TimeProfileDay day = 7;</code>
       * @return The count of day.
       */
      public int getDayCount() {
        return day_.size();
      }
      /**
       * <code>repeated .proto.TimeProfileDay day = 7;</code>
       * @param index The index of the element to return.
       * @return The day at the given index.
       */
      public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay getDay(int index) {
        return day_converter_.convert(day_.getInt(index));
      }
      /**
       * <code>repeated .proto.TimeProfileDay day = 7;</code>
       * @param index The index to set the value at.
       * @param value The day to set.
       * @return This builder for chaining.
       */
      public Builder setDay(
          int index, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay value) {
        if (value == null) { throw new NullPointerException(); }
        ensureDayIsMutable();
        day_.setInt(index, value.getNumber());
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.TimeProfileDay day = 7;</code>
       * @param value The day to add.
       * @return This builder for chaining.
       */
      public Builder addDay(com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay value) {
        if (value == null) { throw new NullPointerException(); }
        ensureDayIsMutable();
        day_.addInt(value.getNumber());
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.TimeProfileDay day = 7;</code>
       * @param values The day to add.
       * @return This builder for chaining.
       */
      public Builder addAllDay(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay> values) {
        ensureDayIsMutable();
        for (com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay value : values) {
          day_.addInt(value.getNumber());
        }
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.TimeProfileDay day = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearDay() {
        day_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.TimeProfileDay day = 7;</code>
       * @return A list containing the enum numeric values on the wire for day.
       */
      public java.util.List<java.lang.Integer>
      getDayValueList() {
        day_.makeImmutable();
        return day_;
      }
      /**
       * <code>repeated .proto.TimeProfileDay day = 7;</code>
       * @param index The index of the value to return.
       * @return The enum numeric value on the wire of day at the given index.
       */
      public int getDayValue(int index) {
        return day_.getInt(index);
      }
      /**
       * <code>repeated .proto.TimeProfileDay day = 7;</code>
       * @param index The index to set the value at.
       * @param value The enum numeric value on the wire for day to set.
       * @return This builder for chaining.
       */
      public Builder setDayValue(
          int index, int value) {
        ensureDayIsMutable();
        day_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.TimeProfileDay day = 7;</code>
       * @param value The enum numeric value on the wire for day to add.
       * @return This builder for chaining.
       */
      public Builder addDayValue(int value) {
        ensureDayIsMutable();
        day_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.TimeProfileDay day = 7;</code>
       * @param values The enum numeric values on the wire for day to add.
       * @return This builder for chaining.
       */
      public Builder addAllDayValue(
          java.lang.Iterable<java.lang.Integer> values) {
        ensureDayIsMutable();
        for (int value : values) {
          day_.addInt(value);
        }
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.ChargingTimerEntry)
    }

    // @@protoc_insertion_point(class_scope:proto.ChargingTimerEntry)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChargingTimerEntry>
        PARSER = new com.google.protobuf.AbstractParser<ChargingTimerEntry>() {
      @java.lang.Override
      public ChargingTimerEntry parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChargingTimerEntry> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChargingTimerEntry> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingTimerEntry getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargingPredictionSocOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ChargingPredictionSoc)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.google.protobuf.Timestamp predicted_end_time = 1;</code>
     * @return Whether the predictedEndTime field is set.
     */
    boolean hasPredictedEndTime();
    /**
     * <code>.google.protobuf.Timestamp predicted_end_time = 1;</code>
     * @return The predictedEndTime.
     */
    com.google.protobuf.Timestamp getPredictedEndTime();
    /**
     * <code>.google.protobuf.Timestamp predicted_end_time = 1;</code>
     */
    com.google.protobuf.TimestampOrBuilder getPredictedEndTimeOrBuilder();

    /**
     * <code>int64 predicted_electrical_energy_range = 2;</code>
     * @return The predictedElectricalEnergyRange.
     */
    long getPredictedElectricalEnergyRange();
  }
  /**
   * Protobuf type {@code proto.ChargingPredictionSoc}
   */
  public static final class ChargingPredictionSoc extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.ChargingPredictionSoc)
      ChargingPredictionSocOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargingPredictionSoc");
    }
    // Use ChargingPredictionSoc.newBuilder() to construct.
    private ChargingPredictionSoc(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ChargingPredictionSoc() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPredictionSoc_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPredictionSoc_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.Builder.class);
    }

    private int bitField0_;
    public static final int PREDICTED_END_TIME_FIELD_NUMBER = 1;
    private com.google.protobuf.Timestamp predictedEndTime_;
    /**
     * <code>.google.protobuf.Timestamp predicted_end_time = 1;</code>
     * @return Whether the predictedEndTime field is set.
     */
    @java.lang.Override
    public boolean hasPredictedEndTime() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.google.protobuf.Timestamp predicted_end_time = 1;</code>
     * @return The predictedEndTime.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getPredictedEndTime() {
      return predictedEndTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : predictedEndTime_;
    }
    /**
     * <code>.google.protobuf.Timestamp predicted_end_time = 1;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getPredictedEndTimeOrBuilder() {
      return predictedEndTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : predictedEndTime_;
    }

    public static final int PREDICTED_ELECTRICAL_ENERGY_RANGE_FIELD_NUMBER = 2;
    private long predictedElectricalEnergyRange_ = 0L;
    /**
     * <code>int64 predicted_electrical_energy_range = 2;</code>
     * @return The predictedElectricalEnergyRange.
     */
    @java.lang.Override
    public long getPredictedElectricalEnergyRange() {
      return predictedElectricalEnergyRange_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getPredictedEndTime());
      }
      if (predictedElectricalEnergyRange_ != 0L) {
        output.writeInt64(2, predictedElectricalEnergyRange_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getPredictedEndTime());
      }
      if (predictedElectricalEnergyRange_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, predictedElectricalEnergyRange_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc) obj;

      if (hasPredictedEndTime() != other.hasPredictedEndTime()) return false;
      if (hasPredictedEndTime()) {
        if (!getPredictedEndTime()
            .equals(other.getPredictedEndTime())) return false;
      }
      if (getPredictedElectricalEnergyRange()
          != other.getPredictedElectricalEnergyRange()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPredictedEndTime()) {
        hash = (37 * hash) + PREDICTED_END_TIME_FIELD_NUMBER;
        hash = (53 * hash) + getPredictedEndTime().hashCode();
      }
      hash = (37 * hash) + PREDICTED_ELECTRICAL_ENERGY_RANGE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getPredictedElectricalEnergyRange());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.ChargingPredictionSoc}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ChargingPredictionSoc)
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSocOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPredictionSoc_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPredictionSoc_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetPredictedEndTimeFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        predictedEndTime_ = null;
        if (predictedEndTimeBuilder_ != null) {
          predictedEndTimeBuilder_.dispose();
          predictedEndTimeBuilder_ = null;
        }
        predictedElectricalEnergyRange_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPredictionSoc_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc build() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.predictedEndTime_ = predictedEndTimeBuilder_ == null
              ? predictedEndTime_
              : predictedEndTimeBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.predictedElectricalEnergyRange_ = predictedElectricalEnergyRange_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc.getDefaultInstance()) return this;
        if (other.hasPredictedEndTime()) {
          mergePredictedEndTime(other.getPredictedEndTime());
        }
        if (other.getPredictedElectricalEnergyRange() != 0L) {
          setPredictedElectricalEnergyRange(other.getPredictedElectricalEnergyRange());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    internalGetPredictedEndTimeFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                predictedElectricalEnergyRange_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.Timestamp predictedEndTime_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> predictedEndTimeBuilder_;
      /**
       * <code>.google.protobuf.Timestamp predicted_end_time = 1;</code>
       * @return Whether the predictedEndTime field is set.
       */
      public boolean hasPredictedEndTime() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>.google.protobuf.Timestamp predicted_end_time = 1;</code>
       * @return The predictedEndTime.
       */
      public com.google.protobuf.Timestamp getPredictedEndTime() {
        if (predictedEndTimeBuilder_ == null) {
          return predictedEndTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : predictedEndTime_;
        } else {
          return predictedEndTimeBuilder_.getMessage();
        }
      }
      /**
       * <code>.google.protobuf.Timestamp predicted_end_time = 1;</code>
       */
      public Builder setPredictedEndTime(com.google.protobuf.Timestamp value) {
        if (predictedEndTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          predictedEndTime_ = value;
        } else {
          predictedEndTimeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp predicted_end_time = 1;</code>
       */
      public Builder setPredictedEndTime(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (predictedEndTimeBuilder_ == null) {
          predictedEndTime_ = builderForValue.build();
        } else {
          predictedEndTimeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp predicted_end_time = 1;</code>
       */
      public Builder mergePredictedEndTime(com.google.protobuf.Timestamp value) {
        if (predictedEndTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            predictedEndTime_ != null &&
            predictedEndTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getPredictedEndTimeBuilder().mergeFrom(value);
          } else {
            predictedEndTime_ = value;
          }
        } else {
          predictedEndTimeBuilder_.mergeFrom(value);
        }
        if (predictedEndTime_ != null) {
          bitField0_ |= 0x00000001;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp predicted_end_time = 1;</code>
       */
      public Builder clearPredictedEndTime() {
        bitField0_ = (bitField0_ & ~0x00000001);
        predictedEndTime_ = null;
        if (predictedEndTimeBuilder_ != null) {
          predictedEndTimeBuilder_.dispose();
          predictedEndTimeBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp predicted_end_time = 1;</code>
       */
      public com.google.protobuf.Timestamp.Builder getPredictedEndTimeBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return internalGetPredictedEndTimeFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Timestamp predicted_end_time = 1;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getPredictedEndTimeOrBuilder() {
        if (predictedEndTimeBuilder_ != null) {
          return predictedEndTimeBuilder_.getMessageOrBuilder();
        } else {
          return predictedEndTime_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : predictedEndTime_;
        }
      }
      /**
       * <code>.google.protobuf.Timestamp predicted_end_time = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetPredictedEndTimeFieldBuilder() {
        if (predictedEndTimeBuilder_ == null) {
          predictedEndTimeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getPredictedEndTime(),
                  getParentForChildren(),
                  isClean());
          predictedEndTime_ = null;
        }
        return predictedEndTimeBuilder_;
      }

      private long predictedElectricalEnergyRange_ ;
      /**
       * <code>int64 predicted_electrical_energy_range = 2;</code>
       * @return The predictedElectricalEnergyRange.
       */
      @java.lang.Override
      public long getPredictedElectricalEnergyRange() {
        return predictedElectricalEnergyRange_;
      }
      /**
       * <code>int64 predicted_electrical_energy_range = 2;</code>
       * @param value The predictedElectricalEnergyRange to set.
       * @return This builder for chaining.
       */
      public Builder setPredictedElectricalEnergyRange(long value) {

        predictedElectricalEnergyRange_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int64 predicted_electrical_energy_range = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPredictedElectricalEnergyRange() {
        bitField0_ = (bitField0_ & ~0x00000002);
        predictedElectricalEnergyRange_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.ChargingPredictionSoc)
    }

    // @@protoc_insertion_point(class_scope:proto.ChargingPredictionSoc)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChargingPredictionSoc>
        PARSER = new com.google.protobuf.AbstractParser<ChargingPredictionSoc>() {
      @java.lang.Override
      public ChargingPredictionSoc parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChargingPredictionSoc> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChargingPredictionSoc> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionSoc getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargingPredictionDepartureTimeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ChargingPredictionDepartureTime)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 predicted_soc = 1;</code>
     * @return The predictedSoc.
     */
    int getPredictedSoc();

    /**
     * <code>int64 predicted_electrical_energy_range = 2;</code>
     * @return The predictedElectricalEnergyRange.
     */
    long getPredictedElectricalEnergyRange();
  }
  /**
   * Protobuf type {@code proto.ChargingPredictionDepartureTime}
   */
  public static final class ChargingPredictionDepartureTime extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.ChargingPredictionDepartureTime)
      ChargingPredictionDepartureTimeOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargingPredictionDepartureTime");
    }
    // Use ChargingPredictionDepartureTime.newBuilder() to construct.
    private ChargingPredictionDepartureTime(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ChargingPredictionDepartureTime() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPredictionDepartureTime_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPredictionDepartureTime_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.Builder.class);
    }

    public static final int PREDICTED_SOC_FIELD_NUMBER = 1;
    private int predictedSoc_ = 0;
    /**
     * <code>int32 predicted_soc = 1;</code>
     * @return The predictedSoc.
     */
    @java.lang.Override
    public int getPredictedSoc() {
      return predictedSoc_;
    }

    public static final int PREDICTED_ELECTRICAL_ENERGY_RANGE_FIELD_NUMBER = 2;
    private long predictedElectricalEnergyRange_ = 0L;
    /**
     * <code>int64 predicted_electrical_energy_range = 2;</code>
     * @return The predictedElectricalEnergyRange.
     */
    @java.lang.Override
    public long getPredictedElectricalEnergyRange() {
      return predictedElectricalEnergyRange_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (predictedSoc_ != 0) {
        output.writeInt32(1, predictedSoc_);
      }
      if (predictedElectricalEnergyRange_ != 0L) {
        output.writeInt64(2, predictedElectricalEnergyRange_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (predictedSoc_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, predictedSoc_);
      }
      if (predictedElectricalEnergyRange_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, predictedElectricalEnergyRange_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime) obj;

      if (getPredictedSoc()
          != other.getPredictedSoc()) return false;
      if (getPredictedElectricalEnergyRange()
          != other.getPredictedElectricalEnergyRange()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + PREDICTED_SOC_FIELD_NUMBER;
      hash = (53 * hash) + getPredictedSoc();
      hash = (37 * hash) + PREDICTED_ELECTRICAL_ENERGY_RANGE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getPredictedElectricalEnergyRange());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.ChargingPredictionDepartureTime}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ChargingPredictionDepartureTime)
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTimeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPredictionDepartureTime_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPredictionDepartureTime_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        predictedSoc_ = 0;
        predictedElectricalEnergyRange_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPredictionDepartureTime_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime build() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.predictedSoc_ = predictedSoc_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.predictedElectricalEnergyRange_ = predictedElectricalEnergyRange_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime.getDefaultInstance()) return this;
        if (other.getPredictedSoc() != 0) {
          setPredictedSoc(other.getPredictedSoc());
        }
        if (other.getPredictedElectricalEnergyRange() != 0L) {
          setPredictedElectricalEnergyRange(other.getPredictedElectricalEnergyRange());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                predictedSoc_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                predictedElectricalEnergyRange_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int predictedSoc_ ;
      /**
       * <code>int32 predicted_soc = 1;</code>
       * @return The predictedSoc.
       */
      @java.lang.Override
      public int getPredictedSoc() {
        return predictedSoc_;
      }
      /**
       * <code>int32 predicted_soc = 1;</code>
       * @param value The predictedSoc to set.
       * @return This builder for chaining.
       */
      public Builder setPredictedSoc(int value) {

        predictedSoc_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 predicted_soc = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearPredictedSoc() {
        bitField0_ = (bitField0_ & ~0x00000001);
        predictedSoc_ = 0;
        onChanged();
        return this;
      }

      private long predictedElectricalEnergyRange_ ;
      /**
       * <code>int64 predicted_electrical_energy_range = 2;</code>
       * @return The predictedElectricalEnergyRange.
       */
      @java.lang.Override
      public long getPredictedElectricalEnergyRange() {
        return predictedElectricalEnergyRange_;
      }
      /**
       * <code>int64 predicted_electrical_energy_range = 2;</code>
       * @param value The predictedElectricalEnergyRange to set.
       * @return This builder for chaining.
       */
      public Builder setPredictedElectricalEnergyRange(long value) {

        predictedElectricalEnergyRange_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int64 predicted_electrical_energy_range = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPredictedElectricalEnergyRange() {
        bitField0_ = (bitField0_ & ~0x00000002);
        predictedElectricalEnergyRange_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.ChargingPredictionDepartureTime)
    }

    // @@protoc_insertion_point(class_scope:proto.ChargingPredictionDepartureTime)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChargingPredictionDepartureTime>
        PARSER = new com.google.protobuf.AbstractParser<ChargingPredictionDepartureTime>() {
      @java.lang.Override
      public ChargingPredictionDepartureTime parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChargingPredictionDepartureTime> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChargingPredictionDepartureTime> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPredictionDepartureTime getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargeInletsEntryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ChargeInletsEntry)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int64 id = 1;</code>
     * @return The id.
     */
    long getId();

    /**
     * <code>.proto.ChargeInletsEntry.ChargeInletsCouplerState coupler_state = 2;</code>
     * @return The enum numeric value on the wire for couplerState.
     */
    int getCouplerStateValue();
    /**
     * <code>.proto.ChargeInletsEntry.ChargeInletsCouplerState coupler_state = 2;</code>
     * @return The couplerState.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsCouplerState getCouplerState();

    /**
     * <code>.proto.ChargeInletsEntry.ChargeInletsLockState lock_state = 3;</code>
     * @return The enum numeric value on the wire for lockState.
     */
    int getLockStateValue();
    /**
     * <code>.proto.ChargeInletsEntry.ChargeInletsLockState lock_state = 3;</code>
     * @return The lockState.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsLockState getLockState();
  }
  /**
   * Protobuf type {@code proto.ChargeInletsEntry}
   */
  public static final class ChargeInletsEntry extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.ChargeInletsEntry)
      ChargeInletsEntryOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargeInletsEntry");
    }
    // Use ChargeInletsEntry.newBuilder() to construct.
    private ChargeInletsEntry(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ChargeInletsEntry() {
      couplerState_ = 0;
      lockState_ = 0;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeInletsEntry_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeInletsEntry_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.Builder.class);
    }

    /**
     * Protobuf enum {@code proto.ChargeInletsEntry.ChargeInletsCouplerState}
     */
    public enum ChargeInletsCouplerState
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>CHARGE_INLETS_COUPLER_STATE_UNKNOWN = 0;</code>
       */
      CHARGE_INLETS_COUPLER_STATE_UNKNOWN(0),
      /**
       * <code>CHARGE_INLETS_COUPLER_STATE_PLUGGED = 1;</code>
       */
      CHARGE_INLETS_COUPLER_STATE_PLUGGED(1),
      /**
       * <code>CHARGE_INLETS_COUPLER_STATE_VEHICLE_PLUGGED = 2;</code>
       */
      CHARGE_INLETS_COUPLER_STATE_VEHICLE_PLUGGED(2),
      /**
       * <code>CHARGE_INLETS_COUPLER_STATE_VEHICLE_NOT_PLUGGED = 3;</code>
       */
      CHARGE_INLETS_COUPLER_STATE_VEHICLE_NOT_PLUGGED(3),
      /**
       * <code>CHARGE_INLETS_COUPLER_STATE_DEFECT = 4;</code>
       */
      CHARGE_INLETS_COUPLER_STATE_DEFECT(4),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "ChargeInletsCouplerState");
      }
      /**
       * <code>CHARGE_INLETS_COUPLER_STATE_UNKNOWN = 0;</code>
       */
      public static final int CHARGE_INLETS_COUPLER_STATE_UNKNOWN_VALUE = 0;
      /**
       * <code>CHARGE_INLETS_COUPLER_STATE_PLUGGED = 1;</code>
       */
      public static final int CHARGE_INLETS_COUPLER_STATE_PLUGGED_VALUE = 1;
      /**
       * <code>CHARGE_INLETS_COUPLER_STATE_VEHICLE_PLUGGED = 2;</code>
       */
      public static final int CHARGE_INLETS_COUPLER_STATE_VEHICLE_PLUGGED_VALUE = 2;
      /**
       * <code>CHARGE_INLETS_COUPLER_STATE_VEHICLE_NOT_PLUGGED = 3;</code>
       */
      public static final int CHARGE_INLETS_COUPLER_STATE_VEHICLE_NOT_PLUGGED_VALUE = 3;
      /**
       * <code>CHARGE_INLETS_COUPLER_STATE_DEFECT = 4;</code>
       */
      public static final int CHARGE_INLETS_COUPLER_STATE_DEFECT_VALUE = 4;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ChargeInletsCouplerState valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ChargeInletsCouplerState forNumber(int value) {
        switch (value) {
          case 0: return CHARGE_INLETS_COUPLER_STATE_UNKNOWN;
          case 1: return CHARGE_INLETS_COUPLER_STATE_PLUGGED;
          case 2: return CHARGE_INLETS_COUPLER_STATE_VEHICLE_PLUGGED;
          case 3: return CHARGE_INLETS_COUPLER_STATE_VEHICLE_NOT_PLUGGED;
          case 4: return CHARGE_INLETS_COUPLER_STATE_DEFECT;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ChargeInletsCouplerState>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ChargeInletsCouplerState> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ChargeInletsCouplerState>() {
              public ChargeInletsCouplerState findValueByNumber(int number) {
                return ChargeInletsCouplerState.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.getDescriptor().getEnumTypes().get(0);
      }

      private static final ChargeInletsCouplerState[] VALUES = values();

      public static ChargeInletsCouplerState valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ChargeInletsCouplerState(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.ChargeInletsEntry.ChargeInletsCouplerState)
    }

    /**
     * Protobuf enum {@code proto.ChargeInletsEntry.ChargeInletsLockState}
     */
    public enum ChargeInletsLockState
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>CHARGE_INLETS_LOCK_STATE_UNKNOWN = 0;</code>
       */
      CHARGE_INLETS_LOCK_STATE_UNKNOWN(0),
      /**
       * <code>CHARGE_INLETS_LOCK_STATE_UNLOCKED = 1;</code>
       */
      CHARGE_INLETS_LOCK_STATE_UNLOCKED(1),
      /**
       * <code>CHARGE_INLETS_LOCK_STATE_LOCKED = 2;</code>
       */
      CHARGE_INLETS_LOCK_STATE_LOCKED(2),
      /**
       * <code>CHARGE_INLETS_LOCK_STATE_LOCK_STATE_NOT_CLEAR = 3;</code>
       */
      CHARGE_INLETS_LOCK_STATE_LOCK_STATE_NOT_CLEAR(3),
      /**
       * <code>CHARGE_INLETS_LOCK_STATE_NOT_AVAILABLE = 4;</code>
       */
      CHARGE_INLETS_LOCK_STATE_NOT_AVAILABLE(4),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "ChargeInletsLockState");
      }
      /**
       * <code>CHARGE_INLETS_LOCK_STATE_UNKNOWN = 0;</code>
       */
      public static final int CHARGE_INLETS_LOCK_STATE_UNKNOWN_VALUE = 0;
      /**
       * <code>CHARGE_INLETS_LOCK_STATE_UNLOCKED = 1;</code>
       */
      public static final int CHARGE_INLETS_LOCK_STATE_UNLOCKED_VALUE = 1;
      /**
       * <code>CHARGE_INLETS_LOCK_STATE_LOCKED = 2;</code>
       */
      public static final int CHARGE_INLETS_LOCK_STATE_LOCKED_VALUE = 2;
      /**
       * <code>CHARGE_INLETS_LOCK_STATE_LOCK_STATE_NOT_CLEAR = 3;</code>
       */
      public static final int CHARGE_INLETS_LOCK_STATE_LOCK_STATE_NOT_CLEAR_VALUE = 3;
      /**
       * <code>CHARGE_INLETS_LOCK_STATE_NOT_AVAILABLE = 4;</code>
       */
      public static final int CHARGE_INLETS_LOCK_STATE_NOT_AVAILABLE_VALUE = 4;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ChargeInletsLockState valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ChargeInletsLockState forNumber(int value) {
        switch (value) {
          case 0: return CHARGE_INLETS_LOCK_STATE_UNKNOWN;
          case 1: return CHARGE_INLETS_LOCK_STATE_UNLOCKED;
          case 2: return CHARGE_INLETS_LOCK_STATE_LOCKED;
          case 3: return CHARGE_INLETS_LOCK_STATE_LOCK_STATE_NOT_CLEAR;
          case 4: return CHARGE_INLETS_LOCK_STATE_NOT_AVAILABLE;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ChargeInletsLockState>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ChargeInletsLockState> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ChargeInletsLockState>() {
              public ChargeInletsLockState findValueByNumber(int number) {
                return ChargeInletsLockState.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.getDescriptor().getEnumTypes().get(1);
      }

      private static final ChargeInletsLockState[] VALUES = values();

      public static ChargeInletsLockState valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ChargeInletsLockState(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.ChargeInletsEntry.ChargeInletsLockState)
    }

    public static final int ID_FIELD_NUMBER = 1;
    private long id_ = 0L;
    /**
     * <code>int64 id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public long getId() {
      return id_;
    }

    public static final int COUPLER_STATE_FIELD_NUMBER = 2;
    private int couplerState_ = 0;
    /**
     * <code>.proto.ChargeInletsEntry.ChargeInletsCouplerState coupler_state = 2;</code>
     * @return The enum numeric value on the wire for couplerState.
     */
    @java.lang.Override public int getCouplerStateValue() {
      return couplerState_;
    }
    /**
     * <code>.proto.ChargeInletsEntry.ChargeInletsCouplerState coupler_state = 2;</code>
     * @return The couplerState.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsCouplerState getCouplerState() {
      com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsCouplerState result = com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsCouplerState.forNumber(couplerState_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsCouplerState.UNRECOGNIZED : result;
    }

    public static final int LOCK_STATE_FIELD_NUMBER = 3;
    private int lockState_ = 0;
    /**
     * <code>.proto.ChargeInletsEntry.ChargeInletsLockState lock_state = 3;</code>
     * @return The enum numeric value on the wire for lockState.
     */
    @java.lang.Override public int getLockStateValue() {
      return lockState_;
    }
    /**
     * <code>.proto.ChargeInletsEntry.ChargeInletsLockState lock_state = 3;</code>
     * @return The lockState.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsLockState getLockState() {
      com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsLockState result = com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsLockState.forNumber(lockState_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsLockState.UNRECOGNIZED : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (id_ != 0L) {
        output.writeInt64(1, id_);
      }
      if (couplerState_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsCouplerState.CHARGE_INLETS_COUPLER_STATE_UNKNOWN.getNumber()) {
        output.writeEnum(2, couplerState_);
      }
      if (lockState_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsLockState.CHARGE_INLETS_LOCK_STATE_UNKNOWN.getNumber()) {
        output.writeEnum(3, lockState_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (id_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, id_);
      }
      if (couplerState_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsCouplerState.CHARGE_INLETS_COUPLER_STATE_UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, couplerState_);
      }
      if (lockState_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsLockState.CHARGE_INLETS_LOCK_STATE_UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, lockState_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry) obj;

      if (getId()
          != other.getId()) return false;
      if (couplerState_ != other.couplerState_) return false;
      if (lockState_ != other.lockState_) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getId());
      hash = (37 * hash) + COUPLER_STATE_FIELD_NUMBER;
      hash = (53 * hash) + couplerState_;
      hash = (37 * hash) + LOCK_STATE_FIELD_NUMBER;
      hash = (53 * hash) + lockState_;
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.ChargeInletsEntry}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ChargeInletsEntry)
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeInletsEntry_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeInletsEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        id_ = 0L;
        couplerState_ = 0;
        lockState_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeInletsEntry_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry build() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.couplerState_ = couplerState_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.lockState_ = lockState_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.getDefaultInstance()) return this;
        if (other.getId() != 0L) {
          setId(other.getId());
        }
        if (other.couplerState_ != 0) {
          setCouplerStateValue(other.getCouplerStateValue());
        }
        if (other.lockState_ != 0) {
          setLockStateValue(other.getLockStateValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                id_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                couplerState_ = input.readEnum();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                lockState_ = input.readEnum();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long id_ ;
      /**
       * <code>int64 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public long getId() {
        return id_;
      }
      /**
       * <code>int64 id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(long value) {

        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int64 id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0L;
        onChanged();
        return this;
      }

      private int couplerState_ = 0;
      /**
       * <code>.proto.ChargeInletsEntry.ChargeInletsCouplerState coupler_state = 2;</code>
       * @return The enum numeric value on the wire for couplerState.
       */
      @java.lang.Override public int getCouplerStateValue() {
        return couplerState_;
      }
      /**
       * <code>.proto.ChargeInletsEntry.ChargeInletsCouplerState coupler_state = 2;</code>
       * @param value The enum numeric value on the wire for couplerState to set.
       * @return This builder for chaining.
       */
      public Builder setCouplerStateValue(int value) {
        couplerState_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargeInletsEntry.ChargeInletsCouplerState coupler_state = 2;</code>
       * @return The couplerState.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsCouplerState getCouplerState() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsCouplerState result = com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsCouplerState.forNumber(couplerState_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsCouplerState.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.ChargeInletsEntry.ChargeInletsCouplerState coupler_state = 2;</code>
       * @param value The couplerState to set.
       * @return This builder for chaining.
       */
      public Builder setCouplerState(com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsCouplerState value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000002;
        couplerState_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargeInletsEntry.ChargeInletsCouplerState coupler_state = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCouplerState() {
        bitField0_ = (bitField0_ & ~0x00000002);
        couplerState_ = 0;
        onChanged();
        return this;
      }

      private int lockState_ = 0;
      /**
       * <code>.proto.ChargeInletsEntry.ChargeInletsLockState lock_state = 3;</code>
       * @return The enum numeric value on the wire for lockState.
       */
      @java.lang.Override public int getLockStateValue() {
        return lockState_;
      }
      /**
       * <code>.proto.ChargeInletsEntry.ChargeInletsLockState lock_state = 3;</code>
       * @param value The enum numeric value on the wire for lockState to set.
       * @return This builder for chaining.
       */
      public Builder setLockStateValue(int value) {
        lockState_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargeInletsEntry.ChargeInletsLockState lock_state = 3;</code>
       * @return The lockState.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsLockState getLockState() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsLockState result = com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsLockState.forNumber(lockState_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsLockState.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.ChargeInletsEntry.ChargeInletsLockState lock_state = 3;</code>
       * @param value The lockState to set.
       * @return This builder for chaining.
       */
      public Builder setLockState(com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.ChargeInletsLockState value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000004;
        lockState_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargeInletsEntry.ChargeInletsLockState lock_state = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearLockState() {
        bitField0_ = (bitField0_ & ~0x00000004);
        lockState_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.ChargeInletsEntry)
    }

    // @@protoc_insertion_point(class_scope:proto.ChargeInletsEntry)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChargeInletsEntry>
        PARSER = new com.google.protobuf.AbstractParser<ChargeInletsEntry>() {
      @java.lang.Override
      public ChargeInletsEntry parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChargeInletsEntry> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChargeInletsEntry> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargeInletsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ChargeInlets)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry> 
        getEntriesList();
    /**
     * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry getEntries(int index);
    /**
     * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
     */
    int getEntriesCount();
    /**
     * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
     */
    java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntryOrBuilder> 
        getEntriesOrBuilderList();
    /**
     * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntryOrBuilder getEntriesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code proto.ChargeInlets}
   */
  public static final class ChargeInlets extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.ChargeInlets)
      ChargeInletsOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargeInlets");
    }
    // Use ChargeInlets.newBuilder() to construct.
    private ChargeInlets(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ChargeInlets() {
      entries_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeInlets_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeInlets_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.Builder.class);
    }

    public static final int ENTRIES_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry> entries_;
    /**
     * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry> getEntriesList() {
      return entries_;
    }
    /**
     * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntryOrBuilder> 
        getEntriesOrBuilderList() {
      return entries_;
    }
    /**
     * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
     */
    @java.lang.Override
    public int getEntriesCount() {
      return entries_.size();
    }
    /**
     * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry getEntries(int index) {
      return entries_.get(index);
    }
    /**
     * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntryOrBuilder getEntriesOrBuilder(
        int index) {
      return entries_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < entries_.size(); i++) {
        output.writeMessage(1, entries_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < entries_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, entries_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets) obj;

      if (!getEntriesList()
          .equals(other.getEntriesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getEntriesCount() > 0) {
        hash = (37 * hash) + ENTRIES_FIELD_NUMBER;
        hash = (53 * hash) + getEntriesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.ChargeInlets}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ChargeInlets)
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeInlets_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeInlets_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
        } else {
          entries_ = null;
          entriesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeInlets_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets build() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets result) {
        if (entriesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            entries_ = java.util.Collections.unmodifiableList(entries_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.entries_ = entries_;
        } else {
          result.entries_ = entriesBuilder_.build();
        }
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets.getDefaultInstance()) return this;
        if (entriesBuilder_ == null) {
          if (!other.entries_.isEmpty()) {
            if (entries_.isEmpty()) {
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureEntriesIsMutable();
              entries_.addAll(other.entries_);
            }
            onChanged();
          }
        } else {
          if (!other.entries_.isEmpty()) {
            if (entriesBuilder_.isEmpty()) {
              entriesBuilder_.dispose();
              entriesBuilder_ = null;
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000001);
              entriesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetEntriesFieldBuilder() : null;
            } else {
              entriesBuilder_.addAllMessages(other.entries_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry m =
                    input.readMessage(
                        com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.parser(),
                        extensionRegistry);
                if (entriesBuilder_ == null) {
                  ensureEntriesIsMutable();
                  entries_.add(m);
                } else {
                  entriesBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry> entries_ =
        java.util.Collections.emptyList();
      private void ensureEntriesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          entries_ = new java.util.ArrayList<com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry>(entries_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntryOrBuilder> entriesBuilder_;

      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry> getEntriesList() {
        if (entriesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(entries_);
        } else {
          return entriesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public int getEntriesCount() {
        if (entriesBuilder_ == null) {
          return entries_.size();
        } else {
          return entriesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry getEntries(int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);
        } else {
          return entriesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public Builder setEntries(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.set(index, value);
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public Builder setEntries(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.set(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public Builder addEntries(com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public Builder addEntries(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(index, value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public Builder addEntries(
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public Builder addEntries(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public Builder addAllEntries(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry> values) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, entries_);
          onChanged();
        } else {
          entriesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public Builder clearEntries() {
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          entriesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public Builder removeEntries(int index) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.remove(index);
          onChanged();
        } else {
          entriesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.Builder getEntriesBuilder(
          int index) {
        return internalGetEntriesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntryOrBuilder getEntriesOrBuilder(
          int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);  } else {
          return entriesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntryOrBuilder> 
           getEntriesOrBuilderList() {
        if (entriesBuilder_ != null) {
          return entriesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(entries_);
        }
      }
      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.Builder addEntriesBuilder() {
        return internalGetEntriesFieldBuilder().addBuilder(
            com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.Builder addEntriesBuilder(
          int index) {
        return internalGetEntriesFieldBuilder().addBuilder(
            index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.ChargeInletsEntry entries = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.Builder> 
           getEntriesBuilderList() {
        return internalGetEntriesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntryOrBuilder> 
          internalGetEntriesFieldBuilder() {
        if (entriesBuilder_ == null) {
          entriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntry.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeInletsEntryOrBuilder>(
                  entries_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          entries_ = null;
        }
        return entriesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:proto.ChargeInlets)
    }

    // @@protoc_insertion_point(class_scope:proto.ChargeInlets)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChargeInlets>
        PARSER = new com.google.protobuf.AbstractParser<ChargeInlets>() {
      @java.lang.Override
      public ChargeInlets parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChargeInlets> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChargeInlets> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeInlets getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargeFlapsEntryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ChargeFlapsEntry)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int64 id = 1;</code>
     * @return The id.
     */
    long getId();

    /**
     * <code>.proto.ChargeFlapsPositionState position_state = 2;</code>
     * @return The enum numeric value on the wire for positionState.
     */
    int getPositionStateValue();
    /**
     * <code>.proto.ChargeFlapsPositionState position_state = 2;</code>
     * @return The positionState.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsPositionState getPositionState();
  }
  /**
   * Protobuf type {@code proto.ChargeFlapsEntry}
   */
  public static final class ChargeFlapsEntry extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.ChargeFlapsEntry)
      ChargeFlapsEntryOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargeFlapsEntry");
    }
    // Use ChargeFlapsEntry.newBuilder() to construct.
    private ChargeFlapsEntry(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ChargeFlapsEntry() {
      positionState_ = 0;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeFlapsEntry_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeFlapsEntry_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private long id_ = 0L;
    /**
     * <code>int64 id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public long getId() {
      return id_;
    }

    public static final int POSITION_STATE_FIELD_NUMBER = 2;
    private int positionState_ = 0;
    /**
     * <code>.proto.ChargeFlapsPositionState position_state = 2;</code>
     * @return The enum numeric value on the wire for positionState.
     */
    @java.lang.Override public int getPositionStateValue() {
      return positionState_;
    }
    /**
     * <code>.proto.ChargeFlapsPositionState position_state = 2;</code>
     * @return The positionState.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsPositionState getPositionState() {
      com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsPositionState result = com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsPositionState.forNumber(positionState_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsPositionState.UNRECOGNIZED : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (id_ != 0L) {
        output.writeInt64(1, id_);
      }
      if (positionState_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsPositionState.CHARGE_FLAPS_POSITION_STATE_DEFAULT.getNumber()) {
        output.writeEnum(2, positionState_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (id_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, id_);
      }
      if (positionState_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsPositionState.CHARGE_FLAPS_POSITION_STATE_DEFAULT.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, positionState_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry) obj;

      if (getId()
          != other.getId()) return false;
      if (positionState_ != other.positionState_) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getId());
      hash = (37 * hash) + POSITION_STATE_FIELD_NUMBER;
      hash = (53 * hash) + positionState_;
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.ChargeFlapsEntry}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ChargeFlapsEntry)
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeFlapsEntry_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeFlapsEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        id_ = 0L;
        positionState_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeFlapsEntry_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry build() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.positionState_ = positionState_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.getDefaultInstance()) return this;
        if (other.getId() != 0L) {
          setId(other.getId());
        }
        if (other.positionState_ != 0) {
          setPositionStateValue(other.getPositionStateValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                id_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                positionState_ = input.readEnum();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long id_ ;
      /**
       * <code>int64 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public long getId() {
        return id_;
      }
      /**
       * <code>int64 id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(long value) {

        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int64 id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0L;
        onChanged();
        return this;
      }

      private int positionState_ = 0;
      /**
       * <code>.proto.ChargeFlapsPositionState position_state = 2;</code>
       * @return The enum numeric value on the wire for positionState.
       */
      @java.lang.Override public int getPositionStateValue() {
        return positionState_;
      }
      /**
       * <code>.proto.ChargeFlapsPositionState position_state = 2;</code>
       * @param value The enum numeric value on the wire for positionState to set.
       * @return This builder for chaining.
       */
      public Builder setPositionStateValue(int value) {
        positionState_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargeFlapsPositionState position_state = 2;</code>
       * @return The positionState.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsPositionState getPositionState() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsPositionState result = com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsPositionState.forNumber(positionState_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsPositionState.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.ChargeFlapsPositionState position_state = 2;</code>
       * @param value The positionState to set.
       * @return This builder for chaining.
       */
      public Builder setPositionState(com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsPositionState value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000002;
        positionState_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargeFlapsPositionState position_state = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPositionState() {
        bitField0_ = (bitField0_ & ~0x00000002);
        positionState_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.ChargeFlapsEntry)
    }

    // @@protoc_insertion_point(class_scope:proto.ChargeFlapsEntry)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChargeFlapsEntry>
        PARSER = new com.google.protobuf.AbstractParser<ChargeFlapsEntry>() {
      @java.lang.Override
      public ChargeFlapsEntry parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChargeFlapsEntry> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChargeFlapsEntry> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargeFlapsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ChargeFlaps)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry> 
        getEntriesList();
    /**
     * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry getEntries(int index);
    /**
     * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
     */
    int getEntriesCount();
    /**
     * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
     */
    java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntryOrBuilder> 
        getEntriesOrBuilderList();
    /**
     * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntryOrBuilder getEntriesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code proto.ChargeFlaps}
   */
  public static final class ChargeFlaps extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.ChargeFlaps)
      ChargeFlapsOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargeFlaps");
    }
    // Use ChargeFlaps.newBuilder() to construct.
    private ChargeFlaps(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ChargeFlaps() {
      entries_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeFlaps_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeFlaps_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.Builder.class);
    }

    public static final int ENTRIES_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry> entries_;
    /**
     * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry> getEntriesList() {
      return entries_;
    }
    /**
     * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntryOrBuilder> 
        getEntriesOrBuilderList() {
      return entries_;
    }
    /**
     * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
     */
    @java.lang.Override
    public int getEntriesCount() {
      return entries_.size();
    }
    /**
     * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry getEntries(int index) {
      return entries_.get(index);
    }
    /**
     * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntryOrBuilder getEntriesOrBuilder(
        int index) {
      return entries_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < entries_.size(); i++) {
        output.writeMessage(1, entries_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < entries_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, entries_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps) obj;

      if (!getEntriesList()
          .equals(other.getEntriesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getEntriesCount() > 0) {
        hash = (37 * hash) + ENTRIES_FIELD_NUMBER;
        hash = (53 * hash) + getEntriesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.ChargeFlaps}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ChargeFlaps)
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeFlaps_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeFlaps_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
        } else {
          entries_ = null;
          entriesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeFlaps_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps build() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps result) {
        if (entriesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            entries_ = java.util.Collections.unmodifiableList(entries_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.entries_ = entries_;
        } else {
          result.entries_ = entriesBuilder_.build();
        }
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps.getDefaultInstance()) return this;
        if (entriesBuilder_ == null) {
          if (!other.entries_.isEmpty()) {
            if (entries_.isEmpty()) {
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureEntriesIsMutable();
              entries_.addAll(other.entries_);
            }
            onChanged();
          }
        } else {
          if (!other.entries_.isEmpty()) {
            if (entriesBuilder_.isEmpty()) {
              entriesBuilder_.dispose();
              entriesBuilder_ = null;
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000001);
              entriesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetEntriesFieldBuilder() : null;
            } else {
              entriesBuilder_.addAllMessages(other.entries_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry m =
                    input.readMessage(
                        com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.parser(),
                        extensionRegistry);
                if (entriesBuilder_ == null) {
                  ensureEntriesIsMutable();
                  entries_.add(m);
                } else {
                  entriesBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry> entries_ =
        java.util.Collections.emptyList();
      private void ensureEntriesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          entries_ = new java.util.ArrayList<com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry>(entries_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntryOrBuilder> entriesBuilder_;

      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry> getEntriesList() {
        if (entriesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(entries_);
        } else {
          return entriesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public int getEntriesCount() {
        if (entriesBuilder_ == null) {
          return entries_.size();
        } else {
          return entriesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry getEntries(int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);
        } else {
          return entriesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public Builder setEntries(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.set(index, value);
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public Builder setEntries(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.set(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public Builder addEntries(com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public Builder addEntries(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(index, value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public Builder addEntries(
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public Builder addEntries(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public Builder addAllEntries(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry> values) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, entries_);
          onChanged();
        } else {
          entriesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public Builder clearEntries() {
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          entriesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public Builder removeEntries(int index) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.remove(index);
          onChanged();
        } else {
          entriesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.Builder getEntriesBuilder(
          int index) {
        return internalGetEntriesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntryOrBuilder getEntriesOrBuilder(
          int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);  } else {
          return entriesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntryOrBuilder> 
           getEntriesOrBuilderList() {
        if (entriesBuilder_ != null) {
          return entriesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(entries_);
        }
      }
      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.Builder addEntriesBuilder() {
        return internalGetEntriesFieldBuilder().addBuilder(
            com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.Builder addEntriesBuilder(
          int index) {
        return internalGetEntriesFieldBuilder().addBuilder(
            index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.ChargeFlapsEntry entries = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.Builder> 
           getEntriesBuilderList() {
        return internalGetEntriesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntryOrBuilder> 
          internalGetEntriesFieldBuilder() {
        if (entriesBuilder_ == null) {
          entriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntry.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlapsEntryOrBuilder>(
                  entries_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          entries_ = null;
        }
        return entriesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:proto.ChargeFlaps)
    }

    // @@protoc_insertion_point(class_scope:proto.ChargeFlaps)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChargeFlaps>
        PARSER = new com.google.protobuf.AbstractParser<ChargeFlaps>() {
      @java.lang.Override
      public ChargeFlaps parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChargeFlaps> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChargeFlaps> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeFlaps getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargingPowerRestrictionsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ChargingPowerRestrictions)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
     * @return A list containing the chargingPowerRestriction.
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction> getChargingPowerRestrictionList();
    /**
     * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
     * @return The count of chargingPowerRestriction.
     */
    int getChargingPowerRestrictionCount();
    /**
     * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
     * @param index The index of the element to return.
     * @return The chargingPowerRestriction at the given index.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction getChargingPowerRestriction(int index);
    /**
     * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
     * @return A list containing the enum numeric values on the wire for chargingPowerRestriction.
     */
    java.util.List<java.lang.Integer>
    getChargingPowerRestrictionValueList();
    /**
     * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
     * @param index The index of the value to return.
     * @return The enum numeric value on the wire of chargingPowerRestriction at the given index.
     */
    int getChargingPowerRestrictionValue(int index);
  }
  /**
   * Protobuf type {@code proto.ChargingPowerRestrictions}
   */
  public static final class ChargingPowerRestrictions extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.ChargingPowerRestrictions)
      ChargingPowerRestrictionsOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargingPowerRestrictions");
    }
    // Use ChargingPowerRestrictions.newBuilder() to construct.
    private ChargingPowerRestrictions(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ChargingPowerRestrictions() {
      chargingPowerRestriction_ = emptyIntList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPowerRestrictions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPowerRestrictions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.Builder.class);
    }

    public static final int CHARGING_POWER_RESTRICTION_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList chargingPowerRestriction_ =
        emptyIntList();
    private static final     com.google.protobuf.Internal.IntListAdapter.IntConverter<
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction> chargingPowerRestriction_converter_ =
            new com.google.protobuf.Internal.IntListAdapter.IntConverter<
                com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction>() {
              public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction convert(int from) {
                com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction.forNumber(from);
                return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction.UNRECOGNIZED : result;
              }
            };
    /**
     * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
     * @return A list containing the chargingPowerRestriction.
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction> getChargingPowerRestrictionList() {
      return new com.google.protobuf.Internal.IntListAdapter<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction>(chargingPowerRestriction_, chargingPowerRestriction_converter_);
    }
    /**
     * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
     * @return The count of chargingPowerRestriction.
     */
    @java.lang.Override
    public int getChargingPowerRestrictionCount() {
      return chargingPowerRestriction_.size();
    }
    /**
     * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
     * @param index The index of the element to return.
     * @return The chargingPowerRestriction at the given index.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction getChargingPowerRestriction(int index) {
      return chargingPowerRestriction_converter_.convert(chargingPowerRestriction_.getInt(index));
    }
    /**
     * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
     * @return A list containing the enum numeric values on the wire for chargingPowerRestriction.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
    getChargingPowerRestrictionValueList() {
      return chargingPowerRestriction_;
    }
    /**
     * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
     * @param index The index of the value to return.
     * @return The enum numeric value on the wire of chargingPowerRestriction at the given index.
     */
    @java.lang.Override
    public int getChargingPowerRestrictionValue(int index) {
      return chargingPowerRestriction_.getInt(index);
    }
    private int chargingPowerRestrictionMemoizedSerializedSize;

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (getChargingPowerRestrictionList().size() > 0) {
        output.writeUInt32NoTag(10);
        output.writeUInt32NoTag(chargingPowerRestrictionMemoizedSerializedSize);
      }
      for (int i = 0; i < chargingPowerRestriction_.size(); i++) {
        output.writeEnumNoTag(chargingPowerRestriction_.getInt(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < chargingPowerRestriction_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeEnumSizeNoTag(chargingPowerRestriction_.getInt(i));
        }
        size += dataSize;
        if (!getChargingPowerRestrictionList().isEmpty()) {  size += 1;
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(dataSize);
        }chargingPowerRestrictionMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions) obj;

      if (!chargingPowerRestriction_.equals(other.chargingPowerRestriction_)) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getChargingPowerRestrictionCount() > 0) {
        hash = (37 * hash) + CHARGING_POWER_RESTRICTION_FIELD_NUMBER;
        hash = (53 * hash) + chargingPowerRestriction_.hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.ChargingPowerRestrictions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ChargingPowerRestrictions)
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPowerRestrictions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPowerRestrictions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        chargingPowerRestriction_ = emptyIntList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPowerRestrictions_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions build() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          chargingPowerRestriction_.makeImmutable();
          result.chargingPowerRestriction_ = chargingPowerRestriction_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions.getDefaultInstance()) return this;
        if (!other.chargingPowerRestriction_.isEmpty()) {
          if (chargingPowerRestriction_.isEmpty()) {
            chargingPowerRestriction_ = other.chargingPowerRestriction_;
            chargingPowerRestriction_.makeImmutable();
            bitField0_ |= 0x00000001;
          } else {
            ensureChargingPowerRestrictionIsMutable();
            chargingPowerRestriction_.addAll(other.chargingPowerRestriction_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                int tmpRaw = input.readEnum();
                ensureChargingPowerRestrictionIsMutable();
                chargingPowerRestriction_.addInt(tmpRaw);
                break;
              } // case 8
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureChargingPowerRestrictionIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  chargingPowerRestriction_.addInt(input.readEnum());
                }
                input.popLimit(limit);
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.Internal.IntList chargingPowerRestriction_ = emptyIntList();
      private void ensureChargingPowerRestrictionIsMutable() {
        if (!chargingPowerRestriction_.isModifiable()) {
          chargingPowerRestriction_ = makeMutableCopy(chargingPowerRestriction_);
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
       * @return A list containing the chargingPowerRestriction.
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction> getChargingPowerRestrictionList() {
        return new com.google.protobuf.Internal.IntListAdapter<
            com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction>(chargingPowerRestriction_, chargingPowerRestriction_converter_);
      }
      /**
       * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
       * @return The count of chargingPowerRestriction.
       */
      public int getChargingPowerRestrictionCount() {
        return chargingPowerRestriction_.size();
      }
      /**
       * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
       * @param index The index of the element to return.
       * @return The chargingPowerRestriction at the given index.
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction getChargingPowerRestriction(int index) {
        return chargingPowerRestriction_converter_.convert(chargingPowerRestriction_.getInt(index));
      }
      /**
       * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
       * @param index The index to set the value at.
       * @param value The chargingPowerRestriction to set.
       * @return This builder for chaining.
       */
      public Builder setChargingPowerRestriction(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction value) {
        if (value == null) { throw new NullPointerException(); }
        ensureChargingPowerRestrictionIsMutable();
        chargingPowerRestriction_.setInt(index, value.getNumber());
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
       * @param value The chargingPowerRestriction to add.
       * @return This builder for chaining.
       */
      public Builder addChargingPowerRestriction(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction value) {
        if (value == null) { throw new NullPointerException(); }
        ensureChargingPowerRestrictionIsMutable();
        chargingPowerRestriction_.addInt(value.getNumber());
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
       * @param values The chargingPowerRestriction to add.
       * @return This builder for chaining.
       */
      public Builder addAllChargingPowerRestriction(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction> values) {
        ensureChargingPowerRestrictionIsMutable();
        for (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestriction value : values) {
          chargingPowerRestriction_.addInt(value.getNumber());
        }
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearChargingPowerRestriction() {
        chargingPowerRestriction_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
       * @return A list containing the enum numeric values on the wire for chargingPowerRestriction.
       */
      public java.util.List<java.lang.Integer>
      getChargingPowerRestrictionValueList() {
        chargingPowerRestriction_.makeImmutable();
        return chargingPowerRestriction_;
      }
      /**
       * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
       * @param index The index of the value to return.
       * @return The enum numeric value on the wire of chargingPowerRestriction at the given index.
       */
      public int getChargingPowerRestrictionValue(int index) {
        return chargingPowerRestriction_.getInt(index);
      }
      /**
       * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
       * @param index The index to set the value at.
       * @param value The enum numeric value on the wire for chargingPowerRestriction to set.
       * @return This builder for chaining.
       */
      public Builder setChargingPowerRestrictionValue(
          int index, int value) {
        ensureChargingPowerRestrictionIsMutable();
        chargingPowerRestriction_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
       * @param value The enum numeric value on the wire for chargingPowerRestriction to add.
       * @return This builder for chaining.
       */
      public Builder addChargingPowerRestrictionValue(int value) {
        ensureChargingPowerRestrictionIsMutable();
        chargingPowerRestriction_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.ChargingPowerRestriction charging_power_restriction = 1;</code>
       * @param values The enum numeric values on the wire for chargingPowerRestriction to add.
       * @return This builder for chaining.
       */
      public Builder addAllChargingPowerRestrictionValue(
          java.lang.Iterable<java.lang.Integer> values) {
        ensureChargingPowerRestrictionIsMutable();
        for (int value : values) {
          chargingPowerRestriction_.addInt(value);
        }
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.ChargingPowerRestrictions)
    }

    // @@protoc_insertion_point(class_scope:proto.ChargingPowerRestrictions)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChargingPowerRestrictions>
        PARSER = new com.google.protobuf.AbstractParser<ChargingPowerRestrictions>() {
      @java.lang.Override
      public ChargingPowerRestrictions parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChargingPowerRestrictions> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChargingPowerRestrictions> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerRestrictions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargingBreakClockTimerValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ChargingBreakClockTimerValue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry> 
        getChargingbreakClocktimerEntryList();
    /**
     * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry getChargingbreakClocktimerEntry(int index);
    /**
     * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
     */
    int getChargingbreakClocktimerEntryCount();
    /**
     * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
     */
    java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntryOrBuilder> 
        getChargingbreakClocktimerEntryOrBuilderList();
    /**
     * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntryOrBuilder getChargingbreakClocktimerEntryOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code proto.ChargingBreakClockTimerValue}
   */
  public static final class ChargingBreakClockTimerValue extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.ChargingBreakClockTimerValue)
      ChargingBreakClockTimerValueOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargingBreakClockTimerValue");
    }
    // Use ChargingBreakClockTimerValue.newBuilder() to construct.
    private ChargingBreakClockTimerValue(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ChargingBreakClockTimerValue() {
      chargingbreakClocktimerEntry_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingBreakClockTimerValue_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingBreakClockTimerValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.Builder.class);
    }

    public static final int CHARGINGBREAK_CLOCKTIMER_ENTRY_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry> chargingbreakClocktimerEntry_;
    /**
     * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry> getChargingbreakClocktimerEntryList() {
      return chargingbreakClocktimerEntry_;
    }
    /**
     * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntryOrBuilder> 
        getChargingbreakClocktimerEntryOrBuilderList() {
      return chargingbreakClocktimerEntry_;
    }
    /**
     * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
     */
    @java.lang.Override
    public int getChargingbreakClocktimerEntryCount() {
      return chargingbreakClocktimerEntry_.size();
    }
    /**
     * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry getChargingbreakClocktimerEntry(int index) {
      return chargingbreakClocktimerEntry_.get(index);
    }
    /**
     * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntryOrBuilder getChargingbreakClocktimerEntryOrBuilder(
        int index) {
      return chargingbreakClocktimerEntry_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < chargingbreakClocktimerEntry_.size(); i++) {
        output.writeMessage(1, chargingbreakClocktimerEntry_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < chargingbreakClocktimerEntry_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, chargingbreakClocktimerEntry_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue) obj;

      if (!getChargingbreakClocktimerEntryList()
          .equals(other.getChargingbreakClocktimerEntryList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getChargingbreakClocktimerEntryCount() > 0) {
        hash = (37 * hash) + CHARGINGBREAK_CLOCKTIMER_ENTRY_FIELD_NUMBER;
        hash = (53 * hash) + getChargingbreakClocktimerEntryList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.ChargingBreakClockTimerValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ChargingBreakClockTimerValue)
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingBreakClockTimerValue_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingBreakClockTimerValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (chargingbreakClocktimerEntryBuilder_ == null) {
          chargingbreakClocktimerEntry_ = java.util.Collections.emptyList();
        } else {
          chargingbreakClocktimerEntry_ = null;
          chargingbreakClocktimerEntryBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingBreakClockTimerValue_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue build() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue result) {
        if (chargingbreakClocktimerEntryBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            chargingbreakClocktimerEntry_ = java.util.Collections.unmodifiableList(chargingbreakClocktimerEntry_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.chargingbreakClocktimerEntry_ = chargingbreakClocktimerEntry_;
        } else {
          result.chargingbreakClocktimerEntry_ = chargingbreakClocktimerEntryBuilder_.build();
        }
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue.getDefaultInstance()) return this;
        if (chargingbreakClocktimerEntryBuilder_ == null) {
          if (!other.chargingbreakClocktimerEntry_.isEmpty()) {
            if (chargingbreakClocktimerEntry_.isEmpty()) {
              chargingbreakClocktimerEntry_ = other.chargingbreakClocktimerEntry_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureChargingbreakClocktimerEntryIsMutable();
              chargingbreakClocktimerEntry_.addAll(other.chargingbreakClocktimerEntry_);
            }
            onChanged();
          }
        } else {
          if (!other.chargingbreakClocktimerEntry_.isEmpty()) {
            if (chargingbreakClocktimerEntryBuilder_.isEmpty()) {
              chargingbreakClocktimerEntryBuilder_.dispose();
              chargingbreakClocktimerEntryBuilder_ = null;
              chargingbreakClocktimerEntry_ = other.chargingbreakClocktimerEntry_;
              bitField0_ = (bitField0_ & ~0x00000001);
              chargingbreakClocktimerEntryBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetChargingbreakClocktimerEntryFieldBuilder() : null;
            } else {
              chargingbreakClocktimerEntryBuilder_.addAllMessages(other.chargingbreakClocktimerEntry_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry m =
                    input.readMessage(
                        com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.parser(),
                        extensionRegistry);
                if (chargingbreakClocktimerEntryBuilder_ == null) {
                  ensureChargingbreakClocktimerEntryIsMutable();
                  chargingbreakClocktimerEntry_.add(m);
                } else {
                  chargingbreakClocktimerEntryBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry> chargingbreakClocktimerEntry_ =
        java.util.Collections.emptyList();
      private void ensureChargingbreakClocktimerEntryIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          chargingbreakClocktimerEntry_ = new java.util.ArrayList<com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry>(chargingbreakClocktimerEntry_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntryOrBuilder> chargingbreakClocktimerEntryBuilder_;

      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry> getChargingbreakClocktimerEntryList() {
        if (chargingbreakClocktimerEntryBuilder_ == null) {
          return java.util.Collections.unmodifiableList(chargingbreakClocktimerEntry_);
        } else {
          return chargingbreakClocktimerEntryBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public int getChargingbreakClocktimerEntryCount() {
        if (chargingbreakClocktimerEntryBuilder_ == null) {
          return chargingbreakClocktimerEntry_.size();
        } else {
          return chargingbreakClocktimerEntryBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry getChargingbreakClocktimerEntry(int index) {
        if (chargingbreakClocktimerEntryBuilder_ == null) {
          return chargingbreakClocktimerEntry_.get(index);
        } else {
          return chargingbreakClocktimerEntryBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public Builder setChargingbreakClocktimerEntry(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry value) {
        if (chargingbreakClocktimerEntryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChargingbreakClocktimerEntryIsMutable();
          chargingbreakClocktimerEntry_.set(index, value);
          onChanged();
        } else {
          chargingbreakClocktimerEntryBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public Builder setChargingbreakClocktimerEntry(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.Builder builderForValue) {
        if (chargingbreakClocktimerEntryBuilder_ == null) {
          ensureChargingbreakClocktimerEntryIsMutable();
          chargingbreakClocktimerEntry_.set(index, builderForValue.build());
          onChanged();
        } else {
          chargingbreakClocktimerEntryBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public Builder addChargingbreakClocktimerEntry(com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry value) {
        if (chargingbreakClocktimerEntryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChargingbreakClocktimerEntryIsMutable();
          chargingbreakClocktimerEntry_.add(value);
          onChanged();
        } else {
          chargingbreakClocktimerEntryBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public Builder addChargingbreakClocktimerEntry(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry value) {
        if (chargingbreakClocktimerEntryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChargingbreakClocktimerEntryIsMutable();
          chargingbreakClocktimerEntry_.add(index, value);
          onChanged();
        } else {
          chargingbreakClocktimerEntryBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public Builder addChargingbreakClocktimerEntry(
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.Builder builderForValue) {
        if (chargingbreakClocktimerEntryBuilder_ == null) {
          ensureChargingbreakClocktimerEntryIsMutable();
          chargingbreakClocktimerEntry_.add(builderForValue.build());
          onChanged();
        } else {
          chargingbreakClocktimerEntryBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public Builder addChargingbreakClocktimerEntry(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.Builder builderForValue) {
        if (chargingbreakClocktimerEntryBuilder_ == null) {
          ensureChargingbreakClocktimerEntryIsMutable();
          chargingbreakClocktimerEntry_.add(index, builderForValue.build());
          onChanged();
        } else {
          chargingbreakClocktimerEntryBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public Builder addAllChargingbreakClocktimerEntry(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry> values) {
        if (chargingbreakClocktimerEntryBuilder_ == null) {
          ensureChargingbreakClocktimerEntryIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, chargingbreakClocktimerEntry_);
          onChanged();
        } else {
          chargingbreakClocktimerEntryBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public Builder clearChargingbreakClocktimerEntry() {
        if (chargingbreakClocktimerEntryBuilder_ == null) {
          chargingbreakClocktimerEntry_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          chargingbreakClocktimerEntryBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public Builder removeChargingbreakClocktimerEntry(int index) {
        if (chargingbreakClocktimerEntryBuilder_ == null) {
          ensureChargingbreakClocktimerEntryIsMutable();
          chargingbreakClocktimerEntry_.remove(index);
          onChanged();
        } else {
          chargingbreakClocktimerEntryBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.Builder getChargingbreakClocktimerEntryBuilder(
          int index) {
        return internalGetChargingbreakClocktimerEntryFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntryOrBuilder getChargingbreakClocktimerEntryOrBuilder(
          int index) {
        if (chargingbreakClocktimerEntryBuilder_ == null) {
          return chargingbreakClocktimerEntry_.get(index);  } else {
          return chargingbreakClocktimerEntryBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntryOrBuilder> 
           getChargingbreakClocktimerEntryOrBuilderList() {
        if (chargingbreakClocktimerEntryBuilder_ != null) {
          return chargingbreakClocktimerEntryBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(chargingbreakClocktimerEntry_);
        }
      }
      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.Builder addChargingbreakClocktimerEntryBuilder() {
        return internalGetChargingbreakClocktimerEntryFieldBuilder().addBuilder(
            com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.Builder addChargingbreakClocktimerEntryBuilder(
          int index) {
        return internalGetChargingbreakClocktimerEntryFieldBuilder().addBuilder(
            index, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.ChargingBreakClockTimerEntry chargingbreak_clocktimer_entry = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.Builder> 
           getChargingbreakClocktimerEntryBuilderList() {
        return internalGetChargingbreakClocktimerEntryFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntryOrBuilder> 
          internalGetChargingbreakClocktimerEntryFieldBuilder() {
        if (chargingbreakClocktimerEntryBuilder_ == null) {
          chargingbreakClocktimerEntryBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntryOrBuilder>(
                  chargingbreakClocktimerEntry_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          chargingbreakClocktimerEntry_ = null;
        }
        return chargingbreakClocktimerEntryBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:proto.ChargingBreakClockTimerValue)
    }

    // @@protoc_insertion_point(class_scope:proto.ChargingBreakClockTimerValue)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChargingBreakClockTimerValue>
        PARSER = new com.google.protobuf.AbstractParser<ChargingBreakClockTimerValue>() {
      @java.lang.Override
      public ChargingBreakClockTimerValue parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChargingBreakClockTimerValue> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChargingBreakClockTimerValue> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerValue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PrecondStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.PrecondState)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>bool activation_state = 1;</code>
     * @return The activationState.
     */
    boolean getActivationState();

    /**
     * <code>bool precond_immediate_support = 2;</code>
     * @return The precondImmediateSupport.
     */
    boolean getPrecondImmediateSupport();

    /**
     * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
     * @return A list containing the precondStateTypes.
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType> getPrecondStateTypesList();
    /**
     * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
     * @return The count of precondStateTypes.
     */
    int getPrecondStateTypesCount();
    /**
     * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
     * @param index The index of the element to return.
     * @return The precondStateTypes at the given index.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType getPrecondStateTypes(int index);
    /**
     * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
     * @return A list containing the enum numeric values on the wire for precondStateTypes.
     */
    java.util.List<java.lang.Integer>
    getPrecondStateTypesValueList();
    /**
     * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
     * @param index The index of the value to return.
     * @return The enum numeric value on the wire of precondStateTypes at the given index.
     */
    int getPrecondStateTypesValue(int index);
  }
  /**
   * Protobuf type {@code proto.PrecondState}
   */
  public static final class PrecondState extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.PrecondState)
      PrecondStateOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "PrecondState");
    }
    // Use PrecondState.newBuilder() to construct.
    private PrecondState(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private PrecondState() {
      precondStateTypes_ = emptyIntList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PrecondState_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PrecondState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.class, com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.Builder.class);
    }

    public static final int ACTIVATION_STATE_FIELD_NUMBER = 1;
    private boolean activationState_ = false;
    /**
     * <code>bool activation_state = 1;</code>
     * @return The activationState.
     */
    @java.lang.Override
    public boolean getActivationState() {
      return activationState_;
    }

    public static final int PRECOND_IMMEDIATE_SUPPORT_FIELD_NUMBER = 2;
    private boolean precondImmediateSupport_ = false;
    /**
     * <code>bool precond_immediate_support = 2;</code>
     * @return The precondImmediateSupport.
     */
    @java.lang.Override
    public boolean getPrecondImmediateSupport() {
      return precondImmediateSupport_;
    }

    public static final int PRECOND_STATE_TYPES_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList precondStateTypes_ =
        emptyIntList();
    private static final     com.google.protobuf.Internal.IntListAdapter.IntConverter<
        com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType> precondStateTypes_converter_ =
            new com.google.protobuf.Internal.IntListAdapter.IntConverter<
                com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType>() {
              public com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType convert(int from) {
                com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType result = com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType.forNumber(from);
                return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType.UNRECOGNIZED : result;
              }
            };
    /**
     * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
     * @return A list containing the precondStateTypes.
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType> getPrecondStateTypesList() {
      return new com.google.protobuf.Internal.IntListAdapter<
          com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType>(precondStateTypes_, precondStateTypes_converter_);
    }
    /**
     * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
     * @return The count of precondStateTypes.
     */
    @java.lang.Override
    public int getPrecondStateTypesCount() {
      return precondStateTypes_.size();
    }
    /**
     * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
     * @param index The index of the element to return.
     * @return The precondStateTypes at the given index.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType getPrecondStateTypes(int index) {
      return precondStateTypes_converter_.convert(precondStateTypes_.getInt(index));
    }
    /**
     * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
     * @return A list containing the enum numeric values on the wire for precondStateTypes.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
    getPrecondStateTypesValueList() {
      return precondStateTypes_;
    }
    /**
     * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
     * @param index The index of the value to return.
     * @return The enum numeric value on the wire of precondStateTypes at the given index.
     */
    @java.lang.Override
    public int getPrecondStateTypesValue(int index) {
      return precondStateTypes_.getInt(index);
    }
    private int precondStateTypesMemoizedSerializedSize;

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (activationState_ != false) {
        output.writeBool(1, activationState_);
      }
      if (precondImmediateSupport_ != false) {
        output.writeBool(2, precondImmediateSupport_);
      }
      if (getPrecondStateTypesList().size() > 0) {
        output.writeUInt32NoTag(26);
        output.writeUInt32NoTag(precondStateTypesMemoizedSerializedSize);
      }
      for (int i = 0; i < precondStateTypes_.size(); i++) {
        output.writeEnumNoTag(precondStateTypes_.getInt(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (activationState_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, activationState_);
      }
      if (precondImmediateSupport_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, precondImmediateSupport_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < precondStateTypes_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeEnumSizeNoTag(precondStateTypes_.getInt(i));
        }
        size += dataSize;
        if (!getPrecondStateTypesList().isEmpty()) {  size += 1;
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(dataSize);
        }precondStateTypesMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.PrecondState)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.PrecondState other = (com.daimler.mbcarkit.proto.VehicleEvents.PrecondState) obj;

      if (getActivationState()
          != other.getActivationState()) return false;
      if (getPrecondImmediateSupport()
          != other.getPrecondImmediateSupport()) return false;
      if (!precondStateTypes_.equals(other.precondStateTypes_)) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ACTIVATION_STATE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getActivationState());
      hash = (37 * hash) + PRECOND_IMMEDIATE_SUPPORT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getPrecondImmediateSupport());
      if (getPrecondStateTypesCount() > 0) {
        hash = (37 * hash) + PRECOND_STATE_TYPES_FIELD_NUMBER;
        hash = (53 * hash) + precondStateTypes_.hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondState parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondState parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondState parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondState parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondState parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondState parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondState parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.PrecondState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.PrecondState}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.PrecondState)
        com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PrecondState_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PrecondState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.class, com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        activationState_ = false;
        precondImmediateSupport_ = false;
        precondStateTypes_ = emptyIntList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PrecondState_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PrecondState getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PrecondState build() {
        com.daimler.mbcarkit.proto.VehicleEvents.PrecondState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PrecondState buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.PrecondState result = new com.daimler.mbcarkit.proto.VehicleEvents.PrecondState(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.PrecondState result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.activationState_ = activationState_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.precondImmediateSupport_ = precondImmediateSupport_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          precondStateTypes_.makeImmutable();
          result.precondStateTypes_ = precondStateTypes_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.PrecondState) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.PrecondState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.PrecondState other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.PrecondState.getDefaultInstance()) return this;
        if (other.getActivationState() != false) {
          setActivationState(other.getActivationState());
        }
        if (other.getPrecondImmediateSupport() != false) {
          setPrecondImmediateSupport(other.getPrecondImmediateSupport());
        }
        if (!other.precondStateTypes_.isEmpty()) {
          if (precondStateTypes_.isEmpty()) {
            precondStateTypes_ = other.precondStateTypes_;
            precondStateTypes_.makeImmutable();
            bitField0_ |= 0x00000004;
          } else {
            ensurePrecondStateTypesIsMutable();
            precondStateTypes_.addAll(other.precondStateTypes_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                activationState_ = input.readBool();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                precondImmediateSupport_ = input.readBool();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                int tmpRaw = input.readEnum();
                ensurePrecondStateTypesIsMutable();
                precondStateTypes_.addInt(tmpRaw);
                break;
              } // case 24
              case 26: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensurePrecondStateTypesIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  precondStateTypes_.addInt(input.readEnum());
                }
                input.popLimit(limit);
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private boolean activationState_ ;
      /**
       * <code>bool activation_state = 1;</code>
       * @return The activationState.
       */
      @java.lang.Override
      public boolean getActivationState() {
        return activationState_;
      }
      /**
       * <code>bool activation_state = 1;</code>
       * @param value The activationState to set.
       * @return This builder for chaining.
       */
      public Builder setActivationState(boolean value) {

        activationState_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>bool activation_state = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearActivationState() {
        bitField0_ = (bitField0_ & ~0x00000001);
        activationState_ = false;
        onChanged();
        return this;
      }

      private boolean precondImmediateSupport_ ;
      /**
       * <code>bool precond_immediate_support = 2;</code>
       * @return The precondImmediateSupport.
       */
      @java.lang.Override
      public boolean getPrecondImmediateSupport() {
        return precondImmediateSupport_;
      }
      /**
       * <code>bool precond_immediate_support = 2;</code>
       * @param value The precondImmediateSupport to set.
       * @return This builder for chaining.
       */
      public Builder setPrecondImmediateSupport(boolean value) {

        precondImmediateSupport_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>bool precond_immediate_support = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPrecondImmediateSupport() {
        bitField0_ = (bitField0_ & ~0x00000002);
        precondImmediateSupport_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList precondStateTypes_ = emptyIntList();
      private void ensurePrecondStateTypesIsMutable() {
        if (!precondStateTypes_.isModifiable()) {
          precondStateTypes_ = makeMutableCopy(precondStateTypes_);
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
       * @return A list containing the precondStateTypes.
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType> getPrecondStateTypesList() {
        return new com.google.protobuf.Internal.IntListAdapter<
            com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType>(precondStateTypes_, precondStateTypes_converter_);
      }
      /**
       * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
       * @return The count of precondStateTypes.
       */
      public int getPrecondStateTypesCount() {
        return precondStateTypes_.size();
      }
      /**
       * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
       * @param index The index of the element to return.
       * @return The precondStateTypes at the given index.
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType getPrecondStateTypes(int index) {
        return precondStateTypes_converter_.convert(precondStateTypes_.getInt(index));
      }
      /**
       * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
       * @param index The index to set the value at.
       * @param value The precondStateTypes to set.
       * @return This builder for chaining.
       */
      public Builder setPrecondStateTypes(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType value) {
        if (value == null) { throw new NullPointerException(); }
        ensurePrecondStateTypesIsMutable();
        precondStateTypes_.setInt(index, value.getNumber());
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
       * @param value The precondStateTypes to add.
       * @return This builder for chaining.
       */
      public Builder addPrecondStateTypes(com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType value) {
        if (value == null) { throw new NullPointerException(); }
        ensurePrecondStateTypesIsMutable();
        precondStateTypes_.addInt(value.getNumber());
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
       * @param values The precondStateTypes to add.
       * @return This builder for chaining.
       */
      public Builder addAllPrecondStateTypes(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType> values) {
        ensurePrecondStateTypesIsMutable();
        for (com.daimler.mbcarkit.proto.VehicleEvents.PrecondStateType value : values) {
          precondStateTypes_.addInt(value.getNumber());
        }
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearPrecondStateTypes() {
        precondStateTypes_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
       * @return A list containing the enum numeric values on the wire for precondStateTypes.
       */
      public java.util.List<java.lang.Integer>
      getPrecondStateTypesValueList() {
        precondStateTypes_.makeImmutable();
        return precondStateTypes_;
      }
      /**
       * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
       * @param index The index of the value to return.
       * @return The enum numeric value on the wire of precondStateTypes at the given index.
       */
      public int getPrecondStateTypesValue(int index) {
        return precondStateTypes_.getInt(index);
      }
      /**
       * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
       * @param index The index to set the value at.
       * @param value The enum numeric value on the wire for precondStateTypes to set.
       * @return This builder for chaining.
       */
      public Builder setPrecondStateTypesValue(
          int index, int value) {
        ensurePrecondStateTypesIsMutable();
        precondStateTypes_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
       * @param value The enum numeric value on the wire for precondStateTypes to add.
       * @return This builder for chaining.
       */
      public Builder addPrecondStateTypesValue(int value) {
        ensurePrecondStateTypesIsMutable();
        precondStateTypes_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated .proto.PrecondStateType precond_state_types = 3;</code>
       * @param values The enum numeric values on the wire for precondStateTypes to add.
       * @return This builder for chaining.
       */
      public Builder addAllPrecondStateTypesValue(
          java.lang.Iterable<java.lang.Integer> values) {
        ensurePrecondStateTypesIsMutable();
        for (int value : values) {
          precondStateTypes_.addInt(value);
        }
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.PrecondState)
    }

    // @@protoc_insertion_point(class_scope:proto.PrecondState)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.PrecondState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.PrecondState();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PrecondState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PrecondState>
        PARSER = new com.google.protobuf.AbstractParser<PrecondState>() {
      @java.lang.Override
      public PrecondState parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PrecondState> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PrecondState> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.PrecondState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargingPowerControlOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ChargingPowerControl)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.proto.ChargingPowerControl.ChargingStatusForPowerControl charge_status = 1;</code>
     * @return The enum numeric value on the wire for chargeStatus.
     */
    int getChargeStatusValue();
    /**
     * <code>.proto.ChargingPowerControl.ChargingStatusForPowerControl charge_status = 1;</code>
     * @return The chargeStatus.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.ChargingStatusForPowerControl getChargeStatus();

    /**
     * <code>int32 ctrl_duration = 2;</code>
     * @return The ctrlDuration.
     */
    int getCtrlDuration();

    /**
     * <code>int32 ctrl_info = 3;</code>
     * @return The ctrlInfo.
     */
    int getCtrlInfo();

    /**
     * <code>int32 charge_power = 4;</code>
     * @return The chargePower.
     */
    int getChargePower();

    /**
     * <code>int32 serv_stat = 5;</code>
     * @return The servStat.
     */
    int getServStat();

    /**
     * <code>int32 serv_avail = 6;</code>
     * @return The servAvail.
     */
    int getServAvail();

    /**
     * <code>int32 use_case = 7;</code>
     * @return The useCase.
     */
    int getUseCase();
  }
  /**
   * Protobuf type {@code proto.ChargingPowerControl}
   */
  public static final class ChargingPowerControl extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.ChargingPowerControl)
      ChargingPowerControlOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargingPowerControl");
    }
    // Use ChargingPowerControl.newBuilder() to construct.
    private ChargingPowerControl(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ChargingPowerControl() {
      chargeStatus_ = 0;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPowerControl_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPowerControl_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.Builder.class);
    }

    /**
     * Protobuf enum {@code proto.ChargingPowerControl.ChargingStatusForPowerControl}
     */
    public enum ChargingStatusForPowerControl
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>NOT_DEFINED = 0;</code>
       */
      NOT_DEFINED(0),
      /**
       * <code>DEACTIVATED = 1;</code>
       */
      DEACTIVATED(1),
      /**
       * <code>ACTIVATED = 2;</code>
       */
      ACTIVATED(2),
      UNRECOGNIZED(-1),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 33,
          /* patch= */ 6,
          /* suffix= */ "",
          "ChargingStatusForPowerControl");
      }
      /**
       * <code>NOT_DEFINED = 0;</code>
       */
      public static final int NOT_DEFINED_VALUE = 0;
      /**
       * <code>DEACTIVATED = 1;</code>
       */
      public static final int DEACTIVATED_VALUE = 1;
      /**
       * <code>ACTIVATED = 2;</code>
       */
      public static final int ACTIVATED_VALUE = 2;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ChargingStatusForPowerControl valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ChargingStatusForPowerControl forNumber(int value) {
        switch (value) {
          case 0: return NOT_DEFINED;
          case 1: return DEACTIVATED;
          case 2: return ACTIVATED;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ChargingStatusForPowerControl>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ChargingStatusForPowerControl> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ChargingStatusForPowerControl>() {
              public ChargingStatusForPowerControl findValueByNumber(int number) {
                return ChargingStatusForPowerControl.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.getDescriptor().getEnumTypes().get(0);
      }

      private static final ChargingStatusForPowerControl[] VALUES = values();

      public static ChargingStatusForPowerControl valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private ChargingStatusForPowerControl(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:proto.ChargingPowerControl.ChargingStatusForPowerControl)
    }

    public static final int CHARGE_STATUS_FIELD_NUMBER = 1;
    private int chargeStatus_ = 0;
    /**
     * <code>.proto.ChargingPowerControl.ChargingStatusForPowerControl charge_status = 1;</code>
     * @return The enum numeric value on the wire for chargeStatus.
     */
    @java.lang.Override public int getChargeStatusValue() {
      return chargeStatus_;
    }
    /**
     * <code>.proto.ChargingPowerControl.ChargingStatusForPowerControl charge_status = 1;</code>
     * @return The chargeStatus.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.ChargingStatusForPowerControl getChargeStatus() {
      com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.ChargingStatusForPowerControl result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.ChargingStatusForPowerControl.forNumber(chargeStatus_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.ChargingStatusForPowerControl.UNRECOGNIZED : result;
    }

    public static final int CTRL_DURATION_FIELD_NUMBER = 2;
    private int ctrlDuration_ = 0;
    /**
     * <code>int32 ctrl_duration = 2;</code>
     * @return The ctrlDuration.
     */
    @java.lang.Override
    public int getCtrlDuration() {
      return ctrlDuration_;
    }

    public static final int CTRL_INFO_FIELD_NUMBER = 3;
    private int ctrlInfo_ = 0;
    /**
     * <code>int32 ctrl_info = 3;</code>
     * @return The ctrlInfo.
     */
    @java.lang.Override
    public int getCtrlInfo() {
      return ctrlInfo_;
    }

    public static final int CHARGE_POWER_FIELD_NUMBER = 4;
    private int chargePower_ = 0;
    /**
     * <code>int32 charge_power = 4;</code>
     * @return The chargePower.
     */
    @java.lang.Override
    public int getChargePower() {
      return chargePower_;
    }

    public static final int SERV_STAT_FIELD_NUMBER = 5;
    private int servStat_ = 0;
    /**
     * <code>int32 serv_stat = 5;</code>
     * @return The servStat.
     */
    @java.lang.Override
    public int getServStat() {
      return servStat_;
    }

    public static final int SERV_AVAIL_FIELD_NUMBER = 6;
    private int servAvail_ = 0;
    /**
     * <code>int32 serv_avail = 6;</code>
     * @return The servAvail.
     */
    @java.lang.Override
    public int getServAvail() {
      return servAvail_;
    }

    public static final int USE_CASE_FIELD_NUMBER = 7;
    private int useCase_ = 0;
    /**
     * <code>int32 use_case = 7;</code>
     * @return The useCase.
     */
    @java.lang.Override
    public int getUseCase() {
      return useCase_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (chargeStatus_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.ChargingStatusForPowerControl.NOT_DEFINED.getNumber()) {
        output.writeEnum(1, chargeStatus_);
      }
      if (ctrlDuration_ != 0) {
        output.writeInt32(2, ctrlDuration_);
      }
      if (ctrlInfo_ != 0) {
        output.writeInt32(3, ctrlInfo_);
      }
      if (chargePower_ != 0) {
        output.writeInt32(4, chargePower_);
      }
      if (servStat_ != 0) {
        output.writeInt32(5, servStat_);
      }
      if (servAvail_ != 0) {
        output.writeInt32(6, servAvail_);
      }
      if (useCase_ != 0) {
        output.writeInt32(7, useCase_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (chargeStatus_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.ChargingStatusForPowerControl.NOT_DEFINED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, chargeStatus_);
      }
      if (ctrlDuration_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, ctrlDuration_);
      }
      if (ctrlInfo_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, ctrlInfo_);
      }
      if (chargePower_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, chargePower_);
      }
      if (servStat_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, servStat_);
      }
      if (servAvail_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, servAvail_);
      }
      if (useCase_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, useCase_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl) obj;

      if (chargeStatus_ != other.chargeStatus_) return false;
      if (getCtrlDuration()
          != other.getCtrlDuration()) return false;
      if (getCtrlInfo()
          != other.getCtrlInfo()) return false;
      if (getChargePower()
          != other.getChargePower()) return false;
      if (getServStat()
          != other.getServStat()) return false;
      if (getServAvail()
          != other.getServAvail()) return false;
      if (getUseCase()
          != other.getUseCase()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + CHARGE_STATUS_FIELD_NUMBER;
      hash = (53 * hash) + chargeStatus_;
      hash = (37 * hash) + CTRL_DURATION_FIELD_NUMBER;
      hash = (53 * hash) + getCtrlDuration();
      hash = (37 * hash) + CTRL_INFO_FIELD_NUMBER;
      hash = (53 * hash) + getCtrlInfo();
      hash = (37 * hash) + CHARGE_POWER_FIELD_NUMBER;
      hash = (53 * hash) + getChargePower();
      hash = (37 * hash) + SERV_STAT_FIELD_NUMBER;
      hash = (53 * hash) + getServStat();
      hash = (37 * hash) + SERV_AVAIL_FIELD_NUMBER;
      hash = (53 * hash) + getServAvail();
      hash = (37 * hash) + USE_CASE_FIELD_NUMBER;
      hash = (53 * hash) + getUseCase();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.ChargingPowerControl}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ChargingPowerControl)
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControlOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPowerControl_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPowerControl_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        chargeStatus_ = 0;
        ctrlDuration_ = 0;
        ctrlInfo_ = 0;
        chargePower_ = 0;
        servStat_ = 0;
        servAvail_ = 0;
        useCase_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingPowerControl_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl build() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.chargeStatus_ = chargeStatus_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.ctrlDuration_ = ctrlDuration_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.ctrlInfo_ = ctrlInfo_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.chargePower_ = chargePower_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.servStat_ = servStat_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.servAvail_ = servAvail_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.useCase_ = useCase_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.getDefaultInstance()) return this;
        if (other.chargeStatus_ != 0) {
          setChargeStatusValue(other.getChargeStatusValue());
        }
        if (other.getCtrlDuration() != 0) {
          setCtrlDuration(other.getCtrlDuration());
        }
        if (other.getCtrlInfo() != 0) {
          setCtrlInfo(other.getCtrlInfo());
        }
        if (other.getChargePower() != 0) {
          setChargePower(other.getChargePower());
        }
        if (other.getServStat() != 0) {
          setServStat(other.getServStat());
        }
        if (other.getServAvail() != 0) {
          setServAvail(other.getServAvail());
        }
        if (other.getUseCase() != 0) {
          setUseCase(other.getUseCase());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                chargeStatus_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                ctrlDuration_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                ctrlInfo_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                chargePower_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                servStat_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                servAvail_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 56: {
                useCase_ = input.readInt32();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int chargeStatus_ = 0;
      /**
       * <code>.proto.ChargingPowerControl.ChargingStatusForPowerControl charge_status = 1;</code>
       * @return The enum numeric value on the wire for chargeStatus.
       */
      @java.lang.Override public int getChargeStatusValue() {
        return chargeStatus_;
      }
      /**
       * <code>.proto.ChargingPowerControl.ChargingStatusForPowerControl charge_status = 1;</code>
       * @param value The enum numeric value on the wire for chargeStatus to set.
       * @return This builder for chaining.
       */
      public Builder setChargeStatusValue(int value) {
        chargeStatus_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingPowerControl.ChargingStatusForPowerControl charge_status = 1;</code>
       * @return The chargeStatus.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.ChargingStatusForPowerControl getChargeStatus() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.ChargingStatusForPowerControl result = com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.ChargingStatusForPowerControl.forNumber(chargeStatus_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.ChargingStatusForPowerControl.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.ChargingPowerControl.ChargingStatusForPowerControl charge_status = 1;</code>
       * @param value The chargeStatus to set.
       * @return This builder for chaining.
       */
      public Builder setChargeStatus(com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl.ChargingStatusForPowerControl value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        chargeStatus_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingPowerControl.ChargingStatusForPowerControl charge_status = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearChargeStatus() {
        bitField0_ = (bitField0_ & ~0x00000001);
        chargeStatus_ = 0;
        onChanged();
        return this;
      }

      private int ctrlDuration_ ;
      /**
       * <code>int32 ctrl_duration = 2;</code>
       * @return The ctrlDuration.
       */
      @java.lang.Override
      public int getCtrlDuration() {
        return ctrlDuration_;
      }
      /**
       * <code>int32 ctrl_duration = 2;</code>
       * @param value The ctrlDuration to set.
       * @return This builder for chaining.
       */
      public Builder setCtrlDuration(int value) {

        ctrlDuration_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 ctrl_duration = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCtrlDuration() {
        bitField0_ = (bitField0_ & ~0x00000002);
        ctrlDuration_ = 0;
        onChanged();
        return this;
      }

      private int ctrlInfo_ ;
      /**
       * <code>int32 ctrl_info = 3;</code>
       * @return The ctrlInfo.
       */
      @java.lang.Override
      public int getCtrlInfo() {
        return ctrlInfo_;
      }
      /**
       * <code>int32 ctrl_info = 3;</code>
       * @param value The ctrlInfo to set.
       * @return This builder for chaining.
       */
      public Builder setCtrlInfo(int value) {

        ctrlInfo_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 ctrl_info = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearCtrlInfo() {
        bitField0_ = (bitField0_ & ~0x00000004);
        ctrlInfo_ = 0;
        onChanged();
        return this;
      }

      private int chargePower_ ;
      /**
       * <code>int32 charge_power = 4;</code>
       * @return The chargePower.
       */
      @java.lang.Override
      public int getChargePower() {
        return chargePower_;
      }
      /**
       * <code>int32 charge_power = 4;</code>
       * @param value The chargePower to set.
       * @return This builder for chaining.
       */
      public Builder setChargePower(int value) {

        chargePower_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>int32 charge_power = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearChargePower() {
        bitField0_ = (bitField0_ & ~0x00000008);
        chargePower_ = 0;
        onChanged();
        return this;
      }

      private int servStat_ ;
      /**
       * <code>int32 serv_stat = 5;</code>
       * @return The servStat.
       */
      @java.lang.Override
      public int getServStat() {
        return servStat_;
      }
      /**
       * <code>int32 serv_stat = 5;</code>
       * @param value The servStat to set.
       * @return This builder for chaining.
       */
      public Builder setServStat(int value) {

        servStat_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>int32 serv_stat = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearServStat() {
        bitField0_ = (bitField0_ & ~0x00000010);
        servStat_ = 0;
        onChanged();
        return this;
      }

      private int servAvail_ ;
      /**
       * <code>int32 serv_avail = 6;</code>
       * @return The servAvail.
       */
      @java.lang.Override
      public int getServAvail() {
        return servAvail_;
      }
      /**
       * <code>int32 serv_avail = 6;</code>
       * @param value The servAvail to set.
       * @return This builder for chaining.
       */
      public Builder setServAvail(int value) {

        servAvail_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>int32 serv_avail = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearServAvail() {
        bitField0_ = (bitField0_ & ~0x00000020);
        servAvail_ = 0;
        onChanged();
        return this;
      }

      private int useCase_ ;
      /**
       * <code>int32 use_case = 7;</code>
       * @return The useCase.
       */
      @java.lang.Override
      public int getUseCase() {
        return useCase_;
      }
      /**
       * <code>int32 use_case = 7;</code>
       * @param value The useCase to set.
       * @return This builder for chaining.
       */
      public Builder setUseCase(int value) {

        useCase_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>int32 use_case = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearUseCase() {
        bitField0_ = (bitField0_ & ~0x00000040);
        useCase_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.ChargingPowerControl)
    }

    // @@protoc_insertion_point(class_scope:proto.ChargingPowerControl)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChargingPowerControl>
        PARSER = new com.google.protobuf.AbstractParser<ChargingPowerControl>() {
      @java.lang.Override
      public ChargingPowerControl parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChargingPowerControl> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChargingPowerControl> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingPowerControl getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargingBreakClockTimerEntryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ChargingBreakClockTimerEntry)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.proto.ChargingBreakClockTimerEntryStatus status = 1;</code>
     * @return The enum numeric value on the wire for status.
     */
    int getStatusValue();
    /**
     * <code>.proto.ChargingBreakClockTimerEntryStatus status = 1;</code>
     * @return The status.
     */
    com.daimler.mbcarkit.proto.VehicleCommands.ChargingBreakClockTimerEntryStatus getStatus();

    /**
     * <code>int32 endTimeHour = 2;</code>
     * @return The endTimeHour.
     */
    int getEndTimeHour();

    /**
     * <code>int32 endTimeMinute = 3;</code>
     * @return The endTimeMinute.
     */
    int getEndTimeMinute();

    /**
     * <code>int32 startTimeHour = 4;</code>
     * @return The startTimeHour.
     */
    int getStartTimeHour();

    /**
     * <code>int32 startTimeMinute = 5;</code>
     * @return The startTimeMinute.
     */
    int getStartTimeMinute();

    /**
     * <code>int32 timerId = 6;</code>
     * @return The timerId.
     */
    int getTimerId();
  }
  /**
   * Protobuf type {@code proto.ChargingBreakClockTimerEntry}
   */
  public static final class ChargingBreakClockTimerEntry extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.ChargingBreakClockTimerEntry)
      ChargingBreakClockTimerEntryOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargingBreakClockTimerEntry");
    }
    // Use ChargingBreakClockTimerEntry.newBuilder() to construct.
    private ChargingBreakClockTimerEntry(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ChargingBreakClockTimerEntry() {
      status_ = 0;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingBreakClockTimerEntry_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingBreakClockTimerEntry_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.Builder.class);
    }

    public static final int STATUS_FIELD_NUMBER = 1;
    private int status_ = 0;
    /**
     * <code>.proto.ChargingBreakClockTimerEntryStatus status = 1;</code>
     * @return The enum numeric value on the wire for status.
     */
    @java.lang.Override public int getStatusValue() {
      return status_;
    }
    /**
     * <code>.proto.ChargingBreakClockTimerEntryStatus status = 1;</code>
     * @return The status.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleCommands.ChargingBreakClockTimerEntryStatus getStatus() {
      com.daimler.mbcarkit.proto.VehicleCommands.ChargingBreakClockTimerEntryStatus result = com.daimler.mbcarkit.proto.VehicleCommands.ChargingBreakClockTimerEntryStatus.forNumber(status_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.ChargingBreakClockTimerEntryStatus.UNRECOGNIZED : result;
    }

    public static final int ENDTIMEHOUR_FIELD_NUMBER = 2;
    private int endTimeHour_ = 0;
    /**
     * <code>int32 endTimeHour = 2;</code>
     * @return The endTimeHour.
     */
    @java.lang.Override
    public int getEndTimeHour() {
      return endTimeHour_;
    }

    public static final int ENDTIMEMINUTE_FIELD_NUMBER = 3;
    private int endTimeMinute_ = 0;
    /**
     * <code>int32 endTimeMinute = 3;</code>
     * @return The endTimeMinute.
     */
    @java.lang.Override
    public int getEndTimeMinute() {
      return endTimeMinute_;
    }

    public static final int STARTTIMEHOUR_FIELD_NUMBER = 4;
    private int startTimeHour_ = 0;
    /**
     * <code>int32 startTimeHour = 4;</code>
     * @return The startTimeHour.
     */
    @java.lang.Override
    public int getStartTimeHour() {
      return startTimeHour_;
    }

    public static final int STARTTIMEMINUTE_FIELD_NUMBER = 5;
    private int startTimeMinute_ = 0;
    /**
     * <code>int32 startTimeMinute = 5;</code>
     * @return The startTimeMinute.
     */
    @java.lang.Override
    public int getStartTimeMinute() {
      return startTimeMinute_;
    }

    public static final int TIMERID_FIELD_NUMBER = 6;
    private int timerId_ = 0;
    /**
     * <code>int32 timerId = 6;</code>
     * @return The timerId.
     */
    @java.lang.Override
    public int getTimerId() {
      return timerId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (status_ != com.daimler.mbcarkit.proto.VehicleCommands.ChargingBreakClockTimerEntryStatus.DELETE.getNumber()) {
        output.writeEnum(1, status_);
      }
      if (endTimeHour_ != 0) {
        output.writeInt32(2, endTimeHour_);
      }
      if (endTimeMinute_ != 0) {
        output.writeInt32(3, endTimeMinute_);
      }
      if (startTimeHour_ != 0) {
        output.writeInt32(4, startTimeHour_);
      }
      if (startTimeMinute_ != 0) {
        output.writeInt32(5, startTimeMinute_);
      }
      if (timerId_ != 0) {
        output.writeInt32(6, timerId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (status_ != com.daimler.mbcarkit.proto.VehicleCommands.ChargingBreakClockTimerEntryStatus.DELETE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, status_);
      }
      if (endTimeHour_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, endTimeHour_);
      }
      if (endTimeMinute_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, endTimeMinute_);
      }
      if (startTimeHour_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, startTimeHour_);
      }
      if (startTimeMinute_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, startTimeMinute_);
      }
      if (timerId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, timerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry) obj;

      if (status_ != other.status_) return false;
      if (getEndTimeHour()
          != other.getEndTimeHour()) return false;
      if (getEndTimeMinute()
          != other.getEndTimeMinute()) return false;
      if (getStartTimeHour()
          != other.getStartTimeHour()) return false;
      if (getStartTimeMinute()
          != other.getStartTimeMinute()) return false;
      if (getTimerId()
          != other.getTimerId()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + STATUS_FIELD_NUMBER;
      hash = (53 * hash) + status_;
      hash = (37 * hash) + ENDTIMEHOUR_FIELD_NUMBER;
      hash = (53 * hash) + getEndTimeHour();
      hash = (37 * hash) + ENDTIMEMINUTE_FIELD_NUMBER;
      hash = (53 * hash) + getEndTimeMinute();
      hash = (37 * hash) + STARTTIMEHOUR_FIELD_NUMBER;
      hash = (53 * hash) + getStartTimeHour();
      hash = (37 * hash) + STARTTIMEMINUTE_FIELD_NUMBER;
      hash = (53 * hash) + getStartTimeMinute();
      hash = (37 * hash) + TIMERID_FIELD_NUMBER;
      hash = (53 * hash) + getTimerId();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.ChargingBreakClockTimerEntry}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ChargingBreakClockTimerEntry)
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingBreakClockTimerEntry_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingBreakClockTimerEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        status_ = 0;
        endTimeHour_ = 0;
        endTimeMinute_ = 0;
        startTimeHour_ = 0;
        startTimeMinute_ = 0;
        timerId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargingBreakClockTimerEntry_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry build() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.status_ = status_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.endTimeHour_ = endTimeHour_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.endTimeMinute_ = endTimeMinute_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.startTimeHour_ = startTimeHour_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.startTimeMinute_ = startTimeMinute_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.timerId_ = timerId_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry.getDefaultInstance()) return this;
        if (other.status_ != 0) {
          setStatusValue(other.getStatusValue());
        }
        if (other.getEndTimeHour() != 0) {
          setEndTimeHour(other.getEndTimeHour());
        }
        if (other.getEndTimeMinute() != 0) {
          setEndTimeMinute(other.getEndTimeMinute());
        }
        if (other.getStartTimeHour() != 0) {
          setStartTimeHour(other.getStartTimeHour());
        }
        if (other.getStartTimeMinute() != 0) {
          setStartTimeMinute(other.getStartTimeMinute());
        }
        if (other.getTimerId() != 0) {
          setTimerId(other.getTimerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                status_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                endTimeHour_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                endTimeMinute_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                startTimeHour_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                startTimeMinute_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                timerId_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int status_ = 0;
      /**
       * <code>.proto.ChargingBreakClockTimerEntryStatus status = 1;</code>
       * @return The enum numeric value on the wire for status.
       */
      @java.lang.Override public int getStatusValue() {
        return status_;
      }
      /**
       * <code>.proto.ChargingBreakClockTimerEntryStatus status = 1;</code>
       * @param value The enum numeric value on the wire for status to set.
       * @return This builder for chaining.
       */
      public Builder setStatusValue(int value) {
        status_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingBreakClockTimerEntryStatus status = 1;</code>
       * @return The status.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleCommands.ChargingBreakClockTimerEntryStatus getStatus() {
        com.daimler.mbcarkit.proto.VehicleCommands.ChargingBreakClockTimerEntryStatus result = com.daimler.mbcarkit.proto.VehicleCommands.ChargingBreakClockTimerEntryStatus.forNumber(status_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.ChargingBreakClockTimerEntryStatus.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.ChargingBreakClockTimerEntryStatus status = 1;</code>
       * @param value The status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(com.daimler.mbcarkit.proto.VehicleCommands.ChargingBreakClockTimerEntryStatus value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        status_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargingBreakClockTimerEntryStatus status = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000001);
        status_ = 0;
        onChanged();
        return this;
      }

      private int endTimeHour_ ;
      /**
       * <code>int32 endTimeHour = 2;</code>
       * @return The endTimeHour.
       */
      @java.lang.Override
      public int getEndTimeHour() {
        return endTimeHour_;
      }
      /**
       * <code>int32 endTimeHour = 2;</code>
       * @param value The endTimeHour to set.
       * @return This builder for chaining.
       */
      public Builder setEndTimeHour(int value) {

        endTimeHour_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 endTimeHour = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndTimeHour() {
        bitField0_ = (bitField0_ & ~0x00000002);
        endTimeHour_ = 0;
        onChanged();
        return this;
      }

      private int endTimeMinute_ ;
      /**
       * <code>int32 endTimeMinute = 3;</code>
       * @return The endTimeMinute.
       */
      @java.lang.Override
      public int getEndTimeMinute() {
        return endTimeMinute_;
      }
      /**
       * <code>int32 endTimeMinute = 3;</code>
       * @param value The endTimeMinute to set.
       * @return This builder for chaining.
       */
      public Builder setEndTimeMinute(int value) {

        endTimeMinute_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 endTimeMinute = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndTimeMinute() {
        bitField0_ = (bitField0_ & ~0x00000004);
        endTimeMinute_ = 0;
        onChanged();
        return this;
      }

      private int startTimeHour_ ;
      /**
       * <code>int32 startTimeHour = 4;</code>
       * @return The startTimeHour.
       */
      @java.lang.Override
      public int getStartTimeHour() {
        return startTimeHour_;
      }
      /**
       * <code>int32 startTimeHour = 4;</code>
       * @param value The startTimeHour to set.
       * @return This builder for chaining.
       */
      public Builder setStartTimeHour(int value) {

        startTimeHour_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>int32 startTimeHour = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartTimeHour() {
        bitField0_ = (bitField0_ & ~0x00000008);
        startTimeHour_ = 0;
        onChanged();
        return this;
      }

      private int startTimeMinute_ ;
      /**
       * <code>int32 startTimeMinute = 5;</code>
       * @return The startTimeMinute.
       */
      @java.lang.Override
      public int getStartTimeMinute() {
        return startTimeMinute_;
      }
      /**
       * <code>int32 startTimeMinute = 5;</code>
       * @param value The startTimeMinute to set.
       * @return This builder for chaining.
       */
      public Builder setStartTimeMinute(int value) {

        startTimeMinute_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>int32 startTimeMinute = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartTimeMinute() {
        bitField0_ = (bitField0_ & ~0x00000010);
        startTimeMinute_ = 0;
        onChanged();
        return this;
      }

      private int timerId_ ;
      /**
       * <code>int32 timerId = 6;</code>
       * @return The timerId.
       */
      @java.lang.Override
      public int getTimerId() {
        return timerId_;
      }
      /**
       * <code>int32 timerId = 6;</code>
       * @param value The timerId to set.
       * @return This builder for chaining.
       */
      public Builder setTimerId(int value) {

        timerId_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>int32 timerId = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimerId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        timerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.ChargingBreakClockTimerEntry)
    }

    // @@protoc_insertion_point(class_scope:proto.ChargingBreakClockTimerEntry)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChargingBreakClockTimerEntry>
        PARSER = new com.google.protobuf.AbstractParser<ChargingBreakClockTimerEntry>() {
      @java.lang.Override
      public ChargingBreakClockTimerEntry parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChargingBreakClockTimerEntry> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChargingBreakClockTimerEntry> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargingBreakClockTimerEntry getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargeProgramsValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ChargeProgramsValue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters> 
        getChargeProgramParametersList();
    /**
     * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters getChargeProgramParameters(int index);
    /**
     * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
     */
    int getChargeProgramParametersCount();
    /**
     * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
     */
    java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParametersOrBuilder> 
        getChargeProgramParametersOrBuilderList();
    /**
     * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParametersOrBuilder getChargeProgramParametersOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code proto.ChargeProgramsValue}
   */
  public static final class ChargeProgramsValue extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.ChargeProgramsValue)
      ChargeProgramsValueOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargeProgramsValue");
    }
    // Use ChargeProgramsValue.newBuilder() to construct.
    private ChargeProgramsValue(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ChargeProgramsValue() {
      chargeProgramParameters_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramsValue_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramsValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.Builder.class);
    }

    public static final int CHARGE_PROGRAM_PARAMETERS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters> chargeProgramParameters_;
    /**
     * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters> getChargeProgramParametersList() {
      return chargeProgramParameters_;
    }
    /**
     * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParametersOrBuilder> 
        getChargeProgramParametersOrBuilderList() {
      return chargeProgramParameters_;
    }
    /**
     * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
     */
    @java.lang.Override
    public int getChargeProgramParametersCount() {
      return chargeProgramParameters_.size();
    }
    /**
     * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters getChargeProgramParameters(int index) {
      return chargeProgramParameters_.get(index);
    }
    /**
     * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParametersOrBuilder getChargeProgramParametersOrBuilder(
        int index) {
      return chargeProgramParameters_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < chargeProgramParameters_.size(); i++) {
        output.writeMessage(1, chargeProgramParameters_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < chargeProgramParameters_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, chargeProgramParameters_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) obj;

      if (!getChargeProgramParametersList()
          .equals(other.getChargeProgramParametersList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getChargeProgramParametersCount() > 0) {
        hash = (37 * hash) + CHARGE_PROGRAM_PARAMETERS_FIELD_NUMBER;
        hash = (53 * hash) + getChargeProgramParametersList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.ChargeProgramsValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ChargeProgramsValue)
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramsValue_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramsValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (chargeProgramParametersBuilder_ == null) {
          chargeProgramParameters_ = java.util.Collections.emptyList();
        } else {
          chargeProgramParameters_ = null;
          chargeProgramParametersBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramsValue_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue build() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue result) {
        if (chargeProgramParametersBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            chargeProgramParameters_ = java.util.Collections.unmodifiableList(chargeProgramParameters_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.chargeProgramParameters_ = chargeProgramParameters_;
        } else {
          result.chargeProgramParameters_ = chargeProgramParametersBuilder_.build();
        }
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance()) return this;
        if (chargeProgramParametersBuilder_ == null) {
          if (!other.chargeProgramParameters_.isEmpty()) {
            if (chargeProgramParameters_.isEmpty()) {
              chargeProgramParameters_ = other.chargeProgramParameters_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureChargeProgramParametersIsMutable();
              chargeProgramParameters_.addAll(other.chargeProgramParameters_);
            }
            onChanged();
          }
        } else {
          if (!other.chargeProgramParameters_.isEmpty()) {
            if (chargeProgramParametersBuilder_.isEmpty()) {
              chargeProgramParametersBuilder_.dispose();
              chargeProgramParametersBuilder_ = null;
              chargeProgramParameters_ = other.chargeProgramParameters_;
              bitField0_ = (bitField0_ & ~0x00000001);
              chargeProgramParametersBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetChargeProgramParametersFieldBuilder() : null;
            } else {
              chargeProgramParametersBuilder_.addAllMessages(other.chargeProgramParameters_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters m =
                    input.readMessage(
                        com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.parser(),
                        extensionRegistry);
                if (chargeProgramParametersBuilder_ == null) {
                  ensureChargeProgramParametersIsMutable();
                  chargeProgramParameters_.add(m);
                } else {
                  chargeProgramParametersBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters> chargeProgramParameters_ =
        java.util.Collections.emptyList();
      private void ensureChargeProgramParametersIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          chargeProgramParameters_ = new java.util.ArrayList<com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters>(chargeProgramParameters_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParametersOrBuilder> chargeProgramParametersBuilder_;

      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters> getChargeProgramParametersList() {
        if (chargeProgramParametersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(chargeProgramParameters_);
        } else {
          return chargeProgramParametersBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public int getChargeProgramParametersCount() {
        if (chargeProgramParametersBuilder_ == null) {
          return chargeProgramParameters_.size();
        } else {
          return chargeProgramParametersBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters getChargeProgramParameters(int index) {
        if (chargeProgramParametersBuilder_ == null) {
          return chargeProgramParameters_.get(index);
        } else {
          return chargeProgramParametersBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public Builder setChargeProgramParameters(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters value) {
        if (chargeProgramParametersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChargeProgramParametersIsMutable();
          chargeProgramParameters_.set(index, value);
          onChanged();
        } else {
          chargeProgramParametersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public Builder setChargeProgramParameters(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder builderForValue) {
        if (chargeProgramParametersBuilder_ == null) {
          ensureChargeProgramParametersIsMutable();
          chargeProgramParameters_.set(index, builderForValue.build());
          onChanged();
        } else {
          chargeProgramParametersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public Builder addChargeProgramParameters(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters value) {
        if (chargeProgramParametersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChargeProgramParametersIsMutable();
          chargeProgramParameters_.add(value);
          onChanged();
        } else {
          chargeProgramParametersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public Builder addChargeProgramParameters(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters value) {
        if (chargeProgramParametersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChargeProgramParametersIsMutable();
          chargeProgramParameters_.add(index, value);
          onChanged();
        } else {
          chargeProgramParametersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public Builder addChargeProgramParameters(
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder builderForValue) {
        if (chargeProgramParametersBuilder_ == null) {
          ensureChargeProgramParametersIsMutable();
          chargeProgramParameters_.add(builderForValue.build());
          onChanged();
        } else {
          chargeProgramParametersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public Builder addChargeProgramParameters(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder builderForValue) {
        if (chargeProgramParametersBuilder_ == null) {
          ensureChargeProgramParametersIsMutable();
          chargeProgramParameters_.add(index, builderForValue.build());
          onChanged();
        } else {
          chargeProgramParametersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public Builder addAllChargeProgramParameters(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters> values) {
        if (chargeProgramParametersBuilder_ == null) {
          ensureChargeProgramParametersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, chargeProgramParameters_);
          onChanged();
        } else {
          chargeProgramParametersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public Builder clearChargeProgramParameters() {
        if (chargeProgramParametersBuilder_ == null) {
          chargeProgramParameters_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          chargeProgramParametersBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public Builder removeChargeProgramParameters(int index) {
        if (chargeProgramParametersBuilder_ == null) {
          ensureChargeProgramParametersIsMutable();
          chargeProgramParameters_.remove(index);
          onChanged();
        } else {
          chargeProgramParametersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder getChargeProgramParametersBuilder(
          int index) {
        return internalGetChargeProgramParametersFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParametersOrBuilder getChargeProgramParametersOrBuilder(
          int index) {
        if (chargeProgramParametersBuilder_ == null) {
          return chargeProgramParameters_.get(index);  } else {
          return chargeProgramParametersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParametersOrBuilder> 
           getChargeProgramParametersOrBuilderList() {
        if (chargeProgramParametersBuilder_ != null) {
          return chargeProgramParametersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(chargeProgramParameters_);
        }
      }
      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder addChargeProgramParametersBuilder() {
        return internalGetChargeProgramParametersFieldBuilder().addBuilder(
            com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder addChargeProgramParametersBuilder(
          int index) {
        return internalGetChargeProgramParametersFieldBuilder().addBuilder(
            index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.ChargeProgramParameters charge_program_parameters = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder> 
           getChargeProgramParametersBuilderList() {
        return internalGetChargeProgramParametersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParametersOrBuilder> 
          internalGetChargeProgramParametersFieldBuilder() {
        if (chargeProgramParametersBuilder_ == null) {
          chargeProgramParametersBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParametersOrBuilder>(
                  chargeProgramParameters_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          chargeProgramParameters_ = null;
        }
        return chargeProgramParametersBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:proto.ChargeProgramsValue)
    }

    // @@protoc_insertion_point(class_scope:proto.ChargeProgramsValue)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChargeProgramsValue>
        PARSER = new com.google.protobuf.AbstractParser<ChargeProgramsValue>() {
      @java.lang.Override
      public ChargeProgramsValue parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChargeProgramsValue> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChargeProgramsValue> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargeProgramParametersOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ChargeProgramParameters)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"];</code>
     * @return The enum numeric value on the wire for chargeProgram.
     */
    int getChargeProgramValue();
    /**
     * <code>.proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"];</code>
     * @return The chargeProgram.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram getChargeProgram();

    /**
     * <pre>
     * 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]
     * </pre>
     *
     * <code>int32 max_soc = 2 [json_name = "maxSoc"];</code>
     * @return The maxSoc.
     */
    int getMaxSoc();

    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>bool auto_unlock = 3 [json_name = "autounlock"];</code>
     * @return The autoUnlock.
     */
    boolean getAutoUnlock();

    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>bool location_based_charging = 4 [json_name = "locationbasedcharging"];</code>
     * @return The locationBasedCharging.
     */
    boolean getLocationBasedCharging();

    /**
     * <code>bool weekly_profile = 5 [json_name = "weeklyprofile"];</code>
     * @return The weeklyProfile.
     */
    boolean getWeeklyProfile();

    /**
     * <code>bool clockTimer = 6 [json_name = "clockTimer"];</code>
     * @return The clockTimer.
     */
    boolean getClockTimer();

    /**
     * <code>int32 max_charging_current = 7 [json_name = "MaxChargingCurrent"];</code>
     * @return The maxChargingCurrent.
     */
    int getMaxChargingCurrent();

    /**
     * <code>bool eco_charging = 8 [json_name = "EcoCharging"];</code>
     * @return The ecoCharging.
     */
    boolean getEcoCharging();
  }
  /**
   * Protobuf type {@code proto.ChargeProgramParameters}
   */
  public static final class ChargeProgramParameters extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.ChargeProgramParameters)
      ChargeProgramParametersOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ChargeProgramParameters");
    }
    // Use ChargeProgramParameters.newBuilder() to construct.
    private ChargeProgramParameters(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ChargeProgramParameters() {
      chargeProgram_ = 0;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramParameters_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramParameters_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder.class);
    }

    public static final int CHARGE_PROGRAM_FIELD_NUMBER = 1;
    private int chargeProgram_ = 0;
    /**
     * <code>.proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"];</code>
     * @return The enum numeric value on the wire for chargeProgram.
     */
    @java.lang.Override public int getChargeProgramValue() {
      return chargeProgram_;
    }
    /**
     * <code>.proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"];</code>
     * @return The chargeProgram.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram getChargeProgram() {
      com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram result = com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram.forNumber(chargeProgram_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram.UNRECOGNIZED : result;
    }

    public static final int MAX_SOC_FIELD_NUMBER = 2;
    private int maxSoc_ = 0;
    /**
     * <pre>
     * 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]
     * </pre>
     *
     * <code>int32 max_soc = 2 [json_name = "maxSoc"];</code>
     * @return The maxSoc.
     */
    @java.lang.Override
    public int getMaxSoc() {
      return maxSoc_;
    }

    public static final int AUTO_UNLOCK_FIELD_NUMBER = 3;
    private boolean autoUnlock_ = false;
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>bool auto_unlock = 3 [json_name = "autounlock"];</code>
     * @return The autoUnlock.
     */
    @java.lang.Override
    public boolean getAutoUnlock() {
      return autoUnlock_;
    }

    public static final int LOCATION_BASED_CHARGING_FIELD_NUMBER = 4;
    private boolean locationBasedCharging_ = false;
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>bool location_based_charging = 4 [json_name = "locationbasedcharging"];</code>
     * @return The locationBasedCharging.
     */
    @java.lang.Override
    public boolean getLocationBasedCharging() {
      return locationBasedCharging_;
    }

    public static final int WEEKLY_PROFILE_FIELD_NUMBER = 5;
    private boolean weeklyProfile_ = false;
    /**
     * <code>bool weekly_profile = 5 [json_name = "weeklyprofile"];</code>
     * @return The weeklyProfile.
     */
    @java.lang.Override
    public boolean getWeeklyProfile() {
      return weeklyProfile_;
    }

    public static final int CLOCKTIMER_FIELD_NUMBER = 6;
    private boolean clockTimer_ = false;
    /**
     * <code>bool clockTimer = 6 [json_name = "clockTimer"];</code>
     * @return The clockTimer.
     */
    @java.lang.Override
    public boolean getClockTimer() {
      return clockTimer_;
    }

    public static final int MAX_CHARGING_CURRENT_FIELD_NUMBER = 7;
    private int maxChargingCurrent_ = 0;
    /**
     * <code>int32 max_charging_current = 7 [json_name = "MaxChargingCurrent"];</code>
     * @return The maxChargingCurrent.
     */
    @java.lang.Override
    public int getMaxChargingCurrent() {
      return maxChargingCurrent_;
    }

    public static final int ECO_CHARGING_FIELD_NUMBER = 8;
    private boolean ecoCharging_ = false;
    /**
     * <code>bool eco_charging = 8 [json_name = "EcoCharging"];</code>
     * @return The ecoCharging.
     */
    @java.lang.Override
    public boolean getEcoCharging() {
      return ecoCharging_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (chargeProgram_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram.DEFAULT_CHARGE_PROGRAM.getNumber()) {
        output.writeEnum(1, chargeProgram_);
      }
      if (maxSoc_ != 0) {
        output.writeInt32(2, maxSoc_);
      }
      if (autoUnlock_ != false) {
        output.writeBool(3, autoUnlock_);
      }
      if (locationBasedCharging_ != false) {
        output.writeBool(4, locationBasedCharging_);
      }
      if (weeklyProfile_ != false) {
        output.writeBool(5, weeklyProfile_);
      }
      if (clockTimer_ != false) {
        output.writeBool(6, clockTimer_);
      }
      if (maxChargingCurrent_ != 0) {
        output.writeInt32(7, maxChargingCurrent_);
      }
      if (ecoCharging_ != false) {
        output.writeBool(8, ecoCharging_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (chargeProgram_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram.DEFAULT_CHARGE_PROGRAM.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, chargeProgram_);
      }
      if (maxSoc_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, maxSoc_);
      }
      if (autoUnlock_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, autoUnlock_);
      }
      if (locationBasedCharging_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, locationBasedCharging_);
      }
      if (weeklyProfile_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, weeklyProfile_);
      }
      if (clockTimer_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, clockTimer_);
      }
      if (maxChargingCurrent_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, maxChargingCurrent_);
      }
      if (ecoCharging_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, ecoCharging_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters) obj;

      if (chargeProgram_ != other.chargeProgram_) return false;
      if (getMaxSoc()
          != other.getMaxSoc()) return false;
      if (getAutoUnlock()
          != other.getAutoUnlock()) return false;
      if (getLocationBasedCharging()
          != other.getLocationBasedCharging()) return false;
      if (getWeeklyProfile()
          != other.getWeeklyProfile()) return false;
      if (getClockTimer()
          != other.getClockTimer()) return false;
      if (getMaxChargingCurrent()
          != other.getMaxChargingCurrent()) return false;
      if (getEcoCharging()
          != other.getEcoCharging()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + CHARGE_PROGRAM_FIELD_NUMBER;
      hash = (53 * hash) + chargeProgram_;
      hash = (37 * hash) + MAX_SOC_FIELD_NUMBER;
      hash = (53 * hash) + getMaxSoc();
      hash = (37 * hash) + AUTO_UNLOCK_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getAutoUnlock());
      hash = (37 * hash) + LOCATION_BASED_CHARGING_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getLocationBasedCharging());
      hash = (37 * hash) + WEEKLY_PROFILE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getWeeklyProfile());
      hash = (37 * hash) + CLOCKTIMER_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getClockTimer());
      hash = (37 * hash) + MAX_CHARGING_CURRENT_FIELD_NUMBER;
      hash = (53 * hash) + getMaxChargingCurrent();
      hash = (37 * hash) + ECO_CHARGING_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getEcoCharging());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.ChargeProgramParameters}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ChargeProgramParameters)
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParametersOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramParameters_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramParameters_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        chargeProgram_ = 0;
        maxSoc_ = 0;
        autoUnlock_ = false;
        locationBasedCharging_ = false;
        weeklyProfile_ = false;
        clockTimer_ = false;
        maxChargingCurrent_ = 0;
        ecoCharging_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramParameters_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters build() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.chargeProgram_ = chargeProgram_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.maxSoc_ = maxSoc_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.autoUnlock_ = autoUnlock_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.locationBasedCharging_ = locationBasedCharging_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.weeklyProfile_ = weeklyProfile_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.clockTimer_ = clockTimer_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.maxChargingCurrent_ = maxChargingCurrent_;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.ecoCharging_ = ecoCharging_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.getDefaultInstance()) return this;
        if (other.chargeProgram_ != 0) {
          setChargeProgramValue(other.getChargeProgramValue());
        }
        if (other.getMaxSoc() != 0) {
          setMaxSoc(other.getMaxSoc());
        }
        if (other.getAutoUnlock() != false) {
          setAutoUnlock(other.getAutoUnlock());
        }
        if (other.getLocationBasedCharging() != false) {
          setLocationBasedCharging(other.getLocationBasedCharging());
        }
        if (other.getWeeklyProfile() != false) {
          setWeeklyProfile(other.getWeeklyProfile());
        }
        if (other.getClockTimer() != false) {
          setClockTimer(other.getClockTimer());
        }
        if (other.getMaxChargingCurrent() != 0) {
          setMaxChargingCurrent(other.getMaxChargingCurrent());
        }
        if (other.getEcoCharging() != false) {
          setEcoCharging(other.getEcoCharging());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                chargeProgram_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                maxSoc_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                autoUnlock_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                locationBasedCharging_ = input.readBool();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                weeklyProfile_ = input.readBool();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                clockTimer_ = input.readBool();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 56: {
                maxChargingCurrent_ = input.readInt32();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 64: {
                ecoCharging_ = input.readBool();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int chargeProgram_ = 0;
      /**
       * <code>.proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"];</code>
       * @return The enum numeric value on the wire for chargeProgram.
       */
      @java.lang.Override public int getChargeProgramValue() {
        return chargeProgram_;
      }
      /**
       * <code>.proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"];</code>
       * @param value The enum numeric value on the wire for chargeProgram to set.
       * @return This builder for chaining.
       */
      public Builder setChargeProgramValue(int value) {
        chargeProgram_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"];</code>
       * @return The chargeProgram.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram getChargeProgram() {
        com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram result = com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram.forNumber(chargeProgram_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"];</code>
       * @param value The chargeProgram to set.
       * @return This builder for chaining.
       */
      public Builder setChargeProgram(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        chargeProgram_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"];</code>
       * @return This builder for chaining.
       */
      public Builder clearChargeProgram() {
        bitField0_ = (bitField0_ & ~0x00000001);
        chargeProgram_ = 0;
        onChanged();
        return this;
      }

      private int maxSoc_ ;
      /**
       * <pre>
       * 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]
       * </pre>
       *
       * <code>int32 max_soc = 2 [json_name = "maxSoc"];</code>
       * @return The maxSoc.
       */
      @java.lang.Override
      public int getMaxSoc() {
        return maxSoc_;
      }
      /**
       * <pre>
       * 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]
       * </pre>
       *
       * <code>int32 max_soc = 2 [json_name = "maxSoc"];</code>
       * @param value The maxSoc to set.
       * @return This builder for chaining.
       */
      public Builder setMaxSoc(int value) {

        maxSoc_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 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]
       * </pre>
       *
       * <code>int32 max_soc = 2 [json_name = "maxSoc"];</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxSoc() {
        bitField0_ = (bitField0_ & ~0x00000002);
        maxSoc_ = 0;
        onChanged();
        return this;
      }

      private boolean autoUnlock_ ;
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>bool auto_unlock = 3 [json_name = "autounlock"];</code>
       * @return The autoUnlock.
       */
      @java.lang.Override
      public boolean getAutoUnlock() {
        return autoUnlock_;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>bool auto_unlock = 3 [json_name = "autounlock"];</code>
       * @param value The autoUnlock to set.
       * @return This builder for chaining.
       */
      public Builder setAutoUnlock(boolean value) {

        autoUnlock_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>bool auto_unlock = 3 [json_name = "autounlock"];</code>
       * @return This builder for chaining.
       */
      public Builder clearAutoUnlock() {
        bitField0_ = (bitField0_ & ~0x00000004);
        autoUnlock_ = false;
        onChanged();
        return this;
      }

      private boolean locationBasedCharging_ ;
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>bool location_based_charging = 4 [json_name = "locationbasedcharging"];</code>
       * @return The locationBasedCharging.
       */
      @java.lang.Override
      public boolean getLocationBasedCharging() {
        return locationBasedCharging_;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>bool location_based_charging = 4 [json_name = "locationbasedcharging"];</code>
       * @param value The locationBasedCharging to set.
       * @return This builder for chaining.
       */
      public Builder setLocationBasedCharging(boolean value) {

        locationBasedCharging_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>bool location_based_charging = 4 [json_name = "locationbasedcharging"];</code>
       * @return This builder for chaining.
       */
      public Builder clearLocationBasedCharging() {
        bitField0_ = (bitField0_ & ~0x00000008);
        locationBasedCharging_ = false;
        onChanged();
        return this;
      }

      private boolean weeklyProfile_ ;
      /**
       * <code>bool weekly_profile = 5 [json_name = "weeklyprofile"];</code>
       * @return The weeklyProfile.
       */
      @java.lang.Override
      public boolean getWeeklyProfile() {
        return weeklyProfile_;
      }
      /**
       * <code>bool weekly_profile = 5 [json_name = "weeklyprofile"];</code>
       * @param value The weeklyProfile to set.
       * @return This builder for chaining.
       */
      public Builder setWeeklyProfile(boolean value) {

        weeklyProfile_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>bool weekly_profile = 5 [json_name = "weeklyprofile"];</code>
       * @return This builder for chaining.
       */
      public Builder clearWeeklyProfile() {
        bitField0_ = (bitField0_ & ~0x00000010);
        weeklyProfile_ = false;
        onChanged();
        return this;
      }

      private boolean clockTimer_ ;
      /**
       * <code>bool clockTimer = 6 [json_name = "clockTimer"];</code>
       * @return The clockTimer.
       */
      @java.lang.Override
      public boolean getClockTimer() {
        return clockTimer_;
      }
      /**
       * <code>bool clockTimer = 6 [json_name = "clockTimer"];</code>
       * @param value The clockTimer to set.
       * @return This builder for chaining.
       */
      public Builder setClockTimer(boolean value) {

        clockTimer_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>bool clockTimer = 6 [json_name = "clockTimer"];</code>
       * @return This builder for chaining.
       */
      public Builder clearClockTimer() {
        bitField0_ = (bitField0_ & ~0x00000020);
        clockTimer_ = false;
        onChanged();
        return this;
      }

      private int maxChargingCurrent_ ;
      /**
       * <code>int32 max_charging_current = 7 [json_name = "MaxChargingCurrent"];</code>
       * @return The maxChargingCurrent.
       */
      @java.lang.Override
      public int getMaxChargingCurrent() {
        return maxChargingCurrent_;
      }
      /**
       * <code>int32 max_charging_current = 7 [json_name = "MaxChargingCurrent"];</code>
       * @param value The maxChargingCurrent to set.
       * @return This builder for chaining.
       */
      public Builder setMaxChargingCurrent(int value) {

        maxChargingCurrent_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>int32 max_charging_current = 7 [json_name = "MaxChargingCurrent"];</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxChargingCurrent() {
        bitField0_ = (bitField0_ & ~0x00000040);
        maxChargingCurrent_ = 0;
        onChanged();
        return this;
      }

      private boolean ecoCharging_ ;
      /**
       * <code>bool eco_charging = 8 [json_name = "EcoCharging"];</code>
       * @return The ecoCharging.
       */
      @java.lang.Override
      public boolean getEcoCharging() {
        return ecoCharging_;
      }
      /**
       * <code>bool eco_charging = 8 [json_name = "EcoCharging"];</code>
       * @param value The ecoCharging to set.
       * @return This builder for chaining.
       */
      public Builder setEcoCharging(boolean value) {

        ecoCharging_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>bool eco_charging = 8 [json_name = "EcoCharging"];</code>
       * @return This builder for chaining.
       */
      public Builder clearEcoCharging() {
        bitField0_ = (bitField0_ & ~0x00000080);
        ecoCharging_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.ChargeProgramParameters)
    }

    // @@protoc_insertion_point(class_scope:proto.ChargeProgramParameters)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ChargeProgramParameters>
        PARSER = new com.google.protobuf.AbstractParser<ChargeProgramParameters>() {
      @java.lang.Override
      public ChargeProgramParameters parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChargeProgramParameters> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ChargeProgramParameters> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WeeklyProfileValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.WeeklyProfileValue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>bool single_time_profile_entries_activatable = 1 [json_name = "singleTimeProfileEntriesActivatable"];</code>
     * @return The singleTimeProfileEntriesActivatable.
     */
    boolean getSingleTimeProfileEntriesActivatable();

    /**
     * <code>int32 max_number_of_weekly_time_profile_slots = 2 [json_name = "maxNumberOfWeeklyTimeProfileSlots"];</code>
     * @return The maxNumberOfWeeklyTimeProfileSlots.
     */
    int getMaxNumberOfWeeklyTimeProfileSlots();

    /**
     * <code>int32 max_number_of_time_profiles = 3 [json_name = "maxNumberOfTimeProfiles"];</code>
     * @return The maxNumberOfTimeProfiles.
     */
    int getMaxNumberOfTimeProfiles();

    /**
     * <code>int32 current_number_of_time_profile_slots = 4 [json_name = "currentNumberOfTimeProfileSlots"];</code>
     * @return The currentNumberOfTimeProfileSlots.
     */
    int getCurrentNumberOfTimeProfileSlots();

    /**
     * <code>int32 current_number_of_time_profiles = 5 [json_name = "currentNumberOfTimeProfiles"];</code>
     * @return The currentNumberOfTimeProfiles.
     */
    int getCurrentNumberOfTimeProfiles();

    /**
     * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile> 
        getTimeProfilesList();
    /**
     * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile getTimeProfiles(int index);
    /**
     * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
     */
    int getTimeProfilesCount();
    /**
     * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
     */
    java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfileOrBuilder> 
        getTimeProfilesOrBuilderList();
    /**
     * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfileOrBuilder getTimeProfilesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code proto.WeeklyProfileValue}
   */
  public static final class WeeklyProfileValue extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.WeeklyProfileValue)
      WeeklyProfileValueOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "WeeklyProfileValue");
    }
    // Use WeeklyProfileValue.newBuilder() to construct.
    private WeeklyProfileValue(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WeeklyProfileValue() {
      timeProfiles_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklyProfileValue_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklyProfileValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.class, com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.Builder.class);
    }

    public static final int SINGLE_TIME_PROFILE_ENTRIES_ACTIVATABLE_FIELD_NUMBER = 1;
    private boolean singleTimeProfileEntriesActivatable_ = false;
    /**
     * <code>bool single_time_profile_entries_activatable = 1 [json_name = "singleTimeProfileEntriesActivatable"];</code>
     * @return The singleTimeProfileEntriesActivatable.
     */
    @java.lang.Override
    public boolean getSingleTimeProfileEntriesActivatable() {
      return singleTimeProfileEntriesActivatable_;
    }

    public static final int MAX_NUMBER_OF_WEEKLY_TIME_PROFILE_SLOTS_FIELD_NUMBER = 2;
    private int maxNumberOfWeeklyTimeProfileSlots_ = 0;
    /**
     * <code>int32 max_number_of_weekly_time_profile_slots = 2 [json_name = "maxNumberOfWeeklyTimeProfileSlots"];</code>
     * @return The maxNumberOfWeeklyTimeProfileSlots.
     */
    @java.lang.Override
    public int getMaxNumberOfWeeklyTimeProfileSlots() {
      return maxNumberOfWeeklyTimeProfileSlots_;
    }

    public static final int MAX_NUMBER_OF_TIME_PROFILES_FIELD_NUMBER = 3;
    private int maxNumberOfTimeProfiles_ = 0;
    /**
     * <code>int32 max_number_of_time_profiles = 3 [json_name = "maxNumberOfTimeProfiles"];</code>
     * @return The maxNumberOfTimeProfiles.
     */
    @java.lang.Override
    public int getMaxNumberOfTimeProfiles() {
      return maxNumberOfTimeProfiles_;
    }

    public static final int CURRENT_NUMBER_OF_TIME_PROFILE_SLOTS_FIELD_NUMBER = 4;
    private int currentNumberOfTimeProfileSlots_ = 0;
    /**
     * <code>int32 current_number_of_time_profile_slots = 4 [json_name = "currentNumberOfTimeProfileSlots"];</code>
     * @return The currentNumberOfTimeProfileSlots.
     */
    @java.lang.Override
    public int getCurrentNumberOfTimeProfileSlots() {
      return currentNumberOfTimeProfileSlots_;
    }

    public static final int CURRENT_NUMBER_OF_TIME_PROFILES_FIELD_NUMBER = 5;
    private int currentNumberOfTimeProfiles_ = 0;
    /**
     * <code>int32 current_number_of_time_profiles = 5 [json_name = "currentNumberOfTimeProfiles"];</code>
     * @return The currentNumberOfTimeProfiles.
     */
    @java.lang.Override
    public int getCurrentNumberOfTimeProfiles() {
      return currentNumberOfTimeProfiles_;
    }

    public static final int TIME_PROFILES_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile> timeProfiles_;
    /**
     * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile> getTimeProfilesList() {
      return timeProfiles_;
    }
    /**
     * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfileOrBuilder> 
        getTimeProfilesOrBuilderList() {
      return timeProfiles_;
    }
    /**
     * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
     */
    @java.lang.Override
    public int getTimeProfilesCount() {
      return timeProfiles_.size();
    }
    /**
     * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile getTimeProfiles(int index) {
      return timeProfiles_.get(index);
    }
    /**
     * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfileOrBuilder getTimeProfilesOrBuilder(
        int index) {
      return timeProfiles_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (singleTimeProfileEntriesActivatable_ != false) {
        output.writeBool(1, singleTimeProfileEntriesActivatable_);
      }
      if (maxNumberOfWeeklyTimeProfileSlots_ != 0) {
        output.writeInt32(2, maxNumberOfWeeklyTimeProfileSlots_);
      }
      if (maxNumberOfTimeProfiles_ != 0) {
        output.writeInt32(3, maxNumberOfTimeProfiles_);
      }
      if (currentNumberOfTimeProfileSlots_ != 0) {
        output.writeInt32(4, currentNumberOfTimeProfileSlots_);
      }
      if (currentNumberOfTimeProfiles_ != 0) {
        output.writeInt32(5, currentNumberOfTimeProfiles_);
      }
      for (int i = 0; i < timeProfiles_.size(); i++) {
        output.writeMessage(6, timeProfiles_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (singleTimeProfileEntriesActivatable_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, singleTimeProfileEntriesActivatable_);
      }
      if (maxNumberOfWeeklyTimeProfileSlots_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, maxNumberOfWeeklyTimeProfileSlots_);
      }
      if (maxNumberOfTimeProfiles_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, maxNumberOfTimeProfiles_);
      }
      if (currentNumberOfTimeProfileSlots_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, currentNumberOfTimeProfileSlots_);
      }
      if (currentNumberOfTimeProfiles_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, currentNumberOfTimeProfiles_);
      }
      for (int i = 0; i < timeProfiles_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, timeProfiles_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue other = (com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) obj;

      if (getSingleTimeProfileEntriesActivatable()
          != other.getSingleTimeProfileEntriesActivatable()) return false;
      if (getMaxNumberOfWeeklyTimeProfileSlots()
          != other.getMaxNumberOfWeeklyTimeProfileSlots()) return false;
      if (getMaxNumberOfTimeProfiles()
          != other.getMaxNumberOfTimeProfiles()) return false;
      if (getCurrentNumberOfTimeProfileSlots()
          != other.getCurrentNumberOfTimeProfileSlots()) return false;
      if (getCurrentNumberOfTimeProfiles()
          != other.getCurrentNumberOfTimeProfiles()) return false;
      if (!getTimeProfilesList()
          .equals(other.getTimeProfilesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SINGLE_TIME_PROFILE_ENTRIES_ACTIVATABLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getSingleTimeProfileEntriesActivatable());
      hash = (37 * hash) + MAX_NUMBER_OF_WEEKLY_TIME_PROFILE_SLOTS_FIELD_NUMBER;
      hash = (53 * hash) + getMaxNumberOfWeeklyTimeProfileSlots();
      hash = (37 * hash) + MAX_NUMBER_OF_TIME_PROFILES_FIELD_NUMBER;
      hash = (53 * hash) + getMaxNumberOfTimeProfiles();
      hash = (37 * hash) + CURRENT_NUMBER_OF_TIME_PROFILE_SLOTS_FIELD_NUMBER;
      hash = (53 * hash) + getCurrentNumberOfTimeProfileSlots();
      hash = (37 * hash) + CURRENT_NUMBER_OF_TIME_PROFILES_FIELD_NUMBER;
      hash = (53 * hash) + getCurrentNumberOfTimeProfiles();
      if (getTimeProfilesCount() > 0) {
        hash = (37 * hash) + TIME_PROFILES_FIELD_NUMBER;
        hash = (53 * hash) + getTimeProfilesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.WeeklyProfileValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.WeeklyProfileValue)
        com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklyProfileValue_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklyProfileValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.class, com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        singleTimeProfileEntriesActivatable_ = false;
        maxNumberOfWeeklyTimeProfileSlots_ = 0;
        maxNumberOfTimeProfiles_ = 0;
        currentNumberOfTimeProfileSlots_ = 0;
        currentNumberOfTimeProfiles_ = 0;
        if (timeProfilesBuilder_ == null) {
          timeProfiles_ = java.util.Collections.emptyList();
        } else {
          timeProfiles_ = null;
          timeProfilesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklyProfileValue_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue build() {
        com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue result = new com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue result) {
        if (timeProfilesBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0)) {
            timeProfiles_ = java.util.Collections.unmodifiableList(timeProfiles_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.timeProfiles_ = timeProfiles_;
        } else {
          result.timeProfiles_ = timeProfilesBuilder_.build();
        }
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.singleTimeProfileEntriesActivatable_ = singleTimeProfileEntriesActivatable_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.maxNumberOfWeeklyTimeProfileSlots_ = maxNumberOfWeeklyTimeProfileSlots_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.maxNumberOfTimeProfiles_ = maxNumberOfTimeProfiles_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.currentNumberOfTimeProfileSlots_ = currentNumberOfTimeProfileSlots_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.currentNumberOfTimeProfiles_ = currentNumberOfTimeProfiles_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance()) return this;
        if (other.getSingleTimeProfileEntriesActivatable() != false) {
          setSingleTimeProfileEntriesActivatable(other.getSingleTimeProfileEntriesActivatable());
        }
        if (other.getMaxNumberOfWeeklyTimeProfileSlots() != 0) {
          setMaxNumberOfWeeklyTimeProfileSlots(other.getMaxNumberOfWeeklyTimeProfileSlots());
        }
        if (other.getMaxNumberOfTimeProfiles() != 0) {
          setMaxNumberOfTimeProfiles(other.getMaxNumberOfTimeProfiles());
        }
        if (other.getCurrentNumberOfTimeProfileSlots() != 0) {
          setCurrentNumberOfTimeProfileSlots(other.getCurrentNumberOfTimeProfileSlots());
        }
        if (other.getCurrentNumberOfTimeProfiles() != 0) {
          setCurrentNumberOfTimeProfiles(other.getCurrentNumberOfTimeProfiles());
        }
        if (timeProfilesBuilder_ == null) {
          if (!other.timeProfiles_.isEmpty()) {
            if (timeProfiles_.isEmpty()) {
              timeProfiles_ = other.timeProfiles_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureTimeProfilesIsMutable();
              timeProfiles_.addAll(other.timeProfiles_);
            }
            onChanged();
          }
        } else {
          if (!other.timeProfiles_.isEmpty()) {
            if (timeProfilesBuilder_.isEmpty()) {
              timeProfilesBuilder_.dispose();
              timeProfilesBuilder_ = null;
              timeProfiles_ = other.timeProfiles_;
              bitField0_ = (bitField0_ & ~0x00000020);
              timeProfilesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetTimeProfilesFieldBuilder() : null;
            } else {
              timeProfilesBuilder_.addAllMessages(other.timeProfiles_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                singleTimeProfileEntriesActivatable_ = input.readBool();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                maxNumberOfWeeklyTimeProfileSlots_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                maxNumberOfTimeProfiles_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                currentNumberOfTimeProfileSlots_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                currentNumberOfTimeProfiles_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 50: {
                com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile m =
                    input.readMessage(
                        com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.parser(),
                        extensionRegistry);
                if (timeProfilesBuilder_ == null) {
                  ensureTimeProfilesIsMutable();
                  timeProfiles_.add(m);
                } else {
                  timeProfilesBuilder_.addMessage(m);
                }
                break;
              } // case 50
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private boolean singleTimeProfileEntriesActivatable_ ;
      /**
       * <code>bool single_time_profile_entries_activatable = 1 [json_name = "singleTimeProfileEntriesActivatable"];</code>
       * @return The singleTimeProfileEntriesActivatable.
       */
      @java.lang.Override
      public boolean getSingleTimeProfileEntriesActivatable() {
        return singleTimeProfileEntriesActivatable_;
      }
      /**
       * <code>bool single_time_profile_entries_activatable = 1 [json_name = "singleTimeProfileEntriesActivatable"];</code>
       * @param value The singleTimeProfileEntriesActivatable to set.
       * @return This builder for chaining.
       */
      public Builder setSingleTimeProfileEntriesActivatable(boolean value) {

        singleTimeProfileEntriesActivatable_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>bool single_time_profile_entries_activatable = 1 [json_name = "singleTimeProfileEntriesActivatable"];</code>
       * @return This builder for chaining.
       */
      public Builder clearSingleTimeProfileEntriesActivatable() {
        bitField0_ = (bitField0_ & ~0x00000001);
        singleTimeProfileEntriesActivatable_ = false;
        onChanged();
        return this;
      }

      private int maxNumberOfWeeklyTimeProfileSlots_ ;
      /**
       * <code>int32 max_number_of_weekly_time_profile_slots = 2 [json_name = "maxNumberOfWeeklyTimeProfileSlots"];</code>
       * @return The maxNumberOfWeeklyTimeProfileSlots.
       */
      @java.lang.Override
      public int getMaxNumberOfWeeklyTimeProfileSlots() {
        return maxNumberOfWeeklyTimeProfileSlots_;
      }
      /**
       * <code>int32 max_number_of_weekly_time_profile_slots = 2 [json_name = "maxNumberOfWeeklyTimeProfileSlots"];</code>
       * @param value The maxNumberOfWeeklyTimeProfileSlots to set.
       * @return This builder for chaining.
       */
      public Builder setMaxNumberOfWeeklyTimeProfileSlots(int value) {

        maxNumberOfWeeklyTimeProfileSlots_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 max_number_of_weekly_time_profile_slots = 2 [json_name = "maxNumberOfWeeklyTimeProfileSlots"];</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxNumberOfWeeklyTimeProfileSlots() {
        bitField0_ = (bitField0_ & ~0x00000002);
        maxNumberOfWeeklyTimeProfileSlots_ = 0;
        onChanged();
        return this;
      }

      private int maxNumberOfTimeProfiles_ ;
      /**
       * <code>int32 max_number_of_time_profiles = 3 [json_name = "maxNumberOfTimeProfiles"];</code>
       * @return The maxNumberOfTimeProfiles.
       */
      @java.lang.Override
      public int getMaxNumberOfTimeProfiles() {
        return maxNumberOfTimeProfiles_;
      }
      /**
       * <code>int32 max_number_of_time_profiles = 3 [json_name = "maxNumberOfTimeProfiles"];</code>
       * @param value The maxNumberOfTimeProfiles to set.
       * @return This builder for chaining.
       */
      public Builder setMaxNumberOfTimeProfiles(int value) {

        maxNumberOfTimeProfiles_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 max_number_of_time_profiles = 3 [json_name = "maxNumberOfTimeProfiles"];</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxNumberOfTimeProfiles() {
        bitField0_ = (bitField0_ & ~0x00000004);
        maxNumberOfTimeProfiles_ = 0;
        onChanged();
        return this;
      }

      private int currentNumberOfTimeProfileSlots_ ;
      /**
       * <code>int32 current_number_of_time_profile_slots = 4 [json_name = "currentNumberOfTimeProfileSlots"];</code>
       * @return The currentNumberOfTimeProfileSlots.
       */
      @java.lang.Override
      public int getCurrentNumberOfTimeProfileSlots() {
        return currentNumberOfTimeProfileSlots_;
      }
      /**
       * <code>int32 current_number_of_time_profile_slots = 4 [json_name = "currentNumberOfTimeProfileSlots"];</code>
       * @param value The currentNumberOfTimeProfileSlots to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentNumberOfTimeProfileSlots(int value) {

        currentNumberOfTimeProfileSlots_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>int32 current_number_of_time_profile_slots = 4 [json_name = "currentNumberOfTimeProfileSlots"];</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrentNumberOfTimeProfileSlots() {
        bitField0_ = (bitField0_ & ~0x00000008);
        currentNumberOfTimeProfileSlots_ = 0;
        onChanged();
        return this;
      }

      private int currentNumberOfTimeProfiles_ ;
      /**
       * <code>int32 current_number_of_time_profiles = 5 [json_name = "currentNumberOfTimeProfiles"];</code>
       * @return The currentNumberOfTimeProfiles.
       */
      @java.lang.Override
      public int getCurrentNumberOfTimeProfiles() {
        return currentNumberOfTimeProfiles_;
      }
      /**
       * <code>int32 current_number_of_time_profiles = 5 [json_name = "currentNumberOfTimeProfiles"];</code>
       * @param value The currentNumberOfTimeProfiles to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentNumberOfTimeProfiles(int value) {

        currentNumberOfTimeProfiles_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>int32 current_number_of_time_profiles = 5 [json_name = "currentNumberOfTimeProfiles"];</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrentNumberOfTimeProfiles() {
        bitField0_ = (bitField0_ & ~0x00000010);
        currentNumberOfTimeProfiles_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile> timeProfiles_ =
        java.util.Collections.emptyList();
      private void ensureTimeProfilesIsMutable() {
        if (!((bitField0_ & 0x00000020) != 0)) {
          timeProfiles_ = new java.util.ArrayList<com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile>(timeProfiles_);
          bitField0_ |= 0x00000020;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfileOrBuilder> timeProfilesBuilder_;

      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile> getTimeProfilesList() {
        if (timeProfilesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(timeProfiles_);
        } else {
          return timeProfilesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public int getTimeProfilesCount() {
        if (timeProfilesBuilder_ == null) {
          return timeProfiles_.size();
        } else {
          return timeProfilesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile getTimeProfiles(int index) {
        if (timeProfilesBuilder_ == null) {
          return timeProfiles_.get(index);
        } else {
          return timeProfilesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public Builder setTimeProfiles(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile value) {
        if (timeProfilesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTimeProfilesIsMutable();
          timeProfiles_.set(index, value);
          onChanged();
        } else {
          timeProfilesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public Builder setTimeProfiles(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder builderForValue) {
        if (timeProfilesBuilder_ == null) {
          ensureTimeProfilesIsMutable();
          timeProfiles_.set(index, builderForValue.build());
          onChanged();
        } else {
          timeProfilesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public Builder addTimeProfiles(com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile value) {
        if (timeProfilesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTimeProfilesIsMutable();
          timeProfiles_.add(value);
          onChanged();
        } else {
          timeProfilesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public Builder addTimeProfiles(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile value) {
        if (timeProfilesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTimeProfilesIsMutable();
          timeProfiles_.add(index, value);
          onChanged();
        } else {
          timeProfilesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public Builder addTimeProfiles(
          com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder builderForValue) {
        if (timeProfilesBuilder_ == null) {
          ensureTimeProfilesIsMutable();
          timeProfiles_.add(builderForValue.build());
          onChanged();
        } else {
          timeProfilesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public Builder addTimeProfiles(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder builderForValue) {
        if (timeProfilesBuilder_ == null) {
          ensureTimeProfilesIsMutable();
          timeProfiles_.add(index, builderForValue.build());
          onChanged();
        } else {
          timeProfilesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public Builder addAllTimeProfiles(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile> values) {
        if (timeProfilesBuilder_ == null) {
          ensureTimeProfilesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, timeProfiles_);
          onChanged();
        } else {
          timeProfilesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public Builder clearTimeProfiles() {
        if (timeProfilesBuilder_ == null) {
          timeProfiles_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          timeProfilesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public Builder removeTimeProfiles(int index) {
        if (timeProfilesBuilder_ == null) {
          ensureTimeProfilesIsMutable();
          timeProfiles_.remove(index);
          onChanged();
        } else {
          timeProfilesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder getTimeProfilesBuilder(
          int index) {
        return internalGetTimeProfilesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfileOrBuilder getTimeProfilesOrBuilder(
          int index) {
        if (timeProfilesBuilder_ == null) {
          return timeProfiles_.get(index);  } else {
          return timeProfilesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfileOrBuilder> 
           getTimeProfilesOrBuilderList() {
        if (timeProfilesBuilder_ != null) {
          return timeProfilesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(timeProfiles_);
        }
      }
      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder addTimeProfilesBuilder() {
        return internalGetTimeProfilesFieldBuilder().addBuilder(
            com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder addTimeProfilesBuilder(
          int index) {
        return internalGetTimeProfilesFieldBuilder().addBuilder(
            index, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"];</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder> 
           getTimeProfilesBuilderList() {
        return internalGetTimeProfilesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfileOrBuilder> 
          internalGetTimeProfilesFieldBuilder() {
        if (timeProfilesBuilder_ == null) {
          timeProfilesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfileOrBuilder>(
                  timeProfiles_,
                  ((bitField0_ & 0x00000020) != 0),
                  getParentForChildren(),
                  isClean());
          timeProfiles_ = null;
        }
        return timeProfilesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:proto.WeeklyProfileValue)
    }

    // @@protoc_insertion_point(class_scope:proto.WeeklyProfileValue)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WeeklyProfileValue>
        PARSER = new com.google.protobuf.AbstractParser<WeeklyProfileValue>() {
      @java.lang.Override
      public WeeklyProfileValue parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<WeeklyProfileValue> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<WeeklyProfileValue> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface VVRTimeProfileOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.VVRTimeProfile)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * unique id of this time profile entry
     * </pre>
     *
     * <code>int32 identifier = 1 [json_name = "id"];</code>
     * @return The identifier.
     */
    int getIdentifier();

    /**
     * <pre>
     * Hour after midnight range [0, 23]
     * </pre>
     *
     * <code>int32 hour = 2 [json_name = "hour"];</code>
     * @return The hour.
     */
    int getHour();

    /**
     * <pre>
     * Minute after full hour range [0, 59]
     * </pre>
     *
     * <code>int32 minute = 3 [json_name = "min"];</code>
     * @return The minute.
     */
    int getMinute();

    /**
     * <pre>
     * Days for which the above time should be applied
     * </pre>
     *
     * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
     * @return A list containing the days.
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay> getDaysList();
    /**
     * <pre>
     * Days for which the above time should be applied
     * </pre>
     *
     * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
     * @return The count of days.
     */
    int getDaysCount();
    /**
     * <pre>
     * Days for which the above time should be applied
     * </pre>
     *
     * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
     * @param index The index of the element to return.
     * @return The days at the given index.
     */
    com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay getDays(int index);
    /**
     * <pre>
     * Days for which the above time should be applied
     * </pre>
     *
     * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
     * @return A list containing the enum numeric values on the wire for days.
     */
    java.util.List<java.lang.Integer>
    getDaysValueList();
    /**
     * <pre>
     * Days for which the above time should be applied
     * </pre>
     *
     * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
     * @param index The index of the value to return.
     * @return The enum numeric value on the wire of days at the given index.
     */
    int getDaysValue(int index);

    /**
     * <pre>
     * Whether this profile entry is active or not
     * </pre>
     *
     * <code>bool active = 5 [json_name = "active"];</code>
     * @return The active.
     */
    boolean getActive();

    /**
     * <pre>
     * If a timeProfile is changed or added the respective applicationId must be provided by SDK
     * 11 = Internal Apps
     * 12 = External Apps
     * </pre>
     *
     * <code>int32 application_identifier = 6 [json_name = "applicationId"];</code>
     * @return The applicationIdentifier.
     */
    int getApplicationIdentifier();
  }
  /**
   * <pre>
   * VVRTimeProfile is almost identical to the "TimeProfile" message with the exception that the identifier is not optional.
   * </pre>
   *
   * Protobuf type {@code proto.VVRTimeProfile}
   */
  public static final class VVRTimeProfile extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.VVRTimeProfile)
      VVRTimeProfileOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "VVRTimeProfile");
    }
    // Use VVRTimeProfile.newBuilder() to construct.
    private VVRTimeProfile(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private VVRTimeProfile() {
      days_ = emptyIntList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VVRTimeProfile_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VVRTimeProfile_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.class, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder.class);
    }

    public static final int IDENTIFIER_FIELD_NUMBER = 1;
    private int identifier_ = 0;
    /**
     * <pre>
     * unique id of this time profile entry
     * </pre>
     *
     * <code>int32 identifier = 1 [json_name = "id"];</code>
     * @return The identifier.
     */
    @java.lang.Override
    public int getIdentifier() {
      return identifier_;
    }

    public static final int HOUR_FIELD_NUMBER = 2;
    private int hour_ = 0;
    /**
     * <pre>
     * Hour after midnight range [0, 23]
     * </pre>
     *
     * <code>int32 hour = 2 [json_name = "hour"];</code>
     * @return The hour.
     */
    @java.lang.Override
    public int getHour() {
      return hour_;
    }

    public static final int MINUTE_FIELD_NUMBER = 3;
    private int minute_ = 0;
    /**
     * <pre>
     * Minute after full hour range [0, 59]
     * </pre>
     *
     * <code>int32 minute = 3 [json_name = "min"];</code>
     * @return The minute.
     */
    @java.lang.Override
    public int getMinute() {
      return minute_;
    }

    public static final int DAYS_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList days_ =
        emptyIntList();
    private static final     com.google.protobuf.Internal.IntListAdapter.IntConverter<
        com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay> days_converter_ =
            new com.google.protobuf.Internal.IntListAdapter.IntConverter<
                com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay>() {
              public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay convert(int from) {
                com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay result = com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay.forNumber(from);
                return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay.UNRECOGNIZED : result;
              }
            };
    /**
     * <pre>
     * Days for which the above time should be applied
     * </pre>
     *
     * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
     * @return A list containing the days.
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay> getDaysList() {
      return new com.google.protobuf.Internal.IntListAdapter<
          com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay>(days_, days_converter_);
    }
    /**
     * <pre>
     * Days for which the above time should be applied
     * </pre>
     *
     * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
     * @return The count of days.
     */
    @java.lang.Override
    public int getDaysCount() {
      return days_.size();
    }
    /**
     * <pre>
     * Days for which the above time should be applied
     * </pre>
     *
     * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
     * @param index The index of the element to return.
     * @return The days at the given index.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay getDays(int index) {
      return days_converter_.convert(days_.getInt(index));
    }
    /**
     * <pre>
     * Days for which the above time should be applied
     * </pre>
     *
     * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
     * @return A list containing the enum numeric values on the wire for days.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
    getDaysValueList() {
      return days_;
    }
    /**
     * <pre>
     * Days for which the above time should be applied
     * </pre>
     *
     * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
     * @param index The index of the value to return.
     * @return The enum numeric value on the wire of days at the given index.
     */
    @java.lang.Override
    public int getDaysValue(int index) {
      return days_.getInt(index);
    }
    private int daysMemoizedSerializedSize;

    public static final int ACTIVE_FIELD_NUMBER = 5;
    private boolean active_ = false;
    /**
     * <pre>
     * Whether this profile entry is active or not
     * </pre>
     *
     * <code>bool active = 5 [json_name = "active"];</code>
     * @return The active.
     */
    @java.lang.Override
    public boolean getActive() {
      return active_;
    }

    public static final int APPLICATION_IDENTIFIER_FIELD_NUMBER = 6;
    private int applicationIdentifier_ = 0;
    /**
     * <pre>
     * If a timeProfile is changed or added the respective applicationId must be provided by SDK
     * 11 = Internal Apps
     * 12 = External Apps
     * </pre>
     *
     * <code>int32 application_identifier = 6 [json_name = "applicationId"];</code>
     * @return The applicationIdentifier.
     */
    @java.lang.Override
    public int getApplicationIdentifier() {
      return applicationIdentifier_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (identifier_ != 0) {
        output.writeInt32(1, identifier_);
      }
      if (hour_ != 0) {
        output.writeInt32(2, hour_);
      }
      if (minute_ != 0) {
        output.writeInt32(3, minute_);
      }
      if (getDaysList().size() > 0) {
        output.writeUInt32NoTag(34);
        output.writeUInt32NoTag(daysMemoizedSerializedSize);
      }
      for (int i = 0; i < days_.size(); i++) {
        output.writeEnumNoTag(days_.getInt(i));
      }
      if (active_ != false) {
        output.writeBool(5, active_);
      }
      if (applicationIdentifier_ != 0) {
        output.writeInt32(6, applicationIdentifier_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (identifier_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, identifier_);
      }
      if (hour_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, hour_);
      }
      if (minute_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, minute_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < days_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeEnumSizeNoTag(days_.getInt(i));
        }
        size += dataSize;
        if (!getDaysList().isEmpty()) {  size += 1;
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(dataSize);
        }daysMemoizedSerializedSize = dataSize;
      }
      if (active_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, active_);
      }
      if (applicationIdentifier_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, applicationIdentifier_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile other = (com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile) obj;

      if (getIdentifier()
          != other.getIdentifier()) return false;
      if (getHour()
          != other.getHour()) return false;
      if (getMinute()
          != other.getMinute()) return false;
      if (!days_.equals(other.days_)) return false;
      if (getActive()
          != other.getActive()) return false;
      if (getApplicationIdentifier()
          != other.getApplicationIdentifier()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + IDENTIFIER_FIELD_NUMBER;
      hash = (53 * hash) + getIdentifier();
      hash = (37 * hash) + HOUR_FIELD_NUMBER;
      hash = (53 * hash) + getHour();
      hash = (37 * hash) + MINUTE_FIELD_NUMBER;
      hash = (53 * hash) + getMinute();
      if (getDaysCount() > 0) {
        hash = (37 * hash) + DAYS_FIELD_NUMBER;
        hash = (53 * hash) + days_.hashCode();
      }
      hash = (37 * hash) + ACTIVE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getActive());
      hash = (37 * hash) + APPLICATION_IDENTIFIER_FIELD_NUMBER;
      hash = (53 * hash) + getApplicationIdentifier();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * VVRTimeProfile is almost identical to the "TimeProfile" message with the exception that the identifier is not optional.
     * </pre>
     *
     * Protobuf type {@code proto.VVRTimeProfile}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.VVRTimeProfile)
        com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfileOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VVRTimeProfile_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VVRTimeProfile_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.class, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        identifier_ = 0;
        hour_ = 0;
        minute_ = 0;
        days_ = emptyIntList();
        active_ = false;
        applicationIdentifier_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VVRTimeProfile_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile build() {
        com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile result = new com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.identifier_ = identifier_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.hour_ = hour_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.minute_ = minute_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          days_.makeImmutable();
          result.days_ = days_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.active_ = active_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.applicationIdentifier_ = applicationIdentifier_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.getDefaultInstance()) return this;
        if (other.getIdentifier() != 0) {
          setIdentifier(other.getIdentifier());
        }
        if (other.getHour() != 0) {
          setHour(other.getHour());
        }
        if (other.getMinute() != 0) {
          setMinute(other.getMinute());
        }
        if (!other.days_.isEmpty()) {
          if (days_.isEmpty()) {
            days_ = other.days_;
            days_.makeImmutable();
            bitField0_ |= 0x00000008;
          } else {
            ensureDaysIsMutable();
            days_.addAll(other.days_);
          }
          onChanged();
        }
        if (other.getActive() != false) {
          setActive(other.getActive());
        }
        if (other.getApplicationIdentifier() != 0) {
          setApplicationIdentifier(other.getApplicationIdentifier());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                identifier_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                hour_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                minute_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                int tmpRaw = input.readEnum();
                ensureDaysIsMutable();
                days_.addInt(tmpRaw);
                break;
              } // case 32
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureDaysIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  days_.addInt(input.readEnum());
                }
                input.popLimit(limit);
                break;
              } // case 34
              case 40: {
                active_ = input.readBool();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                applicationIdentifier_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int identifier_ ;
      /**
       * <pre>
       * unique id of this time profile entry
       * </pre>
       *
       * <code>int32 identifier = 1 [json_name = "id"];</code>
       * @return The identifier.
       */
      @java.lang.Override
      public int getIdentifier() {
        return identifier_;
      }
      /**
       * <pre>
       * unique id of this time profile entry
       * </pre>
       *
       * <code>int32 identifier = 1 [json_name = "id"];</code>
       * @param value The identifier to set.
       * @return This builder for chaining.
       */
      public Builder setIdentifier(int value) {

        identifier_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * unique id of this time profile entry
       * </pre>
       *
       * <code>int32 identifier = 1 [json_name = "id"];</code>
       * @return This builder for chaining.
       */
      public Builder clearIdentifier() {
        bitField0_ = (bitField0_ & ~0x00000001);
        identifier_ = 0;
        onChanged();
        return this;
      }

      private int hour_ ;
      /**
       * <pre>
       * Hour after midnight range [0, 23]
       * </pre>
       *
       * <code>int32 hour = 2 [json_name = "hour"];</code>
       * @return The hour.
       */
      @java.lang.Override
      public int getHour() {
        return hour_;
      }
      /**
       * <pre>
       * Hour after midnight range [0, 23]
       * </pre>
       *
       * <code>int32 hour = 2 [json_name = "hour"];</code>
       * @param value The hour to set.
       * @return This builder for chaining.
       */
      public Builder setHour(int value) {

        hour_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Hour after midnight range [0, 23]
       * </pre>
       *
       * <code>int32 hour = 2 [json_name = "hour"];</code>
       * @return This builder for chaining.
       */
      public Builder clearHour() {
        bitField0_ = (bitField0_ & ~0x00000002);
        hour_ = 0;
        onChanged();
        return this;
      }

      private int minute_ ;
      /**
       * <pre>
       * Minute after full hour range [0, 59]
       * </pre>
       *
       * <code>int32 minute = 3 [json_name = "min"];</code>
       * @return The minute.
       */
      @java.lang.Override
      public int getMinute() {
        return minute_;
      }
      /**
       * <pre>
       * Minute after full hour range [0, 59]
       * </pre>
       *
       * <code>int32 minute = 3 [json_name = "min"];</code>
       * @param value The minute to set.
       * @return This builder for chaining.
       */
      public Builder setMinute(int value) {

        minute_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Minute after full hour range [0, 59]
       * </pre>
       *
       * <code>int32 minute = 3 [json_name = "min"];</code>
       * @return This builder for chaining.
       */
      public Builder clearMinute() {
        bitField0_ = (bitField0_ & ~0x00000004);
        minute_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList days_ = emptyIntList();
      private void ensureDaysIsMutable() {
        if (!days_.isModifiable()) {
          days_ = makeMutableCopy(days_);
        }
        bitField0_ |= 0x00000008;
      }
      /**
       * <pre>
       * Days for which the above time should be applied
       * </pre>
       *
       * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
       * @return A list containing the days.
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay> getDaysList() {
        return new com.google.protobuf.Internal.IntListAdapter<
            com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay>(days_, days_converter_);
      }
      /**
       * <pre>
       * Days for which the above time should be applied
       * </pre>
       *
       * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
       * @return The count of days.
       */
      public int getDaysCount() {
        return days_.size();
      }
      /**
       * <pre>
       * Days for which the above time should be applied
       * </pre>
       *
       * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
       * @param index The index of the element to return.
       * @return The days at the given index.
       */
      public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay getDays(int index) {
        return days_converter_.convert(days_.getInt(index));
      }
      /**
       * <pre>
       * Days for which the above time should be applied
       * </pre>
       *
       * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
       * @param index The index to set the value at.
       * @param value The days to set.
       * @return This builder for chaining.
       */
      public Builder setDays(
          int index, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay value) {
        if (value == null) { throw new NullPointerException(); }
        ensureDaysIsMutable();
        days_.setInt(index, value.getNumber());
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Days for which the above time should be applied
       * </pre>
       *
       * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
       * @param value The days to add.
       * @return This builder for chaining.
       */
      public Builder addDays(com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay value) {
        if (value == null) { throw new NullPointerException(); }
        ensureDaysIsMutable();
        days_.addInt(value.getNumber());
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Days for which the above time should be applied
       * </pre>
       *
       * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
       * @param values The days to add.
       * @return This builder for chaining.
       */
      public Builder addAllDays(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay> values) {
        ensureDaysIsMutable();
        for (com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay value : values) {
          days_.addInt(value.getNumber());
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Days for which the above time should be applied
       * </pre>
       *
       * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
       * @return This builder for chaining.
       */
      public Builder clearDays() {
        days_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Days for which the above time should be applied
       * </pre>
       *
       * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
       * @return A list containing the enum numeric values on the wire for days.
       */
      public java.util.List<java.lang.Integer>
      getDaysValueList() {
        days_.makeImmutable();
        return days_;
      }
      /**
       * <pre>
       * Days for which the above time should be applied
       * </pre>
       *
       * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
       * @param index The index of the value to return.
       * @return The enum numeric value on the wire of days at the given index.
       */
      public int getDaysValue(int index) {
        return days_.getInt(index);
      }
      /**
       * <pre>
       * Days for which the above time should be applied
       * </pre>
       *
       * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
       * @param index The index to set the value at.
       * @param value The enum numeric value on the wire for days to set.
       * @return This builder for chaining.
       */
      public Builder setDaysValue(
          int index, int value) {
        ensureDaysIsMutable();
        days_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Days for which the above time should be applied
       * </pre>
       *
       * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
       * @param value The enum numeric value on the wire for days to add.
       * @return This builder for chaining.
       */
      public Builder addDaysValue(int value) {
        ensureDaysIsMutable();
        days_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Days for which the above time should be applied
       * </pre>
       *
       * <code>repeated .proto.TimeProfileDay days = 4 [json_name = "day"];</code>
       * @param values The enum numeric values on the wire for days to add.
       * @return This builder for chaining.
       */
      public Builder addAllDaysValue(
          java.lang.Iterable<java.lang.Integer> values) {
        ensureDaysIsMutable();
        for (int value : values) {
          days_.addInt(value);
        }
        onChanged();
        return this;
      }

      private boolean active_ ;
      /**
       * <pre>
       * Whether this profile entry is active or not
       * </pre>
       *
       * <code>bool active = 5 [json_name = "active"];</code>
       * @return The active.
       */
      @java.lang.Override
      public boolean getActive() {
        return active_;
      }
      /**
       * <pre>
       * Whether this profile entry is active or not
       * </pre>
       *
       * <code>bool active = 5 [json_name = "active"];</code>
       * @param value The active to set.
       * @return This builder for chaining.
       */
      public Builder setActive(boolean value) {

        active_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Whether this profile entry is active or not
       * </pre>
       *
       * <code>bool active = 5 [json_name = "active"];</code>
       * @return This builder for chaining.
       */
      public Builder clearActive() {
        bitField0_ = (bitField0_ & ~0x00000010);
        active_ = false;
        onChanged();
        return this;
      }

      private int applicationIdentifier_ ;
      /**
       * <pre>
       * If a timeProfile is changed or added the respective applicationId must be provided by SDK
       * 11 = Internal Apps
       * 12 = External Apps
       * </pre>
       *
       * <code>int32 application_identifier = 6 [json_name = "applicationId"];</code>
       * @return The applicationIdentifier.
       */
      @java.lang.Override
      public int getApplicationIdentifier() {
        return applicationIdentifier_;
      }
      /**
       * <pre>
       * If a timeProfile is changed or added the respective applicationId must be provided by SDK
       * 11 = Internal Apps
       * 12 = External Apps
       * </pre>
       *
       * <code>int32 application_identifier = 6 [json_name = "applicationId"];</code>
       * @param value The applicationIdentifier to set.
       * @return This builder for chaining.
       */
      public Builder setApplicationIdentifier(int value) {

        applicationIdentifier_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * If a timeProfile is changed or added the respective applicationId must be provided by SDK
       * 11 = Internal Apps
       * 12 = External Apps
       * </pre>
       *
       * <code>int32 application_identifier = 6 [json_name = "applicationId"];</code>
       * @return This builder for chaining.
       */
      public Builder clearApplicationIdentifier() {
        bitField0_ = (bitField0_ & ~0x00000020);
        applicationIdentifier_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.VVRTimeProfile)
    }

    // @@protoc_insertion_point(class_scope:proto.VVRTimeProfile)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<VVRTimeProfile>
        PARSER = new com.google.protobuf.AbstractParser<VVRTimeProfile>() {
      @java.lang.Override
      public VVRTimeProfile parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<VVRTimeProfile> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<VVRTimeProfile> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface EcoHistogramValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.EcoHistogramValue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin> 
        getEcoHistogramBinsList();
    /**
     * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin getEcoHistogramBins(int index);
    /**
     * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
     */
    int getEcoHistogramBinsCount();
    /**
     * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
     */
    java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBinOrBuilder> 
        getEcoHistogramBinsOrBuilderList();
    /**
     * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBinOrBuilder getEcoHistogramBinsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code proto.EcoHistogramValue}
   */
  public static final class EcoHistogramValue extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.EcoHistogramValue)
      EcoHistogramValueOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "EcoHistogramValue");
    }
    // Use EcoHistogramValue.newBuilder() to construct.
    private EcoHistogramValue(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private EcoHistogramValue() {
      ecoHistogramBins_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramValue_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.class, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.Builder.class);
    }

    public static final int ECO_HISTOGRAM_BINS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin> ecoHistogramBins_;
    /**
     * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin> getEcoHistogramBinsList() {
      return ecoHistogramBins_;
    }
    /**
     * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBinOrBuilder> 
        getEcoHistogramBinsOrBuilderList() {
      return ecoHistogramBins_;
    }
    /**
     * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
     */
    @java.lang.Override
    public int getEcoHistogramBinsCount() {
      return ecoHistogramBins_.size();
    }
    /**
     * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin getEcoHistogramBins(int index) {
      return ecoHistogramBins_.get(index);
    }
    /**
     * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBinOrBuilder getEcoHistogramBinsOrBuilder(
        int index) {
      return ecoHistogramBins_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < ecoHistogramBins_.size(); i++) {
        output.writeMessage(1, ecoHistogramBins_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < ecoHistogramBins_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, ecoHistogramBins_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue other = (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) obj;

      if (!getEcoHistogramBinsList()
          .equals(other.getEcoHistogramBinsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getEcoHistogramBinsCount() > 0) {
        hash = (37 * hash) + ECO_HISTOGRAM_BINS_FIELD_NUMBER;
        hash = (53 * hash) + getEcoHistogramBinsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.EcoHistogramValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.EcoHistogramValue)
        com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramValue_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.class, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (ecoHistogramBinsBuilder_ == null) {
          ecoHistogramBins_ = java.util.Collections.emptyList();
        } else {
          ecoHistogramBins_ = null;
          ecoHistogramBinsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramValue_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue build() {
        com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue result = new com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue result) {
        if (ecoHistogramBinsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            ecoHistogramBins_ = java.util.Collections.unmodifiableList(ecoHistogramBins_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.ecoHistogramBins_ = ecoHistogramBins_;
        } else {
          result.ecoHistogramBins_ = ecoHistogramBinsBuilder_.build();
        }
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance()) return this;
        if (ecoHistogramBinsBuilder_ == null) {
          if (!other.ecoHistogramBins_.isEmpty()) {
            if (ecoHistogramBins_.isEmpty()) {
              ecoHistogramBins_ = other.ecoHistogramBins_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureEcoHistogramBinsIsMutable();
              ecoHistogramBins_.addAll(other.ecoHistogramBins_);
            }
            onChanged();
          }
        } else {
          if (!other.ecoHistogramBins_.isEmpty()) {
            if (ecoHistogramBinsBuilder_.isEmpty()) {
              ecoHistogramBinsBuilder_.dispose();
              ecoHistogramBinsBuilder_ = null;
              ecoHistogramBins_ = other.ecoHistogramBins_;
              bitField0_ = (bitField0_ & ~0x00000001);
              ecoHistogramBinsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetEcoHistogramBinsFieldBuilder() : null;
            } else {
              ecoHistogramBinsBuilder_.addAllMessages(other.ecoHistogramBins_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin m =
                    input.readMessage(
                        com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.parser(),
                        extensionRegistry);
                if (ecoHistogramBinsBuilder_ == null) {
                  ensureEcoHistogramBinsIsMutable();
                  ecoHistogramBins_.add(m);
                } else {
                  ecoHistogramBinsBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin> ecoHistogramBins_ =
        java.util.Collections.emptyList();
      private void ensureEcoHistogramBinsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          ecoHistogramBins_ = new java.util.ArrayList<com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin>(ecoHistogramBins_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBinOrBuilder> ecoHistogramBinsBuilder_;

      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin> getEcoHistogramBinsList() {
        if (ecoHistogramBinsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(ecoHistogramBins_);
        } else {
          return ecoHistogramBinsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public int getEcoHistogramBinsCount() {
        if (ecoHistogramBinsBuilder_ == null) {
          return ecoHistogramBins_.size();
        } else {
          return ecoHistogramBinsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin getEcoHistogramBins(int index) {
        if (ecoHistogramBinsBuilder_ == null) {
          return ecoHistogramBins_.get(index);
        } else {
          return ecoHistogramBinsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public Builder setEcoHistogramBins(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin value) {
        if (ecoHistogramBinsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEcoHistogramBinsIsMutable();
          ecoHistogramBins_.set(index, value);
          onChanged();
        } else {
          ecoHistogramBinsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public Builder setEcoHistogramBins(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder builderForValue) {
        if (ecoHistogramBinsBuilder_ == null) {
          ensureEcoHistogramBinsIsMutable();
          ecoHistogramBins_.set(index, builderForValue.build());
          onChanged();
        } else {
          ecoHistogramBinsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public Builder addEcoHistogramBins(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin value) {
        if (ecoHistogramBinsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEcoHistogramBinsIsMutable();
          ecoHistogramBins_.add(value);
          onChanged();
        } else {
          ecoHistogramBinsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public Builder addEcoHistogramBins(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin value) {
        if (ecoHistogramBinsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEcoHistogramBinsIsMutable();
          ecoHistogramBins_.add(index, value);
          onChanged();
        } else {
          ecoHistogramBinsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public Builder addEcoHistogramBins(
          com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder builderForValue) {
        if (ecoHistogramBinsBuilder_ == null) {
          ensureEcoHistogramBinsIsMutable();
          ecoHistogramBins_.add(builderForValue.build());
          onChanged();
        } else {
          ecoHistogramBinsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public Builder addEcoHistogramBins(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder builderForValue) {
        if (ecoHistogramBinsBuilder_ == null) {
          ensureEcoHistogramBinsIsMutable();
          ecoHistogramBins_.add(index, builderForValue.build());
          onChanged();
        } else {
          ecoHistogramBinsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public Builder addAllEcoHistogramBins(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin> values) {
        if (ecoHistogramBinsBuilder_ == null) {
          ensureEcoHistogramBinsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, ecoHistogramBins_);
          onChanged();
        } else {
          ecoHistogramBinsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public Builder clearEcoHistogramBins() {
        if (ecoHistogramBinsBuilder_ == null) {
          ecoHistogramBins_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          ecoHistogramBinsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public Builder removeEcoHistogramBins(int index) {
        if (ecoHistogramBinsBuilder_ == null) {
          ensureEcoHistogramBinsIsMutable();
          ecoHistogramBins_.remove(index);
          onChanged();
        } else {
          ecoHistogramBinsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder getEcoHistogramBinsBuilder(
          int index) {
        return internalGetEcoHistogramBinsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBinOrBuilder getEcoHistogramBinsOrBuilder(
          int index) {
        if (ecoHistogramBinsBuilder_ == null) {
          return ecoHistogramBins_.get(index);  } else {
          return ecoHistogramBinsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBinOrBuilder> 
           getEcoHistogramBinsOrBuilderList() {
        if (ecoHistogramBinsBuilder_ != null) {
          return ecoHistogramBinsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(ecoHistogramBins_);
        }
      }
      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder addEcoHistogramBinsBuilder() {
        return internalGetEcoHistogramBinsFieldBuilder().addBuilder(
            com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder addEcoHistogramBinsBuilder(
          int index) {
        return internalGetEcoHistogramBinsFieldBuilder().addBuilder(
            index, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.EcoHistogramBin eco_histogram_bins = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder> 
           getEcoHistogramBinsBuilderList() {
        return internalGetEcoHistogramBinsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBinOrBuilder> 
          internalGetEcoHistogramBinsFieldBuilder() {
        if (ecoHistogramBinsBuilder_ == null) {
          ecoHistogramBinsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBinOrBuilder>(
                  ecoHistogramBins_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          ecoHistogramBins_ = null;
        }
        return ecoHistogramBinsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:proto.EcoHistogramValue)
    }

    // @@protoc_insertion_point(class_scope:proto.EcoHistogramValue)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<EcoHistogramValue>
        PARSER = new com.google.protobuf.AbstractParser<EcoHistogramValue>() {
      @java.lang.Override
      public EcoHistogramValue parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<EcoHistogramValue> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<EcoHistogramValue> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface EcoHistogramBinOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.EcoHistogramBin)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>double interval = 1;</code>
     * @return The interval.
     */
    double getInterval();

    /**
     * <code>double value = 2;</code>
     * @return The value.
     */
    double getValue();
  }
  /**
   * Protobuf type {@code proto.EcoHistogramBin}
   */
  public static final class EcoHistogramBin extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.EcoHistogramBin)
      EcoHistogramBinOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "EcoHistogramBin");
    }
    // Use EcoHistogramBin.newBuilder() to construct.
    private EcoHistogramBin(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private EcoHistogramBin() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramBin_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramBin_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.class, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder.class);
    }

    public static final int INTERVAL_FIELD_NUMBER = 1;
    private double interval_ = 0D;
    /**
     * <code>double interval = 1;</code>
     * @return The interval.
     */
    @java.lang.Override
    public double getInterval() {
      return interval_;
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private double value_ = 0D;
    /**
     * <code>double value = 2;</code>
     * @return The value.
     */
    @java.lang.Override
    public double getValue() {
      return value_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (java.lang.Double.doubleToRawLongBits(interval_) != 0) {
        output.writeDouble(1, interval_);
      }
      if (java.lang.Double.doubleToRawLongBits(value_) != 0) {
        output.writeDouble(2, value_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (java.lang.Double.doubleToRawLongBits(interval_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, interval_);
      }
      if (java.lang.Double.doubleToRawLongBits(value_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, value_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin other = (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin) obj;

      if (java.lang.Double.doubleToLongBits(getInterval())
          != java.lang.Double.doubleToLongBits(
              other.getInterval())) return false;
      if (java.lang.Double.doubleToLongBits(getValue())
          != java.lang.Double.doubleToLongBits(
              other.getValue())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + INTERVAL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getInterval()));
      hash = (37 * hash) + VALUE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getValue()));
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.EcoHistogramBin}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.EcoHistogramBin)
        com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBinOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramBin_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramBin_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.class, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        interval_ = 0D;
        value_ = 0D;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramBin_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin build() {
        com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin result = new com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.interval_ = interval_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.value_ = value_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.getDefaultInstance()) return this;
        if (java.lang.Double.doubleToRawLongBits(other.getInterval()) != 0) {
          setInterval(other.getInterval());
        }
        if (java.lang.Double.doubleToRawLongBits(other.getValue()) != 0) {
          setValue(other.getValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                interval_ = input.readDouble();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              case 17: {
                value_ = input.readDouble();
                bitField0_ |= 0x00000002;
                break;
              } // case 17
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private double interval_ ;
      /**
       * <code>double interval = 1;</code>
       * @return The interval.
       */
      @java.lang.Override
      public double getInterval() {
        return interval_;
      }
      /**
       * <code>double interval = 1;</code>
       * @param value The interval to set.
       * @return This builder for chaining.
       */
      public Builder setInterval(double value) {

        interval_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>double interval = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearInterval() {
        bitField0_ = (bitField0_ & ~0x00000001);
        interval_ = 0D;
        onChanged();
        return this;
      }

      private double value_ ;
      /**
       * <code>double value = 2;</code>
       * @return The value.
       */
      @java.lang.Override
      public double getValue() {
        return value_;
      }
      /**
       * <code>double value = 2;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(double value) {

        value_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>double value = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = 0D;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.EcoHistogramBin)
    }

    // @@protoc_insertion_point(class_scope:proto.EcoHistogramBin)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<EcoHistogramBin>
        PARSER = new com.google.protobuf.AbstractParser<EcoHistogramBin>() {
      @java.lang.Override
      public EcoHistogramBin parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<EcoHistogramBin> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<EcoHistogramBin> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SpeedAlertConfigurationValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.SpeedAlertConfigurationValue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration> 
        getSpeedAlertConfigurationsList();
    /**
     * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration getSpeedAlertConfigurations(int index);
    /**
     * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
     */
    int getSpeedAlertConfigurationsCount();
    /**
     * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
     */
    java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationOrBuilder> 
        getSpeedAlertConfigurationsOrBuilderList();
    /**
     * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationOrBuilder getSpeedAlertConfigurationsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code proto.SpeedAlertConfigurationValue}
   */
  public static final class SpeedAlertConfigurationValue extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.SpeedAlertConfigurationValue)
      SpeedAlertConfigurationValueOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "SpeedAlertConfigurationValue");
    }
    // Use SpeedAlertConfigurationValue.newBuilder() to construct.
    private SpeedAlertConfigurationValue(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private SpeedAlertConfigurationValue() {
      speedAlertConfigurations_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfigurationValue_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfigurationValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.class, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.Builder.class);
    }

    public static final int SPEED_ALERT_CONFIGURATIONS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration> speedAlertConfigurations_;
    /**
     * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration> getSpeedAlertConfigurationsList() {
      return speedAlertConfigurations_;
    }
    /**
     * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationOrBuilder> 
        getSpeedAlertConfigurationsOrBuilderList() {
      return speedAlertConfigurations_;
    }
    /**
     * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
     */
    @java.lang.Override
    public int getSpeedAlertConfigurationsCount() {
      return speedAlertConfigurations_.size();
    }
    /**
     * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration getSpeedAlertConfigurations(int index) {
      return speedAlertConfigurations_.get(index);
    }
    /**
     * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationOrBuilder getSpeedAlertConfigurationsOrBuilder(
        int index) {
      return speedAlertConfigurations_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < speedAlertConfigurations_.size(); i++) {
        output.writeMessage(1, speedAlertConfigurations_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < speedAlertConfigurations_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, speedAlertConfigurations_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue other = (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) obj;

      if (!getSpeedAlertConfigurationsList()
          .equals(other.getSpeedAlertConfigurationsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getSpeedAlertConfigurationsCount() > 0) {
        hash = (37 * hash) + SPEED_ALERT_CONFIGURATIONS_FIELD_NUMBER;
        hash = (53 * hash) + getSpeedAlertConfigurationsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.SpeedAlertConfigurationValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.SpeedAlertConfigurationValue)
        com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfigurationValue_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfigurationValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.class, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (speedAlertConfigurationsBuilder_ == null) {
          speedAlertConfigurations_ = java.util.Collections.emptyList();
        } else {
          speedAlertConfigurations_ = null;
          speedAlertConfigurationsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfigurationValue_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue build() {
        com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue result = new com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue result) {
        if (speedAlertConfigurationsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            speedAlertConfigurations_ = java.util.Collections.unmodifiableList(speedAlertConfigurations_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.speedAlertConfigurations_ = speedAlertConfigurations_;
        } else {
          result.speedAlertConfigurations_ = speedAlertConfigurationsBuilder_.build();
        }
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance()) return this;
        if (speedAlertConfigurationsBuilder_ == null) {
          if (!other.speedAlertConfigurations_.isEmpty()) {
            if (speedAlertConfigurations_.isEmpty()) {
              speedAlertConfigurations_ = other.speedAlertConfigurations_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureSpeedAlertConfigurationsIsMutable();
              speedAlertConfigurations_.addAll(other.speedAlertConfigurations_);
            }
            onChanged();
          }
        } else {
          if (!other.speedAlertConfigurations_.isEmpty()) {
            if (speedAlertConfigurationsBuilder_.isEmpty()) {
              speedAlertConfigurationsBuilder_.dispose();
              speedAlertConfigurationsBuilder_ = null;
              speedAlertConfigurations_ = other.speedAlertConfigurations_;
              bitField0_ = (bitField0_ & ~0x00000001);
              speedAlertConfigurationsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetSpeedAlertConfigurationsFieldBuilder() : null;
            } else {
              speedAlertConfigurationsBuilder_.addAllMessages(other.speedAlertConfigurations_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration m =
                    input.readMessage(
                        com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.parser(),
                        extensionRegistry);
                if (speedAlertConfigurationsBuilder_ == null) {
                  ensureSpeedAlertConfigurationsIsMutable();
                  speedAlertConfigurations_.add(m);
                } else {
                  speedAlertConfigurationsBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration> speedAlertConfigurations_ =
        java.util.Collections.emptyList();
      private void ensureSpeedAlertConfigurationsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          speedAlertConfigurations_ = new java.util.ArrayList<com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration>(speedAlertConfigurations_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationOrBuilder> speedAlertConfigurationsBuilder_;

      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration> getSpeedAlertConfigurationsList() {
        if (speedAlertConfigurationsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(speedAlertConfigurations_);
        } else {
          return speedAlertConfigurationsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public int getSpeedAlertConfigurationsCount() {
        if (speedAlertConfigurationsBuilder_ == null) {
          return speedAlertConfigurations_.size();
        } else {
          return speedAlertConfigurationsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration getSpeedAlertConfigurations(int index) {
        if (speedAlertConfigurationsBuilder_ == null) {
          return speedAlertConfigurations_.get(index);
        } else {
          return speedAlertConfigurationsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public Builder setSpeedAlertConfigurations(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration value) {
        if (speedAlertConfigurationsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSpeedAlertConfigurationsIsMutable();
          speedAlertConfigurations_.set(index, value);
          onChanged();
        } else {
          speedAlertConfigurationsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public Builder setSpeedAlertConfigurations(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder builderForValue) {
        if (speedAlertConfigurationsBuilder_ == null) {
          ensureSpeedAlertConfigurationsIsMutable();
          speedAlertConfigurations_.set(index, builderForValue.build());
          onChanged();
        } else {
          speedAlertConfigurationsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public Builder addSpeedAlertConfigurations(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration value) {
        if (speedAlertConfigurationsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSpeedAlertConfigurationsIsMutable();
          speedAlertConfigurations_.add(value);
          onChanged();
        } else {
          speedAlertConfigurationsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public Builder addSpeedAlertConfigurations(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration value) {
        if (speedAlertConfigurationsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSpeedAlertConfigurationsIsMutable();
          speedAlertConfigurations_.add(index, value);
          onChanged();
        } else {
          speedAlertConfigurationsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public Builder addSpeedAlertConfigurations(
          com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder builderForValue) {
        if (speedAlertConfigurationsBuilder_ == null) {
          ensureSpeedAlertConfigurationsIsMutable();
          speedAlertConfigurations_.add(builderForValue.build());
          onChanged();
        } else {
          speedAlertConfigurationsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public Builder addSpeedAlertConfigurations(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder builderForValue) {
        if (speedAlertConfigurationsBuilder_ == null) {
          ensureSpeedAlertConfigurationsIsMutable();
          speedAlertConfigurations_.add(index, builderForValue.build());
          onChanged();
        } else {
          speedAlertConfigurationsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public Builder addAllSpeedAlertConfigurations(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration> values) {
        if (speedAlertConfigurationsBuilder_ == null) {
          ensureSpeedAlertConfigurationsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, speedAlertConfigurations_);
          onChanged();
        } else {
          speedAlertConfigurationsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public Builder clearSpeedAlertConfigurations() {
        if (speedAlertConfigurationsBuilder_ == null) {
          speedAlertConfigurations_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          speedAlertConfigurationsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public Builder removeSpeedAlertConfigurations(int index) {
        if (speedAlertConfigurationsBuilder_ == null) {
          ensureSpeedAlertConfigurationsIsMutable();
          speedAlertConfigurations_.remove(index);
          onChanged();
        } else {
          speedAlertConfigurationsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder getSpeedAlertConfigurationsBuilder(
          int index) {
        return internalGetSpeedAlertConfigurationsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationOrBuilder getSpeedAlertConfigurationsOrBuilder(
          int index) {
        if (speedAlertConfigurationsBuilder_ == null) {
          return speedAlertConfigurations_.get(index);  } else {
          return speedAlertConfigurationsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationOrBuilder> 
           getSpeedAlertConfigurationsOrBuilderList() {
        if (speedAlertConfigurationsBuilder_ != null) {
          return speedAlertConfigurationsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(speedAlertConfigurations_);
        }
      }
      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder addSpeedAlertConfigurationsBuilder() {
        return internalGetSpeedAlertConfigurationsFieldBuilder().addBuilder(
            com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder addSpeedAlertConfigurationsBuilder(
          int index) {
        return internalGetSpeedAlertConfigurationsFieldBuilder().addBuilder(
            index, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder> 
           getSpeedAlertConfigurationsBuilderList() {
        return internalGetSpeedAlertConfigurationsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationOrBuilder> 
          internalGetSpeedAlertConfigurationsFieldBuilder() {
        if (speedAlertConfigurationsBuilder_ == null) {
          speedAlertConfigurationsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationOrBuilder>(
                  speedAlertConfigurations_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          speedAlertConfigurations_ = null;
        }
        return speedAlertConfigurationsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:proto.SpeedAlertConfigurationValue)
    }

    // @@protoc_insertion_point(class_scope:proto.SpeedAlertConfigurationValue)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SpeedAlertConfigurationValue>
        PARSER = new com.google.protobuf.AbstractParser<SpeedAlertConfigurationValue>() {
      @java.lang.Override
      public SpeedAlertConfigurationValue parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<SpeedAlertConfigurationValue> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SpeedAlertConfigurationValue> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SpeedAlertConfigurationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.SpeedAlertConfiguration)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Unix timestamp in seconds
     * </pre>
     *
     * <code>int64 end_timestamp_in_s = 1;</code>
     * @return The endTimestampInS.
     */
    long getEndTimestampInS();

    /**
     * <pre>
     * Speed in kilometers per hour
     * </pre>
     *
     * <code>int32 threshold_in_kph = 2;</code>
     * @return The thresholdInKph.
     */
    int getThresholdInKph();

    /**
     * <pre>
     * threshold value in the users preferred unit
     * </pre>
     *
     * <code>string threshold_display_value = 3;</code>
     * @return The thresholdDisplayValue.
     */
    java.lang.String getThresholdDisplayValue();
    /**
     * <pre>
     * threshold value in the users preferred unit
     * </pre>
     *
     * <code>string threshold_display_value = 3;</code>
     * @return The bytes for thresholdDisplayValue.
     */
    com.google.protobuf.ByteString
        getThresholdDisplayValueBytes();
  }
  /**
   * Protobuf type {@code proto.SpeedAlertConfiguration}
   */
  public static final class SpeedAlertConfiguration extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.SpeedAlertConfiguration)
      SpeedAlertConfigurationOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "SpeedAlertConfiguration");
    }
    // Use SpeedAlertConfiguration.newBuilder() to construct.
    private SpeedAlertConfiguration(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private SpeedAlertConfiguration() {
      thresholdDisplayValue_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfiguration_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfiguration_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.class, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder.class);
    }

    public static final int END_TIMESTAMP_IN_S_FIELD_NUMBER = 1;
    private long endTimestampInS_ = 0L;
    /**
     * <pre>
     * Unix timestamp in seconds
     * </pre>
     *
     * <code>int64 end_timestamp_in_s = 1;</code>
     * @return The endTimestampInS.
     */
    @java.lang.Override
    public long getEndTimestampInS() {
      return endTimestampInS_;
    }

    public static final int THRESHOLD_IN_KPH_FIELD_NUMBER = 2;
    private int thresholdInKph_ = 0;
    /**
     * <pre>
     * Speed in kilometers per hour
     * </pre>
     *
     * <code>int32 threshold_in_kph = 2;</code>
     * @return The thresholdInKph.
     */
    @java.lang.Override
    public int getThresholdInKph() {
      return thresholdInKph_;
    }

    public static final int THRESHOLD_DISPLAY_VALUE_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object thresholdDisplayValue_ = "";
    /**
     * <pre>
     * threshold value in the users preferred unit
     * </pre>
     *
     * <code>string threshold_display_value = 3;</code>
     * @return The thresholdDisplayValue.
     */
    @java.lang.Override
    public java.lang.String getThresholdDisplayValue() {
      java.lang.Object ref = thresholdDisplayValue_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        thresholdDisplayValue_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * threshold value in the users preferred unit
     * </pre>
     *
     * <code>string threshold_display_value = 3;</code>
     * @return The bytes for thresholdDisplayValue.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getThresholdDisplayValueBytes() {
      java.lang.Object ref = thresholdDisplayValue_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        thresholdDisplayValue_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (endTimestampInS_ != 0L) {
        output.writeInt64(1, endTimestampInS_);
      }
      if (thresholdInKph_ != 0) {
        output.writeInt32(2, thresholdInKph_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(thresholdDisplayValue_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, thresholdDisplayValue_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (endTimestampInS_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, endTimestampInS_);
      }
      if (thresholdInKph_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, thresholdInKph_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(thresholdDisplayValue_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, thresholdDisplayValue_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration other = (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration) obj;

      if (getEndTimestampInS()
          != other.getEndTimestampInS()) return false;
      if (getThresholdInKph()
          != other.getThresholdInKph()) return false;
      if (!getThresholdDisplayValue()
          .equals(other.getThresholdDisplayValue())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + END_TIMESTAMP_IN_S_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getEndTimestampInS());
      hash = (37 * hash) + THRESHOLD_IN_KPH_FIELD_NUMBER;
      hash = (53 * hash) + getThresholdInKph();
      hash = (37 * hash) + THRESHOLD_DISPLAY_VALUE_FIELD_NUMBER;
      hash = (53 * hash) + getThresholdDisplayValue().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.SpeedAlertConfiguration}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.SpeedAlertConfiguration)
        com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfiguration_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfiguration_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.class, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        endTimestampInS_ = 0L;
        thresholdInKph_ = 0;
        thresholdDisplayValue_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfiguration_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration build() {
        com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration result = new com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.endTimestampInS_ = endTimestampInS_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.thresholdInKph_ = thresholdInKph_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.thresholdDisplayValue_ = thresholdDisplayValue_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.getDefaultInstance()) return this;
        if (other.getEndTimestampInS() != 0L) {
          setEndTimestampInS(other.getEndTimestampInS());
        }
        if (other.getThresholdInKph() != 0) {
          setThresholdInKph(other.getThresholdInKph());
        }
        if (!other.getThresholdDisplayValue().isEmpty()) {
          thresholdDisplayValue_ = other.thresholdDisplayValue_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                endTimestampInS_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                thresholdInKph_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                thresholdDisplayValue_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long endTimestampInS_ ;
      /**
       * <pre>
       * Unix timestamp in seconds
       * </pre>
       *
       * <code>int64 end_timestamp_in_s = 1;</code>
       * @return The endTimestampInS.
       */
      @java.lang.Override
      public long getEndTimestampInS() {
        return endTimestampInS_;
      }
      /**
       * <pre>
       * Unix timestamp in seconds
       * </pre>
       *
       * <code>int64 end_timestamp_in_s = 1;</code>
       * @param value The endTimestampInS to set.
       * @return This builder for chaining.
       */
      public Builder setEndTimestampInS(long value) {

        endTimestampInS_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Unix timestamp in seconds
       * </pre>
       *
       * <code>int64 end_timestamp_in_s = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndTimestampInS() {
        bitField0_ = (bitField0_ & ~0x00000001);
        endTimestampInS_ = 0L;
        onChanged();
        return this;
      }

      private int thresholdInKph_ ;
      /**
       * <pre>
       * Speed in kilometers per hour
       * </pre>
       *
       * <code>int32 threshold_in_kph = 2;</code>
       * @return The thresholdInKph.
       */
      @java.lang.Override
      public int getThresholdInKph() {
        return thresholdInKph_;
      }
      /**
       * <pre>
       * Speed in kilometers per hour
       * </pre>
       *
       * <code>int32 threshold_in_kph = 2;</code>
       * @param value The thresholdInKph to set.
       * @return This builder for chaining.
       */
      public Builder setThresholdInKph(int value) {

        thresholdInKph_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Speed in kilometers per hour
       * </pre>
       *
       * <code>int32 threshold_in_kph = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearThresholdInKph() {
        bitField0_ = (bitField0_ & ~0x00000002);
        thresholdInKph_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object thresholdDisplayValue_ = "";
      /**
       * <pre>
       * threshold value in the users preferred unit
       * </pre>
       *
       * <code>string threshold_display_value = 3;</code>
       * @return The thresholdDisplayValue.
       */
      public java.lang.String getThresholdDisplayValue() {
        java.lang.Object ref = thresholdDisplayValue_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          thresholdDisplayValue_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * threshold value in the users preferred unit
       * </pre>
       *
       * <code>string threshold_display_value = 3;</code>
       * @return The bytes for thresholdDisplayValue.
       */
      public com.google.protobuf.ByteString
          getThresholdDisplayValueBytes() {
        java.lang.Object ref = thresholdDisplayValue_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          thresholdDisplayValue_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * threshold value in the users preferred unit
       * </pre>
       *
       * <code>string threshold_display_value = 3;</code>
       * @param value The thresholdDisplayValue to set.
       * @return This builder for chaining.
       */
      public Builder setThresholdDisplayValue(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        thresholdDisplayValue_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * threshold value in the users preferred unit
       * </pre>
       *
       * <code>string threshold_display_value = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearThresholdDisplayValue() {
        thresholdDisplayValue_ = getDefaultInstance().getThresholdDisplayValue();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * threshold value in the users preferred unit
       * </pre>
       *
       * <code>string threshold_display_value = 3;</code>
       * @param value The bytes for thresholdDisplayValue to set.
       * @return This builder for chaining.
       */
      public Builder setThresholdDisplayValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        thresholdDisplayValue_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.SpeedAlertConfiguration)
    }

    // @@protoc_insertion_point(class_scope:proto.SpeedAlertConfiguration)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SpeedAlertConfiguration>
        PARSER = new com.google.protobuf.AbstractParser<SpeedAlertConfiguration>() {
      @java.lang.Override
      public SpeedAlertConfiguration parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<SpeedAlertConfiguration> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SpeedAlertConfiguration> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WeeklySettingsHeadUnitValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.WeeklySettingsHeadUnitValue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
     * </pre>
     *
     * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting> 
        getWeeklySettingsList();
    /**
     * <pre>
     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
     * </pre>
     *
     * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting getWeeklySettings(int index);
    /**
     * <pre>
     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
     * </pre>
     *
     * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
     */
    int getWeeklySettingsCount();
    /**
     * <pre>
     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
     * </pre>
     *
     * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
     */
    java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingOrBuilder> 
        getWeeklySettingsOrBuilderList();
    /**
     * <pre>
     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
     * </pre>
     *
     * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingOrBuilder getWeeklySettingsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code proto.WeeklySettingsHeadUnitValue}
   */
  public static final class WeeklySettingsHeadUnitValue extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.WeeklySettingsHeadUnitValue)
      WeeklySettingsHeadUnitValueOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "WeeklySettingsHeadUnitValue");
    }
    // Use WeeklySettingsHeadUnitValue.newBuilder() to construct.
    private WeeklySettingsHeadUnitValue(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WeeklySettingsHeadUnitValue() {
      weeklySettings_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySettingsHeadUnitValue_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySettingsHeadUnitValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.class, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.Builder.class);
    }

    public static final int WEEKLY_SETTINGS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting> weeklySettings_;
    /**
     * <pre>
     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
     * </pre>
     *
     * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting> getWeeklySettingsList() {
      return weeklySettings_;
    }
    /**
     * <pre>
     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
     * </pre>
     *
     * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingOrBuilder> 
        getWeeklySettingsOrBuilderList() {
      return weeklySettings_;
    }
    /**
     * <pre>
     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
     * </pre>
     *
     * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
     */
    @java.lang.Override
    public int getWeeklySettingsCount() {
      return weeklySettings_.size();
    }
    /**
     * <pre>
     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
     * </pre>
     *
     * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting getWeeklySettings(int index) {
      return weeklySettings_.get(index);
    }
    /**
     * <pre>
     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
     * </pre>
     *
     * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingOrBuilder getWeeklySettingsOrBuilder(
        int index) {
      return weeklySettings_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < weeklySettings_.size(); i++) {
        output.writeMessage(1, weeklySettings_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < weeklySettings_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, weeklySettings_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue other = (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) obj;

      if (!getWeeklySettingsList()
          .equals(other.getWeeklySettingsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getWeeklySettingsCount() > 0) {
        hash = (37 * hash) + WEEKLY_SETTINGS_FIELD_NUMBER;
        hash = (53 * hash) + getWeeklySettingsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.WeeklySettingsHeadUnitValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.WeeklySettingsHeadUnitValue)
        com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySettingsHeadUnitValue_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySettingsHeadUnitValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.class, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (weeklySettingsBuilder_ == null) {
          weeklySettings_ = java.util.Collections.emptyList();
        } else {
          weeklySettings_ = null;
          weeklySettingsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySettingsHeadUnitValue_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue build() {
        com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue result = new com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue result) {
        if (weeklySettingsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            weeklySettings_ = java.util.Collections.unmodifiableList(weeklySettings_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.weeklySettings_ = weeklySettings_;
        } else {
          result.weeklySettings_ = weeklySettingsBuilder_.build();
        }
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance()) return this;
        if (weeklySettingsBuilder_ == null) {
          if (!other.weeklySettings_.isEmpty()) {
            if (weeklySettings_.isEmpty()) {
              weeklySettings_ = other.weeklySettings_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureWeeklySettingsIsMutable();
              weeklySettings_.addAll(other.weeklySettings_);
            }
            onChanged();
          }
        } else {
          if (!other.weeklySettings_.isEmpty()) {
            if (weeklySettingsBuilder_.isEmpty()) {
              weeklySettingsBuilder_.dispose();
              weeklySettingsBuilder_ = null;
              weeklySettings_ = other.weeklySettings_;
              bitField0_ = (bitField0_ & ~0x00000001);
              weeklySettingsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetWeeklySettingsFieldBuilder() : null;
            } else {
              weeklySettingsBuilder_.addAllMessages(other.weeklySettings_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting m =
                    input.readMessage(
                        com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.parser(),
                        extensionRegistry);
                if (weeklySettingsBuilder_ == null) {
                  ensureWeeklySettingsIsMutable();
                  weeklySettings_.add(m);
                } else {
                  weeklySettingsBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting> weeklySettings_ =
        java.util.Collections.emptyList();
      private void ensureWeeklySettingsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          weeklySettings_ = new java.util.ArrayList<com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting>(weeklySettings_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingOrBuilder> weeklySettingsBuilder_;

      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting> getWeeklySettingsList() {
        if (weeklySettingsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(weeklySettings_);
        } else {
          return weeklySettingsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public int getWeeklySettingsCount() {
        if (weeklySettingsBuilder_ == null) {
          return weeklySettings_.size();
        } else {
          return weeklySettingsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting getWeeklySettings(int index) {
        if (weeklySettingsBuilder_ == null) {
          return weeklySettings_.get(index);
        } else {
          return weeklySettingsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public Builder setWeeklySettings(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting value) {
        if (weeklySettingsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureWeeklySettingsIsMutable();
          weeklySettings_.set(index, value);
          onChanged();
        } else {
          weeklySettingsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public Builder setWeeklySettings(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder builderForValue) {
        if (weeklySettingsBuilder_ == null) {
          ensureWeeklySettingsIsMutable();
          weeklySettings_.set(index, builderForValue.build());
          onChanged();
        } else {
          weeklySettingsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public Builder addWeeklySettings(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting value) {
        if (weeklySettingsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureWeeklySettingsIsMutable();
          weeklySettings_.add(value);
          onChanged();
        } else {
          weeklySettingsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public Builder addWeeklySettings(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting value) {
        if (weeklySettingsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureWeeklySettingsIsMutable();
          weeklySettings_.add(index, value);
          onChanged();
        } else {
          weeklySettingsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public Builder addWeeklySettings(
          com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder builderForValue) {
        if (weeklySettingsBuilder_ == null) {
          ensureWeeklySettingsIsMutable();
          weeklySettings_.add(builderForValue.build());
          onChanged();
        } else {
          weeklySettingsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public Builder addWeeklySettings(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder builderForValue) {
        if (weeklySettingsBuilder_ == null) {
          ensureWeeklySettingsIsMutable();
          weeklySettings_.add(index, builderForValue.build());
          onChanged();
        } else {
          weeklySettingsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public Builder addAllWeeklySettings(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting> values) {
        if (weeklySettingsBuilder_ == null) {
          ensureWeeklySettingsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, weeklySettings_);
          onChanged();
        } else {
          weeklySettingsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public Builder clearWeeklySettings() {
        if (weeklySettingsBuilder_ == null) {
          weeklySettings_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          weeklySettingsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public Builder removeWeeklySettings(int index) {
        if (weeklySettingsBuilder_ == null) {
          ensureWeeklySettingsIsMutable();
          weeklySettings_.remove(index);
          onChanged();
        } else {
          weeklySettingsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder getWeeklySettingsBuilder(
          int index) {
        return internalGetWeeklySettingsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingOrBuilder getWeeklySettingsOrBuilder(
          int index) {
        if (weeklySettingsBuilder_ == null) {
          return weeklySettings_.get(index);  } else {
          return weeklySettingsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingOrBuilder> 
           getWeeklySettingsOrBuilderList() {
        if (weeklySettingsBuilder_ != null) {
          return weeklySettingsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(weeklySettings_);
        }
      }
      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder addWeeklySettingsBuilder() {
        return internalGetWeeklySettingsFieldBuilder().addBuilder(
            com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.getDefaultInstance());
      }
      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder addWeeklySettingsBuilder(
          int index) {
        return internalGetWeeklySettingsFieldBuilder().addBuilder(
            index, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.getDefaultInstance());
      }
      /**
       * <pre>
       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
       * </pre>
       *
       * <code>repeated .proto.WeeklySetting weekly_settings = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder> 
           getWeeklySettingsBuilderList() {
        return internalGetWeeklySettingsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingOrBuilder> 
          internalGetWeeklySettingsFieldBuilder() {
        if (weeklySettingsBuilder_ == null) {
          weeklySettingsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingOrBuilder>(
                  weeklySettings_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          weeklySettings_ = null;
        }
        return weeklySettingsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:proto.WeeklySettingsHeadUnitValue)
    }

    // @@protoc_insertion_point(class_scope:proto.WeeklySettingsHeadUnitValue)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WeeklySettingsHeadUnitValue>
        PARSER = new com.google.protobuf.AbstractParser<WeeklySettingsHeadUnitValue>() {
      @java.lang.Override
      public WeeklySettingsHeadUnitValue parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<WeeklySettingsHeadUnitValue> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<WeeklySettingsHeadUnitValue> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WeeklySettingOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.WeeklySetting)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 day = 1;</code>
     * @return The day.
     */
    int getDay();

    /**
     * <code>int32 minutes_since_midnight = 2;</code>
     * @return The minutesSinceMidnight.
     */
    int getMinutesSinceMidnight();
  }
  /**
   * Protobuf type {@code proto.WeeklySetting}
   */
  public static final class WeeklySetting extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.WeeklySetting)
      WeeklySettingOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "WeeklySetting");
    }
    // Use WeeklySetting.newBuilder() to construct.
    private WeeklySetting(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WeeklySetting() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySetting_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySetting_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.class, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder.class);
    }

    public static final int DAY_FIELD_NUMBER = 1;
    private int day_ = 0;
    /**
     * <code>int32 day = 1;</code>
     * @return The day.
     */
    @java.lang.Override
    public int getDay() {
      return day_;
    }

    public static final int MINUTES_SINCE_MIDNIGHT_FIELD_NUMBER = 2;
    private int minutesSinceMidnight_ = 0;
    /**
     * <code>int32 minutes_since_midnight = 2;</code>
     * @return The minutesSinceMidnight.
     */
    @java.lang.Override
    public int getMinutesSinceMidnight() {
      return minutesSinceMidnight_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (day_ != 0) {
        output.writeInt32(1, day_);
      }
      if (minutesSinceMidnight_ != 0) {
        output.writeInt32(2, minutesSinceMidnight_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (day_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, day_);
      }
      if (minutesSinceMidnight_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, minutesSinceMidnight_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting other = (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting) obj;

      if (getDay()
          != other.getDay()) return false;
      if (getMinutesSinceMidnight()
          != other.getMinutesSinceMidnight()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + DAY_FIELD_NUMBER;
      hash = (53 * hash) + getDay();
      hash = (37 * hash) + MINUTES_SINCE_MIDNIGHT_FIELD_NUMBER;
      hash = (53 * hash) + getMinutesSinceMidnight();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.WeeklySetting}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.WeeklySetting)
        com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySetting_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySetting_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.class, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        day_ = 0;
        minutesSinceMidnight_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySetting_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting build() {
        com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting result = new com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.day_ = day_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.minutesSinceMidnight_ = minutesSinceMidnight_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.getDefaultInstance()) return this;
        if (other.getDay() != 0) {
          setDay(other.getDay());
        }
        if (other.getMinutesSinceMidnight() != 0) {
          setMinutesSinceMidnight(other.getMinutesSinceMidnight());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                day_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                minutesSinceMidnight_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int day_ ;
      /**
       * <code>int32 day = 1;</code>
       * @return The day.
       */
      @java.lang.Override
      public int getDay() {
        return day_;
      }
      /**
       * <code>int32 day = 1;</code>
       * @param value The day to set.
       * @return This builder for chaining.
       */
      public Builder setDay(int value) {

        day_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 day = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearDay() {
        bitField0_ = (bitField0_ & ~0x00000001);
        day_ = 0;
        onChanged();
        return this;
      }

      private int minutesSinceMidnight_ ;
      /**
       * <code>int32 minutes_since_midnight = 2;</code>
       * @return The minutesSinceMidnight.
       */
      @java.lang.Override
      public int getMinutesSinceMidnight() {
        return minutesSinceMidnight_;
      }
      /**
       * <code>int32 minutes_since_midnight = 2;</code>
       * @param value The minutesSinceMidnight to set.
       * @return This builder for chaining.
       */
      public Builder setMinutesSinceMidnight(int value) {

        minutesSinceMidnight_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 minutes_since_midnight = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearMinutesSinceMidnight() {
        bitField0_ = (bitField0_ & ~0x00000002);
        minutesSinceMidnight_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.WeeklySetting)
    }

    // @@protoc_insertion_point(class_scope:proto.WeeklySetting)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WeeklySetting>
        PARSER = new com.google.protobuf.AbstractParser<WeeklySetting>() {
      @java.lang.Override
      public WeeklySetting parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<WeeklySetting> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<WeeklySetting> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TemperaturePointsValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.TemperaturePointsValue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint> 
        getTemperaturePointsList();
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint getTemperaturePoints(int index);
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
     */
    int getTemperaturePointsCount();
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
     */
    java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointOrBuilder> 
        getTemperaturePointsOrBuilderList();
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointOrBuilder getTemperaturePointsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code proto.TemperaturePointsValue}
   */
  public static final class TemperaturePointsValue extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.TemperaturePointsValue)
      TemperaturePointsValueOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "TemperaturePointsValue");
    }
    // Use TemperaturePointsValue.newBuilder() to construct.
    private TemperaturePointsValue(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private TemperaturePointsValue() {
      temperaturePoints_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePointsValue_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePointsValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.class, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.Builder.class);
    }

    public static final int TEMPERATURE_POINTS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint> temperaturePoints_;
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint> getTemperaturePointsList() {
      return temperaturePoints_;
    }
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointOrBuilder> 
        getTemperaturePointsOrBuilderList() {
      return temperaturePoints_;
    }
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
     */
    @java.lang.Override
    public int getTemperaturePointsCount() {
      return temperaturePoints_.size();
    }
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint getTemperaturePoints(int index) {
      return temperaturePoints_.get(index);
    }
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointOrBuilder getTemperaturePointsOrBuilder(
        int index) {
      return temperaturePoints_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < temperaturePoints_.size(); i++) {
        output.writeMessage(1, temperaturePoints_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < temperaturePoints_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, temperaturePoints_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue other = (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) obj;

      if (!getTemperaturePointsList()
          .equals(other.getTemperaturePointsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getTemperaturePointsCount() > 0) {
        hash = (37 * hash) + TEMPERATURE_POINTS_FIELD_NUMBER;
        hash = (53 * hash) + getTemperaturePointsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.TemperaturePointsValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.TemperaturePointsValue)
        com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePointsValue_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePointsValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.class, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (temperaturePointsBuilder_ == null) {
          temperaturePoints_ = java.util.Collections.emptyList();
        } else {
          temperaturePoints_ = null;
          temperaturePointsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePointsValue_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue build() {
        com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue result = new com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue result) {
        if (temperaturePointsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            temperaturePoints_ = java.util.Collections.unmodifiableList(temperaturePoints_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.temperaturePoints_ = temperaturePoints_;
        } else {
          result.temperaturePoints_ = temperaturePointsBuilder_.build();
        }
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance()) return this;
        if (temperaturePointsBuilder_ == null) {
          if (!other.temperaturePoints_.isEmpty()) {
            if (temperaturePoints_.isEmpty()) {
              temperaturePoints_ = other.temperaturePoints_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureTemperaturePointsIsMutable();
              temperaturePoints_.addAll(other.temperaturePoints_);
            }
            onChanged();
          }
        } else {
          if (!other.temperaturePoints_.isEmpty()) {
            if (temperaturePointsBuilder_.isEmpty()) {
              temperaturePointsBuilder_.dispose();
              temperaturePointsBuilder_ = null;
              temperaturePoints_ = other.temperaturePoints_;
              bitField0_ = (bitField0_ & ~0x00000001);
              temperaturePointsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetTemperaturePointsFieldBuilder() : null;
            } else {
              temperaturePointsBuilder_.addAllMessages(other.temperaturePoints_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint m =
                    input.readMessage(
                        com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.parser(),
                        extensionRegistry);
                if (temperaturePointsBuilder_ == null) {
                  ensureTemperaturePointsIsMutable();
                  temperaturePoints_.add(m);
                } else {
                  temperaturePointsBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint> temperaturePoints_ =
        java.util.Collections.emptyList();
      private void ensureTemperaturePointsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          temperaturePoints_ = new java.util.ArrayList<com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint>(temperaturePoints_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointOrBuilder> temperaturePointsBuilder_;

      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint> getTemperaturePointsList() {
        if (temperaturePointsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(temperaturePoints_);
        } else {
          return temperaturePointsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public int getTemperaturePointsCount() {
        if (temperaturePointsBuilder_ == null) {
          return temperaturePoints_.size();
        } else {
          return temperaturePointsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint getTemperaturePoints(int index) {
        if (temperaturePointsBuilder_ == null) {
          return temperaturePoints_.get(index);
        } else {
          return temperaturePointsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public Builder setTemperaturePoints(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint value) {
        if (temperaturePointsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTemperaturePointsIsMutable();
          temperaturePoints_.set(index, value);
          onChanged();
        } else {
          temperaturePointsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public Builder setTemperaturePoints(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder builderForValue) {
        if (temperaturePointsBuilder_ == null) {
          ensureTemperaturePointsIsMutable();
          temperaturePoints_.set(index, builderForValue.build());
          onChanged();
        } else {
          temperaturePointsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public Builder addTemperaturePoints(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint value) {
        if (temperaturePointsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTemperaturePointsIsMutable();
          temperaturePoints_.add(value);
          onChanged();
        } else {
          temperaturePointsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public Builder addTemperaturePoints(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint value) {
        if (temperaturePointsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTemperaturePointsIsMutable();
          temperaturePoints_.add(index, value);
          onChanged();
        } else {
          temperaturePointsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public Builder addTemperaturePoints(
          com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder builderForValue) {
        if (temperaturePointsBuilder_ == null) {
          ensureTemperaturePointsIsMutable();
          temperaturePoints_.add(builderForValue.build());
          onChanged();
        } else {
          temperaturePointsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public Builder addTemperaturePoints(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder builderForValue) {
        if (temperaturePointsBuilder_ == null) {
          ensureTemperaturePointsIsMutable();
          temperaturePoints_.add(index, builderForValue.build());
          onChanged();
        } else {
          temperaturePointsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public Builder addAllTemperaturePoints(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint> values) {
        if (temperaturePointsBuilder_ == null) {
          ensureTemperaturePointsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, temperaturePoints_);
          onChanged();
        } else {
          temperaturePointsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public Builder clearTemperaturePoints() {
        if (temperaturePointsBuilder_ == null) {
          temperaturePoints_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          temperaturePointsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public Builder removeTemperaturePoints(int index) {
        if (temperaturePointsBuilder_ == null) {
          ensureTemperaturePointsIsMutable();
          temperaturePoints_.remove(index);
          onChanged();
        } else {
          temperaturePointsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder getTemperaturePointsBuilder(
          int index) {
        return internalGetTemperaturePointsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointOrBuilder getTemperaturePointsOrBuilder(
          int index) {
        if (temperaturePointsBuilder_ == null) {
          return temperaturePoints_.get(index);  } else {
          return temperaturePointsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointOrBuilder> 
           getTemperaturePointsOrBuilderList() {
        if (temperaturePointsBuilder_ != null) {
          return temperaturePointsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(temperaturePoints_);
        }
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder addTemperaturePointsBuilder() {
        return internalGetTemperaturePointsFieldBuilder().addBuilder(
            com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.getDefaultInstance());
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder addTemperaturePointsBuilder(
          int index) {
        return internalGetTemperaturePointsFieldBuilder().addBuilder(
            index, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.getDefaultInstance());
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.TemperaturePoint temperature_points = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder> 
           getTemperaturePointsBuilderList() {
        return internalGetTemperaturePointsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointOrBuilder> 
          internalGetTemperaturePointsFieldBuilder() {
        if (temperaturePointsBuilder_ == null) {
          temperaturePointsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointOrBuilder>(
                  temperaturePoints_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          temperaturePoints_ = null;
        }
        return temperaturePointsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:proto.TemperaturePointsValue)
    }

    // @@protoc_insertion_point(class_scope:proto.TemperaturePointsValue)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<TemperaturePointsValue>
        PARSER = new com.google.protobuf.AbstractParser<TemperaturePointsValue>() {
      @java.lang.Override
      public TemperaturePointsValue parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<TemperaturePointsValue> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<TemperaturePointsValue> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TemperaturePointOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.TemperaturePoint)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string zone = 1;</code>
     * @return The zone.
     */
    java.lang.String getZone();
    /**
     * <code>string zone = 1;</code>
     * @return The bytes for zone.
     */
    com.google.protobuf.ByteString
        getZoneBytes();

    /**
     * <code>double temperature = 2;</code>
     * @return The temperature.
     */
    double getTemperature();

    /**
     * <code>string temperature_display_value = 3;</code>
     * @return The temperatureDisplayValue.
     */
    java.lang.String getTemperatureDisplayValue();
    /**
     * <code>string temperature_display_value = 3;</code>
     * @return The bytes for temperatureDisplayValue.
     */
    com.google.protobuf.ByteString
        getTemperatureDisplayValueBytes();
  }
  /**
   * Protobuf type {@code proto.TemperaturePoint}
   */
  public static final class TemperaturePoint extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.TemperaturePoint)
      TemperaturePointOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "TemperaturePoint");
    }
    // Use TemperaturePoint.newBuilder() to construct.
    private TemperaturePoint(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private TemperaturePoint() {
      zone_ = "";
      temperatureDisplayValue_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePoint_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePoint_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.class, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder.class);
    }

    public static final int ZONE_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object zone_ = "";
    /**
     * <code>string zone = 1;</code>
     * @return The zone.
     */
    @java.lang.Override
    public java.lang.String getZone() {
      java.lang.Object ref = zone_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        zone_ = s;
        return s;
      }
    }
    /**
     * <code>string zone = 1;</code>
     * @return The bytes for zone.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getZoneBytes() {
      java.lang.Object ref = zone_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        zone_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TEMPERATURE_FIELD_NUMBER = 2;
    private double temperature_ = 0D;
    /**
     * <code>double temperature = 2;</code>
     * @return The temperature.
     */
    @java.lang.Override
    public double getTemperature() {
      return temperature_;
    }

    public static final int TEMPERATURE_DISPLAY_VALUE_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object temperatureDisplayValue_ = "";
    /**
     * <code>string temperature_display_value = 3;</code>
     * @return The temperatureDisplayValue.
     */
    @java.lang.Override
    public java.lang.String getTemperatureDisplayValue() {
      java.lang.Object ref = temperatureDisplayValue_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        temperatureDisplayValue_ = s;
        return s;
      }
    }
    /**
     * <code>string temperature_display_value = 3;</code>
     * @return The bytes for temperatureDisplayValue.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTemperatureDisplayValueBytes() {
      java.lang.Object ref = temperatureDisplayValue_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        temperatureDisplayValue_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(zone_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, zone_);
      }
      if (java.lang.Double.doubleToRawLongBits(temperature_) != 0) {
        output.writeDouble(2, temperature_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(temperatureDisplayValue_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, temperatureDisplayValue_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(zone_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, zone_);
      }
      if (java.lang.Double.doubleToRawLongBits(temperature_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, temperature_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(temperatureDisplayValue_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, temperatureDisplayValue_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint other = (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint) obj;

      if (!getZone()
          .equals(other.getZone())) return false;
      if (java.lang.Double.doubleToLongBits(getTemperature())
          != java.lang.Double.doubleToLongBits(
              other.getTemperature())) return false;
      if (!getTemperatureDisplayValue()
          .equals(other.getTemperatureDisplayValue())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ZONE_FIELD_NUMBER;
      hash = (53 * hash) + getZone().hashCode();
      hash = (37 * hash) + TEMPERATURE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getTemperature()));
      hash = (37 * hash) + TEMPERATURE_DISPLAY_VALUE_FIELD_NUMBER;
      hash = (53 * hash) + getTemperatureDisplayValue().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.TemperaturePoint}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.TemperaturePoint)
        com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePoint_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePoint_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.class, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        zone_ = "";
        temperature_ = 0D;
        temperatureDisplayValue_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePoint_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint build() {
        com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint result = new com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.zone_ = zone_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.temperature_ = temperature_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.temperatureDisplayValue_ = temperatureDisplayValue_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.getDefaultInstance()) return this;
        if (!other.getZone().isEmpty()) {
          zone_ = other.zone_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (java.lang.Double.doubleToRawLongBits(other.getTemperature()) != 0) {
          setTemperature(other.getTemperature());
        }
        if (!other.getTemperatureDisplayValue().isEmpty()) {
          temperatureDisplayValue_ = other.temperatureDisplayValue_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                zone_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 17: {
                temperature_ = input.readDouble();
                bitField0_ |= 0x00000002;
                break;
              } // case 17
              case 26: {
                temperatureDisplayValue_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object zone_ = "";
      /**
       * <code>string zone = 1;</code>
       * @return The zone.
       */
      public java.lang.String getZone() {
        java.lang.Object ref = zone_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          zone_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string zone = 1;</code>
       * @return The bytes for zone.
       */
      public com.google.protobuf.ByteString
          getZoneBytes() {
        java.lang.Object ref = zone_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          zone_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string zone = 1;</code>
       * @param value The zone to set.
       * @return This builder for chaining.
       */
      public Builder setZone(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        zone_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string zone = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearZone() {
        zone_ = getDefaultInstance().getZone();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string zone = 1;</code>
       * @param value The bytes for zone to set.
       * @return This builder for chaining.
       */
      public Builder setZoneBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        zone_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private double temperature_ ;
      /**
       * <code>double temperature = 2;</code>
       * @return The temperature.
       */
      @java.lang.Override
      public double getTemperature() {
        return temperature_;
      }
      /**
       * <code>double temperature = 2;</code>
       * @param value The temperature to set.
       * @return This builder for chaining.
       */
      public Builder setTemperature(double value) {

        temperature_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>double temperature = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTemperature() {
        bitField0_ = (bitField0_ & ~0x00000002);
        temperature_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object temperatureDisplayValue_ = "";
      /**
       * <code>string temperature_display_value = 3;</code>
       * @return The temperatureDisplayValue.
       */
      public java.lang.String getTemperatureDisplayValue() {
        java.lang.Object ref = temperatureDisplayValue_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          temperatureDisplayValue_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string temperature_display_value = 3;</code>
       * @return The bytes for temperatureDisplayValue.
       */
      public com.google.protobuf.ByteString
          getTemperatureDisplayValueBytes() {
        java.lang.Object ref = temperatureDisplayValue_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          temperatureDisplayValue_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string temperature_display_value = 3;</code>
       * @param value The temperatureDisplayValue to set.
       * @return This builder for chaining.
       */
      public Builder setTemperatureDisplayValue(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        temperatureDisplayValue_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>string temperature_display_value = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTemperatureDisplayValue() {
        temperatureDisplayValue_ = getDefaultInstance().getTemperatureDisplayValue();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>string temperature_display_value = 3;</code>
       * @param value The bytes for temperatureDisplayValue to set.
       * @return This builder for chaining.
       */
      public Builder setTemperatureDisplayValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        temperatureDisplayValue_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.TemperaturePoint)
    }

    // @@protoc_insertion_point(class_scope:proto.TemperaturePoint)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<TemperaturePoint>
        PARSER = new com.google.protobuf.AbstractParser<TemperaturePoint>() {
      @java.lang.Override
      public TemperaturePoint parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<TemperaturePoint> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<TemperaturePoint> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WeekdayTariffValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.WeekdayTariffValue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Tariff> 
        getTariffsList();
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.Tariff getTariffs(int index);
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    int getTariffsCount();
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder> 
        getTariffsOrBuilderList();
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder getTariffsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code proto.WeekdayTariffValue}
   */
  public static final class WeekdayTariffValue extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.WeekdayTariffValue)
      WeekdayTariffValueOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "WeekdayTariffValue");
    }
    // Use WeekdayTariffValue.newBuilder() to construct.
    private WeekdayTariffValue(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WeekdayTariffValue() {
      tariffs_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekdayTariffValue_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekdayTariffValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.class, com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.Builder.class);
    }

    public static final int TARIFFS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Tariff> tariffs_;
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Tariff> getTariffsList() {
      return tariffs_;
    }
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder> 
        getTariffsOrBuilderList() {
      return tariffs_;
    }
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    @java.lang.Override
    public int getTariffsCount() {
      return tariffs_.size();
    }
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.Tariff getTariffs(int index) {
      return tariffs_.get(index);
    }
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder getTariffsOrBuilder(
        int index) {
      return tariffs_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < tariffs_.size(); i++) {
        output.writeMessage(1, tariffs_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < tariffs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, tariffs_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue other = (com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) obj;

      if (!getTariffsList()
          .equals(other.getTariffsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getTariffsCount() > 0) {
        hash = (37 * hash) + TARIFFS_FIELD_NUMBER;
        hash = (53 * hash) + getTariffsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.WeekdayTariffValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.WeekdayTariffValue)
        com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekdayTariffValue_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekdayTariffValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.class, com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (tariffsBuilder_ == null) {
          tariffs_ = java.util.Collections.emptyList();
        } else {
          tariffs_ = null;
          tariffsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekdayTariffValue_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue build() {
        com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue result = new com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue result) {
        if (tariffsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            tariffs_ = java.util.Collections.unmodifiableList(tariffs_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.tariffs_ = tariffs_;
        } else {
          result.tariffs_ = tariffsBuilder_.build();
        }
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance()) return this;
        if (tariffsBuilder_ == null) {
          if (!other.tariffs_.isEmpty()) {
            if (tariffs_.isEmpty()) {
              tariffs_ = other.tariffs_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureTariffsIsMutable();
              tariffs_.addAll(other.tariffs_);
            }
            onChanged();
          }
        } else {
          if (!other.tariffs_.isEmpty()) {
            if (tariffsBuilder_.isEmpty()) {
              tariffsBuilder_.dispose();
              tariffsBuilder_ = null;
              tariffs_ = other.tariffs_;
              bitField0_ = (bitField0_ & ~0x00000001);
              tariffsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetTariffsFieldBuilder() : null;
            } else {
              tariffsBuilder_.addAllMessages(other.tariffs_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.daimler.mbcarkit.proto.VehicleEvents.Tariff m =
                    input.readMessage(
                        com.daimler.mbcarkit.proto.VehicleEvents.Tariff.parser(),
                        extensionRegistry);
                if (tariffsBuilder_ == null) {
                  ensureTariffsIsMutable();
                  tariffs_.add(m);
                } else {
                  tariffsBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Tariff> tariffs_ =
        java.util.Collections.emptyList();
      private void ensureTariffsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          tariffs_ = new java.util.ArrayList<com.daimler.mbcarkit.proto.VehicleEvents.Tariff>(tariffs_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.Tariff, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder> tariffsBuilder_;

      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Tariff> getTariffsList() {
        if (tariffsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(tariffs_);
        } else {
          return tariffsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public int getTariffsCount() {
        if (tariffsBuilder_ == null) {
          return tariffs_.size();
        } else {
          return tariffsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.Tariff getTariffs(int index) {
        if (tariffsBuilder_ == null) {
          return tariffs_.get(index);
        } else {
          return tariffsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder setTariffs(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff value) {
        if (tariffsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTariffsIsMutable();
          tariffs_.set(index, value);
          onChanged();
        } else {
          tariffsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder setTariffs(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder builderForValue) {
        if (tariffsBuilder_ == null) {
          ensureTariffsIsMutable();
          tariffs_.set(index, builderForValue.build());
          onChanged();
        } else {
          tariffsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder addTariffs(com.daimler.mbcarkit.proto.VehicleEvents.Tariff value) {
        if (tariffsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTariffsIsMutable();
          tariffs_.add(value);
          onChanged();
        } else {
          tariffsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder addTariffs(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff value) {
        if (tariffsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTariffsIsMutable();
          tariffs_.add(index, value);
          onChanged();
        } else {
          tariffsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder addTariffs(
          com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder builderForValue) {
        if (tariffsBuilder_ == null) {
          ensureTariffsIsMutable();
          tariffs_.add(builderForValue.build());
          onChanged();
        } else {
          tariffsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder addTariffs(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder builderForValue) {
        if (tariffsBuilder_ == null) {
          ensureTariffsIsMutable();
          tariffs_.add(index, builderForValue.build());
          onChanged();
        } else {
          tariffsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder addAllTariffs(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleEvents.Tariff> values) {
        if (tariffsBuilder_ == null) {
          ensureTariffsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, tariffs_);
          onChanged();
        } else {
          tariffsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder clearTariffs() {
        if (tariffsBuilder_ == null) {
          tariffs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          tariffsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder removeTariffs(int index) {
        if (tariffsBuilder_ == null) {
          ensureTariffsIsMutable();
          tariffs_.remove(index);
          onChanged();
        } else {
          tariffsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder getTariffsBuilder(
          int index) {
        return internalGetTariffsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder getTariffsOrBuilder(
          int index) {
        if (tariffsBuilder_ == null) {
          return tariffs_.get(index);  } else {
          return tariffsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder> 
           getTariffsOrBuilderList() {
        if (tariffsBuilder_ != null) {
          return tariffsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(tariffs_);
        }
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder addTariffsBuilder() {
        return internalGetTariffsFieldBuilder().addBuilder(
            com.daimler.mbcarkit.proto.VehicleEvents.Tariff.getDefaultInstance());
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder addTariffsBuilder(
          int index) {
        return internalGetTariffsFieldBuilder().addBuilder(
            index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.getDefaultInstance());
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder> 
           getTariffsBuilderList() {
        return internalGetTariffsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.Tariff, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder> 
          internalGetTariffsFieldBuilder() {
        if (tariffsBuilder_ == null) {
          tariffsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.Tariff, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder>(
                  tariffs_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          tariffs_ = null;
        }
        return tariffsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:proto.WeekdayTariffValue)
    }

    // @@protoc_insertion_point(class_scope:proto.WeekdayTariffValue)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WeekdayTariffValue>
        PARSER = new com.google.protobuf.AbstractParser<WeekdayTariffValue>() {
      @java.lang.Override
      public WeekdayTariffValue parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<WeekdayTariffValue> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<WeekdayTariffValue> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WeekendTariffValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.WeekendTariffValue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Tariff> 
        getTariffsList();
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.Tariff getTariffs(int index);
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    int getTariffsCount();
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder> 
        getTariffsOrBuilderList();
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder getTariffsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code proto.WeekendTariffValue}
   */
  public static final class WeekendTariffValue extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.WeekendTariffValue)
      WeekendTariffValueOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "WeekendTariffValue");
    }
    // Use WeekendTariffValue.newBuilder() to construct.
    private WeekendTariffValue(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WeekendTariffValue() {
      tariffs_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekendTariffValue_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekendTariffValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.class, com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.Builder.class);
    }

    public static final int TARIFFS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Tariff> tariffs_;
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Tariff> getTariffsList() {
      return tariffs_;
    }
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder> 
        getTariffsOrBuilderList() {
      return tariffs_;
    }
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    @java.lang.Override
    public int getTariffsCount() {
      return tariffs_.size();
    }
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.Tariff getTariffs(int index) {
      return tariffs_.get(index);
    }
    /**
     * <pre>
     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
     * </pre>
     *
     * <code>repeated .proto.Tariff tariffs = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder getTariffsOrBuilder(
        int index) {
      return tariffs_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < tariffs_.size(); i++) {
        output.writeMessage(1, tariffs_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < tariffs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, tariffs_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue other = (com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) obj;

      if (!getTariffsList()
          .equals(other.getTariffsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getTariffsCount() > 0) {
        hash = (37 * hash) + TARIFFS_FIELD_NUMBER;
        hash = (53 * hash) + getTariffsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.WeekendTariffValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.WeekendTariffValue)
        com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekendTariffValue_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekendTariffValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.class, com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (tariffsBuilder_ == null) {
          tariffs_ = java.util.Collections.emptyList();
        } else {
          tariffs_ = null;
          tariffsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekendTariffValue_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue build() {
        com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue result = new com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue result) {
        if (tariffsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            tariffs_ = java.util.Collections.unmodifiableList(tariffs_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.tariffs_ = tariffs_;
        } else {
          result.tariffs_ = tariffsBuilder_.build();
        }
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance()) return this;
        if (tariffsBuilder_ == null) {
          if (!other.tariffs_.isEmpty()) {
            if (tariffs_.isEmpty()) {
              tariffs_ = other.tariffs_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureTariffsIsMutable();
              tariffs_.addAll(other.tariffs_);
            }
            onChanged();
          }
        } else {
          if (!other.tariffs_.isEmpty()) {
            if (tariffsBuilder_.isEmpty()) {
              tariffsBuilder_.dispose();
              tariffsBuilder_ = null;
              tariffs_ = other.tariffs_;
              bitField0_ = (bitField0_ & ~0x00000001);
              tariffsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetTariffsFieldBuilder() : null;
            } else {
              tariffsBuilder_.addAllMessages(other.tariffs_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.daimler.mbcarkit.proto.VehicleEvents.Tariff m =
                    input.readMessage(
                        com.daimler.mbcarkit.proto.VehicleEvents.Tariff.parser(),
                        extensionRegistry);
                if (tariffsBuilder_ == null) {
                  ensureTariffsIsMutable();
                  tariffs_.add(m);
                } else {
                  tariffsBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Tariff> tariffs_ =
        java.util.Collections.emptyList();
      private void ensureTariffsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          tariffs_ = new java.util.ArrayList<com.daimler.mbcarkit.proto.VehicleEvents.Tariff>(tariffs_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.Tariff, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder> tariffsBuilder_;

      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Tariff> getTariffsList() {
        if (tariffsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(tariffs_);
        } else {
          return tariffsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public int getTariffsCount() {
        if (tariffsBuilder_ == null) {
          return tariffs_.size();
        } else {
          return tariffsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.Tariff getTariffs(int index) {
        if (tariffsBuilder_ == null) {
          return tariffs_.get(index);
        } else {
          return tariffsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder setTariffs(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff value) {
        if (tariffsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTariffsIsMutable();
          tariffs_.set(index, value);
          onChanged();
        } else {
          tariffsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder setTariffs(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder builderForValue) {
        if (tariffsBuilder_ == null) {
          ensureTariffsIsMutable();
          tariffs_.set(index, builderForValue.build());
          onChanged();
        } else {
          tariffsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder addTariffs(com.daimler.mbcarkit.proto.VehicleEvents.Tariff value) {
        if (tariffsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTariffsIsMutable();
          tariffs_.add(value);
          onChanged();
        } else {
          tariffsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder addTariffs(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff value) {
        if (tariffsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTariffsIsMutable();
          tariffs_.add(index, value);
          onChanged();
        } else {
          tariffsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder addTariffs(
          com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder builderForValue) {
        if (tariffsBuilder_ == null) {
          ensureTariffsIsMutable();
          tariffs_.add(builderForValue.build());
          onChanged();
        } else {
          tariffsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder addTariffs(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder builderForValue) {
        if (tariffsBuilder_ == null) {
          ensureTariffsIsMutable();
          tariffs_.add(index, builderForValue.build());
          onChanged();
        } else {
          tariffsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder addAllTariffs(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleEvents.Tariff> values) {
        if (tariffsBuilder_ == null) {
          ensureTariffsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, tariffs_);
          onChanged();
        } else {
          tariffsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder clearTariffs() {
        if (tariffsBuilder_ == null) {
          tariffs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          tariffsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public Builder removeTariffs(int index) {
        if (tariffsBuilder_ == null) {
          ensureTariffsIsMutable();
          tariffs_.remove(index);
          onChanged();
        } else {
          tariffsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder getTariffsBuilder(
          int index) {
        return internalGetTariffsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder getTariffsOrBuilder(
          int index) {
        if (tariffsBuilder_ == null) {
          return tariffs_.get(index);  } else {
          return tariffsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder> 
           getTariffsOrBuilderList() {
        if (tariffsBuilder_ != null) {
          return tariffsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(tariffs_);
        }
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder addTariffsBuilder() {
        return internalGetTariffsFieldBuilder().addBuilder(
            com.daimler.mbcarkit.proto.VehicleEvents.Tariff.getDefaultInstance());
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder addTariffsBuilder(
          int index) {
        return internalGetTariffsFieldBuilder().addBuilder(
            index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.getDefaultInstance());
      }
      /**
       * <pre>
       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
       * </pre>
       *
       * <code>repeated .proto.Tariff tariffs = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder> 
           getTariffsBuilderList() {
        return internalGetTariffsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.Tariff, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder> 
          internalGetTariffsFieldBuilder() {
        if (tariffsBuilder_ == null) {
          tariffsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.Tariff, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder>(
                  tariffs_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          tariffs_ = null;
        }
        return tariffsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:proto.WeekendTariffValue)
    }

    // @@protoc_insertion_point(class_scope:proto.WeekendTariffValue)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WeekendTariffValue>
        PARSER = new com.google.protobuf.AbstractParser<WeekendTariffValue>() {
      @java.lang.Override
      public WeekendTariffValue parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<WeekendTariffValue> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<WeekendTariffValue> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TariffOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.Tariff)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 33 - off-peak, 44 - mid-peak, 66 - on-peak
     * </pre>
     *
     * <code>int32 rate = 1;</code>
     * @return The rate.
     */
    int getRate();

    /**
     * <pre>
     * Seconds from midnight
     * </pre>
     *
     * <code>int32 time = 2;</code>
     * @return The time.
     */
    int getTime();
  }
  /**
   * Protobuf type {@code proto.Tariff}
   */
  public static final class Tariff extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.Tariff)
      TariffOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "Tariff");
    }
    // Use Tariff.newBuilder() to construct.
    private Tariff(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private Tariff() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_Tariff_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_Tariff_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.Tariff.class, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder.class);
    }

    public static final int RATE_FIELD_NUMBER = 1;
    private int rate_ = 0;
    /**
     * <pre>
     * 33 - off-peak, 44 - mid-peak, 66 - on-peak
     * </pre>
     *
     * <code>int32 rate = 1;</code>
     * @return The rate.
     */
    @java.lang.Override
    public int getRate() {
      return rate_;
    }

    public static final int TIME_FIELD_NUMBER = 2;
    private int time_ = 0;
    /**
     * <pre>
     * Seconds from midnight
     * </pre>
     *
     * <code>int32 time = 2;</code>
     * @return The time.
     */
    @java.lang.Override
    public int getTime() {
      return time_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (rate_ != 0) {
        output.writeInt32(1, rate_);
      }
      if (time_ != 0) {
        output.writeInt32(2, time_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (rate_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, rate_);
      }
      if (time_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, time_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.Tariff)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.Tariff other = (com.daimler.mbcarkit.proto.VehicleEvents.Tariff) obj;

      if (getRate()
          != other.getRate()) return false;
      if (getTime()
          != other.getTime()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + RATE_FIELD_NUMBER;
      hash = (53 * hash) + getRate();
      hash = (37 * hash) + TIME_FIELD_NUMBER;
      hash = (53 * hash) + getTime();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.Tariff prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.Tariff}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.Tariff)
        com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_Tariff_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_Tariff_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.Tariff.class, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.Tariff.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        rate_ = 0;
        time_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_Tariff_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.Tariff getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.Tariff.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.Tariff build() {
        com.daimler.mbcarkit.proto.VehicleEvents.Tariff result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.Tariff buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.Tariff result = new com.daimler.mbcarkit.proto.VehicleEvents.Tariff(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.Tariff result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.rate_ = rate_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.time_ = time_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.Tariff) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.Tariff)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.Tariff other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.Tariff.getDefaultInstance()) return this;
        if (other.getRate() != 0) {
          setRate(other.getRate());
        }
        if (other.getTime() != 0) {
          setTime(other.getTime());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                rate_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                time_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int rate_ ;
      /**
       * <pre>
       * 33 - off-peak, 44 - mid-peak, 66 - on-peak
       * </pre>
       *
       * <code>int32 rate = 1;</code>
       * @return The rate.
       */
      @java.lang.Override
      public int getRate() {
        return rate_;
      }
      /**
       * <pre>
       * 33 - off-peak, 44 - mid-peak, 66 - on-peak
       * </pre>
       *
       * <code>int32 rate = 1;</code>
       * @param value The rate to set.
       * @return This builder for chaining.
       */
      public Builder setRate(int value) {

        rate_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 33 - off-peak, 44 - mid-peak, 66 - on-peak
       * </pre>
       *
       * <code>int32 rate = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRate() {
        bitField0_ = (bitField0_ & ~0x00000001);
        rate_ = 0;
        onChanged();
        return this;
      }

      private int time_ ;
      /**
       * <pre>
       * Seconds from midnight
       * </pre>
       *
       * <code>int32 time = 2;</code>
       * @return The time.
       */
      @java.lang.Override
      public int getTime() {
        return time_;
      }
      /**
       * <pre>
       * Seconds from midnight
       * </pre>
       *
       * <code>int32 time = 2;</code>
       * @param value The time to set.
       * @return This builder for chaining.
       */
      public Builder setTime(int value) {

        time_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Seconds from midnight
       * </pre>
       *
       * <code>int32 time = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTime() {
        bitField0_ = (bitField0_ & ~0x00000002);
        time_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.Tariff)
    }

    // @@protoc_insertion_point(class_scope:proto.Tariff)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.Tariff DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.Tariff();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Tariff>
        PARSER = new com.google.protobuf.AbstractParser<Tariff>() {
      @java.lang.Override
      public Tariff parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<Tariff> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Tariff> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.Tariff getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StateOfChargeProfileValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.StateOfChargeProfileValue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge> 
        getStatesOfChargeList();
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge getStatesOfCharge(int index);
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
     */
    int getStatesOfChargeCount();
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
     */
    java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeOrBuilder> 
        getStatesOfChargeOrBuilderList();
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeOrBuilder getStatesOfChargeOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code proto.StateOfChargeProfileValue}
   */
  public static final class StateOfChargeProfileValue extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.StateOfChargeProfileValue)
      StateOfChargeProfileValueOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "StateOfChargeProfileValue");
    }
    // Use StateOfChargeProfileValue.newBuilder() to construct.
    private StateOfChargeProfileValue(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private StateOfChargeProfileValue() {
      statesOfCharge_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfChargeProfileValue_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfChargeProfileValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.class, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.Builder.class);
    }

    public static final int STATES_OF_CHARGE_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge> statesOfCharge_;
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge> getStatesOfChargeList() {
      return statesOfCharge_;
    }
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeOrBuilder> 
        getStatesOfChargeOrBuilderList() {
      return statesOfCharge_;
    }
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
     */
    @java.lang.Override
    public int getStatesOfChargeCount() {
      return statesOfCharge_.size();
    }
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge getStatesOfCharge(int index) {
      return statesOfCharge_.get(index);
    }
    /**
     * <pre>
     * 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)
     * </pre>
     *
     * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeOrBuilder getStatesOfChargeOrBuilder(
        int index) {
      return statesOfCharge_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < statesOfCharge_.size(); i++) {
        output.writeMessage(1, statesOfCharge_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < statesOfCharge_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, statesOfCharge_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue other = (com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) obj;

      if (!getStatesOfChargeList()
          .equals(other.getStatesOfChargeList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getStatesOfChargeCount() > 0) {
        hash = (37 * hash) + STATES_OF_CHARGE_FIELD_NUMBER;
        hash = (53 * hash) + getStatesOfChargeList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.StateOfChargeProfileValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.StateOfChargeProfileValue)
        com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfChargeProfileValue_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfChargeProfileValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.class, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (statesOfChargeBuilder_ == null) {
          statesOfCharge_ = java.util.Collections.emptyList();
        } else {
          statesOfCharge_ = null;
          statesOfChargeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfChargeProfileValue_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue build() {
        com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue result = new com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue result) {
        if (statesOfChargeBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            statesOfCharge_ = java.util.Collections.unmodifiableList(statesOfCharge_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.statesOfCharge_ = statesOfCharge_;
        } else {
          result.statesOfCharge_ = statesOfChargeBuilder_.build();
        }
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance()) return this;
        if (statesOfChargeBuilder_ == null) {
          if (!other.statesOfCharge_.isEmpty()) {
            if (statesOfCharge_.isEmpty()) {
              statesOfCharge_ = other.statesOfCharge_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureStatesOfChargeIsMutable();
              statesOfCharge_.addAll(other.statesOfCharge_);
            }
            onChanged();
          }
        } else {
          if (!other.statesOfCharge_.isEmpty()) {
            if (statesOfChargeBuilder_.isEmpty()) {
              statesOfChargeBuilder_.dispose();
              statesOfChargeBuilder_ = null;
              statesOfCharge_ = other.statesOfCharge_;
              bitField0_ = (bitField0_ & ~0x00000001);
              statesOfChargeBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetStatesOfChargeFieldBuilder() : null;
            } else {
              statesOfChargeBuilder_.addAllMessages(other.statesOfCharge_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge m =
                    input.readMessage(
                        com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.parser(),
                        extensionRegistry);
                if (statesOfChargeBuilder_ == null) {
                  ensureStatesOfChargeIsMutable();
                  statesOfCharge_.add(m);
                } else {
                  statesOfChargeBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge> statesOfCharge_ =
        java.util.Collections.emptyList();
      private void ensureStatesOfChargeIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          statesOfCharge_ = new java.util.ArrayList<com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge>(statesOfCharge_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeOrBuilder> statesOfChargeBuilder_;

      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge> getStatesOfChargeList() {
        if (statesOfChargeBuilder_ == null) {
          return java.util.Collections.unmodifiableList(statesOfCharge_);
        } else {
          return statesOfChargeBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public int getStatesOfChargeCount() {
        if (statesOfChargeBuilder_ == null) {
          return statesOfCharge_.size();
        } else {
          return statesOfChargeBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge getStatesOfCharge(int index) {
        if (statesOfChargeBuilder_ == null) {
          return statesOfCharge_.get(index);
        } else {
          return statesOfChargeBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public Builder setStatesOfCharge(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge value) {
        if (statesOfChargeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatesOfChargeIsMutable();
          statesOfCharge_.set(index, value);
          onChanged();
        } else {
          statesOfChargeBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public Builder setStatesOfCharge(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder builderForValue) {
        if (statesOfChargeBuilder_ == null) {
          ensureStatesOfChargeIsMutable();
          statesOfCharge_.set(index, builderForValue.build());
          onChanged();
        } else {
          statesOfChargeBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public Builder addStatesOfCharge(com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge value) {
        if (statesOfChargeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatesOfChargeIsMutable();
          statesOfCharge_.add(value);
          onChanged();
        } else {
          statesOfChargeBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public Builder addStatesOfCharge(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge value) {
        if (statesOfChargeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatesOfChargeIsMutable();
          statesOfCharge_.add(index, value);
          onChanged();
        } else {
          statesOfChargeBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public Builder addStatesOfCharge(
          com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder builderForValue) {
        if (statesOfChargeBuilder_ == null) {
          ensureStatesOfChargeIsMutable();
          statesOfCharge_.add(builderForValue.build());
          onChanged();
        } else {
          statesOfChargeBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public Builder addStatesOfCharge(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder builderForValue) {
        if (statesOfChargeBuilder_ == null) {
          ensureStatesOfChargeIsMutable();
          statesOfCharge_.add(index, builderForValue.build());
          onChanged();
        } else {
          statesOfChargeBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public Builder addAllStatesOfCharge(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge> values) {
        if (statesOfChargeBuilder_ == null) {
          ensureStatesOfChargeIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, statesOfCharge_);
          onChanged();
        } else {
          statesOfChargeBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public Builder clearStatesOfCharge() {
        if (statesOfChargeBuilder_ == null) {
          statesOfCharge_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          statesOfChargeBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public Builder removeStatesOfCharge(int index) {
        if (statesOfChargeBuilder_ == null) {
          ensureStatesOfChargeIsMutable();
          statesOfCharge_.remove(index);
          onChanged();
        } else {
          statesOfChargeBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder getStatesOfChargeBuilder(
          int index) {
        return internalGetStatesOfChargeFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeOrBuilder getStatesOfChargeOrBuilder(
          int index) {
        if (statesOfChargeBuilder_ == null) {
          return statesOfCharge_.get(index);  } else {
          return statesOfChargeBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeOrBuilder> 
           getStatesOfChargeOrBuilderList() {
        if (statesOfChargeBuilder_ != null) {
          return statesOfChargeBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(statesOfCharge_);
        }
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder addStatesOfChargeBuilder() {
        return internalGetStatesOfChargeFieldBuilder().addBuilder(
            com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.getDefaultInstance());
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder addStatesOfChargeBuilder(
          int index) {
        return internalGetStatesOfChargeFieldBuilder().addBuilder(
            index, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.getDefaultInstance());
      }
      /**
       * <pre>
       * 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)
       * </pre>
       *
       * <code>repeated .proto.StateOfCharge states_of_charge = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder> 
           getStatesOfChargeBuilderList() {
        return internalGetStatesOfChargeFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeOrBuilder> 
          internalGetStatesOfChargeFieldBuilder() {
        if (statesOfChargeBuilder_ == null) {
          statesOfChargeBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeOrBuilder>(
                  statesOfCharge_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          statesOfCharge_ = null;
        }
        return statesOfChargeBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:proto.StateOfChargeProfileValue)
    }

    // @@protoc_insertion_point(class_scope:proto.StateOfChargeProfileValue)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<StateOfChargeProfileValue>
        PARSER = new com.google.protobuf.AbstractParser<StateOfChargeProfileValue>() {
      @java.lang.Override
      public StateOfChargeProfileValue parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<StateOfChargeProfileValue> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<StateOfChargeProfileValue> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StateOfChargeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.StateOfCharge)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * timestamp in seconds, UTC
     * </pre>
     *
     * <code>int64 timestamp_in_s = 1;</code>
     * @return The timestampInS.
     */
    long getTimestampInS();

    /**
     * <pre>
     * soc with value range 0..100
     * </pre>
     *
     * <code>int32 state_of_charge = 2;</code>
     * @return The stateOfCharge.
     */
    int getStateOfCharge();
  }
  /**
   * Protobuf type {@code proto.StateOfCharge}
   */
  public static final class StateOfCharge extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.StateOfCharge)
      StateOfChargeOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "StateOfCharge");
    }
    // Use StateOfCharge.newBuilder() to construct.
    private StateOfCharge(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private StateOfCharge() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfCharge_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfCharge_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.class, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder.class);
    }

    public static final int TIMESTAMP_IN_S_FIELD_NUMBER = 1;
    private long timestampInS_ = 0L;
    /**
     * <pre>
     * timestamp in seconds, UTC
     * </pre>
     *
     * <code>int64 timestamp_in_s = 1;</code>
     * @return The timestampInS.
     */
    @java.lang.Override
    public long getTimestampInS() {
      return timestampInS_;
    }

    public static final int STATE_OF_CHARGE_FIELD_NUMBER = 2;
    private int stateOfCharge_ = 0;
    /**
     * <pre>
     * soc with value range 0..100
     * </pre>
     *
     * <code>int32 state_of_charge = 2;</code>
     * @return The stateOfCharge.
     */
    @java.lang.Override
    public int getStateOfCharge() {
      return stateOfCharge_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (timestampInS_ != 0L) {
        output.writeInt64(1, timestampInS_);
      }
      if (stateOfCharge_ != 0) {
        output.writeInt32(2, stateOfCharge_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (timestampInS_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, timestampInS_);
      }
      if (stateOfCharge_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, stateOfCharge_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge other = (com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge) obj;

      if (getTimestampInS()
          != other.getTimestampInS()) return false;
      if (getStateOfCharge()
          != other.getStateOfCharge()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + TIMESTAMP_IN_S_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTimestampInS());
      hash = (37 * hash) + STATE_OF_CHARGE_FIELD_NUMBER;
      hash = (53 * hash) + getStateOfCharge();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.StateOfCharge}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.StateOfCharge)
        com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfCharge_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfCharge_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.class, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        timestampInS_ = 0L;
        stateOfCharge_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfCharge_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge build() {
        com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge result = new com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.timestampInS_ = timestampInS_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.stateOfCharge_ = stateOfCharge_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.getDefaultInstance()) return this;
        if (other.getTimestampInS() != 0L) {
          setTimestampInS(other.getTimestampInS());
        }
        if (other.getStateOfCharge() != 0) {
          setStateOfCharge(other.getStateOfCharge());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                timestampInS_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                stateOfCharge_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long timestampInS_ ;
      /**
       * <pre>
       * timestamp in seconds, UTC
       * </pre>
       *
       * <code>int64 timestamp_in_s = 1;</code>
       * @return The timestampInS.
       */
      @java.lang.Override
      public long getTimestampInS() {
        return timestampInS_;
      }
      /**
       * <pre>
       * timestamp in seconds, UTC
       * </pre>
       *
       * <code>int64 timestamp_in_s = 1;</code>
       * @param value The timestampInS to set.
       * @return This builder for chaining.
       */
      public Builder setTimestampInS(long value) {

        timestampInS_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * timestamp in seconds, UTC
       * </pre>
       *
       * <code>int64 timestamp_in_s = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimestampInS() {
        bitField0_ = (bitField0_ & ~0x00000001);
        timestampInS_ = 0L;
        onChanged();
        return this;
      }

      private int stateOfCharge_ ;
      /**
       * <pre>
       * soc with value range 0..100
       * </pre>
       *
       * <code>int32 state_of_charge = 2;</code>
       * @return The stateOfCharge.
       */
      @java.lang.Override
      public int getStateOfCharge() {
        return stateOfCharge_;
      }
      /**
       * <pre>
       * soc with value range 0..100
       * </pre>
       *
       * <code>int32 state_of_charge = 2;</code>
       * @param value The stateOfCharge to set.
       * @return This builder for chaining.
       */
      public Builder setStateOfCharge(int value) {

        stateOfCharge_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * soc with value range 0..100
       * </pre>
       *
       * <code>int32 state_of_charge = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearStateOfCharge() {
        bitField0_ = (bitField0_ & ~0x00000002);
        stateOfCharge_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.StateOfCharge)
    }

    // @@protoc_insertion_point(class_scope:proto.StateOfCharge)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<StateOfCharge>
        PARSER = new com.google.protobuf.AbstractParser<StateOfCharge>() {
      @java.lang.Override
      public StateOfCharge parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<StateOfCharge> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<StateOfCharge> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface VEPUpdatesByVINOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.VEPUpdatesByVIN)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 sequence_number = 2;</code>
     * @return The sequenceNumber.
     */
    int getSequenceNumber();

    /**
     * <pre>
     * VIN -&gt; Update
     * </pre>
     *
     * <code>map&lt;string, .proto.VEPUpdate&gt; updates = 1;</code>
     */
    int getUpdatesCount();
    /**
     * <pre>
     * VIN -&gt; Update
     * </pre>
     *
     * <code>map&lt;string, .proto.VEPUpdate&gt; updates = 1;</code>
     */
    boolean containsUpdates(
        java.lang.String key);
    /**
     * Use {@link #getUpdatesMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate>
    getUpdates();
    /**
     * <pre>
     * VIN -&gt; Update
     * </pre>
     *
     * <code>map&lt;string, .proto.VEPUpdate&gt; updates = 1;</code>
     */
    java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate>
    getUpdatesMap();
    /**
     * <pre>
     * VIN -&gt; Update
     * </pre>
     *
     * <code>map&lt;string, .proto.VEPUpdate&gt; updates = 1;</code>
     */
    /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getUpdatesOrDefault(
        java.lang.String key,
        /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate defaultValue);
    /**
     * <pre>
     * VIN -&gt; Update
     * </pre>
     *
     * <code>map&lt;string, .proto.VEPUpdate&gt; updates = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getUpdatesOrThrow(
        java.lang.String key);
  }
  /**
   * <pre>
   * Sending direction: App &lt;- BFF &lt;- AppTwin
   * </pre>
   *
   * Protobuf type {@code proto.VEPUpdatesByVIN}
   */
  public static final class VEPUpdatesByVIN extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.VEPUpdatesByVIN)
      VEPUpdatesByVINOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "VEPUpdatesByVIN");
    }
    // Use VEPUpdatesByVIN.newBuilder() to construct.
    private VEPUpdatesByVIN(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private VEPUpdatesByVIN() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdatesByVIN_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
        int number) {
      switch (number) {
        case 1:
          return internalGetUpdates();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdatesByVIN_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.class, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.Builder.class);
    }

    public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 2;
    private int sequenceNumber_ = 0;
    /**
     * <code>int32 sequence_number = 2;</code>
     * @return The sequenceNumber.
     */
    @java.lang.Override
    public int getSequenceNumber() {
      return sequenceNumber_;
    }

    public static final int UPDATES_FIELD_NUMBER = 1;
    private static final class UpdatesDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate>newDefaultInstance(
                  com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdatesByVIN_UpdatesEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance());
    }
    @SuppressWarnings("serial")
    private com.google.protobuf.MapField<
        java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate> updates_;
    private com.google.protobuf.MapField<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate>
    internalGetUpdates() {
      if (updates_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            UpdatesDefaultEntryHolder.defaultEntry);
      }
      return updates_;
    }
    public int getUpdatesCount() {
      return internalGetUpdates().getMap().size();
    }
    /**
     * <pre>
     * VIN -&gt; Update
     * </pre>
     *
     * <code>map&lt;string, .proto.VEPUpdate&gt; updates = 1;</code>
     */
    @java.lang.Override
    public boolean containsUpdates(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetUpdates().getMap().containsKey(key);
    }
    /**
     * Use {@link #getUpdatesMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate> getUpdates() {
      return getUpdatesMap();
    }
    /**
     * <pre>
     * VIN -&gt; Update
     * </pre>
     *
     * <code>map&lt;string, .proto.VEPUpdate&gt; updates = 1;</code>
     */
    @java.lang.Override
    public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate> getUpdatesMap() {
      return internalGetUpdates().getMap();
    }
    /**
     * <pre>
     * VIN -&gt; Update
     * </pre>
     *
     * <code>map&lt;string, .proto.VEPUpdate&gt; updates = 1;</code>
     */
    @java.lang.Override
    public /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getUpdatesOrDefault(
        java.lang.String key,
        /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate> map =
          internalGetUpdates().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     * VIN -&gt; Update
     * </pre>
     *
     * <code>map&lt;string, .proto.VEPUpdate&gt; updates = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getUpdatesOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate> map =
          internalGetUpdates().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      com.google.protobuf.GeneratedMessage
        .serializeStringMapTo(
          output,
          internalGetUpdates(),
          UpdatesDefaultEntryHolder.defaultEntry,
          1);
      if (sequenceNumber_ != 0) {
        output.writeInt32(2, sequenceNumber_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (java.util.Map.Entry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate> entry
           : internalGetUpdates().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate>
        updates__ = UpdatesDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, updates__);
      }
      if (sequenceNumber_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, sequenceNumber_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN other = (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) obj;

      if (getSequenceNumber()
          != other.getSequenceNumber()) return false;
      if (!internalGetUpdates().equals(
          other.internalGetUpdates())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getSequenceNumber();
      if (!internalGetUpdates().getMap().isEmpty()) {
        hash = (37 * hash) + UPDATES_FIELD_NUMBER;
        hash = (53 * hash) + internalGetUpdates().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Sending direction: App &lt;- BFF &lt;- AppTwin
     * </pre>
     *
     * Protobuf type {@code proto.VEPUpdatesByVIN}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.VEPUpdatesByVIN)
        com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVINOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdatesByVIN_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
          int number) {
        switch (number) {
          case 1:
            return internalGetUpdates();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
          int number) {
        switch (number) {
          case 1:
            return internalGetMutableUpdates();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdatesByVIN_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.class, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sequenceNumber_ = 0;
        internalGetMutableUpdates().clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdatesByVIN_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN build() {
        com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN result = new com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sequenceNumber_ = sequenceNumber_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.updates_ = internalGetUpdates().build(UpdatesDefaultEntryHolder.defaultEntry);
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance()) return this;
        if (other.getSequenceNumber() != 0) {
          setSequenceNumber(other.getSequenceNumber());
        }
        internalGetMutableUpdates().mergeFrom(
            other.internalGetUpdates());
        bitField0_ |= 0x00000002;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.google.protobuf.MapEntry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate>
                updates__ = input.readMessage(
                    UpdatesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutableUpdates().ensureBuilderMap().put(
                    updates__.getKey(), updates__.getValue());
                bitField0_ |= 0x00000002;
                break;
              } // case 10
              case 16: {
                sequenceNumber_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int sequenceNumber_ ;
      /**
       * <code>int32 sequence_number = 2;</code>
       * @return The sequenceNumber.
       */
      @java.lang.Override
      public int getSequenceNumber() {
        return sequenceNumber_;
      }
      /**
       * <code>int32 sequence_number = 2;</code>
       * @param value The sequenceNumber to set.
       * @return This builder for chaining.
       */
      public Builder setSequenceNumber(int value) {

        sequenceNumber_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 sequence_number = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSequenceNumber() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sequenceNumber_ = 0;
        onChanged();
        return this;
      }

      private static final class UpdatesConverter implements com.google.protobuf.MapFieldBuilder.Converter<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate> {
        @java.lang.Override
        public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate build(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder val) {
          if (val instanceof com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) { return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) val; }
          return ((com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder) val).build();
        }

        @java.lang.Override
        public com.google.protobuf.MapEntry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate> defaultEntry() {
          return UpdatesDefaultEntryHolder.defaultEntry;
        }
      };
      private static final UpdatesConverter updatesConverter = new UpdatesConverter();

      private com.google.protobuf.MapFieldBuilder<
          java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder> updates_;
      private com.google.protobuf.MapFieldBuilder<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder>
          internalGetUpdates() {
        if (updates_ == null) {
          return new com.google.protobuf.MapFieldBuilder<>(updatesConverter);
        }
        return updates_;
      }
      private com.google.protobuf.MapFieldBuilder<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder>
          internalGetMutableUpdates() {
        if (updates_ == null) {
          updates_ = new com.google.protobuf.MapFieldBuilder<>(updatesConverter);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return updates_;
      }
      public int getUpdatesCount() {
        return internalGetUpdates().ensureBuilderMap().size();
      }
      /**
       * <pre>
       * VIN -&gt; Update
       * </pre>
       *
       * <code>map&lt;string, .proto.VEPUpdate&gt; updates = 1;</code>
       */
      @java.lang.Override
      public boolean containsUpdates(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetUpdates().ensureBuilderMap().containsKey(key);
      }
      /**
       * Use {@link #getUpdatesMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate> getUpdates() {
        return getUpdatesMap();
      }
      /**
       * <pre>
       * VIN -&gt; Update
       * </pre>
       *
       * <code>map&lt;string, .proto.VEPUpdate&gt; updates = 1;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate> getUpdatesMap() {
        return internalGetUpdates().getImmutableMap();
      }
      /**
       * <pre>
       * VIN -&gt; Update
       * </pre>
       *
       * <code>map&lt;string, .proto.VEPUpdate&gt; updates = 1;</code>
       */
      @java.lang.Override
      public /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getUpdatesOrDefault(
          java.lang.String key,
          /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder> map = internalGetMutableUpdates().ensureBuilderMap();
        return map.containsKey(key) ? updatesConverter.build(map.get(key)) : defaultValue;
      }
      /**
       * <pre>
       * VIN -&gt; Update
       * </pre>
       *
       * <code>map&lt;string, .proto.VEPUpdate&gt; updates = 1;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getUpdatesOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder> map = internalGetMutableUpdates().ensureBuilderMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return updatesConverter.build(map.get(key));
      }
      public Builder clearUpdates() {
        bitField0_ = (bitField0_ & ~0x00000002);
        internalGetMutableUpdates().clear();
        return this;
      }
      /**
       * <pre>
       * VIN -&gt; Update
       * </pre>
       *
       * <code>map&lt;string, .proto.VEPUpdate&gt; updates = 1;</code>
       */
      public Builder removeUpdates(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableUpdates().ensureBuilderMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate>
          getMutableUpdates() {
        bitField0_ |= 0x00000002;
        return internalGetMutableUpdates().ensureMessageMap();
      }
      /**
       * <pre>
       * VIN -&gt; Update
       * </pre>
       *
       * <code>map&lt;string, .proto.VEPUpdate&gt; updates = 1;</code>
       */
      public Builder putUpdates(
          java.lang.String key,
          com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) { throw new NullPointerException("map value"); }
        internalGetMutableUpdates().ensureBuilderMap()
            .put(key, value);
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <pre>
       * VIN -&gt; Update
       * </pre>
       *
       * <code>map&lt;string, .proto.VEPUpdate&gt; updates = 1;</code>
       */
      public Builder putAllUpdates(
          java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate> values) {
        for (java.util.Map.Entry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate> e : values.entrySet()) {
          if (e.getKey() == null || e.getValue() == null) {
            throw new NullPointerException();
          }
        }
        internalGetMutableUpdates().ensureBuilderMap()
            .putAll(values);
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <pre>
       * VIN -&gt; Update
       * </pre>
       *
       * <code>map&lt;string, .proto.VEPUpdate&gt; updates = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder putUpdatesBuilderIfAbsent(
          java.lang.String key) {
        java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder> builderMap = internalGetMutableUpdates().ensureBuilderMap();
        com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder entry = builderMap.get(key);
        if (entry == null) {
          entry = com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.newBuilder();
          builderMap.put(key, entry);
        }
        if (entry instanceof com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) {
          entry = ((com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) entry).toBuilder();
          builderMap.put(key, entry);
        }
        return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder) entry;
      }

      // @@protoc_insertion_point(builder_scope:proto.VEPUpdatesByVIN)
    }

    // @@protoc_insertion_point(class_scope:proto.VEPUpdatesByVIN)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<VEPUpdatesByVIN>
        PARSER = new com.google.protobuf.AbstractParser<VEPUpdatesByVIN>() {
      @java.lang.Override
      public VEPUpdatesByVIN parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<VEPUpdatesByVIN> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<VEPUpdatesByVIN> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DebugMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.DebugMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string message = 1;</code>
     * @return The message.
     */
    java.lang.String getMessage();
    /**
     * <code>string message = 1;</code>
     * @return The bytes for message.
     */
    com.google.protobuf.ByteString
        getMessageBytes();
  }
  /**
   * <pre>
   * Sending direction: App &lt;- BFF
   * </pre>
   *
   * Protobuf type {@code proto.DebugMessage}
   */
  public static final class DebugMessage extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.DebugMessage)
      DebugMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "DebugMessage");
    }
    // Use DebugMessage.newBuilder() to construct.
    private DebugMessage(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private DebugMessage() {
      message_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_DebugMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_DebugMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.class, com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.Builder.class);
    }

    public static final int MESSAGE_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object message_ = "";
    /**
     * <code>string message = 1;</code>
     * @return The message.
     */
    @java.lang.Override
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        message_ = s;
        return s;
      }
    }
    /**
     * <code>string message = 1;</code>
     * @return The bytes for message.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(message_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, message_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(message_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, message_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage other = (com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) obj;

      if (!getMessage()
          .equals(other.getMessage())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + getMessage().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Sending direction: App &lt;- BFF
     * </pre>
     *
     * Protobuf type {@code proto.DebugMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.DebugMessage)
        com.daimler.mbcarkit.proto.VehicleEvents.DebugMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_DebugMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_DebugMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.class, com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        message_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_DebugMessage_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage build() {
        com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage result = new com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.message_ = message_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance()) return this;
        if (!other.getMessage().isEmpty()) {
          message_ = other.message_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                message_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object message_ = "";
      /**
       * <code>string message = 1;</code>
       * @return The message.
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          message_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string message = 1;</code>
       * @return The bytes for message.
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string message = 1;</code>
       * @param value The message to set.
       * @return This builder for chaining.
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        message_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string message = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMessage() {
        message_ = getDefaultInstance().getMessage();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string message = 1;</code>
       * @param value The bytes for message to set.
       * @return This builder for chaining.
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        message_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.DebugMessage)
    }

    // @@protoc_insertion_point(class_scope:proto.DebugMessage)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<DebugMessage>
        PARSER = new com.google.protobuf.AbstractParser<DebugMessage>() {
      @java.lang.Override
      public DebugMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<DebugMessage> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<DebugMessage> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface VehicleStatusOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.VehicleStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string vin = 1;</code>
     * @return The vin.
     */
    java.lang.String getVin();
    /**
     * <code>string vin = 1;</code>
     * @return The bytes for vin.
     */
    com.google.protobuf.ByteString
        getVinBytes();

    /**
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 2;</code>
     */
    int getAttributesCount();
    /**
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 2;</code>
     */
    boolean containsAttributes(
        java.lang.String key);
    /**
     * Use {@link #getAttributesMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus>
    getAttributes();
    /**
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 2;</code>
     */
    java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus>
    getAttributesMap();
    /**
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 2;</code>
     */
    /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrDefault(
        java.lang.String key,
        /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus defaultValue);
    /**
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 2;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrThrow(
        java.lang.String key);
  }
  /**
   * <pre>
   * Represents a status response from the
   * VVA backend for a given VIN and CIAM ID.
   * </pre>
   *
   * Protobuf type {@code proto.VehicleStatus}
   */
  public static final class VehicleStatus extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.VehicleStatus)
      VehicleStatusOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "VehicleStatus");
    }
    // Use VehicleStatus.newBuilder() to construct.
    private VehicleStatus(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private VehicleStatus() {
      vin_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleStatus_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
        int number) {
      switch (number) {
        case 2:
          return internalGetAttributes();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus.class, com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus.Builder.class);
    }

    public static final int VIN_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object vin_ = "";
    /**
     * <code>string vin = 1;</code>
     * @return The vin.
     */
    @java.lang.Override
    public java.lang.String getVin() {
      java.lang.Object ref = vin_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        vin_ = s;
        return s;
      }
    }
    /**
     * <code>string vin = 1;</code>
     * @return The bytes for vin.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getVinBytes() {
      java.lang.Object ref = vin_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        vin_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ATTRIBUTES_FIELD_NUMBER = 2;
    private static final class AttributesDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus>newDefaultInstance(
                  com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleStatus_AttributesEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDefaultInstance());
    }
    @SuppressWarnings("serial")
    private com.google.protobuf.MapField<
        java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> attributes_;
    private com.google.protobuf.MapField<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus>
    internalGetAttributes() {
      if (attributes_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            AttributesDefaultEntryHolder.defaultEntry);
      }
      return attributes_;
    }
    public int getAttributesCount() {
      return internalGetAttributes().getMap().size();
    }
    /**
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 2;</code>
     */
    @java.lang.Override
    public boolean containsAttributes(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetAttributes().getMap().containsKey(key);
    }
    /**
     * Use {@link #getAttributesMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> getAttributes() {
      return getAttributesMap();
    }
    /**
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 2;</code>
     */
    @java.lang.Override
    public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> getAttributesMap() {
      return internalGetAttributes().getMap();
    }
    /**
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 2;</code>
     */
    @java.lang.Override
    public /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrDefault(
        java.lang.String key,
        /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> map =
          internalGetAttributes().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 2;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> map =
          internalGetAttributes().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, vin_);
      }
      com.google.protobuf.GeneratedMessage
        .serializeStringMapTo(
          output,
          internalGetAttributes(),
          AttributesDefaultEntryHolder.defaultEntry,
          2);
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, vin_);
      }
      for (java.util.Map.Entry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> entry
           : internalGetAttributes().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus>
        attributes__ = AttributesDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, attributes__);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus other = (com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus) obj;

      if (!getVin()
          .equals(other.getVin())) return false;
      if (!internalGetAttributes().equals(
          other.internalGetAttributes())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + VIN_FIELD_NUMBER;
      hash = (53 * hash) + getVin().hashCode();
      if (!internalGetAttributes().getMap().isEmpty()) {
        hash = (37 * hash) + ATTRIBUTES_FIELD_NUMBER;
        hash = (53 * hash) + internalGetAttributes().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Represents a status response from the
     * VVA backend for a given VIN and CIAM ID.
     * </pre>
     *
     * Protobuf type {@code proto.VehicleStatus}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.VehicleStatus)
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleStatus_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
          int number) {
        switch (number) {
          case 2:
            return internalGetAttributes();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
          int number) {
        switch (number) {
          case 2:
            return internalGetMutableAttributes();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus.class, com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        vin_ = "";
        internalGetMutableAttributes().clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleStatus_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus build() {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus result = new com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.vin_ = vin_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.attributes_ = internalGetAttributes().build(AttributesDefaultEntryHolder.defaultEntry);
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus.getDefaultInstance()) return this;
        if (!other.getVin().isEmpty()) {
          vin_ = other.vin_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        internalGetMutableAttributes().mergeFrom(
            other.internalGetAttributes());
        bitField0_ |= 0x00000002;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                vin_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                com.google.protobuf.MapEntry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus>
                attributes__ = input.readMessage(
                    AttributesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutableAttributes().ensureBuilderMap().put(
                    attributes__.getKey(), attributes__.getValue());
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object vin_ = "";
      /**
       * <code>string vin = 1;</code>
       * @return The vin.
       */
      public java.lang.String getVin() {
        java.lang.Object ref = vin_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          vin_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string vin = 1;</code>
       * @return The bytes for vin.
       */
      public com.google.protobuf.ByteString
          getVinBytes() {
        java.lang.Object ref = vin_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          vin_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string vin = 1;</code>
       * @param value The vin to set.
       * @return This builder for chaining.
       */
      public Builder setVin(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        vin_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string vin = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearVin() {
        vin_ = getDefaultInstance().getVin();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string vin = 1;</code>
       * @param value The bytes for vin to set.
       * @return This builder for chaining.
       */
      public Builder setVinBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        vin_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private static final class AttributesConverter implements com.google.protobuf.MapFieldBuilder.Converter<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> {
        @java.lang.Override
        public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus build(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder val) {
          if (val instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) { return (com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) val; }
          return ((com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder) val).build();
        }

        @java.lang.Override
        public com.google.protobuf.MapEntry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> defaultEntry() {
          return AttributesDefaultEntryHolder.defaultEntry;
        }
      };
      private static final AttributesConverter attributesConverter = new AttributesConverter();

      private com.google.protobuf.MapFieldBuilder<
          java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder> attributes_;
      private com.google.protobuf.MapFieldBuilder<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder>
          internalGetAttributes() {
        if (attributes_ == null) {
          return new com.google.protobuf.MapFieldBuilder<>(attributesConverter);
        }
        return attributes_;
      }
      private com.google.protobuf.MapFieldBuilder<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder>
          internalGetMutableAttributes() {
        if (attributes_ == null) {
          attributes_ = new com.google.protobuf.MapFieldBuilder<>(attributesConverter);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return attributes_;
      }
      public int getAttributesCount() {
        return internalGetAttributes().ensureBuilderMap().size();
      }
      /**
       * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 2;</code>
       */
      @java.lang.Override
      public boolean containsAttributes(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetAttributes().ensureBuilderMap().containsKey(key);
      }
      /**
       * Use {@link #getAttributesMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> getAttributes() {
        return getAttributesMap();
      }
      /**
       * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 2;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> getAttributesMap() {
        return internalGetAttributes().getImmutableMap();
      }
      /**
       * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 2;</code>
       */
      @java.lang.Override
      public /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrDefault(
          java.lang.String key,
          /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder> map = internalGetMutableAttributes().ensureBuilderMap();
        return map.containsKey(key) ? attributesConverter.build(map.get(key)) : defaultValue;
      }
      /**
       * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 2;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder> map = internalGetMutableAttributes().ensureBuilderMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return attributesConverter.build(map.get(key));
      }
      public Builder clearAttributes() {
        bitField0_ = (bitField0_ & ~0x00000002);
        internalGetMutableAttributes().clear();
        return this;
      }
      /**
       * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 2;</code>
       */
      public Builder removeAttributes(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableAttributes().ensureBuilderMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus>
          getMutableAttributes() {
        bitField0_ |= 0x00000002;
        return internalGetMutableAttributes().ensureMessageMap();
      }
      /**
       * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 2;</code>
       */
      public Builder putAttributes(
          java.lang.String key,
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) { throw new NullPointerException("map value"); }
        internalGetMutableAttributes().ensureBuilderMap()
            .put(key, value);
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 2;</code>
       */
      public Builder putAllAttributes(
          java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> values) {
        for (java.util.Map.Entry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> e : values.entrySet()) {
          if (e.getKey() == null || e.getValue() == null) {
            throw new NullPointerException();
          }
        }
        internalGetMutableAttributes().ensureBuilderMap()
            .putAll(values);
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>map&lt;string, .proto.VehicleAttributeStatus&gt; attributes = 2;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder putAttributesBuilderIfAbsent(
          java.lang.String key) {
        java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder> builderMap = internalGetMutableAttributes().ensureBuilderMap();
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder entry = builderMap.get(key);
        if (entry == null) {
          entry = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.newBuilder();
          builderMap.put(key, entry);
        }
        if (entry instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) {
          entry = ((com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) entry).toBuilder();
          builderMap.put(key, entry);
        }
        return (com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder) entry;
      }

      // @@protoc_insertion_point(builder_scope:proto.VehicleStatus)
    }

    // @@protoc_insertion_point(class_scope:proto.VehicleStatus)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<VehicleStatus>
        PARSER = new com.google.protobuf.AbstractParser<VehicleStatus>() {
      @java.lang.Override
      public VehicleStatus parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<VehicleStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<VehicleStatus> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PushMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.PushMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string tracking_id = 5;</code>
     * @return The trackingId.
     */
    java.lang.String getTrackingId();
    /**
     * <code>string tracking_id = 5;</code>
     * @return The bytes for trackingId.
     */
    com.google.protobuf.ByteString
        getTrackingIdBytes();

    /**
     * <code>.proto.VEPUpdate vepUpdate = 1;</code>
     * @return Whether the vepUpdate field is set.
     */
    boolean hasVepUpdate();
    /**
     * <code>.proto.VEPUpdate vepUpdate = 1;</code>
     * @return The vepUpdate.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getVepUpdate();
    /**
     * <code>.proto.VEPUpdate vepUpdate = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder getVepUpdateOrBuilder();

    /**
     * <code>.proto.VEPUpdatesByVIN vepUpdates = 2;</code>
     * @return Whether the vepUpdates field is set.
     */
    boolean hasVepUpdates();
    /**
     * <code>.proto.VEPUpdatesByVIN vepUpdates = 2;</code>
     * @return The vepUpdates.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN getVepUpdates();
    /**
     * <code>.proto.VEPUpdatesByVIN vepUpdates = 2;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVINOrBuilder getVepUpdatesOrBuilder();

    /**
     * <code>.proto.DebugMessage debugMessage = 3;</code>
     * @return Whether the debugMessage field is set.
     */
    boolean hasDebugMessage();
    /**
     * <code>.proto.DebugMessage debugMessage = 3;</code>
     * @return The debugMessage.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage getDebugMessage();
    /**
     * <code>.proto.DebugMessage debugMessage = 3;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.DebugMessageOrBuilder getDebugMessageOrBuilder();

    /**
     * <code>.proto.ServiceStatusUpdatesByVIN service_status_updates = 9;</code>
     * @return Whether the serviceStatusUpdates field is set.
     */
    boolean hasServiceStatusUpdates();
    /**
     * <code>.proto.ServiceStatusUpdatesByVIN service_status_updates = 9;</code>
     * @return The serviceStatusUpdates.
     */
    com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN getServiceStatusUpdates();
    /**
     * <code>.proto.ServiceStatusUpdatesByVIN service_status_updates = 9;</code>
     */
    com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVINOrBuilder getServiceStatusUpdatesOrBuilder();

    /**
     * <code>.proto.ServiceStatusUpdate service_status_update = 13;</code>
     * @return Whether the serviceStatusUpdate field is set.
     */
    boolean hasServiceStatusUpdate();
    /**
     * <code>.proto.ServiceStatusUpdate service_status_update = 13;</code>
     * @return The serviceStatusUpdate.
     */
    com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate getServiceStatusUpdate();
    /**
     * <code>.proto.ServiceStatusUpdate service_status_update = 13;</code>
     */
    com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdateOrBuilder getServiceStatusUpdateOrBuilder();

    /**
     * <code>.proto.UserDataUpdate user_data_update = 10;</code>
     * @return Whether the userDataUpdate field is set.
     */
    boolean hasUserDataUpdate();
    /**
     * <code>.proto.UserDataUpdate user_data_update = 10;</code>
     * @return The userDataUpdate.
     */
    com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate getUserDataUpdate();
    /**
     * <code>.proto.UserDataUpdate user_data_update = 10;</code>
     */
    com.daimler.mbcarkit.proto.UserEvents.UserDataUpdateOrBuilder getUserDataUpdateOrBuilder();

    /**
     * <code>.proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14;</code>
     * @return Whether the userVehicleAuthChangedUpdate field is set.
     */
    boolean hasUserVehicleAuthChangedUpdate();
    /**
     * <code>.proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14;</code>
     * @return The userVehicleAuthChangedUpdate.
     */
    com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate getUserVehicleAuthChangedUpdate();
    /**
     * <code>.proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14;</code>
     */
    com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdateOrBuilder getUserVehicleAuthChangedUpdateOrBuilder();

    /**
     * <code>.proto.UserPictureUpdate user_picture_update = 11;</code>
     * @return Whether the userPictureUpdate field is set.
     */
    boolean hasUserPictureUpdate();
    /**
     * <code>.proto.UserPictureUpdate user_picture_update = 11;</code>
     * @return The userPictureUpdate.
     */
    com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate getUserPictureUpdate();
    /**
     * <code>.proto.UserPictureUpdate user_picture_update = 11;</code>
     */
    com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdateOrBuilder getUserPictureUpdateOrBuilder();

    /**
     * <code>.proto.UserPINUpdate user_pin_update = 12;</code>
     * @return Whether the userPinUpdate field is set.
     */
    boolean hasUserPinUpdate();
    /**
     * <code>.proto.UserPINUpdate user_pin_update = 12;</code>
     * @return The userPinUpdate.
     */
    com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate getUserPinUpdate();
    /**
     * <code>.proto.UserPINUpdate user_pin_update = 12;</code>
     */
    com.daimler.mbcarkit.proto.UserEvents.UserPINUpdateOrBuilder getUserPinUpdateOrBuilder();

    /**
     * <code>.proto.VehicleUpdated vehicle_updated = 15;</code>
     * @return Whether the vehicleUpdated field is set.
     */
    boolean hasVehicleUpdated();
    /**
     * <code>.proto.VehicleUpdated vehicle_updated = 15;</code>
     * @return The vehicleUpdated.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated getVehicleUpdated();
    /**
     * <code>.proto.VehicleUpdated vehicle_updated = 15;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdatedOrBuilder getVehicleUpdatedOrBuilder();

    /**
     * <code>.proto.PreferredDealerChange preferred_dealer_change = 16;</code>
     * @return Whether the preferredDealerChange field is set.
     */
    boolean hasPreferredDealerChange();
    /**
     * <code>.proto.PreferredDealerChange preferred_dealer_change = 16;</code>
     * @return The preferredDealerChange.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange getPreferredDealerChange();
    /**
     * <code>.proto.PreferredDealerChange preferred_dealer_change = 16;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChangeOrBuilder getPreferredDealerChangeOrBuilder();

    /**
     * <code>.proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17;</code>
     * @return Whether the apptwinCommandStatusUpdatesByVin field is set.
     */
    boolean hasApptwinCommandStatusUpdatesByVin();
    /**
     * <code>.proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17;</code>
     * @return The apptwinCommandStatusUpdatesByVin.
     */
    com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN getApptwinCommandStatusUpdatesByVin();
    /**
     * <code>.proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17;</code>
     */
    com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVINOrBuilder getApptwinCommandStatusUpdatesByVinOrBuilder();

    /**
     * <code>.proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18;</code>
     * @return Whether the apptwinPendingCommandRequest field is set.
     */
    boolean hasApptwinPendingCommandRequest();
    /**
     * <code>.proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18;</code>
     * @return The apptwinPendingCommandRequest.
     */
    com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest getApptwinPendingCommandRequest();
    /**
     * <code>.proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18;</code>
     */
    com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequestOrBuilder getApptwinPendingCommandRequestOrBuilder();

    /**
     * <code>.proto.AssignedVehicles assigned_vehicles = 19;</code>
     * @return Whether the assignedVehicles field is set.
     */
    boolean hasAssignedVehicles();
    /**
     * <code>.proto.AssignedVehicles assigned_vehicles = 19;</code>
     * @return The assignedVehicles.
     */
    com.daimler.mbcarkit.proto.Protos.AssignedVehicles getAssignedVehicles();
    /**
     * <code>.proto.AssignedVehicles assigned_vehicles = 19;</code>
     */
    com.daimler.mbcarkit.proto.Protos.AssignedVehiclesOrBuilder getAssignedVehiclesOrBuilder();

    /**
     * <code>.proto.DataChangeEvent data_change_event = 21;</code>
     * @return Whether the dataChangeEvent field is set.
     */
    boolean hasDataChangeEvent();
    /**
     * <code>.proto.DataChangeEvent data_change_event = 21;</code>
     * @return The dataChangeEvent.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent getDataChangeEvent();
    /**
     * <code>.proto.DataChangeEvent data_change_event = 21;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEventOrBuilder getDataChangeEventOrBuilder();

    com.daimler.mbcarkit.proto.VehicleEvents.PushMessage.MsgCase getMsgCase();
  }
  /**
   * <pre>
   * message that is pushed from the vep status service
   * Sending direction: App &lt;- BFF
   * </pre>
   *
   * Protobuf type {@code proto.PushMessage}
   */
  public static final class PushMessage extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.PushMessage)
      PushMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "PushMessage");
    }
    // Use PushMessage.newBuilder() to construct.
    private PushMessage(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private PushMessage() {
      trackingId_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PushMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PushMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.PushMessage.class, com.daimler.mbcarkit.proto.VehicleEvents.PushMessage.Builder.class);
    }

    private int msgCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object msg_;
    public enum MsgCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      VEPUPDATE(1),
      VEPUPDATES(2),
      DEBUGMESSAGE(3),
      SERVICE_STATUS_UPDATES(9),
      SERVICE_STATUS_UPDATE(13),
      USER_DATA_UPDATE(10),
      USER_VEHICLE_AUTH_CHANGED_UPDATE(14),
      USER_PICTURE_UPDATE(11),
      USER_PIN_UPDATE(12),
      VEHICLE_UPDATED(15),
      PREFERRED_DEALER_CHANGE(16),
      APPTWIN_COMMAND_STATUS_UPDATES_BY_VIN(17),
      APPTWIN_PENDING_COMMAND_REQUEST(18),
      ASSIGNED_VEHICLES(19),
      DATA_CHANGE_EVENT(21),
      MSG_NOT_SET(0);
      private final int value;
      private MsgCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static MsgCase valueOf(int value) {
        return forNumber(value);
      }

      public static MsgCase forNumber(int value) {
        switch (value) {
          case 1: return VEPUPDATE;
          case 2: return VEPUPDATES;
          case 3: return DEBUGMESSAGE;
          case 9: return SERVICE_STATUS_UPDATES;
          case 13: return SERVICE_STATUS_UPDATE;
          case 10: return USER_DATA_UPDATE;
          case 14: return USER_VEHICLE_AUTH_CHANGED_UPDATE;
          case 11: return USER_PICTURE_UPDATE;
          case 12: return USER_PIN_UPDATE;
          case 15: return VEHICLE_UPDATED;
          case 16: return PREFERRED_DEALER_CHANGE;
          case 17: return APPTWIN_COMMAND_STATUS_UPDATES_BY_VIN;
          case 18: return APPTWIN_PENDING_COMMAND_REQUEST;
          case 19: return ASSIGNED_VEHICLES;
          case 21: return DATA_CHANGE_EVENT;
          case 0: return MSG_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public MsgCase
    getMsgCase() {
      return MsgCase.forNumber(
          msgCase_);
    }

    public static final int TRACKING_ID_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object trackingId_ = "";
    /**
     * <code>string tracking_id = 5;</code>
     * @return The trackingId.
     */
    @java.lang.Override
    public java.lang.String getTrackingId() {
      java.lang.Object ref = trackingId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        trackingId_ = s;
        return s;
      }
    }
    /**
     * <code>string tracking_id = 5;</code>
     * @return The bytes for trackingId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTrackingIdBytes() {
      java.lang.Object ref = trackingId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        trackingId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VEPUPDATE_FIELD_NUMBER = 1;
    /**
     * <code>.proto.VEPUpdate vepUpdate = 1;</code>
     * @return Whether the vepUpdate field is set.
     */
    @java.lang.Override
    public boolean hasVepUpdate() {
      return msgCase_ == 1;
    }
    /**
     * <code>.proto.VEPUpdate vepUpdate = 1;</code>
     * @return The vepUpdate.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getVepUpdate() {
      if (msgCase_ == 1) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) msg_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance();
    }
    /**
     * <code>.proto.VEPUpdate vepUpdate = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder getVepUpdateOrBuilder() {
      if (msgCase_ == 1) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) msg_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance();
    }

    public static final int VEPUPDATES_FIELD_NUMBER = 2;
    /**
     * <code>.proto.VEPUpdatesByVIN vepUpdates = 2;</code>
     * @return Whether the vepUpdates field is set.
     */
    @java.lang.Override
    public boolean hasVepUpdates() {
      return msgCase_ == 2;
    }
    /**
     * <code>.proto.VEPUpdatesByVIN vepUpdates = 2;</code>
     * @return The vepUpdates.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN getVepUpdates() {
      if (msgCase_ == 2) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) msg_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance();
    }
    /**
     * <code>.proto.VEPUpdatesByVIN vepUpdates = 2;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVINOrBuilder getVepUpdatesOrBuilder() {
      if (msgCase_ == 2) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) msg_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance();
    }

    public static final int DEBUGMESSAGE_FIELD_NUMBER = 3;
    /**
     * <code>.proto.DebugMessage debugMessage = 3;</code>
     * @return Whether the debugMessage field is set.
     */
    @java.lang.Override
    public boolean hasDebugMessage() {
      return msgCase_ == 3;
    }
    /**
     * <code>.proto.DebugMessage debugMessage = 3;</code>
     * @return The debugMessage.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage getDebugMessage() {
      if (msgCase_ == 3) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) msg_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance();
    }
    /**
     * <code>.proto.DebugMessage debugMessage = 3;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessageOrBuilder getDebugMessageOrBuilder() {
      if (msgCase_ == 3) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) msg_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance();
    }

    public static final int SERVICE_STATUS_UPDATES_FIELD_NUMBER = 9;
    /**
     * <code>.proto.ServiceStatusUpdatesByVIN service_status_updates = 9;</code>
     * @return Whether the serviceStatusUpdates field is set.
     */
    @java.lang.Override
    public boolean hasServiceStatusUpdates() {
      return msgCase_ == 9;
    }
    /**
     * <code>.proto.ServiceStatusUpdatesByVIN service_status_updates = 9;</code>
     * @return The serviceStatusUpdates.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN getServiceStatusUpdates() {
      if (msgCase_ == 9) {
         return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) msg_;
      }
      return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.getDefaultInstance();
    }
    /**
     * <code>.proto.ServiceStatusUpdatesByVIN service_status_updates = 9;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVINOrBuilder getServiceStatusUpdatesOrBuilder() {
      if (msgCase_ == 9) {
         return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) msg_;
      }
      return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.getDefaultInstance();
    }

    public static final int SERVICE_STATUS_UPDATE_FIELD_NUMBER = 13;
    /**
     * <code>.proto.ServiceStatusUpdate service_status_update = 13;</code>
     * @return Whether the serviceStatusUpdate field is set.
     */
    @java.lang.Override
    public boolean hasServiceStatusUpdate() {
      return msgCase_ == 13;
    }
    /**
     * <code>.proto.ServiceStatusUpdate service_status_update = 13;</code>
     * @return The serviceStatusUpdate.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate getServiceStatusUpdate() {
      if (msgCase_ == 13) {
         return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) msg_;
      }
      return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.getDefaultInstance();
    }
    /**
     * <code>.proto.ServiceStatusUpdate service_status_update = 13;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdateOrBuilder getServiceStatusUpdateOrBuilder() {
      if (msgCase_ == 13) {
         return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) msg_;
      }
      return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.getDefaultInstance();
    }

    public static final int USER_DATA_UPDATE_FIELD_NUMBER = 10;
    /**
     * <code>.proto.UserDataUpdate user_data_update = 10;</code>
     * @return Whether the userDataUpdate field is set.
     */
    @java.lang.Override
    public boolean hasUserDataUpdate() {
      return msgCase_ == 10;
    }
    /**
     * <code>.proto.UserDataUpdate user_data_update = 10;</code>
     * @return The userDataUpdate.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate getUserDataUpdate() {
      if (msgCase_ == 10) {
         return (com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) msg_;
      }
      return com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.getDefaultInstance();
    }
    /**
     * <code>.proto.UserDataUpdate user_data_update = 10;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.UserEvents.UserDataUpdateOrBuilder getUserDataUpdateOrBuilder() {
      if (msgCase_ == 10) {
         return (com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) msg_;
      }
      return com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.getDefaultInstance();
    }

    public static final int USER_VEHICLE_AUTH_CHANGED_UPDATE_FIELD_NUMBER = 14;
    /**
     * <code>.proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14;</code>
     * @return Whether the userVehicleAuthChangedUpdate field is set.
     */
    @java.lang.Override
    public boolean hasUserVehicleAuthChangedUpdate() {
      return msgCase_ == 14;
    }
    /**
     * <code>.proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14;</code>
     * @return The userVehicleAuthChangedUpdate.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate getUserVehicleAuthChangedUpdate() {
      if (msgCase_ == 14) {
         return (com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) msg_;
      }
      return com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.getDefaultInstance();
    }
    /**
     * <code>.proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdateOrBuilder getUserVehicleAuthChangedUpdateOrBuilder() {
      if (msgCase_ == 14) {
         return (com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) msg_;
      }
      return com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.getDefaultInstance();
    }

    public static final int USER_PICTURE_UPDATE_FIELD_NUMBER = 11;
    /**
     * <code>.proto.UserPictureUpdate user_picture_update = 11;</code>
     * @return Whether the userPictureUpdate field is set.
     */
    @java.lang.Override
    public boolean hasUserPictureUpdate() {
      return msgCase_ == 11;
    }
    /**
     * <code>.proto.UserPictureUpdate user_picture_update = 11;</code>
     * @return The userPictureUpdate.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate getUserPictureUpdate() {
      if (msgCase_ == 11) {
         return (com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) msg_;
      }
      return com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.getDefaultInstance();
    }
    /**
     * <code>.proto.UserPictureUpdate user_picture_update = 11;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdateOrBuilder getUserPictureUpdateOrBuilder() {
      if (msgCase_ == 11) {
         return (com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) msg_;
      }
      return com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.getDefaultInstance();
    }

    public static final int USER_PIN_UPDATE_FIELD_NUMBER = 12;
    /**
     * <code>.proto.UserPINUpdate user_pin_update = 12;</code>
     * @return Whether the userPinUpdate field is set.
     */
    @java.lang.Override
    public boolean hasUserPinUpdate() {
      return msgCase_ == 12;
    }
    /**
     * <code>.proto.UserPINUpdate user_pin_update = 12;</code>
     * @return The userPinUpdate.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate getUserPinUpdate() {
      if (msgCase_ == 12) {
         return (com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) msg_;
      }
      return com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.getDefaultInstance();
    }
    /**
     * <code>.proto.UserPINUpdate user_pin_update = 12;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.UserEvents.UserPINUpdateOrBuilder getUserPinUpdateOrBuilder() {
      if (msgCase_ == 12) {
         return (com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) msg_;
      }
      return com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.getDefaultInstance();
    }

    public static final int VEHICLE_UPDATED_FIELD_NUMBER = 15;
    /**
     * <code>.proto.VehicleUpdated vehicle_updated = 15;</code>
     * @return Whether the vehicleUpdated field is set.
     */
    @java.lang.Override
    public boolean hasVehicleUpdated() {
      return msgCase_ == 15;
    }
    /**
     * <code>.proto.VehicleUpdated vehicle_updated = 15;</code>
     * @return The vehicleUpdated.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated getVehicleUpdated() {
      if (msgCase_ == 15) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) msg_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance();
    }
    /**
     * <code>.proto.VehicleUpdated vehicle_updated = 15;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdatedOrBuilder getVehicleUpdatedOrBuilder() {
      if (msgCase_ == 15) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) msg_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance();
    }

    public static final int PREFERRED_DEALER_CHANGE_FIELD_NUMBER = 16;
    /**
     * <code>.proto.PreferredDealerChange preferred_dealer_change = 16;</code>
     * @return Whether the preferredDealerChange field is set.
     */
    @java.lang.Override
    public boolean hasPreferredDealerChange() {
      return msgCase_ == 16;
    }
    /**
     * <code>.proto.PreferredDealerChange preferred_dealer_change = 16;</code>
     * @return The preferredDealerChange.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange getPreferredDealerChange() {
      if (msgCase_ == 16) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) msg_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance();
    }
    /**
     * <code>.proto.PreferredDealerChange preferred_dealer_change = 16;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChangeOrBuilder getPreferredDealerChangeOrBuilder() {
      if (msgCase_ == 16) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) msg_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance();
    }

    public static final int APPTWIN_COMMAND_STATUS_UPDATES_BY_VIN_FIELD_NUMBER = 17;
    /**
     * <code>.proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17;</code>
     * @return Whether the apptwinCommandStatusUpdatesByVin field is set.
     */
    @java.lang.Override
    public boolean hasApptwinCommandStatusUpdatesByVin() {
      return msgCase_ == 17;
    }
    /**
     * <code>.proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17;</code>
     * @return The apptwinCommandStatusUpdatesByVin.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN getApptwinCommandStatusUpdatesByVin() {
      if (msgCase_ == 17) {
         return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) msg_;
      }
      return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.getDefaultInstance();
    }
    /**
     * <code>.proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVINOrBuilder getApptwinCommandStatusUpdatesByVinOrBuilder() {
      if (msgCase_ == 17) {
         return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) msg_;
      }
      return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.getDefaultInstance();
    }

    public static final int APPTWIN_PENDING_COMMAND_REQUEST_FIELD_NUMBER = 18;
    /**
     * <code>.proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18;</code>
     * @return Whether the apptwinPendingCommandRequest field is set.
     */
    @java.lang.Override
    public boolean hasApptwinPendingCommandRequest() {
      return msgCase_ == 18;
    }
    /**
     * <code>.proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18;</code>
     * @return The apptwinPendingCommandRequest.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest getApptwinPendingCommandRequest() {
      if (msgCase_ == 18) {
         return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) msg_;
      }
      return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.getDefaultInstance();
    }
    /**
     * <code>.proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequestOrBuilder getApptwinPendingCommandRequestOrBuilder() {
      if (msgCase_ == 18) {
         return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) msg_;
      }
      return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.getDefaultInstance();
    }

    public static final int ASSIGNED_VEHICLES_FIELD_NUMBER = 19;
    /**
     * <code>.proto.AssignedVehicles assigned_vehicles = 19;</code>
     * @return Whether the assignedVehicles field is set.
     */
    @java.lang.Override
    public boolean hasAssignedVehicles() {
      return msgCase_ == 19;
    }
    /**
     * <code>.proto.AssignedVehicles assigned_vehicles = 19;</code>
     * @return The assignedVehicles.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.Protos.AssignedVehicles getAssignedVehicles() {
      if (msgCase_ == 19) {
         return (com.daimler.mbcarkit.proto.Protos.AssignedVehicles) msg_;
      }
      return com.daimler.mbcarkit.proto.Protos.AssignedVehicles.getDefaultInstance();
    }
    /**
     * <code>.proto.AssignedVehicles assigned_vehicles = 19;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.Protos.AssignedVehiclesOrBuilder getAssignedVehiclesOrBuilder() {
      if (msgCase_ == 19) {
         return (com.daimler.mbcarkit.proto.Protos.AssignedVehicles) msg_;
      }
      return com.daimler.mbcarkit.proto.Protos.AssignedVehicles.getDefaultInstance();
    }

    public static final int DATA_CHANGE_EVENT_FIELD_NUMBER = 21;
    /**
     * <code>.proto.DataChangeEvent data_change_event = 21;</code>
     * @return Whether the dataChangeEvent field is set.
     */
    @java.lang.Override
    public boolean hasDataChangeEvent() {
      return msgCase_ == 21;
    }
    /**
     * <code>.proto.DataChangeEvent data_change_event = 21;</code>
     * @return The dataChangeEvent.
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent getDataChangeEvent() {
      if (msgCase_ == 21) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent) msg_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.getDefaultInstance();
    }
    /**
     * <code>.proto.DataChangeEvent data_change_event = 21;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEventOrBuilder getDataChangeEventOrBuilder() {
      if (msgCase_ == 21) {
         return (com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent) msg_;
      }
      return com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (msgCase_ == 1) {
        output.writeMessage(1, (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) msg_);
      }
      if (msgCase_ == 2) {
        output.writeMessage(2, (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) msg_);
      }
      if (msgCase_ == 3) {
        output.writeMessage(3, (com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) msg_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trackingId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 5, trackingId_);
      }
      if (msgCase_ == 9) {
        output.writeMessage(9, (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) msg_);
      }
      if (msgCase_ == 10) {
        output.writeMessage(10, (com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) msg_);
      }
      if (msgCase_ == 11) {
        output.writeMessage(11, (com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) msg_);
      }
      if (msgCase_ == 12) {
        output.writeMessage(12, (com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) msg_);
      }
      if (msgCase_ == 13) {
        output.writeMessage(13, (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) msg_);
      }
      if (msgCase_ == 14) {
        output.writeMessage(14, (com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) msg_);
      }
      if (msgCase_ == 15) {
        output.writeMessage(15, (com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) msg_);
      }
      if (msgCase_ == 16) {
        output.writeMessage(16, (com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) msg_);
      }
      if (msgCase_ == 17) {
        output.writeMessage(17, (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) msg_);
      }
      if (msgCase_ == 18) {
        output.writeMessage(18, (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) msg_);
      }
      if (msgCase_ == 19) {
        output.writeMessage(19, (com.daimler.mbcarkit.proto.Protos.AssignedVehicles) msg_);
      }
      if (msgCase_ == 21) {
        output.writeMessage(21, (com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent) msg_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (msgCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) msg_);
      }
      if (msgCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) msg_);
      }
      if (msgCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) msg_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trackingId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(5, trackingId_);
      }
      if (msgCase_ == 9) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) msg_);
      }
      if (msgCase_ == 10) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, (com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) msg_);
      }
      if (msgCase_ == 11) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, (com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) msg_);
      }
      if (msgCase_ == 12) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, (com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) msg_);
      }
      if (msgCase_ == 13) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) msg_);
      }
      if (msgCase_ == 14) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, (com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) msg_);
      }
      if (msgCase_ == 15) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, (com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) msg_);
      }
      if (msgCase_ == 16) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, (com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) msg_);
      }
      if (msgCase_ == 17) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) msg_);
      }
      if (msgCase_ == 18) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) msg_);
      }
      if (msgCase_ == 19) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(19, (com.daimler.mbcarkit.proto.Protos.AssignedVehicles) msg_);
      }
      if (msgCase_ == 21) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, (com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent) msg_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.PushMessage)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.PushMessage other = (com.daimler.mbcarkit.proto.VehicleEvents.PushMessage) obj;

      if (!getTrackingId()
          .equals(other.getTrackingId())) return false;
      if (!getMsgCase().equals(other.getMsgCase())) return false;
      switch (msgCase_) {
        case 1:
          if (!getVepUpdate()
              .equals(other.getVepUpdate())) return false;
          break;
        case 2:
          if (!getVepUpdates()
              .equals(other.getVepUpdates())) return false;
          break;
        case 3:
          if (!getDebugMessage()
              .equals(other.getDebugMessage())) return false;
          break;
        case 9:
          if (!getServiceStatusUpdates()
              .equals(other.getServiceStatusUpdates())) return false;
          break;
        case 13:
          if (!getServiceStatusUpdate()
              .equals(other.getServiceStatusUpdate())) return false;
          break;
        case 10:
          if (!getUserDataUpdate()
              .equals(other.getUserDataUpdate())) return false;
          break;
        case 14:
          if (!getUserVehicleAuthChangedUpdate()
              .equals(other.getUserVehicleAuthChangedUpdate())) return false;
          break;
        case 11:
          if (!getUserPictureUpdate()
              .equals(other.getUserPictureUpdate())) return false;
          break;
        case 12:
          if (!getUserPinUpdate()
              .equals(other.getUserPinUpdate())) return false;
          break;
        case 15:
          if (!getVehicleUpdated()
              .equals(other.getVehicleUpdated())) return false;
          break;
        case 16:
          if (!getPreferredDealerChange()
              .equals(other.getPreferredDealerChange())) return false;
          break;
        case 17:
          if (!getApptwinCommandStatusUpdatesByVin()
              .equals(other.getApptwinCommandStatusUpdatesByVin())) return false;
          break;
        case 18:
          if (!getApptwinPendingCommandRequest()
              .equals(other.getApptwinPendingCommandRequest())) return false;
          break;
        case 19:
          if (!getAssignedVehicles()
              .equals(other.getAssignedVehicles())) return false;
          break;
        case 21:
          if (!getDataChangeEvent()
              .equals(other.getDataChangeEvent())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + TRACKING_ID_FIELD_NUMBER;
      hash = (53 * hash) + getTrackingId().hashCode();
      switch (msgCase_) {
        case 1:
          hash = (37 * hash) + VEPUPDATE_FIELD_NUMBER;
          hash = (53 * hash) + getVepUpdate().hashCode();
          break;
        case 2:
          hash = (37 * hash) + VEPUPDATES_FIELD_NUMBER;
          hash = (53 * hash) + getVepUpdates().hashCode();
          break;
        case 3:
          hash = (37 * hash) + DEBUGMESSAGE_FIELD_NUMBER;
          hash = (53 * hash) + getDebugMessage().hashCode();
          break;
        case 9:
          hash = (37 * hash) + SERVICE_STATUS_UPDATES_FIELD_NUMBER;
          hash = (53 * hash) + getServiceStatusUpdates().hashCode();
          break;
        case 13:
          hash = (37 * hash) + SERVICE_STATUS_UPDATE_FIELD_NUMBER;
          hash = (53 * hash) + getServiceStatusUpdate().hashCode();
          break;
        case 10:
          hash = (37 * hash) + USER_DATA_UPDATE_FIELD_NUMBER;
          hash = (53 * hash) + getUserDataUpdate().hashCode();
          break;
        case 14:
          hash = (37 * hash) + USER_VEHICLE_AUTH_CHANGED_UPDATE_FIELD_NUMBER;
          hash = (53 * hash) + getUserVehicleAuthChangedUpdate().hashCode();
          break;
        case 11:
          hash = (37 * hash) + USER_PICTURE_UPDATE_FIELD_NUMBER;
          hash = (53 * hash) + getUserPictureUpdate().hashCode();
          break;
        case 12:
          hash = (37 * hash) + USER_PIN_UPDATE_FIELD_NUMBER;
          hash = (53 * hash) + getUserPinUpdate().hashCode();
          break;
        case 15:
          hash = (37 * hash) + VEHICLE_UPDATED_FIELD_NUMBER;
          hash = (53 * hash) + getVehicleUpdated().hashCode();
          break;
        case 16:
          hash = (37 * hash) + PREFERRED_DEALER_CHANGE_FIELD_NUMBER;
          hash = (53 * hash) + getPreferredDealerChange().hashCode();
          break;
        case 17:
          hash = (37 * hash) + APPTWIN_COMMAND_STATUS_UPDATES_BY_VIN_FIELD_NUMBER;
          hash = (53 * hash) + getApptwinCommandStatusUpdatesByVin().hashCode();
          break;
        case 18:
          hash = (37 * hash) + APPTWIN_PENDING_COMMAND_REQUEST_FIELD_NUMBER;
          hash = (53 * hash) + getApptwinPendingCommandRequest().hashCode();
          break;
        case 19:
          hash = (37 * hash) + ASSIGNED_VEHICLES_FIELD_NUMBER;
          hash = (53 * hash) + getAssignedVehicles().hashCode();
          break;
        case 21:
          hash = (37 * hash) + DATA_CHANGE_EVENT_FIELD_NUMBER;
          hash = (53 * hash) + getDataChangeEvent().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.PushMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * message that is pushed from the vep status service
     * Sending direction: App &lt;- BFF
     * </pre>
     *
     * Protobuf type {@code proto.PushMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.PushMessage)
        com.daimler.mbcarkit.proto.VehicleEvents.PushMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PushMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PushMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.PushMessage.class, com.daimler.mbcarkit.proto.VehicleEvents.PushMessage.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.PushMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        trackingId_ = "";
        if (vepUpdateBuilder_ != null) {
          vepUpdateBuilder_.clear();
        }
        if (vepUpdatesBuilder_ != null) {
          vepUpdatesBuilder_.clear();
        }
        if (debugMessageBuilder_ != null) {
          debugMessageBuilder_.clear();
        }
        if (serviceStatusUpdatesBuilder_ != null) {
          serviceStatusUpdatesBuilder_.clear();
        }
        if (serviceStatusUpdateBuilder_ != null) {
          serviceStatusUpdateBuilder_.clear();
        }
        if (userDataUpdateBuilder_ != null) {
          userDataUpdateBuilder_.clear();
        }
        if (userVehicleAuthChangedUpdateBuilder_ != null) {
          userVehicleAuthChangedUpdateBuilder_.clear();
        }
        if (userPictureUpdateBuilder_ != null) {
          userPictureUpdateBuilder_.clear();
        }
        if (userPinUpdateBuilder_ != null) {
          userPinUpdateBuilder_.clear();
        }
        if (vehicleUpdatedBuilder_ != null) {
          vehicleUpdatedBuilder_.clear();
        }
        if (preferredDealerChangeBuilder_ != null) {
          preferredDealerChangeBuilder_.clear();
        }
        if (apptwinCommandStatusUpdatesByVinBuilder_ != null) {
          apptwinCommandStatusUpdatesByVinBuilder_.clear();
        }
        if (apptwinPendingCommandRequestBuilder_ != null) {
          apptwinPendingCommandRequestBuilder_.clear();
        }
        if (assignedVehiclesBuilder_ != null) {
          assignedVehiclesBuilder_.clear();
        }
        if (dataChangeEventBuilder_ != null) {
          dataChangeEventBuilder_.clear();
        }
        msgCase_ = 0;
        msg_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PushMessage_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PushMessage getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.PushMessage.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PushMessage build() {
        com.daimler.mbcarkit.proto.VehicleEvents.PushMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PushMessage buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.PushMessage result = new com.daimler.mbcarkit.proto.VehicleEvents.PushMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.PushMessage result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.trackingId_ = trackingId_;
        }
      }

      private void buildPartialOneofs(com.daimler.mbcarkit.proto.VehicleEvents.PushMessage result) {
        result.msgCase_ = msgCase_;
        result.msg_ = this.msg_;
        if (msgCase_ == 1 &&
            vepUpdateBuilder_ != null) {
          result.msg_ = vepUpdateBuilder_.build();
        }
        if (msgCase_ == 2 &&
            vepUpdatesBuilder_ != null) {
          result.msg_ = vepUpdatesBuilder_.build();
        }
        if (msgCase_ == 3 &&
            debugMessageBuilder_ != null) {
          result.msg_ = debugMessageBuilder_.build();
        }
        if (msgCase_ == 9 &&
            serviceStatusUpdatesBuilder_ != null) {
          result.msg_ = serviceStatusUpdatesBuilder_.build();
        }
        if (msgCase_ == 13 &&
            serviceStatusUpdateBuilder_ != null) {
          result.msg_ = serviceStatusUpdateBuilder_.build();
        }
        if (msgCase_ == 10 &&
            userDataUpdateBuilder_ != null) {
          result.msg_ = userDataUpdateBuilder_.build();
        }
        if (msgCase_ == 14 &&
            userVehicleAuthChangedUpdateBuilder_ != null) {
          result.msg_ = userVehicleAuthChangedUpdateBuilder_.build();
        }
        if (msgCase_ == 11 &&
            userPictureUpdateBuilder_ != null) {
          result.msg_ = userPictureUpdateBuilder_.build();
        }
        if (msgCase_ == 12 &&
            userPinUpdateBuilder_ != null) {
          result.msg_ = userPinUpdateBuilder_.build();
        }
        if (msgCase_ == 15 &&
            vehicleUpdatedBuilder_ != null) {
          result.msg_ = vehicleUpdatedBuilder_.build();
        }
        if (msgCase_ == 16 &&
            preferredDealerChangeBuilder_ != null) {
          result.msg_ = preferredDealerChangeBuilder_.build();
        }
        if (msgCase_ == 17 &&
            apptwinCommandStatusUpdatesByVinBuilder_ != null) {
          result.msg_ = apptwinCommandStatusUpdatesByVinBuilder_.build();
        }
        if (msgCase_ == 18 &&
            apptwinPendingCommandRequestBuilder_ != null) {
          result.msg_ = apptwinPendingCommandRequestBuilder_.build();
        }
        if (msgCase_ == 19 &&
            assignedVehiclesBuilder_ != null) {
          result.msg_ = assignedVehiclesBuilder_.build();
        }
        if (msgCase_ == 21 &&
            dataChangeEventBuilder_ != null) {
          result.msg_ = dataChangeEventBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.PushMessage) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.PushMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.PushMessage other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.PushMessage.getDefaultInstance()) return this;
        if (!other.getTrackingId().isEmpty()) {
          trackingId_ = other.trackingId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        switch (other.getMsgCase()) {
          case VEPUPDATE: {
            mergeVepUpdate(other.getVepUpdate());
            break;
          }
          case VEPUPDATES: {
            mergeVepUpdates(other.getVepUpdates());
            break;
          }
          case DEBUGMESSAGE: {
            mergeDebugMessage(other.getDebugMessage());
            break;
          }
          case SERVICE_STATUS_UPDATES: {
            mergeServiceStatusUpdates(other.getServiceStatusUpdates());
            break;
          }
          case SERVICE_STATUS_UPDATE: {
            mergeServiceStatusUpdate(other.getServiceStatusUpdate());
            break;
          }
          case USER_DATA_UPDATE: {
            mergeUserDataUpdate(other.getUserDataUpdate());
            break;
          }
          case USER_VEHICLE_AUTH_CHANGED_UPDATE: {
            mergeUserVehicleAuthChangedUpdate(other.getUserVehicleAuthChangedUpdate());
            break;
          }
          case USER_PICTURE_UPDATE: {
            mergeUserPictureUpdate(other.getUserPictureUpdate());
            break;
          }
          case USER_PIN_UPDATE: {
            mergeUserPinUpdate(other.getUserPinUpdate());
            break;
          }
          case VEHICLE_UPDATED: {
            mergeVehicleUpdated(other.getVehicleUpdated());
            break;
          }
          case PREFERRED_DEALER_CHANGE: {
            mergePreferredDealerChange(other.getPreferredDealerChange());
            break;
          }
          case APPTWIN_COMMAND_STATUS_UPDATES_BY_VIN: {
            mergeApptwinCommandStatusUpdatesByVin(other.getApptwinCommandStatusUpdatesByVin());
            break;
          }
          case APPTWIN_PENDING_COMMAND_REQUEST: {
            mergeApptwinPendingCommandRequest(other.getApptwinPendingCommandRequest());
            break;
          }
          case ASSIGNED_VEHICLES: {
            mergeAssignedVehicles(other.getAssignedVehicles());
            break;
          }
          case DATA_CHANGE_EVENT: {
            mergeDataChangeEvent(other.getDataChangeEvent());
            break;
          }
          case MSG_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    internalGetVepUpdateFieldBuilder().getBuilder(),
                    extensionRegistry);
                msgCase_ = 1;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    internalGetVepUpdatesFieldBuilder().getBuilder(),
                    extensionRegistry);
                msgCase_ = 2;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    internalGetDebugMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                msgCase_ = 3;
                break;
              } // case 26
              case 42: {
                trackingId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 42
              case 74: {
                input.readMessage(
                    internalGetServiceStatusUpdatesFieldBuilder().getBuilder(),
                    extensionRegistry);
                msgCase_ = 9;
                break;
              } // case 74
              case 82: {
                input.readMessage(
                    internalGetUserDataUpdateFieldBuilder().getBuilder(),
                    extensionRegistry);
                msgCase_ = 10;
                break;
              } // case 82
              case 90: {
                input.readMessage(
                    internalGetUserPictureUpdateFieldBuilder().getBuilder(),
                    extensionRegistry);
                msgCase_ = 11;
                break;
              } // case 90
              case 98: {
                input.readMessage(
                    internalGetUserPinUpdateFieldBuilder().getBuilder(),
                    extensionRegistry);
                msgCase_ = 12;
                break;
              } // case 98
              case 106: {
                input.readMessage(
                    internalGetServiceStatusUpdateFieldBuilder().getBuilder(),
                    extensionRegistry);
                msgCase_ = 13;
                break;
              } // case 106
              case 114: {
                input.readMessage(
                    internalGetUserVehicleAuthChangedUpdateFieldBuilder().getBuilder(),
                    extensionRegistry);
                msgCase_ = 14;
                break;
              } // case 114
              case 122: {
                input.readMessage(
                    internalGetVehicleUpdatedFieldBuilder().getBuilder(),
                    extensionRegistry);
                msgCase_ = 15;
                break;
              } // case 122
              case 130: {
                input.readMessage(
                    internalGetPreferredDealerChangeFieldBuilder().getBuilder(),
                    extensionRegistry);
                msgCase_ = 16;
                break;
              } // case 130
              case 138: {
                input.readMessage(
                    internalGetApptwinCommandStatusUpdatesByVinFieldBuilder().getBuilder(),
                    extensionRegistry);
                msgCase_ = 17;
                break;
              } // case 138
              case 146: {
                input.readMessage(
                    internalGetApptwinPendingCommandRequestFieldBuilder().getBuilder(),
                    extensionRegistry);
                msgCase_ = 18;
                break;
              } // case 146
              case 154: {
                input.readMessage(
                    internalGetAssignedVehiclesFieldBuilder().getBuilder(),
                    extensionRegistry);
                msgCase_ = 19;
                break;
              } // case 154
              case 170: {
                input.readMessage(
                    internalGetDataChangeEventFieldBuilder().getBuilder(),
                    extensionRegistry);
                msgCase_ = 21;
                break;
              } // case 170
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int msgCase_ = 0;
      private java.lang.Object msg_;
      public MsgCase
          getMsgCase() {
        return MsgCase.forNumber(
            msgCase_);
      }

      public Builder clearMsg() {
        msgCase_ = 0;
        msg_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private java.lang.Object trackingId_ = "";
      /**
       * <code>string tracking_id = 5;</code>
       * @return The trackingId.
       */
      public java.lang.String getTrackingId() {
        java.lang.Object ref = trackingId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          trackingId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string tracking_id = 5;</code>
       * @return The bytes for trackingId.
       */
      public com.google.protobuf.ByteString
          getTrackingIdBytes() {
        java.lang.Object ref = trackingId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          trackingId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string tracking_id = 5;</code>
       * @param value The trackingId to set.
       * @return This builder for chaining.
       */
      public Builder setTrackingId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        trackingId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string tracking_id = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearTrackingId() {
        trackingId_ = getDefaultInstance().getTrackingId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string tracking_id = 5;</code>
       * @param value The bytes for trackingId to set.
       * @return This builder for chaining.
       */
      public Builder setTrackingIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        trackingId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder> vepUpdateBuilder_;
      /**
       * <code>.proto.VEPUpdate vepUpdate = 1;</code>
       * @return Whether the vepUpdate field is set.
       */
      @java.lang.Override
      public boolean hasVepUpdate() {
        return msgCase_ == 1;
      }
      /**
       * <code>.proto.VEPUpdate vepUpdate = 1;</code>
       * @return The vepUpdate.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getVepUpdate() {
        if (vepUpdateBuilder_ == null) {
          if (msgCase_ == 1) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) msg_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance();
        } else {
          if (msgCase_ == 1) {
            return vepUpdateBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.VEPUpdate vepUpdate = 1;</code>
       */
      public Builder setVepUpdate(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate value) {
        if (vepUpdateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          msg_ = value;
          onChanged();
        } else {
          vepUpdateBuilder_.setMessage(value);
        }
        msgCase_ = 1;
        return this;
      }
      /**
       * <code>.proto.VEPUpdate vepUpdate = 1;</code>
       */
      public Builder setVepUpdate(
          com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder builderForValue) {
        if (vepUpdateBuilder_ == null) {
          msg_ = builderForValue.build();
          onChanged();
        } else {
          vepUpdateBuilder_.setMessage(builderForValue.build());
        }
        msgCase_ = 1;
        return this;
      }
      /**
       * <code>.proto.VEPUpdate vepUpdate = 1;</code>
       */
      public Builder mergeVepUpdate(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate value) {
        if (vepUpdateBuilder_ == null) {
          if (msgCase_ == 1 &&
              msg_ != com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance()) {
            msg_ = com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) msg_)
                .mergeFrom(value).buildPartial();
          } else {
            msg_ = value;
          }
          onChanged();
        } else {
          if (msgCase_ == 1) {
            vepUpdateBuilder_.mergeFrom(value);
          } else {
            vepUpdateBuilder_.setMessage(value);
          }
        }
        msgCase_ = 1;
        return this;
      }
      /**
       * <code>.proto.VEPUpdate vepUpdate = 1;</code>
       */
      public Builder clearVepUpdate() {
        if (vepUpdateBuilder_ == null) {
          if (msgCase_ == 1) {
            msgCase_ = 0;
            msg_ = null;
            onChanged();
          }
        } else {
          if (msgCase_ == 1) {
            msgCase_ = 0;
            msg_ = null;
          }
          vepUpdateBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.VEPUpdate vepUpdate = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder getVepUpdateBuilder() {
        return internalGetVepUpdateFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.VEPUpdate vepUpdate = 1;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder getVepUpdateOrBuilder() {
        if ((msgCase_ == 1) && (vepUpdateBuilder_ != null)) {
          return vepUpdateBuilder_.getMessageOrBuilder();
        } else {
          if (msgCase_ == 1) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) msg_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.VEPUpdate vepUpdate = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder> 
          internalGetVepUpdateFieldBuilder() {
        if (vepUpdateBuilder_ == null) {
          if (!(msgCase_ == 1)) {
            msg_ = com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance();
          }
          vepUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) msg_,
                  getParentForChildren(),
                  isClean());
          msg_ = null;
        }
        msgCase_ = 1;
        onChanged();
        return vepUpdateBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVINOrBuilder> vepUpdatesBuilder_;
      /**
       * <code>.proto.VEPUpdatesByVIN vepUpdates = 2;</code>
       * @return Whether the vepUpdates field is set.
       */
      @java.lang.Override
      public boolean hasVepUpdates() {
        return msgCase_ == 2;
      }
      /**
       * <code>.proto.VEPUpdatesByVIN vepUpdates = 2;</code>
       * @return The vepUpdates.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN getVepUpdates() {
        if (vepUpdatesBuilder_ == null) {
          if (msgCase_ == 2) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) msg_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance();
        } else {
          if (msgCase_ == 2) {
            return vepUpdatesBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.VEPUpdatesByVIN vepUpdates = 2;</code>
       */
      public Builder setVepUpdates(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN value) {
        if (vepUpdatesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          msg_ = value;
          onChanged();
        } else {
          vepUpdatesBuilder_.setMessage(value);
        }
        msgCase_ = 2;
        return this;
      }
      /**
       * <code>.proto.VEPUpdatesByVIN vepUpdates = 2;</code>
       */
      public Builder setVepUpdates(
          com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.Builder builderForValue) {
        if (vepUpdatesBuilder_ == null) {
          msg_ = builderForValue.build();
          onChanged();
        } else {
          vepUpdatesBuilder_.setMessage(builderForValue.build());
        }
        msgCase_ = 2;
        return this;
      }
      /**
       * <code>.proto.VEPUpdatesByVIN vepUpdates = 2;</code>
       */
      public Builder mergeVepUpdates(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN value) {
        if (vepUpdatesBuilder_ == null) {
          if (msgCase_ == 2 &&
              msg_ != com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance()) {
            msg_ = com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) msg_)
                .mergeFrom(value).buildPartial();
          } else {
            msg_ = value;
          }
          onChanged();
        } else {
          if (msgCase_ == 2) {
            vepUpdatesBuilder_.mergeFrom(value);
          } else {
            vepUpdatesBuilder_.setMessage(value);
          }
        }
        msgCase_ = 2;
        return this;
      }
      /**
       * <code>.proto.VEPUpdatesByVIN vepUpdates = 2;</code>
       */
      public Builder clearVepUpdates() {
        if (vepUpdatesBuilder_ == null) {
          if (msgCase_ == 2) {
            msgCase_ = 0;
            msg_ = null;
            onChanged();
          }
        } else {
          if (msgCase_ == 2) {
            msgCase_ = 0;
            msg_ = null;
          }
          vepUpdatesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.VEPUpdatesByVIN vepUpdates = 2;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.Builder getVepUpdatesBuilder() {
        return internalGetVepUpdatesFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.VEPUpdatesByVIN vepUpdates = 2;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVINOrBuilder getVepUpdatesOrBuilder() {
        if ((msgCase_ == 2) && (vepUpdatesBuilder_ != null)) {
          return vepUpdatesBuilder_.getMessageOrBuilder();
        } else {
          if (msgCase_ == 2) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) msg_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.VEPUpdatesByVIN vepUpdates = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVINOrBuilder> 
          internalGetVepUpdatesFieldBuilder() {
        if (vepUpdatesBuilder_ == null) {
          if (!(msgCase_ == 2)) {
            msg_ = com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance();
          }
          vepUpdatesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVINOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) msg_,
                  getParentForChildren(),
                  isClean());
          msg_ = null;
        }
        msgCase_ = 2;
        onChanged();
        return vepUpdatesBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage, com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.Builder, com.daimler.mbcarkit.proto.VehicleEvents.DebugMessageOrBuilder> debugMessageBuilder_;
      /**
       * <code>.proto.DebugMessage debugMessage = 3;</code>
       * @return Whether the debugMessage field is set.
       */
      @java.lang.Override
      public boolean hasDebugMessage() {
        return msgCase_ == 3;
      }
      /**
       * <code>.proto.DebugMessage debugMessage = 3;</code>
       * @return The debugMessage.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage getDebugMessage() {
        if (debugMessageBuilder_ == null) {
          if (msgCase_ == 3) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) msg_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance();
        } else {
          if (msgCase_ == 3) {
            return debugMessageBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.DebugMessage debugMessage = 3;</code>
       */
      public Builder setDebugMessage(com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage value) {
        if (debugMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          msg_ = value;
          onChanged();
        } else {
          debugMessageBuilder_.setMessage(value);
        }
        msgCase_ = 3;
        return this;
      }
      /**
       * <code>.proto.DebugMessage debugMessage = 3;</code>
       */
      public Builder setDebugMessage(
          com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.Builder builderForValue) {
        if (debugMessageBuilder_ == null) {
          msg_ = builderForValue.build();
          onChanged();
        } else {
          debugMessageBuilder_.setMessage(builderForValue.build());
        }
        msgCase_ = 3;
        return this;
      }
      /**
       * <code>.proto.DebugMessage debugMessage = 3;</code>
       */
      public Builder mergeDebugMessage(com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage value) {
        if (debugMessageBuilder_ == null) {
          if (msgCase_ == 3 &&
              msg_ != com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance()) {
            msg_ = com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) msg_)
                .mergeFrom(value).buildPartial();
          } else {
            msg_ = value;
          }
          onChanged();
        } else {
          if (msgCase_ == 3) {
            debugMessageBuilder_.mergeFrom(value);
          } else {
            debugMessageBuilder_.setMessage(value);
          }
        }
        msgCase_ = 3;
        return this;
      }
      /**
       * <code>.proto.DebugMessage debugMessage = 3;</code>
       */
      public Builder clearDebugMessage() {
        if (debugMessageBuilder_ == null) {
          if (msgCase_ == 3) {
            msgCase_ = 0;
            msg_ = null;
            onChanged();
          }
        } else {
          if (msgCase_ == 3) {
            msgCase_ = 0;
            msg_ = null;
          }
          debugMessageBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.DebugMessage debugMessage = 3;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.Builder getDebugMessageBuilder() {
        return internalGetDebugMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.DebugMessage debugMessage = 3;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessageOrBuilder getDebugMessageOrBuilder() {
        if ((msgCase_ == 3) && (debugMessageBuilder_ != null)) {
          return debugMessageBuilder_.getMessageOrBuilder();
        } else {
          if (msgCase_ == 3) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) msg_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.DebugMessage debugMessage = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage, com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.Builder, com.daimler.mbcarkit.proto.VehicleEvents.DebugMessageOrBuilder> 
          internalGetDebugMessageFieldBuilder() {
        if (debugMessageBuilder_ == null) {
          if (!(msgCase_ == 3)) {
            msg_ = com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance();
          }
          debugMessageBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage, com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.Builder, com.daimler.mbcarkit.proto.VehicleEvents.DebugMessageOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) msg_,
                  getParentForChildren(),
                  isClean());
          msg_ = null;
        }
        msgCase_ = 3;
        onChanged();
        return debugMessageBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVINOrBuilder> serviceStatusUpdatesBuilder_;
      /**
       * <code>.proto.ServiceStatusUpdatesByVIN service_status_updates = 9;</code>
       * @return Whether the serviceStatusUpdates field is set.
       */
      @java.lang.Override
      public boolean hasServiceStatusUpdates() {
        return msgCase_ == 9;
      }
      /**
       * <code>.proto.ServiceStatusUpdatesByVIN service_status_updates = 9;</code>
       * @return The serviceStatusUpdates.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN getServiceStatusUpdates() {
        if (serviceStatusUpdatesBuilder_ == null) {
          if (msgCase_ == 9) {
            return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) msg_;
          }
          return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.getDefaultInstance();
        } else {
          if (msgCase_ == 9) {
            return serviceStatusUpdatesBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ServiceStatusUpdatesByVIN service_status_updates = 9;</code>
       */
      public Builder setServiceStatusUpdates(com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN value) {
        if (serviceStatusUpdatesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          msg_ = value;
          onChanged();
        } else {
          serviceStatusUpdatesBuilder_.setMessage(value);
        }
        msgCase_ = 9;
        return this;
      }
      /**
       * <code>.proto.ServiceStatusUpdatesByVIN service_status_updates = 9;</code>
       */
      public Builder setServiceStatusUpdates(
          com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.Builder builderForValue) {
        if (serviceStatusUpdatesBuilder_ == null) {
          msg_ = builderForValue.build();
          onChanged();
        } else {
          serviceStatusUpdatesBuilder_.setMessage(builderForValue.build());
        }
        msgCase_ = 9;
        return this;
      }
      /**
       * <code>.proto.ServiceStatusUpdatesByVIN service_status_updates = 9;</code>
       */
      public Builder mergeServiceStatusUpdates(com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN value) {
        if (serviceStatusUpdatesBuilder_ == null) {
          if (msgCase_ == 9 &&
              msg_ != com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.getDefaultInstance()) {
            msg_ = com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.newBuilder((com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) msg_)
                .mergeFrom(value).buildPartial();
          } else {
            msg_ = value;
          }
          onChanged();
        } else {
          if (msgCase_ == 9) {
            serviceStatusUpdatesBuilder_.mergeFrom(value);
          } else {
            serviceStatusUpdatesBuilder_.setMessage(value);
          }
        }
        msgCase_ = 9;
        return this;
      }
      /**
       * <code>.proto.ServiceStatusUpdatesByVIN service_status_updates = 9;</code>
       */
      public Builder clearServiceStatusUpdates() {
        if (serviceStatusUpdatesBuilder_ == null) {
          if (msgCase_ == 9) {
            msgCase_ = 0;
            msg_ = null;
            onChanged();
          }
        } else {
          if (msgCase_ == 9) {
            msgCase_ = 0;
            msg_ = null;
          }
          serviceStatusUpdatesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.ServiceStatusUpdatesByVIN service_status_updates = 9;</code>
       */
      public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.Builder getServiceStatusUpdatesBuilder() {
        return internalGetServiceStatusUpdatesFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.ServiceStatusUpdatesByVIN service_status_updates = 9;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVINOrBuilder getServiceStatusUpdatesOrBuilder() {
        if ((msgCase_ == 9) && (serviceStatusUpdatesBuilder_ != null)) {
          return serviceStatusUpdatesBuilder_.getMessageOrBuilder();
        } else {
          if (msgCase_ == 9) {
            return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) msg_;
          }
          return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ServiceStatusUpdatesByVIN service_status_updates = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVINOrBuilder> 
          internalGetServiceStatusUpdatesFieldBuilder() {
        if (serviceStatusUpdatesBuilder_ == null) {
          if (!(msgCase_ == 9)) {
            msg_ = com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.getDefaultInstance();
          }
          serviceStatusUpdatesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVINOrBuilder>(
                  (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) msg_,
                  getParentForChildren(),
                  isClean());
          msg_ = null;
        }
        msgCase_ = 9;
        onChanged();
        return serviceStatusUpdatesBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.Builder, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdateOrBuilder> serviceStatusUpdateBuilder_;
      /**
       * <code>.proto.ServiceStatusUpdate service_status_update = 13;</code>
       * @return Whether the serviceStatusUpdate field is set.
       */
      @java.lang.Override
      public boolean hasServiceStatusUpdate() {
        return msgCase_ == 13;
      }
      /**
       * <code>.proto.ServiceStatusUpdate service_status_update = 13;</code>
       * @return The serviceStatusUpdate.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate getServiceStatusUpdate() {
        if (serviceStatusUpdateBuilder_ == null) {
          if (msgCase_ == 13) {
            return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) msg_;
          }
          return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.getDefaultInstance();
        } else {
          if (msgCase_ == 13) {
            return serviceStatusUpdateBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ServiceStatusUpdate service_status_update = 13;</code>
       */
      public Builder setServiceStatusUpdate(com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate value) {
        if (serviceStatusUpdateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          msg_ = value;
          onChanged();
        } else {
          serviceStatusUpdateBuilder_.setMessage(value);
        }
        msgCase_ = 13;
        return this;
      }
      /**
       * <code>.proto.ServiceStatusUpdate service_status_update = 13;</code>
       */
      public Builder setServiceStatusUpdate(
          com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.Builder builderForValue) {
        if (serviceStatusUpdateBuilder_ == null) {
          msg_ = builderForValue.build();
          onChanged();
        } else {
          serviceStatusUpdateBuilder_.setMessage(builderForValue.build());
        }
        msgCase_ = 13;
        return this;
      }
      /**
       * <code>.proto.ServiceStatusUpdate service_status_update = 13;</code>
       */
      public Builder mergeServiceStatusUpdate(com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate value) {
        if (serviceStatusUpdateBuilder_ == null) {
          if (msgCase_ == 13 &&
              msg_ != com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.getDefaultInstance()) {
            msg_ = com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.newBuilder((com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) msg_)
                .mergeFrom(value).buildPartial();
          } else {
            msg_ = value;
          }
          onChanged();
        } else {
          if (msgCase_ == 13) {
            serviceStatusUpdateBuilder_.mergeFrom(value);
          } else {
            serviceStatusUpdateBuilder_.setMessage(value);
          }
        }
        msgCase_ = 13;
        return this;
      }
      /**
       * <code>.proto.ServiceStatusUpdate service_status_update = 13;</code>
       */
      public Builder clearServiceStatusUpdate() {
        if (serviceStatusUpdateBuilder_ == null) {
          if (msgCase_ == 13) {
            msgCase_ = 0;
            msg_ = null;
            onChanged();
          }
        } else {
          if (msgCase_ == 13) {
            msgCase_ = 0;
            msg_ = null;
          }
          serviceStatusUpdateBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.ServiceStatusUpdate service_status_update = 13;</code>
       */
      public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.Builder getServiceStatusUpdateBuilder() {
        return internalGetServiceStatusUpdateFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.ServiceStatusUpdate service_status_update = 13;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdateOrBuilder getServiceStatusUpdateOrBuilder() {
        if ((msgCase_ == 13) && (serviceStatusUpdateBuilder_ != null)) {
          return serviceStatusUpdateBuilder_.getMessageOrBuilder();
        } else {
          if (msgCase_ == 13) {
            return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) msg_;
          }
          return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.ServiceStatusUpdate service_status_update = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.Builder, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdateOrBuilder> 
          internalGetServiceStatusUpdateFieldBuilder() {
        if (serviceStatusUpdateBuilder_ == null) {
          if (!(msgCase_ == 13)) {
            msg_ = com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.getDefaultInstance();
          }
          serviceStatusUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.Builder, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdateOrBuilder>(
                  (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) msg_,
                  getParentForChildren(),
                  isClean());
          msg_ = null;
        }
        msgCase_ = 13;
        onChanged();
        return serviceStatusUpdateBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate, com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserDataUpdateOrBuilder> userDataUpdateBuilder_;
      /**
       * <code>.proto.UserDataUpdate user_data_update = 10;</code>
       * @return Whether the userDataUpdate field is set.
       */
      @java.lang.Override
      public boolean hasUserDataUpdate() {
        return msgCase_ == 10;
      }
      /**
       * <code>.proto.UserDataUpdate user_data_update = 10;</code>
       * @return The userDataUpdate.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate getUserDataUpdate() {
        if (userDataUpdateBuilder_ == null) {
          if (msgCase_ == 10) {
            return (com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) msg_;
          }
          return com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.getDefaultInstance();
        } else {
          if (msgCase_ == 10) {
            return userDataUpdateBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.UserDataUpdate user_data_update = 10;</code>
       */
      public Builder setUserDataUpdate(com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate value) {
        if (userDataUpdateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          msg_ = value;
          onChanged();
        } else {
          userDataUpdateBuilder_.setMessage(value);
        }
        msgCase_ = 10;
        return this;
      }
      /**
       * <code>.proto.UserDataUpdate user_data_update = 10;</code>
       */
      public Builder setUserDataUpdate(
          com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.Builder builderForValue) {
        if (userDataUpdateBuilder_ == null) {
          msg_ = builderForValue.build();
          onChanged();
        } else {
          userDataUpdateBuilder_.setMessage(builderForValue.build());
        }
        msgCase_ = 10;
        return this;
      }
      /**
       * <code>.proto.UserDataUpdate user_data_update = 10;</code>
       */
      public Builder mergeUserDataUpdate(com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate value) {
        if (userDataUpdateBuilder_ == null) {
          if (msgCase_ == 10 &&
              msg_ != com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.getDefaultInstance()) {
            msg_ = com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.newBuilder((com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) msg_)
                .mergeFrom(value).buildPartial();
          } else {
            msg_ = value;
          }
          onChanged();
        } else {
          if (msgCase_ == 10) {
            userDataUpdateBuilder_.mergeFrom(value);
          } else {
            userDataUpdateBuilder_.setMessage(value);
          }
        }
        msgCase_ = 10;
        return this;
      }
      /**
       * <code>.proto.UserDataUpdate user_data_update = 10;</code>
       */
      public Builder clearUserDataUpdate() {
        if (userDataUpdateBuilder_ == null) {
          if (msgCase_ == 10) {
            msgCase_ = 0;
            msg_ = null;
            onChanged();
          }
        } else {
          if (msgCase_ == 10) {
            msgCase_ = 0;
            msg_ = null;
          }
          userDataUpdateBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.UserDataUpdate user_data_update = 10;</code>
       */
      public com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.Builder getUserDataUpdateBuilder() {
        return internalGetUserDataUpdateFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.UserDataUpdate user_data_update = 10;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.UserEvents.UserDataUpdateOrBuilder getUserDataUpdateOrBuilder() {
        if ((msgCase_ == 10) && (userDataUpdateBuilder_ != null)) {
          return userDataUpdateBuilder_.getMessageOrBuilder();
        } else {
          if (msgCase_ == 10) {
            return (com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) msg_;
          }
          return com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.UserDataUpdate user_data_update = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate, com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserDataUpdateOrBuilder> 
          internalGetUserDataUpdateFieldBuilder() {
        if (userDataUpdateBuilder_ == null) {
          if (!(msgCase_ == 10)) {
            msg_ = com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.getDefaultInstance();
          }
          userDataUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate, com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserDataUpdateOrBuilder>(
                  (com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) msg_,
                  getParentForChildren(),
                  isClean());
          msg_ = null;
        }
        msgCase_ = 10;
        onChanged();
        return userDataUpdateBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate, com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdateOrBuilder> userVehicleAuthChangedUpdateBuilder_;
      /**
       * <code>.proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14;</code>
       * @return Whether the userVehicleAuthChangedUpdate field is set.
       */
      @java.lang.Override
      public boolean hasUserVehicleAuthChangedUpdate() {
        return msgCase_ == 14;
      }
      /**
       * <code>.proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14;</code>
       * @return The userVehicleAuthChangedUpdate.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate getUserVehicleAuthChangedUpdate() {
        if (userVehicleAuthChangedUpdateBuilder_ == null) {
          if (msgCase_ == 14) {
            return (com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) msg_;
          }
          return com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.getDefaultInstance();
        } else {
          if (msgCase_ == 14) {
            return userVehicleAuthChangedUpdateBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14;</code>
       */
      public Builder setUserVehicleAuthChangedUpdate(com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate value) {
        if (userVehicleAuthChangedUpdateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          msg_ = value;
          onChanged();
        } else {
          userVehicleAuthChangedUpdateBuilder_.setMessage(value);
        }
        msgCase_ = 14;
        return this;
      }
      /**
       * <code>.proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14;</code>
       */
      public Builder setUserVehicleAuthChangedUpdate(
          com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.Builder builderForValue) {
        if (userVehicleAuthChangedUpdateBuilder_ == null) {
          msg_ = builderForValue.build();
          onChanged();
        } else {
          userVehicleAuthChangedUpdateBuilder_.setMessage(builderForValue.build());
        }
        msgCase_ = 14;
        return this;
      }
      /**
       * <code>.proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14;</code>
       */
      public Builder mergeUserVehicleAuthChangedUpdate(com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate value) {
        if (userVehicleAuthChangedUpdateBuilder_ == null) {
          if (msgCase_ == 14 &&
              msg_ != com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.getDefaultInstance()) {
            msg_ = com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.newBuilder((com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) msg_)
                .mergeFrom(value).buildPartial();
          } else {
            msg_ = value;
          }
          onChanged();
        } else {
          if (msgCase_ == 14) {
            userVehicleAuthChangedUpdateBuilder_.mergeFrom(value);
          } else {
            userVehicleAuthChangedUpdateBuilder_.setMessage(value);
          }
        }
        msgCase_ = 14;
        return this;
      }
      /**
       * <code>.proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14;</code>
       */
      public Builder clearUserVehicleAuthChangedUpdate() {
        if (userVehicleAuthChangedUpdateBuilder_ == null) {
          if (msgCase_ == 14) {
            msgCase_ = 0;
            msg_ = null;
            onChanged();
          }
        } else {
          if (msgCase_ == 14) {
            msgCase_ = 0;
            msg_ = null;
          }
          userVehicleAuthChangedUpdateBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14;</code>
       */
      public com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.Builder getUserVehicleAuthChangedUpdateBuilder() {
        return internalGetUserVehicleAuthChangedUpdateFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdateOrBuilder getUserVehicleAuthChangedUpdateOrBuilder() {
        if ((msgCase_ == 14) && (userVehicleAuthChangedUpdateBuilder_ != null)) {
          return userVehicleAuthChangedUpdateBuilder_.getMessageOrBuilder();
        } else {
          if (msgCase_ == 14) {
            return (com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) msg_;
          }
          return com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate, com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdateOrBuilder> 
          internalGetUserVehicleAuthChangedUpdateFieldBuilder() {
        if (userVehicleAuthChangedUpdateBuilder_ == null) {
          if (!(msgCase_ == 14)) {
            msg_ = com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.getDefaultInstance();
          }
          userVehicleAuthChangedUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate, com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdateOrBuilder>(
                  (com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) msg_,
                  getParentForChildren(),
                  isClean());
          msg_ = null;
        }
        msgCase_ = 14;
        onChanged();
        return userVehicleAuthChangedUpdateBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate, com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdateOrBuilder> userPictureUpdateBuilder_;
      /**
       * <code>.proto.UserPictureUpdate user_picture_update = 11;</code>
       * @return Whether the userPictureUpdate field is set.
       */
      @java.lang.Override
      public boolean hasUserPictureUpdate() {
        return msgCase_ == 11;
      }
      /**
       * <code>.proto.UserPictureUpdate user_picture_update = 11;</code>
       * @return The userPictureUpdate.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate getUserPictureUpdate() {
        if (userPictureUpdateBuilder_ == null) {
          if (msgCase_ == 11) {
            return (com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) msg_;
          }
          return com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.getDefaultInstance();
        } else {
          if (msgCase_ == 11) {
            return userPictureUpdateBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.UserPictureUpdate user_picture_update = 11;</code>
       */
      public Builder setUserPictureUpdate(com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate value) {
        if (userPictureUpdateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          msg_ = value;
          onChanged();
        } else {
          userPictureUpdateBuilder_.setMessage(value);
        }
        msgCase_ = 11;
        return this;
      }
      /**
       * <code>.proto.UserPictureUpdate user_picture_update = 11;</code>
       */
      public Builder setUserPictureUpdate(
          com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.Builder builderForValue) {
        if (userPictureUpdateBuilder_ == null) {
          msg_ = builderForValue.build();
          onChanged();
        } else {
          userPictureUpdateBuilder_.setMessage(builderForValue.build());
        }
        msgCase_ = 11;
        return this;
      }
      /**
       * <code>.proto.UserPictureUpdate user_picture_update = 11;</code>
       */
      public Builder mergeUserPictureUpdate(com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate value) {
        if (userPictureUpdateBuilder_ == null) {
          if (msgCase_ == 11 &&
              msg_ != com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.getDefaultInstance()) {
            msg_ = com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.newBuilder((com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) msg_)
                .mergeFrom(value).buildPartial();
          } else {
            msg_ = value;
          }
          onChanged();
        } else {
          if (msgCase_ == 11) {
            userPictureUpdateBuilder_.mergeFrom(value);
          } else {
            userPictureUpdateBuilder_.setMessage(value);
          }
        }
        msgCase_ = 11;
        return this;
      }
      /**
       * <code>.proto.UserPictureUpdate user_picture_update = 11;</code>
       */
      public Builder clearUserPictureUpdate() {
        if (userPictureUpdateBuilder_ == null) {
          if (msgCase_ == 11) {
            msgCase_ = 0;
            msg_ = null;
            onChanged();
          }
        } else {
          if (msgCase_ == 11) {
            msgCase_ = 0;
            msg_ = null;
          }
          userPictureUpdateBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.UserPictureUpdate user_picture_update = 11;</code>
       */
      public com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.Builder getUserPictureUpdateBuilder() {
        return internalGetUserPictureUpdateFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.UserPictureUpdate user_picture_update = 11;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdateOrBuilder getUserPictureUpdateOrBuilder() {
        if ((msgCase_ == 11) && (userPictureUpdateBuilder_ != null)) {
          return userPictureUpdateBuilder_.getMessageOrBuilder();
        } else {
          if (msgCase_ == 11) {
            return (com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) msg_;
          }
          return com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.UserPictureUpdate user_picture_update = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate, com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdateOrBuilder> 
          internalGetUserPictureUpdateFieldBuilder() {
        if (userPictureUpdateBuilder_ == null) {
          if (!(msgCase_ == 11)) {
            msg_ = com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.getDefaultInstance();
          }
          userPictureUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate, com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdateOrBuilder>(
                  (com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) msg_,
                  getParentForChildren(),
                  isClean());
          msg_ = null;
        }
        msgCase_ = 11;
        onChanged();
        return userPictureUpdateBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate, com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserPINUpdateOrBuilder> userPinUpdateBuilder_;
      /**
       * <code>.proto.UserPINUpdate user_pin_update = 12;</code>
       * @return Whether the userPinUpdate field is set.
       */
      @java.lang.Override
      public boolean hasUserPinUpdate() {
        return msgCase_ == 12;
      }
      /**
       * <code>.proto.UserPINUpdate user_pin_update = 12;</code>
       * @return The userPinUpdate.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate getUserPinUpdate() {
        if (userPinUpdateBuilder_ == null) {
          if (msgCase_ == 12) {
            return (com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) msg_;
          }
          return com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.getDefaultInstance();
        } else {
          if (msgCase_ == 12) {
            return userPinUpdateBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.UserPINUpdate user_pin_update = 12;</code>
       */
      public Builder setUserPinUpdate(com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate value) {
        if (userPinUpdateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          msg_ = value;
          onChanged();
        } else {
          userPinUpdateBuilder_.setMessage(value);
        }
        msgCase_ = 12;
        return this;
      }
      /**
       * <code>.proto.UserPINUpdate user_pin_update = 12;</code>
       */
      public Builder setUserPinUpdate(
          com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.Builder builderForValue) {
        if (userPinUpdateBuilder_ == null) {
          msg_ = builderForValue.build();
          onChanged();
        } else {
          userPinUpdateBuilder_.setMessage(builderForValue.build());
        }
        msgCase_ = 12;
        return this;
      }
      /**
       * <code>.proto.UserPINUpdate user_pin_update = 12;</code>
       */
      public Builder mergeUserPinUpdate(com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate value) {
        if (userPinUpdateBuilder_ == null) {
          if (msgCase_ == 12 &&
              msg_ != com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.getDefaultInstance()) {
            msg_ = com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.newBuilder((com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) msg_)
                .mergeFrom(value).buildPartial();
          } else {
            msg_ = value;
          }
          onChanged();
        } else {
          if (msgCase_ == 12) {
            userPinUpdateBuilder_.mergeFrom(value);
          } else {
            userPinUpdateBuilder_.setMessage(value);
          }
        }
        msgCase_ = 12;
        return this;
      }
      /**
       * <code>.proto.UserPINUpdate user_pin_update = 12;</code>
       */
      public Builder clearUserPinUpdate() {
        if (userPinUpdateBuilder_ == null) {
          if (msgCase_ == 12) {
            msgCase_ = 0;
            msg_ = null;
            onChanged();
          }
        } else {
          if (msgCase_ == 12) {
            msgCase_ = 0;
            msg_ = null;
          }
          userPinUpdateBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.UserPINUpdate user_pin_update = 12;</code>
       */
      public com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.Builder getUserPinUpdateBuilder() {
        return internalGetUserPinUpdateFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.UserPINUpdate user_pin_update = 12;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.UserEvents.UserPINUpdateOrBuilder getUserPinUpdateOrBuilder() {
        if ((msgCase_ == 12) && (userPinUpdateBuilder_ != null)) {
          return userPinUpdateBuilder_.getMessageOrBuilder();
        } else {
          if (msgCase_ == 12) {
            return (com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) msg_;
          }
          return com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.UserPINUpdate user_pin_update = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate, com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserPINUpdateOrBuilder> 
          internalGetUserPinUpdateFieldBuilder() {
        if (userPinUpdateBuilder_ == null) {
          if (!(msgCase_ == 12)) {
            msg_ = com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.getDefaultInstance();
          }
          userPinUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate, com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserPINUpdateOrBuilder>(
                  (com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) msg_,
                  getParentForChildren(),
                  isClean());
          msg_ = null;
        }
        msgCase_ = 12;
        onChanged();
        return userPinUpdateBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated, com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdatedOrBuilder> vehicleUpdatedBuilder_;
      /**
       * <code>.proto.VehicleUpdated vehicle_updated = 15;</code>
       * @return Whether the vehicleUpdated field is set.
       */
      @java.lang.Override
      public boolean hasVehicleUpdated() {
        return msgCase_ == 15;
      }
      /**
       * <code>.proto.VehicleUpdated vehicle_updated = 15;</code>
       * @return The vehicleUpdated.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated getVehicleUpdated() {
        if (vehicleUpdatedBuilder_ == null) {
          if (msgCase_ == 15) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) msg_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance();
        } else {
          if (msgCase_ == 15) {
            return vehicleUpdatedBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.VehicleUpdated vehicle_updated = 15;</code>
       */
      public Builder setVehicleUpdated(com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated value) {
        if (vehicleUpdatedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          msg_ = value;
          onChanged();
        } else {
          vehicleUpdatedBuilder_.setMessage(value);
        }
        msgCase_ = 15;
        return this;
      }
      /**
       * <code>.proto.VehicleUpdated vehicle_updated = 15;</code>
       */
      public Builder setVehicleUpdated(
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.Builder builderForValue) {
        if (vehicleUpdatedBuilder_ == null) {
          msg_ = builderForValue.build();
          onChanged();
        } else {
          vehicleUpdatedBuilder_.setMessage(builderForValue.build());
        }
        msgCase_ = 15;
        return this;
      }
      /**
       * <code>.proto.VehicleUpdated vehicle_updated = 15;</code>
       */
      public Builder mergeVehicleUpdated(com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated value) {
        if (vehicleUpdatedBuilder_ == null) {
          if (msgCase_ == 15 &&
              msg_ != com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance()) {
            msg_ = com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) msg_)
                .mergeFrom(value).buildPartial();
          } else {
            msg_ = value;
          }
          onChanged();
        } else {
          if (msgCase_ == 15) {
            vehicleUpdatedBuilder_.mergeFrom(value);
          } else {
            vehicleUpdatedBuilder_.setMessage(value);
          }
        }
        msgCase_ = 15;
        return this;
      }
      /**
       * <code>.proto.VehicleUpdated vehicle_updated = 15;</code>
       */
      public Builder clearVehicleUpdated() {
        if (vehicleUpdatedBuilder_ == null) {
          if (msgCase_ == 15) {
            msgCase_ = 0;
            msg_ = null;
            onChanged();
          }
        } else {
          if (msgCase_ == 15) {
            msgCase_ = 0;
            msg_ = null;
          }
          vehicleUpdatedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.VehicleUpdated vehicle_updated = 15;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.Builder getVehicleUpdatedBuilder() {
        return internalGetVehicleUpdatedFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.VehicleUpdated vehicle_updated = 15;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdatedOrBuilder getVehicleUpdatedOrBuilder() {
        if ((msgCase_ == 15) && (vehicleUpdatedBuilder_ != null)) {
          return vehicleUpdatedBuilder_.getMessageOrBuilder();
        } else {
          if (msgCase_ == 15) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) msg_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.VehicleUpdated vehicle_updated = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated, com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdatedOrBuilder> 
          internalGetVehicleUpdatedFieldBuilder() {
        if (vehicleUpdatedBuilder_ == null) {
          if (!(msgCase_ == 15)) {
            msg_ = com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance();
          }
          vehicleUpdatedBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated, com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdatedOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) msg_,
                  getParentForChildren(),
                  isClean());
          msg_ = null;
        }
        msgCase_ = 15;
        onChanged();
        return vehicleUpdatedBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange, com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.Builder, com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChangeOrBuilder> preferredDealerChangeBuilder_;
      /**
       * <code>.proto.PreferredDealerChange preferred_dealer_change = 16;</code>
       * @return Whether the preferredDealerChange field is set.
       */
      @java.lang.Override
      public boolean hasPreferredDealerChange() {
        return msgCase_ == 16;
      }
      /**
       * <code>.proto.PreferredDealerChange preferred_dealer_change = 16;</code>
       * @return The preferredDealerChange.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange getPreferredDealerChange() {
        if (preferredDealerChangeBuilder_ == null) {
          if (msgCase_ == 16) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) msg_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance();
        } else {
          if (msgCase_ == 16) {
            return preferredDealerChangeBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.PreferredDealerChange preferred_dealer_change = 16;</code>
       */
      public Builder setPreferredDealerChange(com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange value) {
        if (preferredDealerChangeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          msg_ = value;
          onChanged();
        } else {
          preferredDealerChangeBuilder_.setMessage(value);
        }
        msgCase_ = 16;
        return this;
      }
      /**
       * <code>.proto.PreferredDealerChange preferred_dealer_change = 16;</code>
       */
      public Builder setPreferredDealerChange(
          com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.Builder builderForValue) {
        if (preferredDealerChangeBuilder_ == null) {
          msg_ = builderForValue.build();
          onChanged();
        } else {
          preferredDealerChangeBuilder_.setMessage(builderForValue.build());
        }
        msgCase_ = 16;
        return this;
      }
      /**
       * <code>.proto.PreferredDealerChange preferred_dealer_change = 16;</code>
       */
      public Builder mergePreferredDealerChange(com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange value) {
        if (preferredDealerChangeBuilder_ == null) {
          if (msgCase_ == 16 &&
              msg_ != com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance()) {
            msg_ = com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) msg_)
                .mergeFrom(value).buildPartial();
          } else {
            msg_ = value;
          }
          onChanged();
        } else {
          if (msgCase_ == 16) {
            preferredDealerChangeBuilder_.mergeFrom(value);
          } else {
            preferredDealerChangeBuilder_.setMessage(value);
          }
        }
        msgCase_ = 16;
        return this;
      }
      /**
       * <code>.proto.PreferredDealerChange preferred_dealer_change = 16;</code>
       */
      public Builder clearPreferredDealerChange() {
        if (preferredDealerChangeBuilder_ == null) {
          if (msgCase_ == 16) {
            msgCase_ = 0;
            msg_ = null;
            onChanged();
          }
        } else {
          if (msgCase_ == 16) {
            msgCase_ = 0;
            msg_ = null;
          }
          preferredDealerChangeBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.PreferredDealerChange preferred_dealer_change = 16;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.Builder getPreferredDealerChangeBuilder() {
        return internalGetPreferredDealerChangeFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.PreferredDealerChange preferred_dealer_change = 16;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChangeOrBuilder getPreferredDealerChangeOrBuilder() {
        if ((msgCase_ == 16) && (preferredDealerChangeBuilder_ != null)) {
          return preferredDealerChangeBuilder_.getMessageOrBuilder();
        } else {
          if (msgCase_ == 16) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) msg_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.PreferredDealerChange preferred_dealer_change = 16;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange, com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.Builder, com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChangeOrBuilder> 
          internalGetPreferredDealerChangeFieldBuilder() {
        if (preferredDealerChangeBuilder_ == null) {
          if (!(msgCase_ == 16)) {
            msg_ = com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance();
          }
          preferredDealerChangeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange, com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.Builder, com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChangeOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) msg_,
                  getParentForChildren(),
                  isClean());
          msg_ = null;
        }
        msgCase_ = 16;
        onChanged();
        return preferredDealerChangeBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVINOrBuilder> apptwinCommandStatusUpdatesByVinBuilder_;
      /**
       * <code>.proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17;</code>
       * @return Whether the apptwinCommandStatusUpdatesByVin field is set.
       */
      @java.lang.Override
      public boolean hasApptwinCommandStatusUpdatesByVin() {
        return msgCase_ == 17;
      }
      /**
       * <code>.proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17;</code>
       * @return The apptwinCommandStatusUpdatesByVin.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN getApptwinCommandStatusUpdatesByVin() {
        if (apptwinCommandStatusUpdatesByVinBuilder_ == null) {
          if (msgCase_ == 17) {
            return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) msg_;
          }
          return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.getDefaultInstance();
        } else {
          if (msgCase_ == 17) {
            return apptwinCommandStatusUpdatesByVinBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17;</code>
       */
      public Builder setApptwinCommandStatusUpdatesByVin(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN value) {
        if (apptwinCommandStatusUpdatesByVinBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          msg_ = value;
          onChanged();
        } else {
          apptwinCommandStatusUpdatesByVinBuilder_.setMessage(value);
        }
        msgCase_ = 17;
        return this;
      }
      /**
       * <code>.proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17;</code>
       */
      public Builder setApptwinCommandStatusUpdatesByVin(
          com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.Builder builderForValue) {
        if (apptwinCommandStatusUpdatesByVinBuilder_ == null) {
          msg_ = builderForValue.build();
          onChanged();
        } else {
          apptwinCommandStatusUpdatesByVinBuilder_.setMessage(builderForValue.build());
        }
        msgCase_ = 17;
        return this;
      }
      /**
       * <code>.proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17;</code>
       */
      public Builder mergeApptwinCommandStatusUpdatesByVin(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN value) {
        if (apptwinCommandStatusUpdatesByVinBuilder_ == null) {
          if (msgCase_ == 17 &&
              msg_ != com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.getDefaultInstance()) {
            msg_ = com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.newBuilder((com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) msg_)
                .mergeFrom(value).buildPartial();
          } else {
            msg_ = value;
          }
          onChanged();
        } else {
          if (msgCase_ == 17) {
            apptwinCommandStatusUpdatesByVinBuilder_.mergeFrom(value);
          } else {
            apptwinCommandStatusUpdatesByVinBuilder_.setMessage(value);
          }
        }
        msgCase_ = 17;
        return this;
      }
      /**
       * <code>.proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17;</code>
       */
      public Builder clearApptwinCommandStatusUpdatesByVin() {
        if (apptwinCommandStatusUpdatesByVinBuilder_ == null) {
          if (msgCase_ == 17) {
            msgCase_ = 0;
            msg_ = null;
            onChanged();
          }
        } else {
          if (msgCase_ == 17) {
            msgCase_ = 0;
            msg_ = null;
          }
          apptwinCommandStatusUpdatesByVinBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17;</code>
       */
      public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.Builder getApptwinCommandStatusUpdatesByVinBuilder() {
        return internalGetApptwinCommandStatusUpdatesByVinFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVINOrBuilder getApptwinCommandStatusUpdatesByVinOrBuilder() {
        if ((msgCase_ == 17) && (apptwinCommandStatusUpdatesByVinBuilder_ != null)) {
          return apptwinCommandStatusUpdatesByVinBuilder_.getMessageOrBuilder();
        } else {
          if (msgCase_ == 17) {
            return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) msg_;
          }
          return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVINOrBuilder> 
          internalGetApptwinCommandStatusUpdatesByVinFieldBuilder() {
        if (apptwinCommandStatusUpdatesByVinBuilder_ == null) {
          if (!(msgCase_ == 17)) {
            msg_ = com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.getDefaultInstance();
          }
          apptwinCommandStatusUpdatesByVinBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVINOrBuilder>(
                  (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) msg_,
                  getParentForChildren(),
                  isClean());
          msg_ = null;
        }
        msgCase_ = 17;
        onChanged();
        return apptwinCommandStatusUpdatesByVinBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequestOrBuilder> apptwinPendingCommandRequestBuilder_;
      /**
       * <code>.proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18;</code>
       * @return Whether the apptwinPendingCommandRequest field is set.
       */
      @java.lang.Override
      public boolean hasApptwinPendingCommandRequest() {
        return msgCase_ == 18;
      }
      /**
       * <code>.proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18;</code>
       * @return The apptwinPendingCommandRequest.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest getApptwinPendingCommandRequest() {
        if (apptwinPendingCommandRequestBuilder_ == null) {
          if (msgCase_ == 18) {
            return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) msg_;
          }
          return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.getDefaultInstance();
        } else {
          if (msgCase_ == 18) {
            return apptwinPendingCommandRequestBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18;</code>
       */
      public Builder setApptwinPendingCommandRequest(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest value) {
        if (apptwinPendingCommandRequestBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          msg_ = value;
          onChanged();
        } else {
          apptwinPendingCommandRequestBuilder_.setMessage(value);
        }
        msgCase_ = 18;
        return this;
      }
      /**
       * <code>.proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18;</code>
       */
      public Builder setApptwinPendingCommandRequest(
          com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.Builder builderForValue) {
        if (apptwinPendingCommandRequestBuilder_ == null) {
          msg_ = builderForValue.build();
          onChanged();
        } else {
          apptwinPendingCommandRequestBuilder_.setMessage(builderForValue.build());
        }
        msgCase_ = 18;
        return this;
      }
      /**
       * <code>.proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18;</code>
       */
      public Builder mergeApptwinPendingCommandRequest(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest value) {
        if (apptwinPendingCommandRequestBuilder_ == null) {
          if (msgCase_ == 18 &&
              msg_ != com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.getDefaultInstance()) {
            msg_ = com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.newBuilder((com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) msg_)
                .mergeFrom(value).buildPartial();
          } else {
            msg_ = value;
          }
          onChanged();
        } else {
          if (msgCase_ == 18) {
            apptwinPendingCommandRequestBuilder_.mergeFrom(value);
          } else {
            apptwinPendingCommandRequestBuilder_.setMessage(value);
          }
        }
        msgCase_ = 18;
        return this;
      }
      /**
       * <code>.proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18;</code>
       */
      public Builder clearApptwinPendingCommandRequest() {
        if (apptwinPendingCommandRequestBuilder_ == null) {
          if (msgCase_ == 18) {
            msgCase_ = 0;
            msg_ = null;
            onChanged();
          }
        } else {
          if (msgCase_ == 18) {
            msgCase_ = 0;
            msg_ = null;
          }
          apptwinPendingCommandRequestBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18;</code>
       */
      public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.Builder getApptwinPendingCommandRequestBuilder() {
        return internalGetApptwinPendingCommandRequestFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequestOrBuilder getApptwinPendingCommandRequestOrBuilder() {
        if ((msgCase_ == 18) && (apptwinPendingCommandRequestBuilder_ != null)) {
          return apptwinPendingCommandRequestBuilder_.getMessageOrBuilder();
        } else {
          if (msgCase_ == 18) {
            return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) msg_;
          }
          return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequestOrBuilder> 
          internalGetApptwinPendingCommandRequestFieldBuilder() {
        if (apptwinPendingCommandRequestBuilder_ == null) {
          if (!(msgCase_ == 18)) {
            msg_ = com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.getDefaultInstance();
          }
          apptwinPendingCommandRequestBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequestOrBuilder>(
                  (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) msg_,
                  getParentForChildren(),
                  isClean());
          msg_ = null;
        }
        msgCase_ = 18;
        onChanged();
        return apptwinPendingCommandRequestBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.Protos.AssignedVehicles, com.daimler.mbcarkit.proto.Protos.AssignedVehicles.Builder, com.daimler.mbcarkit.proto.Protos.AssignedVehiclesOrBuilder> assignedVehiclesBuilder_;
      /**
       * <code>.proto.AssignedVehicles assigned_vehicles = 19;</code>
       * @return Whether the assignedVehicles field is set.
       */
      @java.lang.Override
      public boolean hasAssignedVehicles() {
        return msgCase_ == 19;
      }
      /**
       * <code>.proto.AssignedVehicles assigned_vehicles = 19;</code>
       * @return The assignedVehicles.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.Protos.AssignedVehicles getAssignedVehicles() {
        if (assignedVehiclesBuilder_ == null) {
          if (msgCase_ == 19) {
            return (com.daimler.mbcarkit.proto.Protos.AssignedVehicles) msg_;
          }
          return com.daimler.mbcarkit.proto.Protos.AssignedVehicles.getDefaultInstance();
        } else {
          if (msgCase_ == 19) {
            return assignedVehiclesBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.Protos.AssignedVehicles.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.AssignedVehicles assigned_vehicles = 19;</code>
       */
      public Builder setAssignedVehicles(com.daimler.mbcarkit.proto.Protos.AssignedVehicles value) {
        if (assignedVehiclesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          msg_ = value;
          onChanged();
        } else {
          assignedVehiclesBuilder_.setMessage(value);
        }
        msgCase_ = 19;
        return this;
      }
      /**
       * <code>.proto.AssignedVehicles assigned_vehicles = 19;</code>
       */
      public Builder setAssignedVehicles(
          com.daimler.mbcarkit.proto.Protos.AssignedVehicles.Builder builderForValue) {
        if (assignedVehiclesBuilder_ == null) {
          msg_ = builderForValue.build();
          onChanged();
        } else {
          assignedVehiclesBuilder_.setMessage(builderForValue.build());
        }
        msgCase_ = 19;
        return this;
      }
      /**
       * <code>.proto.AssignedVehicles assigned_vehicles = 19;</code>
       */
      public Builder mergeAssignedVehicles(com.daimler.mbcarkit.proto.Protos.AssignedVehicles value) {
        if (assignedVehiclesBuilder_ == null) {
          if (msgCase_ == 19 &&
              msg_ != com.daimler.mbcarkit.proto.Protos.AssignedVehicles.getDefaultInstance()) {
            msg_ = com.daimler.mbcarkit.proto.Protos.AssignedVehicles.newBuilder((com.daimler.mbcarkit.proto.Protos.AssignedVehicles) msg_)
                .mergeFrom(value).buildPartial();
          } else {
            msg_ = value;
          }
          onChanged();
        } else {
          if (msgCase_ == 19) {
            assignedVehiclesBuilder_.mergeFrom(value);
          } else {
            assignedVehiclesBuilder_.setMessage(value);
          }
        }
        msgCase_ = 19;
        return this;
      }
      /**
       * <code>.proto.AssignedVehicles assigned_vehicles = 19;</code>
       */
      public Builder clearAssignedVehicles() {
        if (assignedVehiclesBuilder_ == null) {
          if (msgCase_ == 19) {
            msgCase_ = 0;
            msg_ = null;
            onChanged();
          }
        } else {
          if (msgCase_ == 19) {
            msgCase_ = 0;
            msg_ = null;
          }
          assignedVehiclesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.AssignedVehicles assigned_vehicles = 19;</code>
       */
      public com.daimler.mbcarkit.proto.Protos.AssignedVehicles.Builder getAssignedVehiclesBuilder() {
        return internalGetAssignedVehiclesFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.AssignedVehicles assigned_vehicles = 19;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.Protos.AssignedVehiclesOrBuilder getAssignedVehiclesOrBuilder() {
        if ((msgCase_ == 19) && (assignedVehiclesBuilder_ != null)) {
          return assignedVehiclesBuilder_.getMessageOrBuilder();
        } else {
          if (msgCase_ == 19) {
            return (com.daimler.mbcarkit.proto.Protos.AssignedVehicles) msg_;
          }
          return com.daimler.mbcarkit.proto.Protos.AssignedVehicles.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.AssignedVehicles assigned_vehicles = 19;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.Protos.AssignedVehicles, com.daimler.mbcarkit.proto.Protos.AssignedVehicles.Builder, com.daimler.mbcarkit.proto.Protos.AssignedVehiclesOrBuilder> 
          internalGetAssignedVehiclesFieldBuilder() {
        if (assignedVehiclesBuilder_ == null) {
          if (!(msgCase_ == 19)) {
            msg_ = com.daimler.mbcarkit.proto.Protos.AssignedVehicles.getDefaultInstance();
          }
          assignedVehiclesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.Protos.AssignedVehicles, com.daimler.mbcarkit.proto.Protos.AssignedVehicles.Builder, com.daimler.mbcarkit.proto.Protos.AssignedVehiclesOrBuilder>(
                  (com.daimler.mbcarkit.proto.Protos.AssignedVehicles) msg_,
                  getParentForChildren(),
                  isClean());
          msg_ = null;
        }
        msgCase_ = 19;
        onChanged();
        return assignedVehiclesBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent, com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.Builder, com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEventOrBuilder> dataChangeEventBuilder_;
      /**
       * <code>.proto.DataChangeEvent data_change_event = 21;</code>
       * @return Whether the dataChangeEvent field is set.
       */
      @java.lang.Override
      public boolean hasDataChangeEvent() {
        return msgCase_ == 21;
      }
      /**
       * <code>.proto.DataChangeEvent data_change_event = 21;</code>
       * @return The dataChangeEvent.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent getDataChangeEvent() {
        if (dataChangeEventBuilder_ == null) {
          if (msgCase_ == 21) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent) msg_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.getDefaultInstance();
        } else {
          if (msgCase_ == 21) {
            return dataChangeEventBuilder_.getMessage();
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.DataChangeEvent data_change_event = 21;</code>
       */
      public Builder setDataChangeEvent(com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent value) {
        if (dataChangeEventBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          msg_ = value;
          onChanged();
        } else {
          dataChangeEventBuilder_.setMessage(value);
        }
        msgCase_ = 21;
        return this;
      }
      /**
       * <code>.proto.DataChangeEvent data_change_event = 21;</code>
       */
      public Builder setDataChangeEvent(
          com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.Builder builderForValue) {
        if (dataChangeEventBuilder_ == null) {
          msg_ = builderForValue.build();
          onChanged();
        } else {
          dataChangeEventBuilder_.setMessage(builderForValue.build());
        }
        msgCase_ = 21;
        return this;
      }
      /**
       * <code>.proto.DataChangeEvent data_change_event = 21;</code>
       */
      public Builder mergeDataChangeEvent(com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent value) {
        if (dataChangeEventBuilder_ == null) {
          if (msgCase_ == 21 &&
              msg_ != com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.getDefaultInstance()) {
            msg_ = com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent) msg_)
                .mergeFrom(value).buildPartial();
          } else {
            msg_ = value;
          }
          onChanged();
        } else {
          if (msgCase_ == 21) {
            dataChangeEventBuilder_.mergeFrom(value);
          } else {
            dataChangeEventBuilder_.setMessage(value);
          }
        }
        msgCase_ = 21;
        return this;
      }
      /**
       * <code>.proto.DataChangeEvent data_change_event = 21;</code>
       */
      public Builder clearDataChangeEvent() {
        if (dataChangeEventBuilder_ == null) {
          if (msgCase_ == 21) {
            msgCase_ = 0;
            msg_ = null;
            onChanged();
          }
        } else {
          if (msgCase_ == 21) {
            msgCase_ = 0;
            msg_ = null;
          }
          dataChangeEventBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.proto.DataChangeEvent data_change_event = 21;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.Builder getDataChangeEventBuilder() {
        return internalGetDataChangeEventFieldBuilder().getBuilder();
      }
      /**
       * <code>.proto.DataChangeEvent data_change_event = 21;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEventOrBuilder getDataChangeEventOrBuilder() {
        if ((msgCase_ == 21) && (dataChangeEventBuilder_ != null)) {
          return dataChangeEventBuilder_.getMessageOrBuilder();
        } else {
          if (msgCase_ == 21) {
            return (com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent) msg_;
          }
          return com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.getDefaultInstance();
        }
      }
      /**
       * <code>.proto.DataChangeEvent data_change_event = 21;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent, com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.Builder, com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEventOrBuilder> 
          internalGetDataChangeEventFieldBuilder() {
        if (dataChangeEventBuilder_ == null) {
          if (!(msgCase_ == 21)) {
            msg_ = com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.getDefaultInstance();
          }
          dataChangeEventBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent, com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.Builder, com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEventOrBuilder>(
                  (com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent) msg_,
                  getParentForChildren(),
                  isClean());
          msg_ = null;
        }
        msgCase_ = 21;
        onChanged();
        return dataChangeEventBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:proto.PushMessage)
    }

    // @@protoc_insertion_point(class_scope:proto.PushMessage)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.PushMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.PushMessage();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PushMessage>
        PARSER = new com.google.protobuf.AbstractParser<PushMessage>() {
      @java.lang.Override
      public PushMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PushMessage> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PushMessage> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.PushMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TrackingEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.TrackingEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * a unique id associated with this event
     * </pre>
     *
     * <code>string tracking_id = 1;</code>
     * @return The trackingId.
     */
    java.lang.String getTrackingId();
    /**
     * <pre>
     * a unique id associated with this event
     * </pre>
     *
     * <code>string tracking_id = 1;</code>
     * @return The bytes for trackingId.
     */
    com.google.protobuf.ByteString
        getTrackingIdBytes();

    /**
     * <pre>
     * the unix epoch time in nanoseconds when the event occurred
     * </pre>
     *
     * <code>int64 timestamp = 2;</code>
     * @return The timestamp.
     */
    long getTimestamp();

    /**
     * <pre>
     * a unique identifier describing a single interaction or event
     * </pre>
     *
     * <code>string event_type = 3;</code>
     * @return The eventType.
     */
    java.lang.String getEventType();
    /**
     * <pre>
     * a unique identifier describing a single interaction or event
     * </pre>
     *
     * <code>string event_type = 3;</code>
     * @return The bytes for eventType.
     */
    com.google.protobuf.ByteString
        getEventTypeBytes();

    /**
     * <pre>
     * additional meta data describing the event
     * </pre>
     *
     * <code>map&lt;string, .proto.PayloadValue&gt; payload = 4;</code>
     */
    int getPayloadCount();
    /**
     * <pre>
     * additional meta data describing the event
     * </pre>
     *
     * <code>map&lt;string, .proto.PayloadValue&gt; payload = 4;</code>
     */
    boolean containsPayload(
        java.lang.String key);
    /**
     * Use {@link #getPayloadMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue>
    getPayload();
    /**
     * <pre>
     * additional meta data describing the event
     * </pre>
     *
     * <code>map&lt;string, .proto.PayloadValue&gt; payload = 4;</code>
     */
    java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue>
    getPayloadMap();
    /**
     * <pre>
     * additional meta data describing the event
     * </pre>
     *
     * <code>map&lt;string, .proto.PayloadValue&gt; payload = 4;</code>
     */
    /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getPayloadOrDefault(
        java.lang.String key,
        /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue defaultValue);
    /**
     * <pre>
     * additional meta data describing the event
     * </pre>
     *
     * <code>map&lt;string, .proto.PayloadValue&gt; payload = 4;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getPayloadOrThrow(
        java.lang.String key);
  }
  /**
   * <pre>
   * message type to track an event, e.g. a user interaction with content
   * Sending direction: App -&gt; BFF
   * </pre>
   *
   * Protobuf type {@code proto.TrackingEvent}
   */
  public static final class TrackingEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.TrackingEvent)
      TrackingEventOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "TrackingEvent");
    }
    // Use TrackingEvent.newBuilder() to construct.
    private TrackingEvent(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private TrackingEvent() {
      trackingId_ = "";
      eventType_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TrackingEvent_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
        int number) {
      switch (number) {
        case 4:
          return internalGetPayload();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TrackingEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.class, com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.Builder.class);
    }

    public static final int TRACKING_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object trackingId_ = "";
    /**
     * <pre>
     * a unique id associated with this event
     * </pre>
     *
     * <code>string tracking_id = 1;</code>
     * @return The trackingId.
     */
    @java.lang.Override
    public java.lang.String getTrackingId() {
      java.lang.Object ref = trackingId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        trackingId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * a unique id associated with this event
     * </pre>
     *
     * <code>string tracking_id = 1;</code>
     * @return The bytes for trackingId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTrackingIdBytes() {
      java.lang.Object ref = trackingId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        trackingId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 2;
    private long timestamp_ = 0L;
    /**
     * <pre>
     * the unix epoch time in nanoseconds when the event occurred
     * </pre>
     *
     * <code>int64 timestamp = 2;</code>
     * @return The timestamp.
     */
    @java.lang.Override
    public long getTimestamp() {
      return timestamp_;
    }

    public static final int EVENT_TYPE_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object eventType_ = "";
    /**
     * <pre>
     * a unique identifier describing a single interaction or event
     * </pre>
     *
     * <code>string event_type = 3;</code>
     * @return The eventType.
     */
    @java.lang.Override
    public java.lang.String getEventType() {
      java.lang.Object ref = eventType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        eventType_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * a unique identifier describing a single interaction or event
     * </pre>
     *
     * <code>string event_type = 3;</code>
     * @return The bytes for eventType.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getEventTypeBytes() {
      java.lang.Object ref = eventType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        eventType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PAYLOAD_FIELD_NUMBER = 4;
    private static final class PayloadDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue>newDefaultInstance(
                  com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TrackingEvent_PayloadEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.getDefaultInstance());
    }
    @SuppressWarnings("serial")
    private com.google.protobuf.MapField<
        java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue> payload_;
    private com.google.protobuf.MapField<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue>
    internalGetPayload() {
      if (payload_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            PayloadDefaultEntryHolder.defaultEntry);
      }
      return payload_;
    }
    public int getPayloadCount() {
      return internalGetPayload().getMap().size();
    }
    /**
     * <pre>
     * additional meta data describing the event
     * </pre>
     *
     * <code>map&lt;string, .proto.PayloadValue&gt; payload = 4;</code>
     */
    @java.lang.Override
    public boolean containsPayload(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetPayload().getMap().containsKey(key);
    }
    /**
     * Use {@link #getPayloadMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue> getPayload() {
      return getPayloadMap();
    }
    /**
     * <pre>
     * additional meta data describing the event
     * </pre>
     *
     * <code>map&lt;string, .proto.PayloadValue&gt; payload = 4;</code>
     */
    @java.lang.Override
    public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue> getPayloadMap() {
      return internalGetPayload().getMap();
    }
    /**
     * <pre>
     * additional meta data describing the event
     * </pre>
     *
     * <code>map&lt;string, .proto.PayloadValue&gt; payload = 4;</code>
     */
    @java.lang.Override
    public /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getPayloadOrDefault(
        java.lang.String key,
        /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue> map =
          internalGetPayload().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     * additional meta data describing the event
     * </pre>
     *
     * <code>map&lt;string, .proto.PayloadValue&gt; payload = 4;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getPayloadOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue> map =
          internalGetPayload().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trackingId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, trackingId_);
      }
      if (timestamp_ != 0L) {
        output.writeInt64(2, timestamp_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(eventType_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, eventType_);
      }
      com.google.protobuf.GeneratedMessage
        .serializeStringMapTo(
          output,
          internalGetPayload(),
          PayloadDefaultEntryHolder.defaultEntry,
          4);
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trackingId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, trackingId_);
      }
      if (timestamp_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, timestamp_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(eventType_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, eventType_);
      }
      for (java.util.Map.Entry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue> entry
           : internalGetPayload().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue>
        payload__ = PayloadDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, payload__);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent other = (com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent) obj;

      if (!getTrackingId()
          .equals(other.getTrackingId())) return false;
      if (getTimestamp()
          != other.getTimestamp()) return false;
      if (!getEventType()
          .equals(other.getEventType())) return false;
      if (!internalGetPayload().equals(
          other.internalGetPayload())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + TRACKING_ID_FIELD_NUMBER;
      hash = (53 * hash) + getTrackingId().hashCode();
      hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTimestamp());
      hash = (37 * hash) + EVENT_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getEventType().hashCode();
      if (!internalGetPayload().getMap().isEmpty()) {
        hash = (37 * hash) + PAYLOAD_FIELD_NUMBER;
        hash = (53 * hash) + internalGetPayload().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * message type to track an event, e.g. a user interaction with content
     * Sending direction: App -&gt; BFF
     * </pre>
     *
     * Protobuf type {@code proto.TrackingEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.TrackingEvent)
        com.daimler.mbcarkit.proto.VehicleEvents.TrackingEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TrackingEvent_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
          int number) {
        switch (number) {
          case 4:
            return internalGetPayload();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
          int number) {
        switch (number) {
          case 4:
            return internalGetMutablePayload();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TrackingEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.class, com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        trackingId_ = "";
        timestamp_ = 0L;
        eventType_ = "";
        internalGetMutablePayload().clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TrackingEvent_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent build() {
        com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent result = new com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.trackingId_ = trackingId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.timestamp_ = timestamp_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.eventType_ = eventType_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.payload_ = internalGetPayload().build(PayloadDefaultEntryHolder.defaultEntry);
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.getDefaultInstance()) return this;
        if (!other.getTrackingId().isEmpty()) {
          trackingId_ = other.trackingId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getTimestamp() != 0L) {
          setTimestamp(other.getTimestamp());
        }
        if (!other.getEventType().isEmpty()) {
          eventType_ = other.eventType_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        internalGetMutablePayload().mergeFrom(
            other.internalGetPayload());
        bitField0_ |= 0x00000008;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                trackingId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                timestamp_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                eventType_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                com.google.protobuf.MapEntry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue>
                payload__ = input.readMessage(
                    PayloadDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutablePayload().ensureBuilderMap().put(
                    payload__.getKey(), payload__.getValue());
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object trackingId_ = "";
      /**
       * <pre>
       * a unique id associated with this event
       * </pre>
       *
       * <code>string tracking_id = 1;</code>
       * @return The trackingId.
       */
      public java.lang.String getTrackingId() {
        java.lang.Object ref = trackingId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          trackingId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * a unique id associated with this event
       * </pre>
       *
       * <code>string tracking_id = 1;</code>
       * @return The bytes for trackingId.
       */
      public com.google.protobuf.ByteString
          getTrackingIdBytes() {
        java.lang.Object ref = trackingId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          trackingId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * a unique id associated with this event
       * </pre>
       *
       * <code>string tracking_id = 1;</code>
       * @param value The trackingId to set.
       * @return This builder for chaining.
       */
      public Builder setTrackingId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        trackingId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * a unique id associated with this event
       * </pre>
       *
       * <code>string tracking_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTrackingId() {
        trackingId_ = getDefaultInstance().getTrackingId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * a unique id associated with this event
       * </pre>
       *
       * <code>string tracking_id = 1;</code>
       * @param value The bytes for trackingId to set.
       * @return This builder for chaining.
       */
      public Builder setTrackingIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        trackingId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private long timestamp_ ;
      /**
       * <pre>
       * the unix epoch time in nanoseconds when the event occurred
       * </pre>
       *
       * <code>int64 timestamp = 2;</code>
       * @return The timestamp.
       */
      @java.lang.Override
      public long getTimestamp() {
        return timestamp_;
      }
      /**
       * <pre>
       * the unix epoch time in nanoseconds when the event occurred
       * </pre>
       *
       * <code>int64 timestamp = 2;</code>
       * @param value The timestamp to set.
       * @return This builder for chaining.
       */
      public Builder setTimestamp(long value) {

        timestamp_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * the unix epoch time in nanoseconds when the event occurred
       * </pre>
       *
       * <code>int64 timestamp = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000002);
        timestamp_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object eventType_ = "";
      /**
       * <pre>
       * a unique identifier describing a single interaction or event
       * </pre>
       *
       * <code>string event_type = 3;</code>
       * @return The eventType.
       */
      public java.lang.String getEventType() {
        java.lang.Object ref = eventType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          eventType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * a unique identifier describing a single interaction or event
       * </pre>
       *
       * <code>string event_type = 3;</code>
       * @return The bytes for eventType.
       */
      public com.google.protobuf.ByteString
          getEventTypeBytes() {
        java.lang.Object ref = eventType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          eventType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * a unique identifier describing a single interaction or event
       * </pre>
       *
       * <code>string event_type = 3;</code>
       * @param value The eventType to set.
       * @return This builder for chaining.
       */
      public Builder setEventType(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        eventType_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * a unique identifier describing a single interaction or event
       * </pre>
       *
       * <code>string event_type = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearEventType() {
        eventType_ = getDefaultInstance().getEventType();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * a unique identifier describing a single interaction or event
       * </pre>
       *
       * <code>string event_type = 3;</code>
       * @param value The bytes for eventType to set.
       * @return This builder for chaining.
       */
      public Builder setEventTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        eventType_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private static final class PayloadConverter implements com.google.protobuf.MapFieldBuilder.Converter<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValueOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue> {
        @java.lang.Override
        public com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue build(com.daimler.mbcarkit.proto.VehicleEvents.PayloadValueOrBuilder val) {
          if (val instanceof com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue) { return (com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue) val; }
          return ((com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.Builder) val).build();
        }

        @java.lang.Override
        public com.google.protobuf.MapEntry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue> defaultEntry() {
          return PayloadDefaultEntryHolder.defaultEntry;
        }
      };
      private static final PayloadConverter payloadConverter = new PayloadConverter();

      private com.google.protobuf.MapFieldBuilder<
          java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValueOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.Builder> payload_;
      private com.google.protobuf.MapFieldBuilder<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValueOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.Builder>
          internalGetPayload() {
        if (payload_ == null) {
          return new com.google.protobuf.MapFieldBuilder<>(payloadConverter);
        }
        return payload_;
      }
      private com.google.protobuf.MapFieldBuilder<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValueOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.Builder>
          internalGetMutablePayload() {
        if (payload_ == null) {
          payload_ = new com.google.protobuf.MapFieldBuilder<>(payloadConverter);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return payload_;
      }
      public int getPayloadCount() {
        return internalGetPayload().ensureBuilderMap().size();
      }
      /**
       * <pre>
       * additional meta data describing the event
       * </pre>
       *
       * <code>map&lt;string, .proto.PayloadValue&gt; payload = 4;</code>
       */
      @java.lang.Override
      public boolean containsPayload(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetPayload().ensureBuilderMap().containsKey(key);
      }
      /**
       * Use {@link #getPayloadMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue> getPayload() {
        return getPayloadMap();
      }
      /**
       * <pre>
       * additional meta data describing the event
       * </pre>
       *
       * <code>map&lt;string, .proto.PayloadValue&gt; payload = 4;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue> getPayloadMap() {
        return internalGetPayload().getImmutableMap();
      }
      /**
       * <pre>
       * additional meta data describing the event
       * </pre>
       *
       * <code>map&lt;string, .proto.PayloadValue&gt; payload = 4;</code>
       */
      @java.lang.Override
      public /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getPayloadOrDefault(
          java.lang.String key,
          /* nullable */
com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValueOrBuilder> map = internalGetMutablePayload().ensureBuilderMap();
        return map.containsKey(key) ? payloadConverter.build(map.get(key)) : defaultValue;
      }
      /**
       * <pre>
       * additional meta data describing the event
       * </pre>
       *
       * <code>map&lt;string, .proto.PayloadValue&gt; payload = 4;</code>
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getPayloadOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValueOrBuilder> map = internalGetMutablePayload().ensureBuilderMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return payloadConverter.build(map.get(key));
      }
      public Builder clearPayload() {
        bitField0_ = (bitField0_ & ~0x00000008);
        internalGetMutablePayload().clear();
        return this;
      }
      /**
       * <pre>
       * additional meta data describing the event
       * </pre>
       *
       * <code>map&lt;string, .proto.PayloadValue&gt; payload = 4;</code>
       */
      public Builder removePayload(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutablePayload().ensureBuilderMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue>
          getMutablePayload() {
        bitField0_ |= 0x00000008;
        return internalGetMutablePayload().ensureMessageMap();
      }
      /**
       * <pre>
       * additional meta data describing the event
       * </pre>
       *
       * <code>map&lt;string, .proto.PayloadValue&gt; payload = 4;</code>
       */
      public Builder putPayload(
          java.lang.String key,
          com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) { throw new NullPointerException("map value"); }
        internalGetMutablePayload().ensureBuilderMap()
            .put(key, value);
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <pre>
       * additional meta data describing the event
       * </pre>
       *
       * <code>map&lt;string, .proto.PayloadValue&gt; payload = 4;</code>
       */
      public Builder putAllPayload(
          java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue> values) {
        for (java.util.Map.Entry<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue> e : values.entrySet()) {
          if (e.getKey() == null || e.getValue() == null) {
            throw new NullPointerException();
          }
        }
        internalGetMutablePayload().ensureBuilderMap()
            .putAll(values);
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <pre>
       * additional meta data describing the event
       * </pre>
       *
       * <code>map&lt;string, .proto.PayloadValue&gt; payload = 4;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.Builder putPayloadBuilderIfAbsent(
          java.lang.String key) {
        java.util.Map<java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValueOrBuilder> builderMap = internalGetMutablePayload().ensureBuilderMap();
        com.daimler.mbcarkit.proto.VehicleEvents.PayloadValueOrBuilder entry = builderMap.get(key);
        if (entry == null) {
          entry = com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.newBuilder();
          builderMap.put(key, entry);
        }
        if (entry instanceof com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue) {
          entry = ((com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue) entry).toBuilder();
          builderMap.put(key, entry);
        }
        return (com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.Builder) entry;
      }

      // @@protoc_insertion_point(builder_scope:proto.TrackingEvent)
    }

    // @@protoc_insertion_point(class_scope:proto.TrackingEvent)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<TrackingEvent>
        PARSER = new com.google.protobuf.AbstractParser<TrackingEvent>() {
      @java.lang.Override
      public TrackingEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<TrackingEvent> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<TrackingEvent> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PayloadValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.PayloadValue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string string_value = 1;</code>
     * @return Whether the stringValue field is set.
     */
    boolean hasStringValue();
    /**
     * <code>string string_value = 1;</code>
     * @return The stringValue.
     */
    java.lang.String getStringValue();
    /**
     * <code>string string_value = 1;</code>
     * @return The bytes for stringValue.
     */
    com.google.protobuf.ByteString
        getStringValueBytes();

    /**
     * <code>int32 int_value = 2;</code>
     * @return Whether the intValue field is set.
     */
    boolean hasIntValue();
    /**
     * <code>int32 int_value = 2;</code>
     * @return The intValue.
     */
    int getIntValue();

    /**
     * <code>bool bool_value = 3;</code>
     * @return Whether the boolValue field is set.
     */
    boolean hasBoolValue();
    /**
     * <code>bool bool_value = 3;</code>
     * @return The boolValue.
     */
    boolean getBoolValue();

    /**
     * <code>double double_value = 4;</code>
     * @return Whether the doubleValue field is set.
     */
    boolean hasDoubleValue();
    /**
     * <code>double double_value = 4;</code>
     * @return The doubleValue.
     */
    double getDoubleValue();

    com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.MsgCase getMsgCase();
  }
  /**
   * Protobuf type {@code proto.PayloadValue}
   */
  public static final class PayloadValue extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.PayloadValue)
      PayloadValueOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "PayloadValue");
    }
    // Use PayloadValue.newBuilder() to construct.
    private PayloadValue(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private PayloadValue() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PayloadValue_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PayloadValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.class, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.Builder.class);
    }

    private int msgCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object msg_;
    public enum MsgCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      STRING_VALUE(1),
      INT_VALUE(2),
      BOOL_VALUE(3),
      DOUBLE_VALUE(4),
      MSG_NOT_SET(0);
      private final int value;
      private MsgCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static MsgCase valueOf(int value) {
        return forNumber(value);
      }

      public static MsgCase forNumber(int value) {
        switch (value) {
          case 1: return STRING_VALUE;
          case 2: return INT_VALUE;
          case 3: return BOOL_VALUE;
          case 4: return DOUBLE_VALUE;
          case 0: return MSG_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public MsgCase
    getMsgCase() {
      return MsgCase.forNumber(
          msgCase_);
    }

    public static final int STRING_VALUE_FIELD_NUMBER = 1;
    /**
     * <code>string string_value = 1;</code>
     * @return Whether the stringValue field is set.
     */
    public boolean hasStringValue() {
      return msgCase_ == 1;
    }
    /**
     * <code>string string_value = 1;</code>
     * @return The stringValue.
     */
    public java.lang.String getStringValue() {
      java.lang.Object ref = "";
      if (msgCase_ == 1) {
        ref = msg_;
      }
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (msgCase_ == 1) {
          msg_ = s;
        }
        return s;
      }
    }
    /**
     * <code>string string_value = 1;</code>
     * @return The bytes for stringValue.
     */
    public com.google.protobuf.ByteString
        getStringValueBytes() {
      java.lang.Object ref = "";
      if (msgCase_ == 1) {
        ref = msg_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (msgCase_ == 1) {
          msg_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INT_VALUE_FIELD_NUMBER = 2;
    /**
     * <code>int32 int_value = 2;</code>
     * @return Whether the intValue field is set.
     */
    @java.lang.Override
    public boolean hasIntValue() {
      return msgCase_ == 2;
    }
    /**
     * <code>int32 int_value = 2;</code>
     * @return The intValue.
     */
    @java.lang.Override
    public int getIntValue() {
      if (msgCase_ == 2) {
        return (java.lang.Integer) msg_;
      }
      return 0;
    }

    public static final int BOOL_VALUE_FIELD_NUMBER = 3;
    /**
     * <code>bool bool_value = 3;</code>
     * @return Whether the boolValue field is set.
     */
    @java.lang.Override
    public boolean hasBoolValue() {
      return msgCase_ == 3;
    }
    /**
     * <code>bool bool_value = 3;</code>
     * @return The boolValue.
     */
    @java.lang.Override
    public boolean getBoolValue() {
      if (msgCase_ == 3) {
        return (java.lang.Boolean) msg_;
      }
      return false;
    }

    public static final int DOUBLE_VALUE_FIELD_NUMBER = 4;
    /**
     * <code>double double_value = 4;</code>
     * @return Whether the doubleValue field is set.
     */
    @java.lang.Override
    public boolean hasDoubleValue() {
      return msgCase_ == 4;
    }
    /**
     * <code>double double_value = 4;</code>
     * @return The doubleValue.
     */
    @java.lang.Override
    public double getDoubleValue() {
      if (msgCase_ == 4) {
        return (java.lang.Double) msg_;
      }
      return 0D;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (msgCase_ == 1) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, msg_);
      }
      if (msgCase_ == 2) {
        output.writeInt32(
            2, (int)((java.lang.Integer) msg_));
      }
      if (msgCase_ == 3) {
        output.writeBool(
            3, (boolean)((java.lang.Boolean) msg_));
      }
      if (msgCase_ == 4) {
        output.writeDouble(
            4, (double)((java.lang.Double) msg_));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (msgCase_ == 1) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, msg_);
      }
      if (msgCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(
              2, (int)((java.lang.Integer) msg_));
      }
      if (msgCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(
              3, (boolean)((java.lang.Boolean) msg_));
      }
      if (msgCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(
              4, (double)((java.lang.Double) msg_));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue other = (com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue) obj;

      if (!getMsgCase().equals(other.getMsgCase())) return false;
      switch (msgCase_) {
        case 1:
          if (!getStringValue()
              .equals(other.getStringValue())) return false;
          break;
        case 2:
          if (getIntValue()
              != other.getIntValue()) return false;
          break;
        case 3:
          if (getBoolValue()
              != other.getBoolValue()) return false;
          break;
        case 4:
          if (java.lang.Double.doubleToLongBits(getDoubleValue())
              != java.lang.Double.doubleToLongBits(
                  other.getDoubleValue())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (msgCase_) {
        case 1:
          hash = (37 * hash) + STRING_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getStringValue().hashCode();
          break;
        case 2:
          hash = (37 * hash) + INT_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getIntValue();
          break;
        case 3:
          hash = (37 * hash) + BOOL_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getBoolValue());
          break;
        case 4:
          hash = (37 * hash) + DOUBLE_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              java.lang.Double.doubleToLongBits(getDoubleValue()));
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.PayloadValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.PayloadValue)
        com.daimler.mbcarkit.proto.VehicleEvents.PayloadValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PayloadValue_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PayloadValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.class, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        msgCase_ = 0;
        msg_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PayloadValue_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue build() {
        com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue result = new com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue result) {
        int from_bitField0_ = bitField0_;
      }

      private void buildPartialOneofs(com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue result) {
        result.msgCase_ = msgCase_;
        result.msg_ = this.msg_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.getDefaultInstance()) return this;
        switch (other.getMsgCase()) {
          case STRING_VALUE: {
            msgCase_ = 1;
            msg_ = other.msg_;
            onChanged();
            break;
          }
          case INT_VALUE: {
            setIntValue(other.getIntValue());
            break;
          }
          case BOOL_VALUE: {
            setBoolValue(other.getBoolValue());
            break;
          }
          case DOUBLE_VALUE: {
            setDoubleValue(other.getDoubleValue());
            break;
          }
          case MSG_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();
                msgCase_ = 1;
                msg_ = s;
                break;
              } // case 10
              case 16: {
                msg_ = input.readInt32();
                msgCase_ = 2;
                break;
              } // case 16
              case 24: {
                msg_ = input.readBool();
                msgCase_ = 3;
                break;
              } // case 24
              case 33: {
                msg_ = input.readDouble();
                msgCase_ = 4;
                break;
              } // case 33
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int msgCase_ = 0;
      private java.lang.Object msg_;
      public MsgCase
          getMsgCase() {
        return MsgCase.forNumber(
            msgCase_);
      }

      public Builder clearMsg() {
        msgCase_ = 0;
        msg_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      /**
       * <code>string string_value = 1;</code>
       * @return Whether the stringValue field is set.
       */
      @java.lang.Override
      public boolean hasStringValue() {
        return msgCase_ == 1;
      }
      /**
       * <code>string string_value = 1;</code>
       * @return The stringValue.
       */
      @java.lang.Override
      public java.lang.String getStringValue() {
        java.lang.Object ref = "";
        if (msgCase_ == 1) {
          ref = msg_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (msgCase_ == 1) {
            msg_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string string_value = 1;</code>
       * @return The bytes for stringValue.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getStringValueBytes() {
        java.lang.Object ref = "";
        if (msgCase_ == 1) {
          ref = msg_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (msgCase_ == 1) {
            msg_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string string_value = 1;</code>
       * @param value The stringValue to set.
       * @return This builder for chaining.
       */
      public Builder setStringValue(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        msgCase_ = 1;
        msg_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string string_value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearStringValue() {
        if (msgCase_ == 1) {
          msgCase_ = 0;
          msg_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <code>string string_value = 1;</code>
       * @param value The bytes for stringValue to set.
       * @return This builder for chaining.
       */
      public Builder setStringValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        msgCase_ = 1;
        msg_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>int32 int_value = 2;</code>
       * @return Whether the intValue field is set.
       */
      public boolean hasIntValue() {
        return msgCase_ == 2;
      }
      /**
       * <code>int32 int_value = 2;</code>
       * @return The intValue.
       */
      public int getIntValue() {
        if (msgCase_ == 2) {
          return (java.lang.Integer) msg_;
        }
        return 0;
      }
      /**
       * <code>int32 int_value = 2;</code>
       * @param value The intValue to set.
       * @return This builder for chaining.
       */
      public Builder setIntValue(int value) {

        msgCase_ = 2;
        msg_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 int_value = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearIntValue() {
        if (msgCase_ == 2) {
          msgCase_ = 0;
          msg_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>bool bool_value = 3;</code>
       * @return Whether the boolValue field is set.
       */
      public boolean hasBoolValue() {
        return msgCase_ == 3;
      }
      /**
       * <code>bool bool_value = 3;</code>
       * @return The boolValue.
       */
      public boolean getBoolValue() {
        if (msgCase_ == 3) {
          return (java.lang.Boolean) msg_;
        }
        return false;
      }
      /**
       * <code>bool bool_value = 3;</code>
       * @param value The boolValue to set.
       * @return This builder for chaining.
       */
      public Builder setBoolValue(boolean value) {

        msgCase_ = 3;
        msg_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool bool_value = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearBoolValue() {
        if (msgCase_ == 3) {
          msgCase_ = 0;
          msg_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>double double_value = 4;</code>
       * @return Whether the doubleValue field is set.
       */
      public boolean hasDoubleValue() {
        return msgCase_ == 4;
      }
      /**
       * <code>double double_value = 4;</code>
       * @return The doubleValue.
       */
      public double getDoubleValue() {
        if (msgCase_ == 4) {
          return (java.lang.Double) msg_;
        }
        return 0D;
      }
      /**
       * <code>double double_value = 4;</code>
       * @param value The doubleValue to set.
       * @return This builder for chaining.
       */
      public Builder setDoubleValue(double value) {

        msgCase_ = 4;
        msg_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double double_value = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearDoubleValue() {
        if (msgCase_ == 4) {
          msgCase_ = 0;
          msg_ = null;
          onChanged();
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.PayloadValue)
    }

    // @@protoc_insertion_point(class_scope:proto.PayloadValue)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PayloadValue>
        PARSER = new com.google.protobuf.AbstractParser<PayloadValue>() {
      @java.lang.Override
      public PayloadValue parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PayloadValue> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PayloadValue> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  @java.lang.Deprecated public interface AcknowledgeVEPRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.AcknowledgeVEPRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 sequence_number = 1;</code>
     * @return The sequenceNumber.
     */
    int getSequenceNumber();
  }
  /**
   * <pre>
   * acknowledge that the VEP updates of up to `sequenceNumber` have been received
   * Sending direction: App -&gt; BFF -&gt; AppTwin
   * </pre>
   *
   * Protobuf type {@code proto.AcknowledgeVEPRequest}
   */
  @java.lang.Deprecated public static final class AcknowledgeVEPRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.AcknowledgeVEPRequest)
      AcknowledgeVEPRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "AcknowledgeVEPRequest");
    }
    // Use AcknowledgeVEPRequest.newBuilder() to construct.
    private AcknowledgeVEPRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AcknowledgeVEPRequest() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.Builder.class);
    }

    public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1;
    private int sequenceNumber_ = 0;
    /**
     * <code>int32 sequence_number = 1;</code>
     * @return The sequenceNumber.
     */
    @java.lang.Override
    public int getSequenceNumber() {
      return sequenceNumber_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (sequenceNumber_ != 0) {
        output.writeInt32(1, sequenceNumber_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (sequenceNumber_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sequenceNumber_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest other = (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest) obj;

      if (getSequenceNumber()
          != other.getSequenceNumber()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getSequenceNumber();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * acknowledge that the VEP updates of up to `sequenceNumber` have been received
     * Sending direction: App -&gt; BFF -&gt; AppTwin
     * </pre>
     *
     * Protobuf type {@code proto.AcknowledgeVEPRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.AcknowledgeVEPRequest)
        com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sequenceNumber_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPRequest_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest build() {
        com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest result = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sequenceNumber_ = sequenceNumber_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.getDefaultInstance()) return this;
        if (other.getSequenceNumber() != 0) {
          setSequenceNumber(other.getSequenceNumber());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                sequenceNumber_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int sequenceNumber_ ;
      /**
       * <code>int32 sequence_number = 1;</code>
       * @return The sequenceNumber.
       */
      @java.lang.Override
      public int getSequenceNumber() {
        return sequenceNumber_;
      }
      /**
       * <code>int32 sequence_number = 1;</code>
       * @param value The sequenceNumber to set.
       * @return This builder for chaining.
       */
      public Builder setSequenceNumber(int value) {

        sequenceNumber_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 sequence_number = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSequenceNumber() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sequenceNumber_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.AcknowledgeVEPRequest)
    }

    // @@protoc_insertion_point(class_scope:proto.AcknowledgeVEPRequest)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AcknowledgeVEPRequest>
        PARSER = new com.google.protobuf.AbstractParser<AcknowledgeVEPRequest>() {
      @java.lang.Override
      public AcknowledgeVEPRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AcknowledgeVEPRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AcknowledgeVEPRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AcknowledgeVEPUpdatesByVINOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.AcknowledgeVEPUpdatesByVIN)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 sequence_number = 1;</code>
     * @return The sequenceNumber.
     */
    int getSequenceNumber();
  }
  /**
   * <pre>
   * acknowledge that the VEP updates by vin of up to `sequenceNumber` have been received
   * Sending direction: App -&gt; BFF -&gt; AppTwin
   * This message should replace the AcknowledgeVEPRequest
   * </pre>
   *
   * Protobuf type {@code proto.AcknowledgeVEPUpdatesByVIN}
   */
  public static final class AcknowledgeVEPUpdatesByVIN extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.AcknowledgeVEPUpdatesByVIN)
      AcknowledgeVEPUpdatesByVINOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "AcknowledgeVEPUpdatesByVIN");
    }
    // Use AcknowledgeVEPUpdatesByVIN.newBuilder() to construct.
    private AcknowledgeVEPUpdatesByVIN(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AcknowledgeVEPUpdatesByVIN() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPUpdatesByVIN_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPUpdatesByVIN_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.Builder.class);
    }

    public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1;
    private int sequenceNumber_ = 0;
    /**
     * <code>int32 sequence_number = 1;</code>
     * @return The sequenceNumber.
     */
    @java.lang.Override
    public int getSequenceNumber() {
      return sequenceNumber_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (sequenceNumber_ != 0) {
        output.writeInt32(1, sequenceNumber_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (sequenceNumber_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sequenceNumber_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN other = (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN) obj;

      if (getSequenceNumber()
          != other.getSequenceNumber()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getSequenceNumber();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * acknowledge that the VEP updates by vin of up to `sequenceNumber` have been received
     * Sending direction: App -&gt; BFF -&gt; AppTwin
     * This message should replace the AcknowledgeVEPRequest
     * </pre>
     *
     * Protobuf type {@code proto.AcknowledgeVEPUpdatesByVIN}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.AcknowledgeVEPUpdatesByVIN)
        com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVINOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPUpdatesByVIN_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPUpdatesByVIN_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sequenceNumber_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPUpdatesByVIN_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN build() {
        com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN result = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sequenceNumber_ = sequenceNumber_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.getDefaultInstance()) return this;
        if (other.getSequenceNumber() != 0) {
          setSequenceNumber(other.getSequenceNumber());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                sequenceNumber_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int sequenceNumber_ ;
      /**
       * <code>int32 sequence_number = 1;</code>
       * @return The sequenceNumber.
       */
      @java.lang.Override
      public int getSequenceNumber() {
        return sequenceNumber_;
      }
      /**
       * <code>int32 sequence_number = 1;</code>
       * @param value The sequenceNumber to set.
       * @return This builder for chaining.
       */
      public Builder setSequenceNumber(int value) {

        sequenceNumber_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 sequence_number = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSequenceNumber() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sequenceNumber_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.AcknowledgeVEPUpdatesByVIN)
    }

    // @@protoc_insertion_point(class_scope:proto.AcknowledgeVEPUpdatesByVIN)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AcknowledgeVEPUpdatesByVIN>
        PARSER = new com.google.protobuf.AbstractParser<AcknowledgeVEPUpdatesByVIN>() {
      @java.lang.Override
      public AcknowledgeVEPUpdatesByVIN parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AcknowledgeVEPUpdatesByVIN> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AcknowledgeVEPUpdatesByVIN> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ConfigurePingIntervalOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.ConfigurePingInterval)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 ping_time_millis = 1;</code>
     * @return The pingTimeMillis.
     */
    int getPingTimeMillis();
  }
  /**
   * <pre>
   * the client can optionally send this message to reconfigure the ping interval
   * Sending direction: App -&gt; BFF
   * </pre>
   *
   * Protobuf type {@code proto.ConfigurePingInterval}
   */
  public static final class ConfigurePingInterval extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.ConfigurePingInterval)
      ConfigurePingIntervalOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "ConfigurePingInterval");
    }
    // Use ConfigurePingInterval.newBuilder() to construct.
    private ConfigurePingInterval(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ConfigurePingInterval() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ConfigurePingInterval_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ConfigurePingInterval_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.class, com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.Builder.class);
    }

    public static final int PING_TIME_MILLIS_FIELD_NUMBER = 1;
    private int pingTimeMillis_ = 0;
    /**
     * <code>int32 ping_time_millis = 1;</code>
     * @return The pingTimeMillis.
     */
    @java.lang.Override
    public int getPingTimeMillis() {
      return pingTimeMillis_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (pingTimeMillis_ != 0) {
        output.writeInt32(1, pingTimeMillis_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (pingTimeMillis_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, pingTimeMillis_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval other = (com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval) obj;

      if (getPingTimeMillis()
          != other.getPingTimeMillis()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + PING_TIME_MILLIS_FIELD_NUMBER;
      hash = (53 * hash) + getPingTimeMillis();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * the client can optionally send this message to reconfigure the ping interval
     * Sending direction: App -&gt; BFF
     * </pre>
     *
     * Protobuf type {@code proto.ConfigurePingInterval}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.ConfigurePingInterval)
        com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingIntervalOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ConfigurePingInterval_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ConfigurePingInterval_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.class, com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        pingTimeMillis_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ConfigurePingInterval_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval build() {
        com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval result = new com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.pingTimeMillis_ = pingTimeMillis_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.getDefaultInstance()) return this;
        if (other.getPingTimeMillis() != 0) {
          setPingTimeMillis(other.getPingTimeMillis());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                pingTimeMillis_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int pingTimeMillis_ ;
      /**
       * <code>int32 ping_time_millis = 1;</code>
       * @return The pingTimeMillis.
       */
      @java.lang.Override
      public int getPingTimeMillis() {
        return pingTimeMillis_;
      }
      /**
       * <code>int32 ping_time_millis = 1;</code>
       * @param value The pingTimeMillis to set.
       * @return This builder for chaining.
       */
      public Builder setPingTimeMillis(int value) {

        pingTimeMillis_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 ping_time_millis = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearPingTimeMillis() {
        bitField0_ = (bitField0_ & ~0x00000001);
        pingTimeMillis_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.ConfigurePingInterval)
    }

    // @@protoc_insertion_point(class_scope:proto.ConfigurePingInterval)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ConfigurePingInterval>
        PARSER = new com.google.protobuf.AbstractParser<ConfigurePingInterval>() {
      @java.lang.Override
      public ConfigurePingInterval parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ConfigurePingInterval> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ConfigurePingInterval> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AcknowledgeVehicleUpdatedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.AcknowledgeVehicleUpdated)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 sequence_number = 1;</code>
     * @return The sequenceNumber.
     */
    int getSequenceNumber();
  }
  /**
   * Protobuf type {@code proto.AcknowledgeVehicleUpdated}
   */
  public static final class AcknowledgeVehicleUpdated extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.AcknowledgeVehicleUpdated)
      AcknowledgeVehicleUpdatedOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "AcknowledgeVehicleUpdated");
    }
    // Use AcknowledgeVehicleUpdated.newBuilder() to construct.
    private AcknowledgeVehicleUpdated(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AcknowledgeVehicleUpdated() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVehicleUpdated_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVehicleUpdated_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.Builder.class);
    }

    public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1;
    private int sequenceNumber_ = 0;
    /**
     * <code>int32 sequence_number = 1;</code>
     * @return The sequenceNumber.
     */
    @java.lang.Override
    public int getSequenceNumber() {
      return sequenceNumber_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (sequenceNumber_ != 0) {
        output.writeInt32(1, sequenceNumber_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (sequenceNumber_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sequenceNumber_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated other = (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated) obj;

      if (getSequenceNumber()
          != other.getSequenceNumber()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getSequenceNumber();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.AcknowledgeVehicleUpdated}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.AcknowledgeVehicleUpdated)
        com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdatedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVehicleUpdated_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVehicleUpdated_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sequenceNumber_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVehicleUpdated_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated build() {
        com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated result = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sequenceNumber_ = sequenceNumber_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.getDefaultInstance()) return this;
        if (other.getSequenceNumber() != 0) {
          setSequenceNumber(other.getSequenceNumber());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                sequenceNumber_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int sequenceNumber_ ;
      /**
       * <code>int32 sequence_number = 1;</code>
       * @return The sequenceNumber.
       */
      @java.lang.Override
      public int getSequenceNumber() {
        return sequenceNumber_;
      }
      /**
       * <code>int32 sequence_number = 1;</code>
       * @param value The sequenceNumber to set.
       * @return This builder for chaining.
       */
      public Builder setSequenceNumber(int value) {

        sequenceNumber_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 sequence_number = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSequenceNumber() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sequenceNumber_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.AcknowledgeVehicleUpdated)
    }

    // @@protoc_insertion_point(class_scope:proto.AcknowledgeVehicleUpdated)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AcknowledgeVehicleUpdated>
        PARSER = new com.google.protobuf.AbstractParser<AcknowledgeVehicleUpdated>() {
      @java.lang.Override
      public AcknowledgeVehicleUpdated parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AcknowledgeVehicleUpdated> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AcknowledgeVehicleUpdated> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AcknowledgePreferredDealerChangeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.AcknowledgePreferredDealerChange)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 sequence_number = 1;</code>
     * @return The sequenceNumber.
     */
    int getSequenceNumber();
  }
  /**
   * Protobuf type {@code proto.AcknowledgePreferredDealerChange}
   */
  public static final class AcknowledgePreferredDealerChange extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.AcknowledgePreferredDealerChange)
      AcknowledgePreferredDealerChangeOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "AcknowledgePreferredDealerChange");
    }
    // Use AcknowledgePreferredDealerChange.newBuilder() to construct.
    private AcknowledgePreferredDealerChange(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AcknowledgePreferredDealerChange() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgePreferredDealerChange_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgePreferredDealerChange_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.Builder.class);
    }

    public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1;
    private int sequenceNumber_ = 0;
    /**
     * <code>int32 sequence_number = 1;</code>
     * @return The sequenceNumber.
     */
    @java.lang.Override
    public int getSequenceNumber() {
      return sequenceNumber_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (sequenceNumber_ != 0) {
        output.writeInt32(1, sequenceNumber_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (sequenceNumber_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sequenceNumber_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange other = (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange) obj;

      if (getSequenceNumber()
          != other.getSequenceNumber()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getSequenceNumber();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.AcknowledgePreferredDealerChange}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.AcknowledgePreferredDealerChange)
        com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChangeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgePreferredDealerChange_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgePreferredDealerChange_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sequenceNumber_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgePreferredDealerChange_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange build() {
        com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange result = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sequenceNumber_ = sequenceNumber_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.getDefaultInstance()) return this;
        if (other.getSequenceNumber() != 0) {
          setSequenceNumber(other.getSequenceNumber());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                sequenceNumber_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int sequenceNumber_ ;
      /**
       * <code>int32 sequence_number = 1;</code>
       * @return The sequenceNumber.
       */
      @java.lang.Override
      public int getSequenceNumber() {
        return sequenceNumber_;
      }
      /**
       * <code>int32 sequence_number = 1;</code>
       * @param value The sequenceNumber to set.
       * @return This builder for chaining.
       */
      public Builder setSequenceNumber(int value) {

        sequenceNumber_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 sequence_number = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSequenceNumber() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sequenceNumber_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.AcknowledgePreferredDealerChange)
    }

    // @@protoc_insertion_point(class_scope:proto.AcknowledgePreferredDealerChange)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AcknowledgePreferredDealerChange>
        PARSER = new com.google.protobuf.AbstractParser<AcknowledgePreferredDealerChange>() {
      @java.lang.Override
      public AcknowledgePreferredDealerChange parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AcknowledgePreferredDealerChange> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AcknowledgePreferredDealerChange> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface VehicleUpdatedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.VehicleUpdated)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 sequence_number = 1;</code>
     * @return The sequenceNumber.
     */
    int getSequenceNumber();

    /**
     * <code>string ciam_id = 2;</code>
     * @return The ciamId.
     */
    java.lang.String getCiamId();
    /**
     * <code>string ciam_id = 2;</code>
     * @return The bytes for ciamId.
     */
    com.google.protobuf.ByteString
        getCiamIdBytes();

    /**
     * <code>string vin = 3;</code>
     * @return The vin.
     */
    java.lang.String getVin();
    /**
     * <code>string vin = 3;</code>
     * @return The bytes for vin.
     */
    com.google.protobuf.ByteString
        getVinBytes();

    /**
     * <pre>
     * When was the event emitted (milliseconds in Unix time)
     * </pre>
     *
     * <code>int64 emit_timestamp_in_ms = 10;</code>
     * @return The emitTimestampInMs.
     */
    long getEmitTimestampInMs();
  }
  /**
   * Protobuf type {@code proto.VehicleUpdated}
   */
  public static final class VehicleUpdated extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.VehicleUpdated)
      VehicleUpdatedOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "VehicleUpdated");
    }
    // Use VehicleUpdated.newBuilder() to construct.
    private VehicleUpdated(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private VehicleUpdated() {
      ciamId_ = "";
      vin_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleUpdated_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleUpdated_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.class, com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.Builder.class);
    }

    public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1;
    private int sequenceNumber_ = 0;
    /**
     * <code>int32 sequence_number = 1;</code>
     * @return The sequenceNumber.
     */
    @java.lang.Override
    public int getSequenceNumber() {
      return sequenceNumber_;
    }

    public static final int CIAM_ID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object ciamId_ = "";
    /**
     * <code>string ciam_id = 2;</code>
     * @return The ciamId.
     */
    @java.lang.Override
    public java.lang.String getCiamId() {
      java.lang.Object ref = ciamId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        ciamId_ = s;
        return s;
      }
    }
    /**
     * <code>string ciam_id = 2;</code>
     * @return The bytes for ciamId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCiamIdBytes() {
      java.lang.Object ref = ciamId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ciamId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VIN_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object vin_ = "";
    /**
     * <code>string vin = 3;</code>
     * @return The vin.
     */
    @java.lang.Override
    public java.lang.String getVin() {
      java.lang.Object ref = vin_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        vin_ = s;
        return s;
      }
    }
    /**
     * <code>string vin = 3;</code>
     * @return The bytes for vin.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getVinBytes() {
      java.lang.Object ref = vin_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        vin_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER = 10;
    private long emitTimestampInMs_ = 0L;
    /**
     * <pre>
     * When was the event emitted (milliseconds in Unix time)
     * </pre>
     *
     * <code>int64 emit_timestamp_in_ms = 10;</code>
     * @return The emitTimestampInMs.
     */
    @java.lang.Override
    public long getEmitTimestampInMs() {
      return emitTimestampInMs_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (sequenceNumber_ != 0) {
        output.writeInt32(1, sequenceNumber_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, ciamId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, vin_);
      }
      if (emitTimestampInMs_ != 0L) {
        output.writeInt64(10, emitTimestampInMs_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (sequenceNumber_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sequenceNumber_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, ciamId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, vin_);
      }
      if (emitTimestampInMs_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(10, emitTimestampInMs_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated other = (com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) obj;

      if (getSequenceNumber()
          != other.getSequenceNumber()) return false;
      if (!getCiamId()
          .equals(other.getCiamId())) return false;
      if (!getVin()
          .equals(other.getVin())) return false;
      if (getEmitTimestampInMs()
          != other.getEmitTimestampInMs()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getSequenceNumber();
      hash = (37 * hash) + CIAM_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCiamId().hashCode();
      hash = (37 * hash) + VIN_FIELD_NUMBER;
      hash = (53 * hash) + getVin().hashCode();
      hash = (37 * hash) + EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getEmitTimestampInMs());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.VehicleUpdated}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.VehicleUpdated)
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdatedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleUpdated_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleUpdated_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.class, com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sequenceNumber_ = 0;
        ciamId_ = "";
        vin_ = "";
        emitTimestampInMs_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleUpdated_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated build() {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated result = new com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sequenceNumber_ = sequenceNumber_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.ciamId_ = ciamId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.vin_ = vin_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.emitTimestampInMs_ = emitTimestampInMs_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance()) return this;
        if (other.getSequenceNumber() != 0) {
          setSequenceNumber(other.getSequenceNumber());
        }
        if (!other.getCiamId().isEmpty()) {
          ciamId_ = other.ciamId_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getVin().isEmpty()) {
          vin_ = other.vin_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (other.getEmitTimestampInMs() != 0L) {
          setEmitTimestampInMs(other.getEmitTimestampInMs());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                sequenceNumber_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                ciamId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                vin_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 80: {
                emitTimestampInMs_ = input.readInt64();
                bitField0_ |= 0x00000008;
                break;
              } // case 80
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int sequenceNumber_ ;
      /**
       * <code>int32 sequence_number = 1;</code>
       * @return The sequenceNumber.
       */
      @java.lang.Override
      public int getSequenceNumber() {
        return sequenceNumber_;
      }
      /**
       * <code>int32 sequence_number = 1;</code>
       * @param value The sequenceNumber to set.
       * @return This builder for chaining.
       */
      public Builder setSequenceNumber(int value) {

        sequenceNumber_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 sequence_number = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSequenceNumber() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sequenceNumber_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object ciamId_ = "";
      /**
       * <code>string ciam_id = 2;</code>
       * @return The ciamId.
       */
      public java.lang.String getCiamId() {
        java.lang.Object ref = ciamId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          ciamId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string ciam_id = 2;</code>
       * @return The bytes for ciamId.
       */
      public com.google.protobuf.ByteString
          getCiamIdBytes() {
        java.lang.Object ref = ciamId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ciamId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string ciam_id = 2;</code>
       * @param value The ciamId to set.
       * @return This builder for chaining.
       */
      public Builder setCiamId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ciamId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string ciam_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCiamId() {
        ciamId_ = getDefaultInstance().getCiamId();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string ciam_id = 2;</code>
       * @param value The bytes for ciamId to set.
       * @return This builder for chaining.
       */
      public Builder setCiamIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ciamId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object vin_ = "";
      /**
       * <code>string vin = 3;</code>
       * @return The vin.
       */
      public java.lang.String getVin() {
        java.lang.Object ref = vin_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          vin_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string vin = 3;</code>
       * @return The bytes for vin.
       */
      public com.google.protobuf.ByteString
          getVinBytes() {
        java.lang.Object ref = vin_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          vin_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string vin = 3;</code>
       * @param value The vin to set.
       * @return This builder for chaining.
       */
      public Builder setVin(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        vin_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>string vin = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearVin() {
        vin_ = getDefaultInstance().getVin();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>string vin = 3;</code>
       * @param value The bytes for vin to set.
       * @return This builder for chaining.
       */
      public Builder setVinBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        vin_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private long emitTimestampInMs_ ;
      /**
       * <pre>
       * When was the event emitted (milliseconds in Unix time)
       * </pre>
       *
       * <code>int64 emit_timestamp_in_ms = 10;</code>
       * @return The emitTimestampInMs.
       */
      @java.lang.Override
      public long getEmitTimestampInMs() {
        return emitTimestampInMs_;
      }
      /**
       * <pre>
       * When was the event emitted (milliseconds in Unix time)
       * </pre>
       *
       * <code>int64 emit_timestamp_in_ms = 10;</code>
       * @param value The emitTimestampInMs to set.
       * @return This builder for chaining.
       */
      public Builder setEmitTimestampInMs(long value) {

        emitTimestampInMs_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * When was the event emitted (milliseconds in Unix time)
       * </pre>
       *
       * <code>int64 emit_timestamp_in_ms = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearEmitTimestampInMs() {
        bitField0_ = (bitField0_ & ~0x00000008);
        emitTimestampInMs_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.VehicleUpdated)
    }

    // @@protoc_insertion_point(class_scope:proto.VehicleUpdated)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<VehicleUpdated>
        PARSER = new com.google.protobuf.AbstractParser<VehicleUpdated>() {
      @java.lang.Override
      public VehicleUpdated parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<VehicleUpdated> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<VehicleUpdated> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PreferredDealerChangeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.PreferredDealerChange)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 sequence_number = 1;</code>
     * @return The sequenceNumber.
     */
    int getSequenceNumber();

    /**
     * <code>string ciam_id = 2;</code>
     * @return The ciamId.
     */
    java.lang.String getCiamId();
    /**
     * <code>string ciam_id = 2;</code>
     * @return The bytes for ciamId.
     */
    com.google.protobuf.ByteString
        getCiamIdBytes();

    /**
     * <code>string vin = 3;</code>
     * @return The vin.
     */
    java.lang.String getVin();
    /**
     * <code>string vin = 3;</code>
     * @return The bytes for vin.
     */
    com.google.protobuf.ByteString
        getVinBytes();

    /**
     * <pre>
     * When was the event emitted (milliseconds in Unix time)
     * </pre>
     *
     * <code>int64 emit_timestamp_in_ms = 10;</code>
     * @return The emitTimestampInMs.
     */
    long getEmitTimestampInMs();
  }
  /**
   * Protobuf type {@code proto.PreferredDealerChange}
   */
  public static final class PreferredDealerChange extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.PreferredDealerChange)
      PreferredDealerChangeOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "PreferredDealerChange");
    }
    // Use PreferredDealerChange.newBuilder() to construct.
    private PreferredDealerChange(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private PreferredDealerChange() {
      ciamId_ = "";
      vin_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PreferredDealerChange_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PreferredDealerChange_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.class, com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.Builder.class);
    }

    public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1;
    private int sequenceNumber_ = 0;
    /**
     * <code>int32 sequence_number = 1;</code>
     * @return The sequenceNumber.
     */
    @java.lang.Override
    public int getSequenceNumber() {
      return sequenceNumber_;
    }

    public static final int CIAM_ID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object ciamId_ = "";
    /**
     * <code>string ciam_id = 2;</code>
     * @return The ciamId.
     */
    @java.lang.Override
    public java.lang.String getCiamId() {
      java.lang.Object ref = ciamId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        ciamId_ = s;
        return s;
      }
    }
    /**
     * <code>string ciam_id = 2;</code>
     * @return The bytes for ciamId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCiamIdBytes() {
      java.lang.Object ref = ciamId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ciamId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VIN_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object vin_ = "";
    /**
     * <code>string vin = 3;</code>
     * @return The vin.
     */
    @java.lang.Override
    public java.lang.String getVin() {
      java.lang.Object ref = vin_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        vin_ = s;
        return s;
      }
    }
    /**
     * <code>string vin = 3;</code>
     * @return The bytes for vin.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getVinBytes() {
      java.lang.Object ref = vin_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        vin_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER = 10;
    private long emitTimestampInMs_ = 0L;
    /**
     * <pre>
     * When was the event emitted (milliseconds in Unix time)
     * </pre>
     *
     * <code>int64 emit_timestamp_in_ms = 10;</code>
     * @return The emitTimestampInMs.
     */
    @java.lang.Override
    public long getEmitTimestampInMs() {
      return emitTimestampInMs_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (sequenceNumber_ != 0) {
        output.writeInt32(1, sequenceNumber_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, ciamId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, vin_);
      }
      if (emitTimestampInMs_ != 0L) {
        output.writeInt64(10, emitTimestampInMs_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (sequenceNumber_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sequenceNumber_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, ciamId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, vin_);
      }
      if (emitTimestampInMs_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(10, emitTimestampInMs_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange other = (com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) obj;

      if (getSequenceNumber()
          != other.getSequenceNumber()) return false;
      if (!getCiamId()
          .equals(other.getCiamId())) return false;
      if (!getVin()
          .equals(other.getVin())) return false;
      if (getEmitTimestampInMs()
          != other.getEmitTimestampInMs()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getSequenceNumber();
      hash = (37 * hash) + CIAM_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCiamId().hashCode();
      hash = (37 * hash) + VIN_FIELD_NUMBER;
      hash = (53 * hash) + getVin().hashCode();
      hash = (37 * hash) + EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getEmitTimestampInMs());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.PreferredDealerChange}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.PreferredDealerChange)
        com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChangeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PreferredDealerChange_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PreferredDealerChange_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.class, com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sequenceNumber_ = 0;
        ciamId_ = "";
        vin_ = "";
        emitTimestampInMs_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PreferredDealerChange_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange build() {
        com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange result = new com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sequenceNumber_ = sequenceNumber_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.ciamId_ = ciamId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.vin_ = vin_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.emitTimestampInMs_ = emitTimestampInMs_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance()) return this;
        if (other.getSequenceNumber() != 0) {
          setSequenceNumber(other.getSequenceNumber());
        }
        if (!other.getCiamId().isEmpty()) {
          ciamId_ = other.ciamId_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getVin().isEmpty()) {
          vin_ = other.vin_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (other.getEmitTimestampInMs() != 0L) {
          setEmitTimestampInMs(other.getEmitTimestampInMs());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                sequenceNumber_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                ciamId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                vin_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 80: {
                emitTimestampInMs_ = input.readInt64();
                bitField0_ |= 0x00000008;
                break;
              } // case 80
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int sequenceNumber_ ;
      /**
       * <code>int32 sequence_number = 1;</code>
       * @return The sequenceNumber.
       */
      @java.lang.Override
      public int getSequenceNumber() {
        return sequenceNumber_;
      }
      /**
       * <code>int32 sequence_number = 1;</code>
       * @param value The sequenceNumber to set.
       * @return This builder for chaining.
       */
      public Builder setSequenceNumber(int value) {

        sequenceNumber_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 sequence_number = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSequenceNumber() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sequenceNumber_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object ciamId_ = "";
      /**
       * <code>string ciam_id = 2;</code>
       * @return The ciamId.
       */
      public java.lang.String getCiamId() {
        java.lang.Object ref = ciamId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          ciamId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string ciam_id = 2;</code>
       * @return The bytes for ciamId.
       */
      public com.google.protobuf.ByteString
          getCiamIdBytes() {
        java.lang.Object ref = ciamId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ciamId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string ciam_id = 2;</code>
       * @param value The ciamId to set.
       * @return This builder for chaining.
       */
      public Builder setCiamId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ciamId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string ciam_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCiamId() {
        ciamId_ = getDefaultInstance().getCiamId();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string ciam_id = 2;</code>
       * @param value The bytes for ciamId to set.
       * @return This builder for chaining.
       */
      public Builder setCiamIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ciamId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object vin_ = "";
      /**
       * <code>string vin = 3;</code>
       * @return The vin.
       */
      public java.lang.String getVin() {
        java.lang.Object ref = vin_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          vin_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string vin = 3;</code>
       * @return The bytes for vin.
       */
      public com.google.protobuf.ByteString
          getVinBytes() {
        java.lang.Object ref = vin_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          vin_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string vin = 3;</code>
       * @param value The vin to set.
       * @return This builder for chaining.
       */
      public Builder setVin(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        vin_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>string vin = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearVin() {
        vin_ = getDefaultInstance().getVin();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>string vin = 3;</code>
       * @param value The bytes for vin to set.
       * @return This builder for chaining.
       */
      public Builder setVinBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        vin_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private long emitTimestampInMs_ ;
      /**
       * <pre>
       * When was the event emitted (milliseconds in Unix time)
       * </pre>
       *
       * <code>int64 emit_timestamp_in_ms = 10;</code>
       * @return The emitTimestampInMs.
       */
      @java.lang.Override
      public long getEmitTimestampInMs() {
        return emitTimestampInMs_;
      }
      /**
       * <pre>
       * When was the event emitted (milliseconds in Unix time)
       * </pre>
       *
       * <code>int64 emit_timestamp_in_ms = 10;</code>
       * @param value The emitTimestampInMs to set.
       * @return This builder for chaining.
       */
      public Builder setEmitTimestampInMs(long value) {

        emitTimestampInMs_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * When was the event emitted (milliseconds in Unix time)
       * </pre>
       *
       * <code>int64 emit_timestamp_in_ms = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearEmitTimestampInMs() {
        bitField0_ = (bitField0_ & ~0x00000008);
        emitTimestampInMs_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.PreferredDealerChange)
    }

    // @@protoc_insertion_point(class_scope:proto.PreferredDealerChange)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PreferredDealerChange>
        PARSER = new com.google.protobuf.AbstractParser<PreferredDealerChange>() {
      @java.lang.Override
      public PreferredDealerChange parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PreferredDealerChange> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PreferredDealerChange> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AcknowledgeDataChangeEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.AcknowledgeDataChangeEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 sequence_number = 1;</code>
     * @return The sequenceNumber.
     */
    int getSequenceNumber();
  }
  /**
   * Protobuf type {@code proto.AcknowledgeDataChangeEvent}
   */
  public static final class AcknowledgeDataChangeEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.AcknowledgeDataChangeEvent)
      AcknowledgeDataChangeEventOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "AcknowledgeDataChangeEvent");
    }
    // Use AcknowledgeDataChangeEvent.newBuilder() to construct.
    private AcknowledgeDataChangeEvent(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AcknowledgeDataChangeEvent() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeDataChangeEvent_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeDataChangeEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent.Builder.class);
    }

    public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1;
    private int sequenceNumber_ = 0;
    /**
     * <code>int32 sequence_number = 1;</code>
     * @return The sequenceNumber.
     */
    @java.lang.Override
    public int getSequenceNumber() {
      return sequenceNumber_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (sequenceNumber_ != 0) {
        output.writeInt32(1, sequenceNumber_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (sequenceNumber_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sequenceNumber_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent other = (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent) obj;

      if (getSequenceNumber()
          != other.getSequenceNumber()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getSequenceNumber();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.AcknowledgeDataChangeEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.AcknowledgeDataChangeEvent)
        com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeDataChangeEvent_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeDataChangeEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sequenceNumber_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeDataChangeEvent_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent build() {
        com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent result = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sequenceNumber_ = sequenceNumber_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent.getDefaultInstance()) return this;
        if (other.getSequenceNumber() != 0) {
          setSequenceNumber(other.getSequenceNumber());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                sequenceNumber_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int sequenceNumber_ ;
      /**
       * <code>int32 sequence_number = 1;</code>
       * @return The sequenceNumber.
       */
      @java.lang.Override
      public int getSequenceNumber() {
        return sequenceNumber_;
      }
      /**
       * <code>int32 sequence_number = 1;</code>
       * @param value The sequenceNumber to set.
       * @return This builder for chaining.
       */
      public Builder setSequenceNumber(int value) {

        sequenceNumber_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 sequence_number = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSequenceNumber() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sequenceNumber_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.AcknowledgeDataChangeEvent)
    }

    // @@protoc_insertion_point(class_scope:proto.AcknowledgeDataChangeEvent)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AcknowledgeDataChangeEvent>
        PARSER = new com.google.protobuf.AbstractParser<AcknowledgeDataChangeEvent>() {
      @java.lang.Override
      public AcknowledgeDataChangeEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AcknowledgeDataChangeEvent> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AcknowledgeDataChangeEvent> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeDataChangeEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ScopesOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.Scopes)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.proto.Scope scope = 1;</code>
     * @return The enum numeric value on the wire for scope.
     */
    int getScopeValue();
    /**
     * <code>.proto.Scope scope = 1;</code>
     * @return The scope.
     */
    com.daimler.mbcarkit.proto.VehicleEvents.Scope getScope();

    /**
     * <code>string ciamId = 2;</code>
     * @return The ciamId.
     */
    java.lang.String getCiamId();
    /**
     * <code>string ciamId = 2;</code>
     * @return The bytes for ciamId.
     */
    com.google.protobuf.ByteString
        getCiamIdBytes();

    /**
     * <code>string vin = 3;</code>
     * @return The vin.
     */
    java.lang.String getVin();
    /**
     * <code>string vin = 3;</code>
     * @return The bytes for vin.
     */
    com.google.protobuf.ByteString
        getVinBytes();

    /**
     * <code>map&lt;string, string&gt; additional_resources = 4;</code>
     */
    int getAdditionalResourcesCount();
    /**
     * <code>map&lt;string, string&gt; additional_resources = 4;</code>
     */
    boolean containsAdditionalResources(
        java.lang.String key);
    /**
     * Use {@link #getAdditionalResourcesMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getAdditionalResources();
    /**
     * <code>map&lt;string, string&gt; additional_resources = 4;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getAdditionalResourcesMap();
    /**
     * <code>map&lt;string, string&gt; additional_resources = 4;</code>
     */
    /* nullable */
java.lang.String getAdditionalResourcesOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue);
    /**
     * <code>map&lt;string, string&gt; additional_resources = 4;</code>
     */
    java.lang.String getAdditionalResourcesOrThrow(
        java.lang.String key);

    /**
     * <code>string resource_ciam_id = 5;</code>
     * @return The resourceCiamId.
     */
    java.lang.String getResourceCiamId();
    /**
     * <code>string resource_ciam_id = 5;</code>
     * @return The bytes for resourceCiamId.
     */
    com.google.protobuf.ByteString
        getResourceCiamIdBytes();

    /**
     * <code>string resource_vin = 6;</code>
     * @return The resourceVin.
     */
    java.lang.String getResourceVin();
    /**
     * <code>string resource_vin = 6;</code>
     * @return The bytes for resourceVin.
     */
    com.google.protobuf.ByteString
        getResourceVinBytes();
  }
  /**
   * Protobuf type {@code proto.Scopes}
   */
  public static final class Scopes extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.Scopes)
      ScopesOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "Scopes");
    }
    // Use Scopes.newBuilder() to construct.
    private Scopes(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private Scopes() {
      scope_ = 0;
      ciamId_ = "";
      vin_ = "";
      resourceCiamId_ = "";
      resourceVin_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_Scopes_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
        int number) {
      switch (number) {
        case 4:
          return internalGetAdditionalResources();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_Scopes_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.Scopes.class, com.daimler.mbcarkit.proto.VehicleEvents.Scopes.Builder.class);
    }

    public static final int SCOPE_FIELD_NUMBER = 1;
    private int scope_ = 0;
    /**
     * <code>.proto.Scope scope = 1;</code>
     * @return The enum numeric value on the wire for scope.
     */
    @java.lang.Override public int getScopeValue() {
      return scope_;
    }
    /**
     * <code>.proto.Scope scope = 1;</code>
     * @return The scope.
     */
    @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.Scope getScope() {
      com.daimler.mbcarkit.proto.VehicleEvents.Scope result = com.daimler.mbcarkit.proto.VehicleEvents.Scope.forNumber(scope_);
      return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.Scope.UNRECOGNIZED : result;
    }

    public static final int CIAMID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object ciamId_ = "";
    /**
     * <code>string ciamId = 2;</code>
     * @return The ciamId.
     */
    @java.lang.Override
    public java.lang.String getCiamId() {
      java.lang.Object ref = ciamId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        ciamId_ = s;
        return s;
      }
    }
    /**
     * <code>string ciamId = 2;</code>
     * @return The bytes for ciamId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCiamIdBytes() {
      java.lang.Object ref = ciamId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ciamId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VIN_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object vin_ = "";
    /**
     * <code>string vin = 3;</code>
     * @return The vin.
     */
    @java.lang.Override
    public java.lang.String getVin() {
      java.lang.Object ref = vin_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        vin_ = s;
        return s;
      }
    }
    /**
     * <code>string vin = 3;</code>
     * @return The bytes for vin.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getVinBytes() {
      java.lang.Object ref = vin_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        vin_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ADDITIONAL_RESOURCES_FIELD_NUMBER = 4;
    private static final class AdditionalResourcesDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_Scopes_AdditionalResourcesEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    @SuppressWarnings("serial")
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> additionalResources_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetAdditionalResources() {
      if (additionalResources_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            AdditionalResourcesDefaultEntryHolder.defaultEntry);
      }
      return additionalResources_;
    }
    public int getAdditionalResourcesCount() {
      return internalGetAdditionalResources().getMap().size();
    }
    /**
     * <code>map&lt;string, string&gt; additional_resources = 4;</code>
     */
    @java.lang.Override
    public boolean containsAdditionalResources(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetAdditionalResources().getMap().containsKey(key);
    }
    /**
     * Use {@link #getAdditionalResourcesMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getAdditionalResources() {
      return getAdditionalResourcesMap();
    }
    /**
     * <code>map&lt;string, string&gt; additional_resources = 4;</code>
     */
    @java.lang.Override
    public java.util.Map<java.lang.String, java.lang.String> getAdditionalResourcesMap() {
      return internalGetAdditionalResources().getMap();
    }
    /**
     * <code>map&lt;string, string&gt; additional_resources = 4;</code>
     */
    @java.lang.Override
    public /* nullable */
java.lang.String getAdditionalResourcesOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetAdditionalResources().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, string&gt; additional_resources = 4;</code>
     */
    @java.lang.Override
    public java.lang.String getAdditionalResourcesOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetAdditionalResources().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int RESOURCE_CIAM_ID_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object resourceCiamId_ = "";
    /**
     * <code>string resource_ciam_id = 5;</code>
     * @return The resourceCiamId.
     */
    @java.lang.Override
    public java.lang.String getResourceCiamId() {
      java.lang.Object ref = resourceCiamId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        resourceCiamId_ = s;
        return s;
      }
    }
    /**
     * <code>string resource_ciam_id = 5;</code>
     * @return The bytes for resourceCiamId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getResourceCiamIdBytes() {
      java.lang.Object ref = resourceCiamId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        resourceCiamId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RESOURCE_VIN_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private volatile java.lang.Object resourceVin_ = "";
    /**
     * <code>string resource_vin = 6;</code>
     * @return The resourceVin.
     */
    @java.lang.Override
    public java.lang.String getResourceVin() {
      java.lang.Object ref = resourceVin_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        resourceVin_ = s;
        return s;
      }
    }
    /**
     * <code>string resource_vin = 6;</code>
     * @return The bytes for resourceVin.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getResourceVinBytes() {
      java.lang.Object ref = resourceVin_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        resourceVin_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (scope_ != com.daimler.mbcarkit.proto.VehicleEvents.Scope.USER.getNumber()) {
        output.writeEnum(1, scope_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, ciamId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, vin_);
      }
      com.google.protobuf.GeneratedMessage
        .serializeStringMapTo(
          output,
          internalGetAdditionalResources(),
          AdditionalResourcesDefaultEntryHolder.defaultEntry,
          4);
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(resourceCiamId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 5, resourceCiamId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(resourceVin_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 6, resourceVin_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (scope_ != com.daimler.mbcarkit.proto.VehicleEvents.Scope.USER.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, scope_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, ciamId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, vin_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetAdditionalResources().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        additionalResources__ = AdditionalResourcesDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, additionalResources__);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(resourceCiamId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(5, resourceCiamId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(resourceVin_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(6, resourceVin_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.Scopes)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.Scopes other = (com.daimler.mbcarkit.proto.VehicleEvents.Scopes) obj;

      if (scope_ != other.scope_) return false;
      if (!getCiamId()
          .equals(other.getCiamId())) return false;
      if (!getVin()
          .equals(other.getVin())) return false;
      if (!internalGetAdditionalResources().equals(
          other.internalGetAdditionalResources())) return false;
      if (!getResourceCiamId()
          .equals(other.getResourceCiamId())) return false;
      if (!getResourceVin()
          .equals(other.getResourceVin())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SCOPE_FIELD_NUMBER;
      hash = (53 * hash) + scope_;
      hash = (37 * hash) + CIAMID_FIELD_NUMBER;
      hash = (53 * hash) + getCiamId().hashCode();
      hash = (37 * hash) + VIN_FIELD_NUMBER;
      hash = (53 * hash) + getVin().hashCode();
      if (!internalGetAdditionalResources().getMap().isEmpty()) {
        hash = (37 * hash) + ADDITIONAL_RESOURCES_FIELD_NUMBER;
        hash = (53 * hash) + internalGetAdditionalResources().hashCode();
      }
      hash = (37 * hash) + RESOURCE_CIAM_ID_FIELD_NUMBER;
      hash = (53 * hash) + getResourceCiamId().hashCode();
      hash = (37 * hash) + RESOURCE_VIN_FIELD_NUMBER;
      hash = (53 * hash) + getResourceVin().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.Scopes parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Scopes parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Scopes parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Scopes parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Scopes parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Scopes parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Scopes parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Scopes parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.Scopes parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.Scopes parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Scopes parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.Scopes parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.Scopes prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.Scopes}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.Scopes)
        com.daimler.mbcarkit.proto.VehicleEvents.ScopesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_Scopes_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
          int number) {
        switch (number) {
          case 4:
            return internalGetAdditionalResources();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
          int number) {
        switch (number) {
          case 4:
            return internalGetMutableAdditionalResources();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_Scopes_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.Scopes.class, com.daimler.mbcarkit.proto.VehicleEvents.Scopes.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.Scopes.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        scope_ = 0;
        ciamId_ = "";
        vin_ = "";
        internalGetMutableAdditionalResources().clear();
        resourceCiamId_ = "";
        resourceVin_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_Scopes_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.Scopes getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.Scopes.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.Scopes build() {
        com.daimler.mbcarkit.proto.VehicleEvents.Scopes result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.Scopes buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.Scopes result = new com.daimler.mbcarkit.proto.VehicleEvents.Scopes(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.Scopes result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.scope_ = scope_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.ciamId_ = ciamId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.vin_ = vin_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.additionalResources_ = internalGetAdditionalResources();
          result.additionalResources_.makeImmutable();
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.resourceCiamId_ = resourceCiamId_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.resourceVin_ = resourceVin_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.Scopes) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.Scopes)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.Scopes other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.Scopes.getDefaultInstance()) return this;
        if (other.scope_ != 0) {
          setScopeValue(other.getScopeValue());
        }
        if (!other.getCiamId().isEmpty()) {
          ciamId_ = other.ciamId_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getVin().isEmpty()) {
          vin_ = other.vin_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        internalGetMutableAdditionalResources().mergeFrom(
            other.internalGetAdditionalResources());
        bitField0_ |= 0x00000008;
        if (!other.getResourceCiamId().isEmpty()) {
          resourceCiamId_ = other.resourceCiamId_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (!other.getResourceVin().isEmpty()) {
          resourceVin_ = other.resourceVin_;
          bitField0_ |= 0x00000020;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                scope_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                ciamId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                vin_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
                additionalResources__ = input.readMessage(
                    AdditionalResourcesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutableAdditionalResources().getMutableMap().put(
                    additionalResources__.getKey(), additionalResources__.getValue());
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                resourceCiamId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                resourceVin_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int scope_ = 0;
      /**
       * <code>.proto.Scope scope = 1;</code>
       * @return The enum numeric value on the wire for scope.
       */
      @java.lang.Override public int getScopeValue() {
        return scope_;
      }
      /**
       * <code>.proto.Scope scope = 1;</code>
       * @param value The enum numeric value on the wire for scope to set.
       * @return This builder for chaining.
       */
      public Builder setScopeValue(int value) {
        scope_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.proto.Scope scope = 1;</code>
       * @return The scope.
       */
      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.Scope getScope() {
        com.daimler.mbcarkit.proto.VehicleEvents.Scope result = com.daimler.mbcarkit.proto.VehicleEvents.Scope.forNumber(scope_);
        return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.Scope.UNRECOGNIZED : result;
      }
      /**
       * <code>.proto.Scope scope = 1;</code>
       * @param value The scope to set.
       * @return This builder for chaining.
       */
      public Builder setScope(com.daimler.mbcarkit.proto.VehicleEvents.Scope value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        scope_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.proto.Scope scope = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearScope() {
        bitField0_ = (bitField0_ & ~0x00000001);
        scope_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object ciamId_ = "";
      /**
       * <code>string ciamId = 2;</code>
       * @return The ciamId.
       */
      public java.lang.String getCiamId() {
        java.lang.Object ref = ciamId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          ciamId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string ciamId = 2;</code>
       * @return The bytes for ciamId.
       */
      public com.google.protobuf.ByteString
          getCiamIdBytes() {
        java.lang.Object ref = ciamId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ciamId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string ciamId = 2;</code>
       * @param value The ciamId to set.
       * @return This builder for chaining.
       */
      public Builder setCiamId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ciamId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string ciamId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCiamId() {
        ciamId_ = getDefaultInstance().getCiamId();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string ciamId = 2;</code>
       * @param value The bytes for ciamId to set.
       * @return This builder for chaining.
       */
      public Builder setCiamIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ciamId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object vin_ = "";
      /**
       * <code>string vin = 3;</code>
       * @return The vin.
       */
      public java.lang.String getVin() {
        java.lang.Object ref = vin_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          vin_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string vin = 3;</code>
       * @return The bytes for vin.
       */
      public com.google.protobuf.ByteString
          getVinBytes() {
        java.lang.Object ref = vin_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          vin_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string vin = 3;</code>
       * @param value The vin to set.
       * @return This builder for chaining.
       */
      public Builder setVin(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        vin_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>string vin = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearVin() {
        vin_ = getDefaultInstance().getVin();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>string vin = 3;</code>
       * @param value The bytes for vin to set.
       * @return This builder for chaining.
       */
      public Builder setVinBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        vin_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> additionalResources_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetAdditionalResources() {
        if (additionalResources_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              AdditionalResourcesDefaultEntryHolder.defaultEntry);
        }
        return additionalResources_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetMutableAdditionalResources() {
        if (additionalResources_ == null) {
          additionalResources_ = com.google.protobuf.MapField.newMapField(
              AdditionalResourcesDefaultEntryHolder.defaultEntry);
        }
        if (!additionalResources_.isMutable()) {
          additionalResources_ = additionalResources_.copy();
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return additionalResources_;
      }
      public int getAdditionalResourcesCount() {
        return internalGetAdditionalResources().getMap().size();
      }
      /**
       * <code>map&lt;string, string&gt; additional_resources = 4;</code>
       */
      @java.lang.Override
      public boolean containsAdditionalResources(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetAdditionalResources().getMap().containsKey(key);
      }
      /**
       * Use {@link #getAdditionalResourcesMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getAdditionalResources() {
        return getAdditionalResourcesMap();
      }
      /**
       * <code>map&lt;string, string&gt; additional_resources = 4;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, java.lang.String> getAdditionalResourcesMap() {
        return internalGetAdditionalResources().getMap();
      }
      /**
       * <code>map&lt;string, string&gt; additional_resources = 4;</code>
       */
      @java.lang.Override
      public /* nullable */
java.lang.String getAdditionalResourcesOrDefault(
          java.lang.String key,
          /* nullable */
java.lang.String defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetAdditionalResources().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, string&gt; additional_resources = 4;</code>
       */
      @java.lang.Override
      public java.lang.String getAdditionalResourcesOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetAdditionalResources().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      public Builder clearAdditionalResources() {
        bitField0_ = (bitField0_ & ~0x00000008);
        internalGetMutableAdditionalResources().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; additional_resources = 4;</code>
       */
      public Builder removeAdditionalResources(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableAdditionalResources().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
          getMutableAdditionalResources() {
        bitField0_ |= 0x00000008;
        return internalGetMutableAdditionalResources().getMutableMap();
      }
      /**
       * <code>map&lt;string, string&gt; additional_resources = 4;</code>
       */
      public Builder putAdditionalResources(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) { throw new NullPointerException("map value"); }
        internalGetMutableAdditionalResources().getMutableMap()
            .put(key, value);
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; additional_resources = 4;</code>
       */
      public Builder putAllAdditionalResources(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableAdditionalResources().getMutableMap()
            .putAll(values);
        bitField0_ |= 0x00000008;
        return this;
      }

      private java.lang.Object resourceCiamId_ = "";
      /**
       * <code>string resource_ciam_id = 5;</code>
       * @return The resourceCiamId.
       */
      public java.lang.String getResourceCiamId() {
        java.lang.Object ref = resourceCiamId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          resourceCiamId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string resource_ciam_id = 5;</code>
       * @return The bytes for resourceCiamId.
       */
      public com.google.protobuf.ByteString
          getResourceCiamIdBytes() {
        java.lang.Object ref = resourceCiamId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          resourceCiamId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string resource_ciam_id = 5;</code>
       * @param value The resourceCiamId to set.
       * @return This builder for chaining.
       */
      public Builder setResourceCiamId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        resourceCiamId_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>string resource_ciam_id = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearResourceCiamId() {
        resourceCiamId_ = getDefaultInstance().getResourceCiamId();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <code>string resource_ciam_id = 5;</code>
       * @param value The bytes for resourceCiamId to set.
       * @return This builder for chaining.
       */
      public Builder setResourceCiamIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        resourceCiamId_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private java.lang.Object resourceVin_ = "";
      /**
       * <code>string resource_vin = 6;</code>
       * @return The resourceVin.
       */
      public java.lang.String getResourceVin() {
        java.lang.Object ref = resourceVin_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          resourceVin_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string resource_vin = 6;</code>
       * @return The bytes for resourceVin.
       */
      public com.google.protobuf.ByteString
          getResourceVinBytes() {
        java.lang.Object ref = resourceVin_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          resourceVin_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string resource_vin = 6;</code>
       * @param value The resourceVin to set.
       * @return This builder for chaining.
       */
      public Builder setResourceVin(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        resourceVin_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>string resource_vin = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearResourceVin() {
        resourceVin_ = getDefaultInstance().getResourceVin();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <code>string resource_vin = 6;</code>
       * @param value The bytes for resourceVin to set.
       * @return This builder for chaining.
       */
      public Builder setResourceVinBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        resourceVin_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.Scopes)
    }

    // @@protoc_insertion_point(class_scope:proto.Scopes)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.Scopes DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.Scopes();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.Scopes getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Scopes>
        PARSER = new com.google.protobuf.AbstractParser<Scopes>() {
      @java.lang.Override
      public Scopes parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<Scopes> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Scopes> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.Scopes getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DataChangeEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:proto.DataChangeEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .proto.Scopes scopes = 1;</code>
     */
    java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Scopes> 
        getScopesList();
    /**
     * <code>repeated .proto.Scopes scopes = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.Scopes getScopes(int index);
    /**
     * <code>repeated .proto.Scopes scopes = 1;</code>
     */
    int getScopesCount();
    /**
     * <code>repeated .proto.Scopes scopes = 1;</code>
     */
    java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ScopesOrBuilder> 
        getScopesOrBuilderList();
    /**
     * <code>repeated .proto.Scopes scopes = 1;</code>
     */
    com.daimler.mbcarkit.proto.VehicleEvents.ScopesOrBuilder getScopesOrBuilder(
        int index);

    /**
     * <code>string tracking_id = 2;</code>
     * @return The trackingId.
     */
    java.lang.String getTrackingId();
    /**
     * <code>string tracking_id = 2;</code>
     * @return The bytes for trackingId.
     */
    com.google.protobuf.ByteString
        getTrackingIdBytes();

    /**
     * <code>int32 sequence_number = 3;</code>
     * @return The sequenceNumber.
     */
    int getSequenceNumber();
  }
  /**
   * Protobuf type {@code proto.DataChangeEvent}
   */
  public static final class DataChangeEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:proto.DataChangeEvent)
      DataChangeEventOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 6,
        /* suffix= */ "",
        "DataChangeEvent");
    }
    // Use DataChangeEvent.newBuilder() to construct.
    private DataChangeEvent(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private DataChangeEvent() {
      scopes_ = java.util.Collections.emptyList();
      trackingId_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_DataChangeEvent_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_DataChangeEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.class, com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.Builder.class);
    }

    public static final int SCOPES_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Scopes> scopes_;
    /**
     * <code>repeated .proto.Scopes scopes = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Scopes> getScopesList() {
      return scopes_;
    }
    /**
     * <code>repeated .proto.Scopes scopes = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ScopesOrBuilder> 
        getScopesOrBuilderList() {
      return scopes_;
    }
    /**
     * <code>repeated .proto.Scopes scopes = 1;</code>
     */
    @java.lang.Override
    public int getScopesCount() {
      return scopes_.size();
    }
    /**
     * <code>repeated .proto.Scopes scopes = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.Scopes getScopes(int index) {
      return scopes_.get(index);
    }
    /**
     * <code>repeated .proto.Scopes scopes = 1;</code>
     */
    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.ScopesOrBuilder getScopesOrBuilder(
        int index) {
      return scopes_.get(index);
    }

    public static final int TRACKING_ID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object trackingId_ = "";
    /**
     * <code>string tracking_id = 2;</code>
     * @return The trackingId.
     */
    @java.lang.Override
    public java.lang.String getTrackingId() {
      java.lang.Object ref = trackingId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        trackingId_ = s;
        return s;
      }
    }
    /**
     * <code>string tracking_id = 2;</code>
     * @return The bytes for trackingId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTrackingIdBytes() {
      java.lang.Object ref = trackingId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        trackingId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 3;
    private int sequenceNumber_ = 0;
    /**
     * <code>int32 sequence_number = 3;</code>
     * @return The sequenceNumber.
     */
    @java.lang.Override
    public int getSequenceNumber() {
      return sequenceNumber_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < scopes_.size(); i++) {
        output.writeMessage(1, scopes_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trackingId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, trackingId_);
      }
      if (sequenceNumber_ != 0) {
        output.writeInt32(3, sequenceNumber_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < scopes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, scopes_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trackingId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, trackingId_);
      }
      if (sequenceNumber_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, sequenceNumber_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent)) {
        return super.equals(obj);
      }
      com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent other = (com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent) obj;

      if (!getScopesList()
          .equals(other.getScopesList())) return false;
      if (!getTrackingId()
          .equals(other.getTrackingId())) return false;
      if (getSequenceNumber()
          != other.getSequenceNumber()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getScopesCount() > 0) {
        hash = (37 * hash) + SCOPES_FIELD_NUMBER;
        hash = (53 * hash) + getScopesList().hashCode();
      }
      hash = (37 * hash) + TRACKING_ID_FIELD_NUMBER;
      hash = (53 * hash) + getTrackingId().hashCode();
      hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getSequenceNumber();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code proto.DataChangeEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:proto.DataChangeEvent)
        com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_DataChangeEvent_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_DataChangeEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.class, com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.Builder.class);
      }

      // Construct using com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (scopesBuilder_ == null) {
          scopes_ = java.util.Collections.emptyList();
        } else {
          scopes_ = null;
          scopesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        trackingId_ = "";
        sequenceNumber_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_DataChangeEvent_descriptor;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent getDefaultInstanceForType() {
        return com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.getDefaultInstance();
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent build() {
        com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent buildPartial() {
        com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent result = new com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent result) {
        if (scopesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            scopes_ = java.util.Collections.unmodifiableList(scopes_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.scopes_ = scopes_;
        } else {
          result.scopes_ = scopesBuilder_.build();
        }
      }

      private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.trackingId_ = trackingId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.sequenceNumber_ = sequenceNumber_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent) {
          return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent other) {
        if (other == com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent.getDefaultInstance()) return this;
        if (scopesBuilder_ == null) {
          if (!other.scopes_.isEmpty()) {
            if (scopes_.isEmpty()) {
              scopes_ = other.scopes_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureScopesIsMutable();
              scopes_.addAll(other.scopes_);
            }
            onChanged();
          }
        } else {
          if (!other.scopes_.isEmpty()) {
            if (scopesBuilder_.isEmpty()) {
              scopesBuilder_.dispose();
              scopesBuilder_ = null;
              scopes_ = other.scopes_;
              bitField0_ = (bitField0_ & ~0x00000001);
              scopesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetScopesFieldBuilder() : null;
            } else {
              scopesBuilder_.addAllMessages(other.scopes_);
            }
          }
        }
        if (!other.getTrackingId().isEmpty()) {
          trackingId_ = other.trackingId_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.getSequenceNumber() != 0) {
          setSequenceNumber(other.getSequenceNumber());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.daimler.mbcarkit.proto.VehicleEvents.Scopes m =
                    input.readMessage(
                        com.daimler.mbcarkit.proto.VehicleEvents.Scopes.parser(),
                        extensionRegistry);
                if (scopesBuilder_ == null) {
                  ensureScopesIsMutable();
                  scopes_.add(m);
                } else {
                  scopesBuilder_.addMessage(m);
                }
                break;
              } // case 10
              case 18: {
                trackingId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                sequenceNumber_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Scopes> scopes_ =
        java.util.Collections.emptyList();
      private void ensureScopesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          scopes_ = new java.util.ArrayList<com.daimler.mbcarkit.proto.VehicleEvents.Scopes>(scopes_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.Scopes, com.daimler.mbcarkit.proto.VehicleEvents.Scopes.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ScopesOrBuilder> scopesBuilder_;

      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Scopes> getScopesList() {
        if (scopesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(scopes_);
        } else {
          return scopesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public int getScopesCount() {
        if (scopesBuilder_ == null) {
          return scopes_.size();
        } else {
          return scopesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.Scopes getScopes(int index) {
        if (scopesBuilder_ == null) {
          return scopes_.get(index);
        } else {
          return scopesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public Builder setScopes(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.Scopes value) {
        if (scopesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureScopesIsMutable();
          scopes_.set(index, value);
          onChanged();
        } else {
          scopesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public Builder setScopes(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.Scopes.Builder builderForValue) {
        if (scopesBuilder_ == null) {
          ensureScopesIsMutable();
          scopes_.set(index, builderForValue.build());
          onChanged();
        } else {
          scopesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public Builder addScopes(com.daimler.mbcarkit.proto.VehicleEvents.Scopes value) {
        if (scopesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureScopesIsMutable();
          scopes_.add(value);
          onChanged();
        } else {
          scopesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public Builder addScopes(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.Scopes value) {
        if (scopesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureScopesIsMutable();
          scopes_.add(index, value);
          onChanged();
        } else {
          scopesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public Builder addScopes(
          com.daimler.mbcarkit.proto.VehicleEvents.Scopes.Builder builderForValue) {
        if (scopesBuilder_ == null) {
          ensureScopesIsMutable();
          scopes_.add(builderForValue.build());
          onChanged();
        } else {
          scopesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public Builder addScopes(
          int index, com.daimler.mbcarkit.proto.VehicleEvents.Scopes.Builder builderForValue) {
        if (scopesBuilder_ == null) {
          ensureScopesIsMutable();
          scopes_.add(index, builderForValue.build());
          onChanged();
        } else {
          scopesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public Builder addAllScopes(
          java.lang.Iterable<? extends com.daimler.mbcarkit.proto.VehicleEvents.Scopes> values) {
        if (scopesBuilder_ == null) {
          ensureScopesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, scopes_);
          onChanged();
        } else {
          scopesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public Builder clearScopes() {
        if (scopesBuilder_ == null) {
          scopes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          scopesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public Builder removeScopes(int index) {
        if (scopesBuilder_ == null) {
          ensureScopesIsMutable();
          scopes_.remove(index);
          onChanged();
        } else {
          scopesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.Scopes.Builder getScopesBuilder(
          int index) {
        return internalGetScopesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.ScopesOrBuilder getScopesOrBuilder(
          int index) {
        if (scopesBuilder_ == null) {
          return scopes_.get(index);  } else {
          return scopesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public java.util.List<? extends com.daimler.mbcarkit.proto.VehicleEvents.ScopesOrBuilder> 
           getScopesOrBuilderList() {
        if (scopesBuilder_ != null) {
          return scopesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(scopes_);
        }
      }
      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.Scopes.Builder addScopesBuilder() {
        return internalGetScopesFieldBuilder().addBuilder(
            com.daimler.mbcarkit.proto.VehicleEvents.Scopes.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public com.daimler.mbcarkit.proto.VehicleEvents.Scopes.Builder addScopesBuilder(
          int index) {
        return internalGetScopesFieldBuilder().addBuilder(
            index, com.daimler.mbcarkit.proto.VehicleEvents.Scopes.getDefaultInstance());
      }
      /**
       * <code>repeated .proto.Scopes scopes = 1;</code>
       */
      public java.util.List<com.daimler.mbcarkit.proto.VehicleEvents.Scopes.Builder> 
           getScopesBuilderList() {
        return internalGetScopesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.daimler.mbcarkit.proto.VehicleEvents.Scopes, com.daimler.mbcarkit.proto.VehicleEvents.Scopes.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ScopesOrBuilder> 
          internalGetScopesFieldBuilder() {
        if (scopesBuilder_ == null) {
          scopesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.daimler.mbcarkit.proto.VehicleEvents.Scopes, com.daimler.mbcarkit.proto.VehicleEvents.Scopes.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ScopesOrBuilder>(
                  scopes_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          scopes_ = null;
        }
        return scopesBuilder_;
      }

      private java.lang.Object trackingId_ = "";
      /**
       * <code>string tracking_id = 2;</code>
       * @return The trackingId.
       */
      public java.lang.String getTrackingId() {
        java.lang.Object ref = trackingId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          trackingId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string tracking_id = 2;</code>
       * @return The bytes for trackingId.
       */
      public com.google.protobuf.ByteString
          getTrackingIdBytes() {
        java.lang.Object ref = trackingId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          trackingId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string tracking_id = 2;</code>
       * @param value The trackingId to set.
       * @return This builder for chaining.
       */
      public Builder setTrackingId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        trackingId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string tracking_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTrackingId() {
        trackingId_ = getDefaultInstance().getTrackingId();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string tracking_id = 2;</code>
       * @param value The bytes for trackingId to set.
       * @return This builder for chaining.
       */
      public Builder setTrackingIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        trackingId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private int sequenceNumber_ ;
      /**
       * <code>int32 sequence_number = 3;</code>
       * @return The sequenceNumber.
       */
      @java.lang.Override
      public int getSequenceNumber() {
        return sequenceNumber_;
      }
      /**
       * <code>int32 sequence_number = 3;</code>
       * @param value The sequenceNumber to set.
       * @return This builder for chaining.
       */
      public Builder setSequenceNumber(int value) {

        sequenceNumber_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 sequence_number = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSequenceNumber() {
        bitField0_ = (bitField0_ & ~0x00000004);
        sequenceNumber_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:proto.DataChangeEvent)
    }

    // @@protoc_insertion_point(class_scope:proto.DataChangeEvent)
    private static final com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent();
    }

    public static com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<DataChangeEvent>
        PARSER = new com.google.protobuf.AbstractParser<DataChangeEvent>() {
      @java.lang.Override
      public DataChangeEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<DataChangeEvent> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<DataChangeEvent> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.daimler.mbcarkit.proto.VehicleEvents.DataChangeEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_VEPUpdate_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_VEPUpdate_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_VEPUpdate_AttributesEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_VEPUpdate_AttributesEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_VehicleAttributeStatus_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_VehicleAttributeStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_AmgStageModeError_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_AmgStageModeError_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_KeylineActivationStateValue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_KeylineActivationStateValue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_NextDepartureTimeValue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_NextDepartureTimeValue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_RemoteUpdateStartStatus_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_RemoteUpdateStartStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ChargingScheduleActive_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ChargingScheduleActive_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ChargingScheduleActive_ChargingScheduleActiveSchedule_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ChargingScheduleActive_ChargingScheduleActiveSchedule_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_HvBatteryPrecondState_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_HvBatteryPrecondState_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_HvBatteryPrecondRequestState_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_HvBatteryPrecondRequestState_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_PrecondOperabilityState_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_PrecondOperabilityState_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ChargingScheduleRequested_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ChargingScheduleRequested_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ChargingTimer_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ChargingTimer_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ChargingTimerEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ChargingTimerEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ChargingPredictionSoc_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ChargingPredictionSoc_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ChargingPredictionDepartureTime_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ChargingPredictionDepartureTime_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ChargeInletsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ChargeInletsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ChargeInlets_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ChargeInlets_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ChargeFlapsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ChargeFlapsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ChargeFlaps_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ChargeFlaps_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ChargingPowerRestrictions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ChargingPowerRestrictions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ChargingBreakClockTimerValue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ChargingBreakClockTimerValue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_PrecondState_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_PrecondState_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ChargingPowerControl_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ChargingPowerControl_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ChargingBreakClockTimerEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ChargingBreakClockTimerEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ChargeProgramsValue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ChargeProgramsValue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ChargeProgramParameters_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ChargeProgramParameters_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_WeeklyProfileValue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_WeeklyProfileValue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_VVRTimeProfile_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_VVRTimeProfile_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_EcoHistogramValue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_EcoHistogramValue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_EcoHistogramBin_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_EcoHistogramBin_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_SpeedAlertConfigurationValue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_SpeedAlertConfigurationValue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_SpeedAlertConfiguration_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_SpeedAlertConfiguration_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_WeeklySettingsHeadUnitValue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_WeeklySettingsHeadUnitValue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_WeeklySetting_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_WeeklySetting_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_TemperaturePointsValue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_TemperaturePointsValue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_TemperaturePoint_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_TemperaturePoint_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_WeekdayTariffValue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_WeekdayTariffValue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_WeekendTariffValue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_WeekendTariffValue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_Tariff_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_Tariff_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_StateOfChargeProfileValue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_StateOfChargeProfileValue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_StateOfCharge_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_StateOfCharge_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_VEPUpdatesByVIN_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_VEPUpdatesByVIN_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_VEPUpdatesByVIN_UpdatesEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_VEPUpdatesByVIN_UpdatesEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_DebugMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_DebugMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_VehicleStatus_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_VehicleStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_VehicleStatus_AttributesEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_VehicleStatus_AttributesEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_PushMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_PushMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_TrackingEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_TrackingEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_TrackingEvent_PayloadEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_TrackingEvent_PayloadEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_PayloadValue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_PayloadValue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_AcknowledgeVEPRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_AcknowledgeVEPRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_AcknowledgeVEPUpdatesByVIN_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_AcknowledgeVEPUpdatesByVIN_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_ConfigurePingInterval_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_ConfigurePingInterval_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_AcknowledgeVehicleUpdated_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_AcknowledgeVehicleUpdated_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_AcknowledgePreferredDealerChange_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_AcknowledgePreferredDealerChange_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_VehicleUpdated_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_VehicleUpdated_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_PreferredDealerChange_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_PreferredDealerChange_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_AcknowledgeDataChangeEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_AcknowledgeDataChangeEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_Scopes_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_Scopes_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_Scopes_AdditionalResourcesEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_Scopes_AdditionalResourcesEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_proto_DataChangeEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_proto_DataChangeEvent_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\024vehicle-events.proto\022\005proto\032\030service-a" +
      "ctivation.proto\032\021user-events.proto\032\026vehi" +
      "cle-commands.proto\032\014protos.proto\032\020vehicl" +
      "eapi.proto\032\037google/protobuf/timestamp.pr" +
      "oto\"\204\002\n\tVEPUpdate\022\027\n\017sequence_number\030\001 \001" +
      "(\005\022\013\n\003vin\030\002 \001(\t\022\023\n\013full_update\030\017 \001(\010\022\026\n\016" +
      "emit_timestamp\030\n \001(\003\022\034\n\024emit_timestamp_i" +
      "n_ms\030\016 \001(\003\0224\n\nattributes\030\013 \003(\0132 .proto.V" +
      "EPUpdate.AttributesEntry\032P\n\017AttributesEn" +
      "try\022\013\n\003key\030\001 \001(\t\022,\n\005value\030\002 \001(\0132\035.proto." +
      "VehicleAttributeStatus:\0028\001\"\270>\n\026VehicleAt" +
      "tributeStatus\022\025\n\ttimestamp\030\001 \001(\003B\002\030\001\022\027\n\017" +
      "timestamp_in_ms\030\n \001(\003\022\017\n\007changed\030\002 \001(\010\022\016" +
      "\n\006status\030\003 \001(\005\022\023\n\013service_ids\030\036 \003(\005\022\025\n\rd" +
      "isplay_value\030\013 \001(\t\022^\n\033combustion_consump" +
      "tion_unit\030\014 \001(\01627.proto.VehicleAttribute" +
      "Status.CombustionConsumptionUnitH\000\022P\n\024ga" +
      "s_consumption_unit\030\r \001(\01620.proto.Vehicle" +
      "AttributeStatus.GasConsumptionUnitH\000\022`\n\034" +
      "electricity_consumption_unit\030\016 \001(\01628.pro" +
      "to.VehicleAttributeStatus.ElectricityCon" +
      "sumptionUnitH\000\022R\n\023speed_distance_unit\030\017 " +
      "\001(\0162/.proto.VehicleAttributeStatus.Speed" +
      "DistanceUnitB\002\030\001H\000\022=\n\nspeed_unit\030\031 \001(\0162\'" +
      ".proto.VehicleAttributeStatus.SpeedUnitH" +
      "\000\022C\n\rdistance_unit\030\032 \001(\0162*.proto.Vehicle" +
      "AttributeStatus.DistanceUnitH\000\022I\n\020temper" +
      "ature_unit\030\020 \001(\0162-.proto.VehicleAttribut" +
      "eStatus.TemperatureUnitH\000\022C\n\rpressure_un" +
      "it\030\021 \001(\0162*.proto.VehicleAttributeStatus." +
      "PressureUnitH\000\022=\n\nratio_unit\030\022 \001(\0162\'.pro" +
      "to.VehicleAttributeStatus.RatioUnitH\000\022F\n" +
      "\017clock_hour_unit\030\023 \001(\0162+.proto.VehicleAt" +
      "tributeStatus.ClockHourUnitH\000\022\023\n\tint_val" +
      "ue\030\004 \001(\003H\001\022\024\n\nbool_value\030\005 \001(\010H\001\022\026\n\014stri" +
      "ng_value\030\006 \001(\tH\001\022\026\n\014double_value\030\007 \001(\001H\001" +
      "\022\023\n\tnil_value\030\010 \001(\010H\001\022\033\n\021unsupported_val" +
      "ue\030\t \001(\tH\001\022A\n\030temperature_points_value\030\024" +
      " \001(\0132\035.proto.TemperaturePointsValueH\001\0229\n" +
      "\024weekday_tariff_value\030\025 \001(\0132\031.proto.Week" +
      "dayTariffValueH\001\0229\n\024weekend_tariff_value" +
      "\030\026 \001(\0132\031.proto.WeekendTariffValueH\001\022I\n\035s" +
      "tate_of_charge_profile_value\030\027 \001(\0132 .pro" +
      "to.StateOfChargeProfileValueH\001\022M\n\037weekly" +
      "_settings_head_unit_value\030\030 \001(\0132\".proto." +
      "WeeklySettingsHeadUnitValueH\001\022N\n\037speed_a" +
      "lert_configuration_value\030\033 \001(\0132#.proto.S" +
      "peedAlertConfigurationValueH\001\0227\n\023eco_his" +
      "togram_value\030\034 \001(\0132\030.proto.EcoHistogramV" +
      "alueH\001\0229\n\024weekly_profile_value\030\035 \001(\0132\031.p" +
      "roto.WeeklyProfileValueH\001\022;\n\025charge_prog" +
      "rams_value\030\037 \001(\0132\032.proto.ChargeProgramsV" +
      "alueH\001\022M\n\036chargingbreak_clocktimer_value" +
      "\030  \001(\0132#.proto.ChargingBreakClockTimerVa" +
      "lueH\001\022=\n\026charging_power_control\030! \001(\0132\033." +
      "proto.ChargingPowerControlH\001\022L\n\036keyline_" +
      "activation_state_value\030$ \001(\0132\".proto.Key" +
      "lineActivationStateValueH\001\022B\n\031next_depar" +
      "ture_time_value\030% \001(\0132\035.proto.NextDepart" +
      "ureTimeValueH\001\022l\n tcu_connection_state_l" +
      "ow_channel\030& \001(\0162@.proto.VehicleAttribut" +
      "eStatus.TcuConnectionStateLowChannelStat" +
      "usH\001\022E\n\033turn_off_engine_pre_warning\030\' \001(" +
      "\0162\036.proto.TurnOffEnginePreWarningH\001\022d\n+c" +
      "hild_presence_detection_warning_last_eve" +
      "nt\030( \001(\0162-.proto.ChildPresenceDetectionW" +
      "arningLastEventH\001\022[\n&child_presence_dete" +
      "ction_warning_level\030) \001(\0162).proto.ChildP" +
      "resenceDetectionWarningLevelH\001\022T\n\"perfor" +
      "mance_limitation_mode_status\030* \001(\0162&.pro" +
      "to.PerformanceLimitationModeStatusH\001\022.\n\016" +
      "battery_health\030+ \001(\0162\024.proto.BatteryHeal" +
      "thH\001\022,\n\rprecond_state\030, \001(\0132\023.proto.Prec" +
      "ondStateH\001\022E\n\032exterior_monitoring_status" +
      "\030- \001(\0162\037.proto.ExteriorMonitoringStatusH" +
      "\001\022E\n\032interior_monitoring_status\030. \001(\0162\037." +
      "proto.InteriorMonitoringStatusH\001\022D\n\032remo" +
      "te_update_start_status\030/ \001(\0132\036.proto.Rem" +
      "oteUpdateStartStatusH\001\022A\n\030soh_calibratio" +
      "n_required\0300 \001(\0162\035.proto.SohCalibrationR" +
      "equiredH\001\022?\n\027soc_calibration_request\0301 \001" +
      "(\0162\034.proto.SocCalibrationRequestH\001\022?\n\027so" +
      "h_calibration_request\0302 \001(\0162\034.proto.SohC" +
      "alibrationRequestH\001\022;\n\025soh_calibration_s" +
      "tate\0303 \001(\0162\032.proto.SohCalibrationStateH\001" +
      "\022?\n\027soh_calibration_planned\0304 \001(\0162\034.prot" +
      "o.SohCalibrationPlannedH\001\022A\n\030soh_favorab" +
      "le_conditions\0305 \001(\0162\035.proto.SohFavorable" +
      "ConditionsH\001\022K\n\035soh_calibration_notifica" +
      "tions\0306 \001(\0162\".proto.SohCalibrationNotifi" +
      "cationsH\001\022G\n\033charging_power_restrictions" +
      "\0307 \001(\0132 .proto.ChargingPowerRestrictions" +
      "H\001\022c\n\036charging_coupler_error_details\0308 \001" +
      "(\01629.proto.VehicleAttributeStatus.Chargi" +
      "ngCouplerErrorDetailsH\001\022F\n\033charging_stop" +
      "_error_details\0309 \001(\0162\037.proto.ChargingSto" +
      "pErrorDetailsH\001\022q\n&charging_error_vehicl" +
      "e_no_support_400v\030: \001(\0162?.proto.VehicleA" +
      "ttributeStatus.ChargingErrorVehicleNoSup" +
      "port400VH\001\022u\n(charging_error_impossible_" +
      "change_to_400v\030; \001(\0162A.proto.VehicleAttr" +
      "ibuteStatus.ChargingErrorImpossibleChang" +
      "eTo400VH\001\022u\n(charging_error_impossible_c" +
      "hange_to_800v\030< \001(\0162A.proto.VehicleAttri" +
      "buteStatus.ChargingErrorImpossibleChange" +
      "To800VH\001\022C\n\031precond_operability_state\030= " +
      "\001(\0132\036.proto.PrecondOperabilityStateH\001\022A\n" +
      "\030picture_recording_status\030> \001(\0162\035.proto." +
      "PictureRecordingStatusH\001\022U\n#park_event_p" +
      "icture_selection_status\030? \001(\0162&.proto.Pa" +
      "rkEventPictureSelectionStatusH\001\0225\n\022panic" +
      "_alarm_active\030@ \001(\0162\027.proto.PanicAlarmAc" +
      "tiveH\001\022X\n$interior_protection_selection_" +
      "status\030A \001(\0162(.proto.InteriorProtectionS" +
      "electionStatusH\001\022Z\n%interior_protection_" +
      "activation_status\030B \001(\0162).proto.Interior" +
      "ProtectionActivationStatusH\001\022N\n\037tow_prot" +
      "ection_selection_status\030C \001(\0162#.proto.To" +
      "wProtectionSelectionStatusH\001\022P\n tow_prot" +
      "ection_activation_status\030D \001(\0162$.proto.T" +
      "owProtectionActivationStatusH\001\022U\n#vehicl" +
      "e_theft_alarm_inactive_reason\030E \001(\0162&.pr" +
      "oto.VehicleTheftAlarmInactiveReasonH\001\022N\n" +
      "\037park_collision_selection_status\030F \001(\0162#" +
      ".proto.ParkCollisionSelectionStatusH\001\022P\n" +
      " park_collision_activation_status\030G \001(\0162" +
      "$.proto.ParkCollisionActivationStatusH\001\022" +
      "L\n\036park_collision_inactive_reason\030H \001(\0162" +
      "\".proto.ParkCollisionInactiveReasonH\001\022[\n" +
      "&park_collision_picture_transfer_status\030" +
      "I \001(\0162).proto.ParkCollisionPictureTransf" +
      "erStatusH\001\022=\n\026emergency_power_supply\030N \001" +
      "(\0162\033.proto.EmergencyPowerSupplyH\001\0225\n\022evs" +
      "e_pairing_state\030O \001(\0162\027.proto.EvsePairin" +
      "gStateH\001\022?\n\027charging_prediction_soc\030P \001(" +
      "\0132\034.proto.ChargingPredictionSocH\001\022T\n\"cha" +
      "rging_prediction_departure_time\030Q \001(\0132&." +
      "proto.ChargingPredictionDepartureTimeH\001\022" +
      "A\n\030charging_schedule_active\030R \001(\0132\035.prot" +
      "o.ChargingScheduleActiveH\001\0227\n\023dc_chargin" +
      "g_profile\030S \001(\0162\030.proto.DcChargingProfil" +
      "eH\001\022*\n\014charge_flaps\030T \001(\0132\022.proto.Charge" +
      "FlapsH\001\022,\n\rcharge_inlets\030U \001(\0132\023.proto.C" +
      "hargeInletsH\001\022.\n\016charging_timer\030V \001(\0132\024." +
      "proto.ChargingTimerH\001\022[\n&park_event_pict" +
      "ure_transmission_status\030W \001(\0162).proto.Pa" +
      "rkEventPictureTransmissionStatusH\001\022G\n\033ch" +
      "arging_schedule_requested\030X \001(\0132 .proto." +
      "ChargingScheduleRequestedH\001\022F\n\033charging_" +
      "flap_error_details\030Y \001(\0162\037.proto.Chargin" +
      "gFlapErrorDetailsH\001\022I\n\034charging_compatib" +
      "ility_error\030Z \001(\0162!.proto.ChargingCompat" +
      "ibilityErrorH\001\022N\n\037hv_battery_precond_ava" +
      "ilability\030[ \001(\0162#.proto.HvBatteryPrecond" +
      "AvailabilityH\001\022O\n hv_battery_precond_req" +
      "uest_state\030\\ \001(\0132#.proto.HvBatteryPrecon" +
      "dRequestStateH\001\022@\n\030hv_battery_precond_st" +
      "ate\030] \001(\0132\034.proto.HvBatteryPrecondStateH" +
      "\001\0228\n\024amg_stage_mode_state\030^ \001(\0162\030.proto." +
      "AmgStageModeStateH\001\0228\n\024amg_stage_mode_er" +
      "ror\030_ \001(\0132\030.proto.AmgStageModeErrorH\001\"\207\001" +
      "\n\031CombustionConsumptionUnit\022+\n\'UNSPECIFI" +
      "ED_COMBUSTION_CONSUMPTION_UNIT\020\000\022\023\n\017LITE" +
      "R_PER_100KM\020\001\022\020\n\014KM_PER_LITER\020\002\022\n\n\006MPG_U" +
      "K\020\003\022\n\n\006MPG_US\020\004\"\231\001\n\032ElectricityConsumpti" +
      "onUnit\022,\n(UNSPECIFIED_ELECTRICITY_CONSUM" +
      "PTION_UNIT\020\000\022\021\n\rKWH_PER_100KM\020\001\022\016\n\nKM_PE" +
      "R_KWH\020\002\022\021\n\rKWH_PER_100MI\020\003\022\r\n\tM_PER_KWH\020" +
      "\004\022\010\n\004MPGE\020\005\"i\n\022GasConsumptionUnit\022$\n UNS" +
      "PECIFIED_GAS_CONSUMPTION_UNIT\020\000\022\020\n\014KG_PE" +
      "R_100KM\020\001\022\r\n\tKM_PER_KG\020\002\022\014\n\010M_PER_KG\020\003\"W" +
      "\n\021SpeedDistanceUnit\022#\n\037UNSPECIFIED_SPEED" +
      "_DISTANCE_UNIT\020\000\022\014\n\010KM_PER_H\020\001\022\013\n\007M_PER_" +
      "H\020\002\032\002\030\001\"H\n\tSpeedUnit\022\032\n\026UNSPECIFIED_SPEE" +
      "D_UNIT\020\000\022\017\n\013KM_PER_HOUR\020\001\022\016\n\nM_PER_HOUR\020" +
      "\002\"H\n\014DistanceUnit\022\035\n\031UNSPECIFIED_DISTANC" +
      "E_UNIT\020\000\022\016\n\nKILOMETERS\020\001\022\t\n\005MILES\020\002\"P\n\017T" +
      "emperatureUnit\022 \n\034UNSPECIFIED_TEMPERATUR" +
      "E_UNIT\020\000\022\013\n\007CELSIUS\020\001\022\016\n\nFAHRENHEIT\020\002\"H\n" +
      "\014PressureUnit\022\035\n\031UNSPECIFIED_PRESSURE_UN" +
      "IT\020\000\022\007\n\003KPA\020\001\022\007\n\003BAR\020\002\022\007\n\003PSI\020\003\"4\n\tRatio" +
      "Unit\022\032\n\026UNSPECIFIED_RATIO_UNIT\020\000\022\013\n\007PERC" +
      "ENT\020\001\"D\n\rClockHourUnit\022\037\n\033UNSPECIFIED_CL" +
      "OCK_HOUR_UNIT\020\000\022\010\n\004T12H\020\001\022\010\n\004T24H\020\002\"\236\001\n\"" +
      "TcuConnectionStateLowChannelStatus\022 \n\034UN" +
      "KNOWN_TCU_CONNECTION_STATE\020\000\022\027\n\023INITIALL" +
      "Y_CONNECTED\020\001\022\017\n\013RECONNECTED\020\002\022\020\n\014DISCON" +
      "NECTED\020\003\022\032\n\026UNPLANNED_DISCONNECTED\020\004\"\357\002\n" +
      "\033ChargingCouplerErrorDetails\022:\n6CHARING_" +
      "COUPLER_ERROR_DETAILS_NO_INFO_OR_ERROR_M" +
      "ESSAGE\020\000\022B\n>CHARING_COUPLER_ERROR_DETAIL" +
      "S_RELIEVE_CHARGE_COUPLER_AND_RETRY\020\001\022N\nJ" +
      "CHARING_COUPLER_ERROR_DETAILS_CONTACT_SE" +
      "RVICE_HOTLINE_FOR_EMERGENCY_UNLOCK\020\002\022B\n>" +
      "CHARING_COUPLER_ERROR_DETAILS_UNPLUG_AND" +
      "_REPLUG_CHARGE_COUPLER\020\003\022<\n8CHARING_COUP" +
      "LER_ERROR_DETAILS_CHARGE_COUPLER_LOCK_DE" +
      "FECT\020\004\"\247\001\n#ChargingErrorImpossibleChange" +
      "To400V\0224\n0CHARGING_ERROR_IMPOSSIBLE_CHAN" +
      "GE_TO_400V_NO_INFO\020\000\022J\nFCHARGING_ERROR_I" +
      "MPOSSIBLE_CHANGE_TO_400V_400V_IMPOSSIBLE" +
      "_STUCK_TO_800V\020\001\"\247\001\n#ChargingErrorImposs" +
      "ibleChangeTo800V\0224\n0CHARGING_ERROR_IMPOS" +
      "SIBLE_CHANGE_TO_800V_NO_INFO\020\000\022J\nFCHARGI" +
      "NG_ERROR_IMPOSSIBLE_CHANGE_TO_800V_800V_" +
      "IMPOSSIBLE_STUCK_TO_400V\020\001\"\236\001\n!ChargingE" +
      "rrorVehicleNoSupport400V\0222\n.CHARGING_ERR" +
      "OR_VEHICLE_NO_SUPPORT_400V_NO_INFO\020\000\022E\nA" +
      "CHARGING_ERROR_VEHICLE_NO_SUPPORT_400V_4" +
      "00V_CHARGING_NOT_POSSIBLE\020\001B\016\n\014display_u" +
      "nitB\020\n\016attribute_type\"\250\001\n\021AmgStageModeEr" +
      "ror\022\024\n\014rear_spoiler\030\001 \001(\010\022\020\n\010bow_wave\030\002 " +
      "\001(\010\022\020\n\010diffuser\030\003 \001(\010\022\r\n\005light\030\004 \001(\010\022\016\n\006" +
      "mirror\030\005 \001(\010\022\r\n\005sound\030\006 \001(\010\022\032\n\022air_contr" +
      "ol_system\030\007 \001(\010\022\017\n\007venturi\030\010 \001(\010\"e\n\033Keyl" +
      "ineActivationStateValue\022-\n\005state\030\001 \001(\0162\036" +
      ".proto.KeylineActivationStates\022\027\n\017active" +
      "_keylines\030\002 \003(\003\"6\n\026NextDepartureTimeValu" +
      "e\022\014\n\004hour\030\001 \001(\003\022\016\n\006minute\030\002 \001(\003\"\215\001\n\027Remo" +
      "teUpdateStartStatus\022\036\n\026duration_after_ru" +
      "ntime\030\001 \001(\005\022\022\n\npackage_id\030\002 \001(\t\022*\n\rupdat" +
      "e_status\030\003 \001(\0162\023.proto.UpdateStatus\022\022\n\nr" +
      "elease_id\030\004 \001(\t\"\360\025\n\026ChargingScheduleActi" +
      "ve\022\"\n\026schedule_id_deprecated\030\001 \001(\003B\002\030\001\022a" +
      "\n\026use_case_id_deprecated\030\002 \001(\0162=.proto.C" +
      "hargingScheduleActive.ChargingScheduleAc" +
      "tiveUseCaseIdB\002\030\001\022.\n\nstart_time\030\003 \001(\0132\032." +
      "google.protobuf.Timestamp\022U\n\014offline_mod" +
      "e\030\004 \001(\0162?.proto.ChargingScheduleActive.C" +
      "hargingScheduleActiveOfflineMode\022N\n\010sche" +
      "dule\030\005 \003(\0132<.proto.ChargingScheduleActiv" +
      "e.ChargingScheduleActiveSchedule\0225\n\013use_" +
      "case_id\030\006 \001(\0162 .proto.ChargingScheduleUs" +
      "eCaseId\0223\n\022schedule_id_status\030\007 \001(\0162\027.pr" +
      "oto.ScheduleIdStatus\032O\n\036ChargingSchedule" +
      "ActiveSchedule\022\024\n\014power_values\030\001 \001(\001\022\027\n\017" +
      "duration_values\030\002 \001(\003\"\204\020\n\037ChargingSchedu" +
      "leActiveUseCaseId\0227\n3CHARGING_SCHEDULE_A" +
      "CTIVE_USE_CASE_ID_SMART_CHARGING\020\000\022F\nBCH" +
      "ARGING_SCHEDULE_ACTIVE_USE_CASE_ID_MERCE" +
      "DES_INTELLIGENT_CHARGING\020\001\022@\n<CHARGING_S" +
      "CHEDULE_ACTIVE_USE_CASE_ID_BETA_COMMUNIT" +
      "Y_CHARGING\020\002\0227\n3CHARGING_SCHEDULE_ACTIVE" +
      "_USE_CASE_ID_SOLAR_CHARGING\020\n\0227\n3CHARGIN" +
      "G_SCHEDULE_ACTIVE_USE_CASE_ID_GREEN_CHAR" +
      "GING\020\013\022;\n7CHARGING_SCHEDULE_ACTIVE_USE_C" +
      "ASE_ID_EFFICIENT_CHARGING\020\014\022>\n:CHARGING_" +
      "SCHEDULE_ACTIVE_USE_CASE_ID_ECO_FRIENDLY" +
      "_CHARGING\020\r\022=\n9CHARGING_SCHEDULE_ACTIVE_" +
      "USE_CASE_ID_SUSTAINABLE_CHARGING\020\016\022=\n9CH" +
      "ARGING_SCHEDULE_ACTIVE_USE_CASE_ID_INTEL" +
      "LIGENT_CHARGING\020\017\022@\n<CHARGING_SCHEDULE_A" +
      "CTIVE_USE_CASE_ID_WORKPLACE_CHARGING_PLA" +
      "N\020\020\022;\n7CHARGING_SCHEDULE_ACTIVE_USE_CASE" +
      "_ID_HOME_CHARGING_PLAN\020\021\022?\n;CHARGING_SCH" +
      "EDULE_ACTIVE_USE_CASE_ID_FLEET_MANAGED_C" +
      "HARGING\020\022\022A\n=CHARGING_SCHEDULE_ACTIVE_US" +
      "E_CASE_ID_PRICE_OPTIMIZED_CHARGING\020\023\022B\n>" +
      "CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_BAT" +
      "TERY_FRIENDLY_CHARGING\020\024\022J\nFCHARGING_SCH" +
      "EDULE_ACTIVE_USE_CASE_ID_EXTERNAL_NOISE_" +
      "OPTIMIZED_CHARGING\020\025\022J\nFCHARGING_SCHEDUL" +
      "E_ACTIVE_USE_CASE_ID_VIDEO_WATCHING_OPTI" +
      "MIZED_CHARGING\020\026\022A\n=CHARGING_SCHEDULE_AC" +
      "TIVE_USE_CASE_ID_TIME_CONTROLLED_CHARGIN" +
      "G\020\027\022>\n:CHARGING_SCHEDULE_ACTIVE_USE_CASE" +
      "_ID_PEAK_SHAVING_CHARGING\020\030\022G\nCCHARGING_" +
      "SCHEDULE_ACTIVE_USE_CASE_ID_DYNAMIC_LOAD" +
      "_BALANCED_CHARGING\020\031\022C\n?CHARGING_SCHEDUL" +
      "E_ACTIVE_USE_CASE_ID_BUSINESS_SPECIFIC_C" +
      "HARGING\020\032\022A\n=CHARGING_SCHEDULE_ACTIVE_US" +
      "E_CASE_ID_PREFERRED_CHARGING_TIMES\020\033\022.\n*" +
      "CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_ENP" +
      "AL\020d\022/\n+CHARGING_SCHEDULE_ACTIVE_USE_CAS" +
      "E_ID_TIBBER\020e\022;\n7CHARGING_SCHEDULE_ACTIV" +
      "E_USE_CASE_ID_THE_MOBILITY_HOUSE\020f\0220\n,CH" +
      "ARGING_SCHEDULE_ACTIVE_USE_CASE_ID_AWATT" +
      "AR\020g\0220\n,CHARGING_SCHEDULE_ACTIVE_USE_CAS" +
      "E_ID_TRONITY\020h\022-\n(CHARGING_SCHEDULE_ACTI" +
      "VE_USE_CASE_ID_DPD\020\310\001\0227\n2CHARGING_SCHEDU" +
      "LE_ACTIVE_USE_CASE_ID_DEUTSCHE_POST\020\311\001\0223" +
      "\n.CHARGING_SCHEDULE_ACTIVE_USE_CASE_ID_H" +
      "ACKATHON\020\372\001\0226\n1CHARGING_SCHEDULE_ACTIVE_" +
      "USE_CASE_ID_SANDBOX_MODE\020\373\001\0228\n3CHARGING_" +
      "SCHEDULE_ACTIVE_USE_CASE_ID_DEVELOPER_MO" +
      "DE\020\374\001\0223\n.CHARGING_SCHEDULE_ACTIVE_USE_CA" +
      "SE_ID_TEST_MODE\020\375\001\0224\n/CHARGING_SCHEDULE_" +
      "ACTIVE_USE_CASE_ID_DEBUG_MODE\020\376\001\032\002\030\001\"\263\001\n" +
      "!ChargingScheduleActiveOfflineMode\0221\n-CH" +
      "ARGING_SCHEDULE_ACTIVE_OFFLINE_MODE_UNKN" +
      "OWN\020\000\022-\n)CHARGING_SCHEDULE_ACTIVE_OFFLIN" +
      "E_MODE_OFF\020\001\022,\n(CHARGING_SCHEDULE_ACTIVE" +
      "_OFFLINE_MODE_ON\020\002\"\217\001\n\025HvBatteryPrecondS" +
      "tate\0227\n\010charging\030\001 \001(\0162%.proto.HvBattery" +
      "PrecondStatesCharging\022=\n\013discharging\030\002 \001" +
      "(\0162(.proto.HvBatteryPrecondStatesDischar" +
      "ging\"\346\001\n\034HvBatteryPrecondRequestState\022*\n" +
      "\rmain_category\030\001 \001(\0162\023.proto.MainCategor" +
      "y\022(\n\014sub_category\030\002 \001(\0162\022.proto.SubCateg" +
      "ory\0222\n\021specific_category\030\003 \001(\0162\027.proto.S" +
      "pecificCategory\022\035\n\006method\030\004 \001(\0162\r.proto." +
      "Method\022\035\n\006status\030\005 \001(\0162\r.proto.Status\"\321\003" +
      "\n\027PrecondOperabilityState\022\031\n\021precond_ava" +
      "ilable\030\001 \001(\010\022M\n\023precond_error_state\030\002 \001(" +
      "\01620.proto.PrecondOperabilityState.Precon" +
      "dErrorState\"\313\002\n\021PrecondErrorState\022 \n\034PRE" +
      "COND_ERROR_STATE_NO_ERROR\020\000\022\'\n#PRECOND_E" +
      "RROR_STATE_PLAY_PROTECTION\020\001\0222\n.PRECOND_" +
      "ERROR_STATE_NO_ENERGY_BUDGET_AVAILABLE\020\002" +
      "\022\"\n\036PRECOND_ERROR_STATE_LOW_BUDGET\020\003\022,\n(" +
      "PRECOND_ERROR_STATE_SYSTEM_NOT_AVAILABLE" +
      "\020\004\022/\n+PRECOND_ERROR_STATE_PRECONDITIONIN" +
      "G_ABORTED\020\005\0224\n0PRECOND_ERROR_STATE_REGUL" +
      "AR_CLIMATIZATION_ACTIVE\020\006\"\236\020\n\031ChargingSc" +
      "heduleRequested\022M\n\022schedule_id_status\030\001 " +
      "\001(\01621.proto.ChargingScheduleRequested.Sc" +
      "heduleIdStatus\022O\n\013use_case_id\030\002 \001(\0162:.pr" +
      "oto.ChargingScheduleRequested.ChargingSc" +
      "heduleUseCaseId\"R\n\020ScheduleIdStatus\022\036\n\032S" +
      "CHEDULE_ID_STATUS_DELETED\020\000\022\036\n\032SCHEDULE_" +
      "ID_STATUS_INITIAL\020\001\"\214\016\n\031ChargingSchedule" +
      "UseCaseId\0220\n,CHARGING_SCHEDULE_USE_CASE_" +
      "ID_SMART_CHARGING\020\000\022?\n;CHARGING_SCHEDULE" +
      "_USE_CASE_ID_MERCEDES_INTELLIGENT_CHARGI" +
      "NG\020\001\0229\n5CHARGING_SCHEDULE_USE_CASE_ID_BE" +
      "TA_COMMUNITY_CHARGING\020\002\0220\n,CHARGING_SCHE" +
      "DULE_USE_CASE_ID_SOLAR_CHARGING\020\003\0220\n,CHA" +
      "RGING_SCHEDULE_USE_CASE_ID_GREEN_CHARGIN" +
      "G\020\004\0224\n0CHARGING_SCHEDULE_USE_CASE_ID_EFF" +
      "ICIENT_CHARGING\020\005\0227\n3CHARGING_SCHEDULE_U" +
      "SE_CASE_ID_ECO_FRIENDLY_CHARGING\020\006\0226\n2CH" +
      "ARGING_SCHEDULE_USE_CASE_ID_SUSTAINABLE_" +
      "CHARGING\020\007\0226\n2CHARGING_SCHEDULE_USE_CASE" +
      "_ID_INTELLIGENT_CHARGING\020\010\0229\n5CHARGING_S" +
      "CHEDULE_USE_CASE_ID_WORKPLACE_CHARGING_P" +
      "LAN\020\t\0224\n0CHARGING_SCHEDULE_USE_CASE_ID_H" +
      "OME_CHARGING_PLAN\020\n\0228\n4CHARGING_SCHEDULE" +
      "_USE_CASE_ID_FLEET_MANAGED_CHARGING\020\013\022:\n" +
      "6CHARGING_SCHEDULE_USE_CASE_ID_PRICE_OPT" +
      "IMIZED_CHARGING\020\014\022;\n7CHARGING_SCHEDULE_U" +
      "SE_CASE_ID_BATTERY_FRIENDLY_CHARGING\020\r\022C" +
      "\n?CHARGING_SCHEDULE_USE_CASE_ID_EXTERNAL" +
      "_NOISE_OPTIMIZED_CHARGING\020\016\022C\n?CHARGING_" +
      "SCHEDULE_USE_CASE_ID_VIDEO_WATCHING_OPTI" +
      "MIZED_CHARGING\020\017\022:\n6CHARGING_SCHEDULE_US" +
      "E_CASE_ID_TIME_CONTROLLED_CHARGING\020\020\0227\n3" +
      "CHARGING_SCHEDULE_USE_CASE_ID_PEAK_SHAVI" +
      "NG_CHARGING\020\021\022@\n<CHARGING_SCHEDULE_USE_C" +
      "ASE_ID_DYNAMIC_LOAD_BALANCED_CHARGING\020\022\022" +
      "<\n8CHARGING_SCHEDULE_USE_CASE_ID_BUSINES" +
      "S_SPECIFIC_CHARGING\020\023\022:\n6CHARGING_SCHEDU" +
      "LE_USE_CASE_ID_PREFERRED_CHARGING_TIMES\020" +
      "\024\022\'\n#CHARGING_SCHEDULE_USE_CASE_ID_ENPAL" +
      "\020\025\022(\n$CHARGING_SCHEDULE_USE_CASE_ID_TIBB" +
      "ER\020\026\0224\n0CHARGING_SCHEDULE_USE_CASE_ID_TH" +
      "E_MOBILITY_HOUSE\020\027\022)\n%CHARGING_SCHEDULE_" +
      "USE_CASE_ID_AWATTAR\020\030\022)\n%CHARGING_SCHEDU" +
      "LE_USE_CASE_ID_TRONITY\020\031\022%\n!CHARGING_SCH" +
      "EDULE_USE_CASE_ID_DPD\020\032\022/\n+CHARGING_SCHE" +
      "DULE_USE_CASE_ID_DEUTSCHE_POST\020\033\022+\n\'CHAR" +
      "GING_SCHEDULE_USE_CASE_ID_HACKATHON\020\034\022.\n" +
      "*CHARGING_SCHEDULE_USE_CASE_ID_SANDBOX_M" +
      "ODE\020\035\0220\n,CHARGING_SCHEDULE_USE_CASE_ID_D" +
      "EVELOPER_MODE\020\036\022+\n\'CHARGING_SCHEDULE_USE" +
      "_CASE_ID_TEST_MODE\020\037\022,\n(CHARGING_SCHEDUL" +
      "E_USE_CASE_ID_DEBUG_MODE\020 \";\n\rChargingTi" +
      "mer\022*\n\007entries\030\001 \003(\0132\031.proto.ChargingTim" +
      "erEntry\"\215\003\n\022ChargingTimerEntry\022\017\n\007timerI" +
      "d\030\001 \001(\003\022=\n\006action\030\002 \001(\0162-.proto.Charging" +
      "TimerEntry.ChargingTimerAction\022\027\n\017start_" +
      "time_hour\030\003 \001(\005\022\026\n\016start_time_min\030\004 \001(\005\022" +
      "\025\n\rend_time_hour\030\005 \001(\005\022\024\n\014end_time_min\030\006" +
      " \001(\005\022\"\n\003day\030\007 \003(\0162\025.proto.TimeProfileDay" +
      "\"\244\001\n\023ChargingTimerAction\022!\n\035CHARGING_TIM" +
      "ER_ACTION_UNKNOWN\020\000\022%\n!CHARGING_TIMER_AC" +
      "TION_DEACTIVATED\020\001\022 \n\034CHARGING_TIMER_ACT" +
      "ION_ACTIVE\020\002\022!\n\035CHARGING_TIMER_ACTION_DE" +
      "LETED\020\003\"z\n\025ChargingPredictionSoc\0226\n\022pred" +
      "icted_end_time\030\001 \001(\0132\032.google.protobuf.T" +
      "imestamp\022)\n!predicted_electrical_energy_" +
      "range\030\002 \001(\003\"c\n\037ChargingPredictionDepartu" +
      "reTime\022\025\n\rpredicted_soc\030\001 \001(\005\022)\n!predict" +
      "ed_electrical_energy_range\030\002 \001(\003\"\225\005\n\021Cha" +
      "rgeInletsEntry\022\n\n\002id\030\001 \001(\003\022H\n\rcoupler_st" +
      "ate\030\002 \001(\01621.proto.ChargeInletsEntry.Char" +
      "geInletsCouplerState\022B\n\nlock_state\030\003 \001(\016" +
      "2..proto.ChargeInletsEntry.ChargeInletsL" +
      "ockState\"\372\001\n\030ChargeInletsCouplerState\022\'\n" +
      "#CHARGE_INLETS_COUPLER_STATE_UNKNOWN\020\000\022\'" +
      "\n#CHARGE_INLETS_COUPLER_STATE_PLUGGED\020\001\022" +
      "/\n+CHARGE_INLETS_COUPLER_STATE_VEHICLE_P" +
      "LUGGED\020\002\0223\n/CHARGE_INLETS_COUPLER_STATE_" +
      "VEHICLE_NOT_PLUGGED\020\003\022&\n\"CHARGE_INLETS_C" +
      "OUPLER_STATE_DEFECT\020\004\"\350\001\n\025ChargeInletsLo" +
      "ckState\022$\n CHARGE_INLETS_LOCK_STATE_UNKN" +
      "OWN\020\000\022%\n!CHARGE_INLETS_LOCK_STATE_UNLOCK" +
      "ED\020\001\022#\n\037CHARGE_INLETS_LOCK_STATE_LOCKED\020" +
      "\002\0221\n-CHARGE_INLETS_LOCK_STATE_LOCK_STATE" +
      "_NOT_CLEAR\020\003\022*\n&CHARGE_INLETS_LOCK_STATE" +
      "_NOT_AVAILABLE\020\004\"9\n\014ChargeInlets\022)\n\007entr",
      "ies\030\001 \003(\0132\030.proto.ChargeInletsEntry\"W\n\020C" +
      "hargeFlapsEntry\022\n\n\002id\030\001 \001(\003\0227\n\016position_" +
      "state\030\002 \001(\0162\037.proto.ChargeFlapsPositionS" +
      "tate\"7\n\013ChargeFlaps\022(\n\007entries\030\001 \003(\0132\027.p" +
      "roto.ChargeFlapsEntry\"`\n\031ChargingPowerRe" +
      "strictions\022C\n\032charging_power_restriction" +
      "\030\001 \003(\0162\037.proto.ChargingPowerRestriction\"" +
      "k\n\034ChargingBreakClockTimerValue\022K\n\036charg" +
      "ingbreak_clocktimer_entry\030\001 \003(\0132#.proto." +
      "ChargingBreakClockTimerEntry\"\201\001\n\014Precond" +
      "State\022\030\n\020activation_state\030\001 \001(\010\022!\n\031preco" +
      "nd_immediate_support\030\002 \001(\010\0224\n\023precond_st" +
      "ate_types\030\003 \003(\0162\027.proto.PrecondStateType" +
      "\"\263\002\n\024ChargingPowerControl\022P\n\rcharge_stat" +
      "us\030\001 \001(\01629.proto.ChargingPowerControl.Ch" +
      "argingStatusForPowerControl\022\025\n\rctrl_dura" +
      "tion\030\002 \001(\005\022\021\n\tctrl_info\030\003 \001(\005\022\024\n\014charge_" +
      "power\030\004 \001(\005\022\021\n\tserv_stat\030\005 \001(\005\022\022\n\nserv_a" +
      "vail\030\006 \001(\005\022\020\n\010use_case\030\007 \001(\005\"P\n\035Charging" +
      "StatusForPowerControl\022\017\n\013NOT_DEFINED\020\000\022\017" +
      "\n\013DEACTIVATED\020\001\022\r\n\tACTIVATED\020\002\"\306\001\n\034Charg" +
      "ingBreakClockTimerEntry\0229\n\006status\030\001 \001(\0162" +
      ").proto.ChargingBreakClockTimerEntryStat" +
      "us\022\023\n\013endTimeHour\030\002 \001(\005\022\025\n\rendTimeMinute" +
      "\030\003 \001(\005\022\025\n\rstartTimeHour\030\004 \001(\005\022\027\n\017startTi" +
      "meMinute\030\005 \001(\005\022\017\n\007timerId\030\006 \001(\005\"X\n\023Charg" +
      "eProgramsValue\022A\n\031charge_program_paramet" +
      "ers\030\001 \003(\0132\036.proto.ChargeProgramParameter" +
      "s\"\344\002\n\027ChargeProgramParameters\022;\n\016charge_" +
      "program\030\001 \001(\0162\024.proto.ChargeProgramR\rcha" +
      "rgeprogram\022\027\n\007max_soc\030\002 \001(\005R\006maxSoc\022\037\n\013a" +
      "uto_unlock\030\003 \001(\010R\nautounlock\0226\n\027location" +
      "_based_charging\030\004 \001(\010R\025locationbasedchar" +
      "ging\022%\n\016weekly_profile\030\005 \001(\010R\rweeklyprof" +
      "ile\022\036\n\nclockTimer\030\006 \001(\010R\nclockTimer\0220\n\024m" +
      "ax_charging_current\030\007 \001(\005R\022MaxChargingCu" +
      "rrent\022!\n\014eco_charging\030\010 \001(\010R\013EcoCharging" +
      "\"\315\003\n\022WeeklyProfileValue\022T\n\'single_time_p" +
      "rofile_entries_activatable\030\001 \001(\010R#single" +
      "TimeProfileEntriesActivatable\022R\n\'max_num" +
      "ber_of_weekly_time_profile_slots\030\002 \001(\005R!" +
      "maxNumberOfWeeklyTimeProfileSlots\022<\n\033max" +
      "_number_of_time_profiles\030\003 \001(\005R\027maxNumbe" +
      "rOfTimeProfiles\022M\n$current_number_of_tim" +
      "e_profile_slots\030\004 \001(\005R\037currentNumberOfTi" +
      "meProfileSlots\022D\n\037current_number_of_time" +
      "_profiles\030\005 \001(\005R\033currentNumberOfTimeProf" +
      "iles\022:\n\rtime_profiles\030\006 \003(\0132\025.proto.VVRT" +
      "imeProfileR\014timeProfiles\"\302\001\n\016VVRTimeProf" +
      "ile\022\026\n\nidentifier\030\001 \001(\005R\002id\022\022\n\004hour\030\002 \001(" +
      "\005R\004hour\022\023\n\006minute\030\003 \001(\005R\003min\022(\n\004days\030\004 \003" +
      "(\0162\025.proto.TimeProfileDayR\003day\022\026\n\006active" +
      "\030\005 \001(\010R\006active\022-\n\026application_identifier" +
      "\030\006 \001(\005R\rapplicationId\"G\n\021EcoHistogramVal" +
      "ue\0222\n\022eco_histogram_bins\030\001 \003(\0132\026.proto.E" +
      "coHistogramBin\"2\n\017EcoHistogramBin\022\020\n\010int" +
      "erval\030\001 \001(\001\022\r\n\005value\030\002 \001(\001\"b\n\034SpeedAlert" +
      "ConfigurationValue\022B\n\032speed_alert_config" +
      "urations\030\001 \003(\0132\036.proto.SpeedAlertConfigu" +
      "ration\"p\n\027SpeedAlertConfiguration\022\032\n\022end" +
      "_timestamp_in_s\030\001 \001(\003\022\030\n\020threshold_in_kp" +
      "h\030\002 \001(\005\022\037\n\027threshold_display_value\030\003 \001(\t" +
      "\"L\n\033WeeklySettingsHeadUnitValue\022-\n\017weekl" +
      "y_settings\030\001 \003(\0132\024.proto.WeeklySetting\"<" +
      "\n\rWeeklySetting\022\013\n\003day\030\001 \001(\005\022\036\n\026minutes_" +
      "since_midnight\030\002 \001(\005\"M\n\026TemperaturePoint" +
      "sValue\0223\n\022temperature_points\030\001 \003(\0132\027.pro" +
      "to.TemperaturePoint\"X\n\020TemperaturePoint\022" +
      "\014\n\004zone\030\001 \001(\t\022\023\n\013temperature\030\002 \001(\001\022!\n\031te" +
      "mperature_display_value\030\003 \001(\t\"4\n\022Weekday" +
      "TariffValue\022\036\n\007tariffs\030\001 \003(\0132\r.proto.Tar" +
      "iff\"4\n\022WeekendTariffValue\022\036\n\007tariffs\030\001 \003" +
      "(\0132\r.proto.Tariff\"$\n\006Tariff\022\014\n\004rate\030\001 \001(" +
      "\005\022\014\n\004time\030\002 \001(\005\"K\n\031StateOfChargeProfileV" +
      "alue\022.\n\020states_of_charge\030\001 \003(\0132\024.proto.S" +
      "tateOfCharge\"@\n\rStateOfCharge\022\026\n\016timesta" +
      "mp_in_s\030\001 \001(\003\022\027\n\017state_of_charge\030\002 \001(\005\"\242" +
      "\001\n\017VEPUpdatesByVIN\022\027\n\017sequence_number\030\002 " +
      "\001(\005\0224\n\007updates\030\001 \003(\0132#.proto.VEPUpdatesB" +
      "yVIN.UpdatesEntry\032@\n\014UpdatesEntry\022\013\n\003key" +
      "\030\001 \001(\t\022\037\n\005value\030\002 \001(\0132\020.proto.VEPUpdate:" +
      "\0028\001\"\037\n\014DebugMessage\022\017\n\007message\030\001 \001(\t\"\250\001\n" +
      "\rVehicleStatus\022\013\n\003vin\030\001 \001(\t\0228\n\nattribute" +
      "s\030\002 \003(\0132$.proto.VehicleStatus.Attributes" +
      "Entry\032P\n\017AttributesEntry\022\013\n\003key\030\001 \001(\t\022,\n" +
      "\005value\030\002 \001(\0132\035.proto.VehicleAttributeSta" +
      "tus:\0028\001\"\257\007\n\013PushMessage\022\023\n\013tracking_id\030\005" +
      " \001(\t\022%\n\tvepUpdate\030\001 \001(\0132\020.proto.VEPUpdat" +
      "eH\000\022,\n\nvepUpdates\030\002 \001(\0132\026.proto.VEPUpdat" +
      "esByVINH\000\022+\n\014debugMessage\030\003 \001(\0132\023.proto." +
      "DebugMessageH\000\022B\n\026service_status_updates" +
      "\030\t \001(\0132 .proto.ServiceStatusUpdatesByVIN" +
      "H\000\022;\n\025service_status_update\030\r \001(\0132\032.prot" +
      "o.ServiceStatusUpdateH\000\0221\n\020user_data_upd" +
      "ate\030\n \001(\0132\025.proto.UserDataUpdateH\000\022O\n us" +
      "er_vehicle_auth_changed_update\030\016 \001(\0132#.p" +
      "roto.UserVehicleAuthChangedUpdateH\000\0227\n\023u" +
      "ser_picture_update\030\013 \001(\0132\030.proto.UserPic" +
      "tureUpdateH\000\022/\n\017user_pin_update\030\014 \001(\0132\024." +
      "proto.UserPINUpdateH\000\0220\n\017vehicle_updated" +
      "\030\017 \001(\0132\025.proto.VehicleUpdatedH\000\022?\n\027prefe" +
      "rred_dealer_change\030\020 \001(\0132\034.proto.Preferr" +
      "edDealerChangeH\000\022X\n%apptwin_command_stat" +
      "us_updates_by_vin\030\021 \001(\0132\'.proto.AppTwinC" +
      "ommandStatusUpdatesByVINH\000\022O\n\037apptwin_pe" +
      "nding_command_request\030\022 \001(\0132$.proto.AppT" +
      "winPendingCommandsRequestH\000\0224\n\021assigned_" +
      "vehicles\030\023 \001(\0132\027.proto.AssignedVehiclesH" +
      "\000\0223\n\021data_change_event\030\025 \001(\0132\026.proto.Dat" +
      "aChangeEventH\000B\005\n\003msgJ\004\010\007\020\010J\004\010\010\020\t\"\304\001\n\rTr" +
      "ackingEvent\022\023\n\013tracking_id\030\001 \001(\t\022\021\n\ttime" +
      "stamp\030\002 \001(\003\022\022\n\nevent_type\030\003 \001(\t\0222\n\007paylo" +
      "ad\030\004 \003(\0132!.proto.TrackingEvent.PayloadEn" +
      "try\032C\n\014PayloadEntry\022\013\n\003key\030\001 \001(\t\022\"\n\005valu" +
      "e\030\002 \001(\0132\023.proto.PayloadValue:\0028\001\"p\n\014Payl" +
      "oadValue\022\026\n\014string_value\030\001 \001(\tH\000\022\023\n\tint_" +
      "value\030\002 \001(\005H\000\022\024\n\nbool_value\030\003 \001(\010H\000\022\026\n\014d" +
      "ouble_value\030\004 \001(\001H\000B\005\n\003msg\"4\n\025Acknowledg" +
      "eVEPRequest\022\027\n\017sequence_number\030\001 \001(\005:\002\030\001" +
      "\"5\n\032AcknowledgeVEPUpdatesByVIN\022\027\n\017sequen" +
      "ce_number\030\001 \001(\005\"1\n\025ConfigurePingInterval" +
      "\022\030\n\020ping_time_millis\030\001 \001(\005\"4\n\031Acknowledg" +
      "eVehicleUpdated\022\027\n\017sequence_number\030\001 \001(\005" +
      "\";\n AcknowledgePreferredDealerChange\022\027\n\017" +
      "sequence_number\030\001 \001(\005\"e\n\016VehicleUpdated\022" +
      "\027\n\017sequence_number\030\001 \001(\005\022\017\n\007ciam_id\030\002 \001(" +
      "\t\022\013\n\003vin\030\003 \001(\t\022\034\n\024emit_timestamp_in_ms\030\n" +
      " \001(\003\"l\n\025PreferredDealerChange\022\027\n\017sequenc" +
      "e_number\030\001 \001(\005\022\017\n\007ciam_id\030\002 \001(\t\022\013\n\003vin\030\003" +
      " \001(\t\022\034\n\024emit_timestamp_in_ms\030\n \001(\003\"5\n\032Ac" +
      "knowledgeDataChangeEvent\022\027\n\017sequence_num" +
      "ber\030\001 \001(\005\"\364\001\n\006Scopes\022\033\n\005scope\030\001 \001(\0162\014.pr" +
      "oto.Scope\022\016\n\006ciamId\030\002 \001(\t\022\013\n\003vin\030\003 \001(\t\022D" +
      "\n\024additional_resources\030\004 \003(\0132&.proto.Sco" +
      "pes.AdditionalResourcesEntry\022\030\n\020resource" +
      "_ciam_id\030\005 \001(\t\022\024\n\014resource_vin\030\006 \001(\t\032:\n\030" +
      "AdditionalResourcesEntry\022\013\n\003key\030\001 \001(\t\022\r\n" +
      "\005value\030\002 \001(\t:\0028\001\"^\n\017DataChangeEvent\022\035\n\006s" +
      "copes\030\001 \003(\0132\r.proto.Scopes\022\023\n\013tracking_i" +
      "d\030\002 \001(\t\022\027\n\017sequence_number\030\003 \001(\005*\235\002\n\021Amg" +
      "StageModeState\022+\n\'AMG_STAGE_MODE_STATE_S" +
      "TAGING_NOT_ACTIVE\020\000\022.\n*AMG_STAGE_MODE_ST" +
      "ATE_REVERTING_IN_PROGRESS\020\001\022>\n:AMG_STAGE" +
      "_MODE_STATE_TRANSFORMING_FINISHED_TRANSF" +
      "ORMED_POS\020\002\022:\n6AMG_STAGE_MODE_STATE_TRAN" +
      "SFORMING_FINISHED_DEFAULT_POS\020\003\022/\n+AMG_S" +
      "TAGE_MODE_STATE_TRANSFORMATION_ABORTED\020\004" +
      "*\264\003\n\"ChildPresenceDetectionWarningLevel\022" +
      "\016\n\nNO_WARNING\020\000\022\013\n\007INITIAL\020\001\022\016\n\nESCALATI" +
      "ON\020\002\022\025\n\021SILENT_ESCALATION\020\003\022#\n\037WARNING_L" +
      "EVEL_DEACTIVATED_ERROR\020\004\022#\n\037WARNING_LEVE" +
      "L_ACTIVE_ECALL_SOON\020\005\022*\n&WARNING_LEVEL_A" +
      "CTIVE_ECALL_TRANSMITTED\020\006\022,\n(WARNING_LEV" +
      "EL_ACTIVE_ECALL_NOT_AVAILABLE\020\007\022\031\n\025WARNI" +
      "NG_LEVEL_DELAYED\020\010\022)\n%WARNING_LEVEL_ACTI" +
      "VE_NO_ECALL_SIL_ESC\020\t\022%\n!WARNING_LEVEL_A" +
      "CTIVE_NO_ECALL_ESC\020\n\0229\n5WARNING_LEVEL_AC" +
      "TIVE_ECALL_NOT_AVAILABLE_SECOND_STAGE\020\013*" +
      "\232\004\n&ChildPresenceDetectionWarningLastEve" +
      "nt\022\026\n\022NO_WARNING_INITIAL\020\000\022\'\n#WARNING_AC" +
      "TIVE_TEMPERATURE_DECREASE\020\001\022\'\n#WARNING_A" +
      "CTIVE_TEMPERATURE_INCREASE\020\002\022\036\n\032WARNING_" +
      "ACTIVE_BATTERY_LOW\020\003\022\035\n\031WARNING_ACTIVE_E" +
      "CALL_SOON\020\004\022$\n WARNING_ACTIVE_ECALL_TRAN" +
      "SMITTED\020\005\022\027\n\023WARNING_DEACTIVATED\020\006\022\027\n\023NO" +
      "_WARNING_NO_EVENT\020\007\022\023\n\017WARNING_DELAYED\020\010" +
      "\022\037\n\033WARNING_DEACTIVATED_BATTERY\020\t\022\035\n\031WAR" +
      "NING_DEACTIVATED_ERROR\020\n\022\036\n\032WARNING_DEAC" +
      "TIVATED_UNLOCK\020\013\022&\n\"WARNING_ACTIVE_ECALL" +
      "_NOT_AVAILABLE\020\014\0228\n4WARNING_ACTIVE_ECALL" +
      "_NOT_AVAILABLE_PUSH_NOTIFICATION\020\r\022\030\n\024CA" +
      "MERA_NOT_AVAILABLE\020\016*\177\n\027KeylineActivatio" +
      "nStates\022$\n UNKNOWN_KEYLINE_ACTIVATION_ST" +
      "ATE\020\000\022\016\n\nALL_ACTIVE\020\001\022\031\n\025SELECTIVE_DEACT" +
      "IVATED\020\002\022\023\n\017ALL_DEACTIVATED\020\003*\267\001\n\037Perfor" +
      "manceLimitationModeStatus\022\022\n\016PLM_NO_WARN" +
      "ING\020\000\022\025\n\021SVH_EVENT_MANAGED\020\001\022\021\n\rPLM_REQU" +
      "ESTED\020\002\022\034\n\030PLM_SUCCESSFUL_REQUESTED\020\003\022\026\n" +
      "\022PLM_NOT_AUTHORIZED\020\004\022\r\n\tPLM_ERROR\020\005\022\021\n\r" +
      "PLM_INCAPABLE\020\006*\252\002\n\030ExteriorMonitoringSt" +
      "atus\022\014\n\010EXM_IDLE\020\000\022\017\n\013EXM_WAKE_UP\020\001\022\031\n\025E" +
      "XM_REQUEST_SUBMITTED\020\002\022\021\n\rEXM_RECORDING\020" +
      "\003\022\020\n\014EXM_ANNOUNCE\020\004\022\021\n\rEXM_UPLOADING\020\005\022\021" +
      "\n\rEXM_COMPLETED\020\006\022\031\n\025EXM_AE_REQUEST_DENI" +
      "ED\020e\022\024\n\020EXM_AE_INCAPABLE\020j\022\024\n\020EXM_AE_OVE" +
      "RRULED\020l\022!\n\035EXM_AE_PLAY_PROTECTION_ACTIV" +
      "E\020n\022\037\n\033EXM_AE_PRECONDITION_MISSING\020o*\303\002\n" +
      "\030InteriorMonitoringStatus\022\014\n\010INM_IDLE\020\000\022" +
      "\017\n\013INM_WAKE_UP\020\001\022\021\n\rINM_RECORDING\020\002\022\025\n\021I" +
      "NM_PICTURE_TAKEN\020\003\022\020\n\014INM_ANNOUNCE\020\004\022\021\n\r" +
      "INM_UPLOADING\020\005\022\021\n\rINM_COMPLETED\020\006\022\025\n\021IN" +
      "M_CAMERA_BROKEN\020e\022\023\n\017INM_MEMORY_FULL\020g\022\033" +
      "\n\027INM_PRIVACY_MODE_ACTIVE\020i\022\037\n\033INM_PICTU" +
      "RE_TAKING_DISABLED\020j\022\030\n\024INM_ACTIVE_BURST" +
      "MODE\020l\022\"\n\036INM_PICTURE_TAKING_INTERRUPTED" +
      "\020n*\321\001\n\014UpdateStatus\022\031\n\025UPDATE_STATUS_UNK" +
      "NOWN\020\000\022\027\n\023AWAIT_REPROGRAMMING\020\001\022!\n\035AWAIT" +
      "_REPROGRAMMING_STARTABLE\020\002\022\021\n\rREPROG_ACT" +
      "IVE\020\003\022\r\n\tPOSTPONED\020\004\022\016\n\nSUCCESSFUL\020\005\022\013\n\007" +
      "FAILURE\020\006\022\t\n\005PANIC\020\007\022\t\n\005ERROR\020\010\022\025\n\021CONFI" +
      "RMED_STARTED\020\t*U\n\025SohCalibrationPlanned\022" +
      "\037\n\033SOH_CALIBRATION_NOT_PLANNED\020\000\022\033\n\027SOH_" +
      "CALIBRATION_PLANNED\020\001*\211\002\n\021DcChargingProf" +
      "ile\022\037\n\033DC_CHARGING_PROFILE_UNKNOWN\020\000\022 \n\034" +
      "DC_CHARGING_PROFILE_STANDARD\020\001\022%\n!DC_CHA" +
      "RGING_PROFILE_SILENT_OR_ECO\020\002\022!\n\035DC_CHAR" +
      "GING_PROFILE_ULTRAFAST\020\003\022\037\n\033DC_CHARGING_" +
      "PROFILE_PITSTOP\020\004\022\"\n\036DC_CHARGING_PROFILE" +
      "_FAST_ECO_1\020\005\022\"\n\036DC_CHARGING_PROFILE_FAS" +
      "T_ECO_2\020\006*\236\003\n\"ParkEventPictureTransmissi" +
      "onStatus\022/\n+PARK_EVENT_PICTURE_TRANSMISS" +
      "ION_STATUS_IDLE\020\000\0222\n.PARK_EVENT_PICTURE_" +
      "TRANSMISSION_STATUS_WAKE_UP\020\001\022<\n8PARK_EV" +
      "ENT_PICTURE_TRANSMISSION_STATUS_REQUEST_" +
      "SUBMITTED\020\002\0224\n0PARK_EVENT_PICTURE_TRANSM" +
      "ISSION_STATUS_RECORDING\020\003\0223\n/PARK_EVENT_" +
      "PICTURE_TRANSMISSION_STATUS_ANNOUNCE\020\004\0224" +
      "\n0PARK_EVENT_PICTURE_TRANSMISSION_STATUS" +
      "_UPLOADING\020\005\0224\n0PARK_EVENT_PICTURE_TRANS" +
      "MISSION_STATUS_COMPLETED\020\006*\223\016\n\031ChargingS" +
      "cheduleUseCaseId\0220\n,CHARGING_SCHEDULE_US" +
      "E_CASE_ID_SMART_CHARGING\020\000\022?\n;CHARGING_S" +
      "CHEDULE_USE_CASE_ID_MERCEDES_INTELLIGENT" +
      "_CHARGING\020\001\0229\n5CHARGING_SCHEDULE_USE_CAS" +
      "E_ID_BETA_COMMUNITY_CHARGING\020\002\0220\n,CHARGI" +
      "NG_SCHEDULE_USE_CASE_ID_SOLAR_CHARGING\020\n" +
      "\0220\n,CHARGING_SCHEDULE_USE_CASE_ID_GREEN_" +
      "CHARGING\020\013\0224\n0CHARGING_SCHEDULE_USE_CASE" +
      "_ID_EFFICIENT_CHARGING\020\014\0227\n3CHARGING_SCH" +
      "EDULE_USE_CASE_ID_ECO_FRIENDLY_CHARGING\020" +
      "\r\0226\n2CHARGING_SCHEDULE_USE_CASE_ID_SUSTA" +
      "INABLE_CHARGING\020\016\0226\n2CHARGING_SCHEDULE_U" +
      "SE_CASE_ID_INTELLIGENT_CHARGING\020\017\0229\n5CHA" +
      "RGING_SCHEDULE_USE_CASE_ID_WORKPLACE_CHA" +
      "RGING_PLAN\020\020\0224\n0CHARGING_SCHEDULE_USE_CA" +
      "SE_ID_HOME_CHARGING_PLAN\020\021\0228\n4CHARGING_S" +
      "CHEDULE_USE_CASE_ID_FLEET_MANAGED_CHARGI" +
      "NG\020\022\022:\n6CHARGING_SCHEDULE_USE_CASE_ID_PR" +
      "ICE_OPTIMIZED_CHARGING\020\023\022;\n7CHARGING_SCH" +
      "EDULE_USE_CASE_ID_BATTERY_FRIENDLY_CHARG" +
      "ING\020\024\022C\n?CHARGING_SCHEDULE_USE_CASE_ID_E" +
      "XTERNAL_NOISE_OPTIMIZED_CHARGING\020\025\022C\n?CH" +
      "ARGING_SCHEDULE_USE_CASE_ID_VIDEO_WATCHI" +
      "NG_OPTIMIZED_CHARGING\020\026\022:\n6CHARGING_SCHE" +
      "DULE_USE_CASE_ID_TIME_CONTROLLED_CHARGIN" +
      "G\020\027\0227\n3CHARGING_SCHEDULE_USE_CASE_ID_PEA" +
      "K_SHAVING_CHARGING\020\030\022@\n<CHARGING_SCHEDUL" +
      "E_USE_CASE_ID_DYNAMIC_LOAD_BALANCED_CHAR" +
      "GING\020\031\022<\n8CHARGING_SCHEDULE_USE_CASE_ID_" +
      "BUSINESS_SPECIFIC_CHARGING\020\032\022:\n6CHARGING" +
      "_SCHEDULE_USE_CASE_ID_PREFERRED_CHARGING" +
      "_TIMES\020\033\022\'\n#CHARGING_SCHEDULE_USE_CASE_I" +
      "D_ENPAL\020d\022(\n$CHARGING_SCHEDULE_USE_CASE_" +
      "ID_TIBBER\020e\0224\n0CHARGING_SCHEDULE_USE_CAS" +
      "E_ID_THE_MOBILITY_HOUSE\020f\022)\n%CHARGING_SC" +
      "HEDULE_USE_CASE_ID_AWATTAR\020g\022)\n%CHARGING" +
      "_SCHEDULE_USE_CASE_ID_TRONITY\020h\022&\n!CHARG" +
      "ING_SCHEDULE_USE_CASE_ID_DPD\020\310\001\0220\n+CHARG" +
      "ING_SCHEDULE_USE_CASE_ID_DEUTSCHE_POST\020\311" +
      "\001\022,\n\'CHARGING_SCHEDULE_USE_CASE_ID_HACKA" +
      "THON\020\372\001\022/\n*CHARGING_SCHEDULE_USE_CASE_ID" +
      "_SANDBOX_MODE\020\373\001\0221\n,CHARGING_SCHEDULE_US" +
      "E_CASE_ID_DEVELOPER_MODE\020\374\001\022,\n\'CHARGING_" +
      "SCHEDULE_USE_CASE_ID_TEST_MODE\020\375\001\022-\n(CHA" +
      "RGING_SCHEDULE_USE_CASE_ID_DEBUG_MODE\020\376\001" +
      "*S\n\020ScheduleIdStatus\022\036\n\032SCHEDULE_ID_STAT" +
      "US_INITIAL\020\000\022\037\n\032SCHEDULE_ID_STATUS_DELET" +
      "ED\020\322\001*\222\001\n\025SocCalibrationRequest\022&\n\"SOC_C" +
      "ALIBRATION_REQUEST_NO_REQUEST\020\000\022\'\n#SOC_C" +
      "ALIBRATION_REQUEST_LOW_REQUEST\020\001\022(\n$SOC_" +
      "CALIBRATION_REQUEST_HIGH_REQUEST\020\002*\246\001\n\026S" +
      "ohFavorableConditions\022*\n&SOH_FAVORABLE_C" +
      "ONDITIONS_NOT_FAVORABLE\020\000\022/\n+SOH_FAVORAB" +
      "LE_CONDITIONS_FAVOURABLE_LEVEL_1\020\001\022/\n+SO" +
      "H_FAVORABLE_CONDITIONS_FAVOURABLE_LEVEL_" +
      "2\020\002*\217\001\n\030ChargingStopErrorDetails\0228\n4CHAR" +
      "GING_STOP_ERROR_DETAILS_NO_INFO_OR_ERROR" +
      "_MESSAGE\020\000\0229\n5CHARGING_STOP_ERROR_DETAIL" +
      "S_CHARGE_STOP_BUTTON_DEFECT\020\001*\376\004\n\023SohCal" +
      "ibrationState\022$\n SOH_CALIBRATION_STATE_N" +
      "OT_ACTIVE\020\000\022 \n\034SOH_CALIBRATION_STATE_ACT" +
      "IVE\020\001\022$\n SOH_CALIBRATION_STATE_SUCCESSFU" +
      "L\020\002\022-\n)SOH_CALIBRATION_STATE_BMS_UNDEFIN" +
      "ED_ERROR\020\003\022/\n+SOH_CALIBRATION_STATE_BMS_" +
      "TEMPERATURE_ERROR\020\004\0226\n2SOH_CALIBRATION_S" +
      "TATE_NO_CUSTOMER_PERMISSION_ERROR\020\005\022?\n;S" +
      "OH_CALIBRATION_STATE_NOT_ENOUGH_TIME_UNT" +
      "IL_DEPARTURE_ERROR\020\006\022.\n*SOH_CALIBRATION_" +
      "STATE_USER_CANCELLED_ERROR\020\007\022:\n6SOH_CALI" +
      "BRATION_STATE_CHARGING_PROCESS_CANCELLED" +
      "_ERROR\020\010\022@\n<SOH_CALIBRATION_STATE_CHARGI" +
      "NG_INFRASTRUCTURE_PROTOCOL_ERROR\020\t\022G\nCSO" +
      "H_CALIBRATION_STATE_CHARGING_INFRASTRUCT" +
      "URE_POWER_REDUCTION_ERROR\020\n\022)\n%SOH_CALIB" +
      "RATION_STATE_UNDEFINED_ERROR\020\013*X\n\026SohCal" +
      "ibrationRequired\022 \n\034SOH_CALIBRATION_NOT_" +
      "REQUIRED\020\000\022\034\n\030SOH_CALIBRATION_REQUIRED\020\001" +
      "*\222\001\n\025SohCalibrationRequest\022&\n\"SOH_CALIBR" +
      "ATION_REQUEST_NO_REQUEST\020\000\022\'\n#SOH_CALIBR" +
      "ATION_REQUEST_LOW_REQUEST\020\001\022(\n$SOH_CALIB" +
      "RATION_REQUEST_HIGH_REQUEST\020\002*\217\001\n\027TurnOf" +
      "fEnginePreWarning\022\025\n\021NO_MESSAGE_ACTIVE\020\000" +
      "\022,\n(VEHICLE_READY_AUTOMATIC_SHUTDOWN_ON_" +
      "LOCK\020\001\022/\n+VEHICLE_READY_AUTOMATIC_SHUTDO" +
      "WN_ON_TIMEOUT\020\002*\321\002\n\033SohCalibrationNotifi" +
      "cations\022>\n:SOH_CALIBRATION_NOTIFICATIONS" +
      "_NO_SOH_CALIBRATION_NECESSARY\020\000\022;\n7SOH_C" +
      "ALIBRATION_NOTIFICATIONS_SEND_NOTIFICATI" +
      "ON_LEVEL_1\020\001\022;\n7SOH_CALIBRATION_NOTIFICA" +
      "TIONS_SEND_NOTIFICATION_LEVEL_2\020\002\022;\n7SOH" +
      "_CALIBRATION_NOTIFICATIONS_SEND_NOTIFICA" +
      "TION_LEVEL_3\020\003\022;\n7SOH_CALIBRATION_NOTIFI" +
      "CATIONS_SEND_NOTIFICATION_LEVEL_4\020\004*\345\002\n!" +
      "HvBatteryPrecondStatesDischarging\022\030\n\024DIS" +
      "CHARGING_INACTIVE\020\000\022\036\n\032DISCHARGING_HEATI" +
      "NG_ACTIVE\020\001\022\"\n\036DISCHARGING_HEATING_SUCCE" +
      "SSFUL\020\002\022&\n\"DISCHARGING_HEATING_NOT_SUFFI" +
      "CIENT\020\003\022&\n\"DISCHARGING_HEATING_RECOMMEND" +
      "ATION\020\004\022\036\n\032DISCHARGING_COOLING_ACTIVE\020\005\022" +
      "\"\n\036DISCHARGING_COOLING_SUCCESSFUL\020\006\022&\n\"D" +
      "ISCHARGING_COOLING_NOT_SUFFICIENT\020\007\022&\n\"D" +
      "ISCHARGING_COOLING_RECOMMENDATION\020\010*\317\002\n\036" +
      "HvBatteryPrecondStatesCharging\022\035\n\031CHARGI" +
      "NG_HEATING_INACTIVE\020\000\022\033\n\027CHARGING_HEATIN" +
      "G_ACTIVE\020\001\022\037\n\033CHARGING_HEATING_SUCCESSFU" +
      "L\020\002\022#\n\037CHARGING_HEATING_NOT_SUFFICIENT\020\003" +
      "\022#\n\037CHARGING_HEATING_RECOMMENDATION\020\004\022\033\n" +
      "\027CHARGING_COOLING_ACTIVE\020\005\022\037\n\033CHARGING_C" +
      "OOLING_SUCCESSFUL\020\006\022#\n\037CHARGING_COOLING_" +
      "NOT_SUFFICIENT\020\007\022#\n\037CHARGING_COOLING_REC" +
      "OMMENDATION\020\010*\303\001\n\014MainCategory\022\030\n\024MAIN_C" +
      "ATEGORY_SERVER\020\000\022\025\n\021MAIN_CATEGORY_HMI\020\001\022" +
      " \n\034MAIN_CATEGORY_VEHICLE_SYSTEM\020\002\022\035\n\031MAI" +
      "N_CATEGORY_DIAGNOSTICS\020\003\022\030\n\024MAIN_CATEGOR" +
      "Y_REMOTE\020\004\022\'\n#MAIN_CATEGORY_CONTAINER_AP" +
      "PLICATION\020\005*N\n\013SubCategory\022\030\n\024SUB_CATEGO" +
      "RY_UNKNOWN\020\000\022%\n!SUB_CATEGORY_BATTERY_CON" +
      "DITIONING\020\001*_\n\020SpecificCategory\022\035\n\031SPECI" +
      "FIC_CATEGORY_UNKNOWN\020\000\022,\n(SPECIFIC_CATEG" +
      "ORY_PRECONDITIONING_BUTTON\020\001*\241\001\n\006Method\022" +
      "(\n$METHOD_COND_REQ_TO_REACH_TARGET_TEMP\020" +
      "\000\022)\n%METHOD_COND_REQ_TO_REACH_TARGET_POW" +
      "ER\020\001\022$\n METHOD_OMIT_CONDITIONING_REQUEST" +
      "\020\002\022\034\n\030METHOD_SET_CONFIGURATION\020\003*\225\001\n\006Sta" +
      "tus\022\014\n\010STATE_OK\020\000\022\033\n\027STATE_UNSPECIFIED_E" +
      "RROR\020\001\022$\n STATE_CONDITIONING_NOT_NECESSA" +
      "RY\020\002\022\035\n\031STATE_TIME_NOT_SUFFICIENT\020\003\022\033\n\027S" +
      "TATE_BATTERY_LEVEL_LOW\020\004*\272\004\n\034HvBatteryPr" +
      "econdAvailability\0221\n-HV_BATTERY_PRECOND_" +
      "AVAILABILITY_NOT_AVAILABLE\020\000\0223\n/HV_BATTE" +
      "RY_PRECOND_AVAILABILITY_FULLY_AVAILABLE\020" +
      "\001\022E\nAHV_BATTERY_PRECOND_AVAILABILITY_TEM" +
      "PORARILY_NOT_AVAILABLE_LOW_SOC\020\002\022J\nFHV_B" +
      "ATTERY_PRECOND_AVAILABILITY_TEMPORARILY_" +
      "NOT_AVAILABLE_MECHATRONICS\020\003\022Q\nMHV_BATTE" +
      "RY_PRECOND_AVAILABILITY_TEMPORARILY_NOT_" +
      "AVAILABLE_BATTERY_TEMPERATURE\020\004\022=\n9HV_BA" +
      "TTERY_PRECOND_AVAILABILITY_LIMITED_AVAIL" +
      "ABLE_LOW_SOC\020\005\022B\n>HV_BATTERY_PRECOND_AVA" +
      "ILABILITY_LIMITED_AVAILABLE_MECHATRONICS" +
      "\020\006\022I\nEHV_BATTERY_PRECOND_AVAILABILITY_LI" +
      "MITED_AVAILABLE_BATTERY_TEMPERATURE\020\007*\341\003" +
      "\n\020EvsePairingState\022\033\n\027EVSE_PAIRING_STATE" +
      "_IDLE\020\000\022\037\n\033EVSE_PAIRING_STATE_FINISHED\020\001" +
      "\022\'\n#EVSE_PAIRING_STATE_FAILED_TLS_ERROR\020" +
      "\002\022%\n!EVSE_PAIRING_STATE_FAILED_TIMEOUT\020\003" +
      "\0220\n,EVSE_PAIRING_STATE_FAILED_NO_INDEX_A" +
      "VAILABLE\020\004\022&\n\"EVSE_PAIRING_STATE_PROCESS" +
      "_ONGOING\020\005\022&\n\"EVSE_PAIRING_STATE_PROCESS" +
      "_STOPPED\020\006\0220\n,EVSE_PAIRING_STATE_CERTIFI" +
      "CATE_NOT_INSTALLED\020\007\022:\n6EVSE_PAIRING_STA" +
      "TE_PAIRING_SERVICE_NOT_OFFERED_BY_EVSE\020\010" +
      "\022O\nKEVSE_PAIRING_STATE_BIDIRECTIONAL_POW" +
      "ER_TRANSFER_SERVICE_NOT_OFFERED_BY_EVSE\020" +
      "\t*U\n\024EmergencyPowerSupply\022\036\n\032EMERGENCY_P" +
      "OWER_SUPPLY_OFF\020\000\022\035\n\031EMERGENCY_POWER_SUP" +
      "PLY_ON\020\001*\217\001\n\"ParkCollisionPictureTransfe" +
      "rStatus\0224\n0PARK_COLLISION_PICTURE_TRANSF" +
      "ER_STATUS_DESELETED\020\000\0223\n/PARK_COLLISION_" +
      "PICTURE_TRANSFER_STATUS_SELECTED\020\001*f\n\026Pi" +
      "ctureRecordingStatus\022\'\n#PICTURE_RECORDIN" +
      "G_STATUS_NOT_ACTIVE\020\000\022#\n\037PICTURE_RECORDI" +
      "NG_STATUS_ACTIVE\020\001*\226\004\n\033ParkCollisionInac" +
      "tiveReason\022+\n\'PARK_COLLISION_INACTIVE_RE" +
      "ASON_DISABLED\020\000\022=\n9PARK_COLLISION_INACTI" +
      "VE_REASON_WAIT_FOR_SYSTEM_ACTIVATION\020\001\0220" +
      "\n,PARK_COLLISION_INACTIVE_REASON_SYSTEM_" +
      "ACTIVE\020\002\0225\n1PARK_COLLISION_INACTIVE_REAS" +
      "ON_TRUNK_OR_DOOR_OPEN\020\003\022-\n)PARK_COLLISIO" +
      "N_INACTIVE_REASON_DESELECTED\020\004\0222\n.PARK_C" +
      "OLLISION_INACTIVE_REASON_COLLISION_LIMIT" +
      "\020\005\0222\n.PARK_COLLISION_INACTIVE_REASON_MON" +
      "ITORING_TIME\020\006\0227\n3PARK_COLLISION_INACTIV" +
      "E_REASON_CONVERTIBLE_TOP_OPEN\020\007\022(\n$PARK_" +
      "COLLISION_INACTIVE_REASON_TEST1\020\010\022(\n$PAR" +
      "K_COLLISION_INACTIVE_REASON_TEST2\020\t*{\n\034P" +
      "arkCollisionSelectionStatus\022-\n)PARK_COLL" +
      "ISION_SELECTION_STATUS_DESELETED\020\000\022,\n(PA" +
      "RK_COLLISION_SELECTION_STATUS_SELECTED\020\001" +
      "*\351\001\n\037VehicleTheftAlarmInactiveReason\0220\n,",
      "VEHICLE_THEFT_ALARM_INACTIVE_REASON_NO_E" +
      "RROR\020\000\0221\n-VEHICLE_THEFT_ALARM_INACTIVE_R" +
      "EASON_SIREN_COM\020\001\0221\n-VEHICLE_THEFT_ALARM" +
      "_INACTIVE_REASON_SIREN_BAT\020\002\022.\n*VEHICLE_" +
      "THEFT_ALARM_INACTIVE_REASON_SENSOR\020\003*\235\001\n" +
      "\035TowProtectionActivationStatus\022(\n$TOW_PR" +
      "OTECTION_ACTIVATION_STATUS_OFF\020\000\022\'\n#TOW_" +
      "PROTECTION_ACTIVATION_STATUS_ON\020\001\022)\n%TOW" +
      "_PROTECTION_ACTIVATION_STATUS_INIT\020\002*{\n\034" +
      "TowProtectionSelectionStatus\022-\n)TOW_PROT" +
      "ECTION_SELECTION_STATUS_DESELETED\020\000\022,\n(T" +
      "OW_PROTECTION_SELECTION_STATUS_SELECTED\020" +
      "\001*\261\001\n\"InteriorProtectionActivationStatus" +
      "\022-\n)INTERIOR_PROTECTION_ACTIVATION_STATU" +
      "S_OFF\020\000\022,\n(INTERIOR_PROTECTION_ACTIVATIO" +
      "N_STATUS_ON\020\001\022.\n*INTERIOR_PROTECTION_ACT" +
      "IVATION_STATUS_INIT\020\002*\212\001\n!InteriorProtec" +
      "tionSelectionStatus\0222\n.INTERIOR_PROTECTI" +
      "ON_SELECTION_STATUS_DESELETED\020\000\0221\n-INTER" +
      "IOR_PROTECTION_SELECTION_STATUS_SELECTED" +
      "\020\001*^\n\020PanicAlarmActive\022 \n\034PANIC_ALARM_AC" +
      "TIVE_CONFIRMED\020\000\022(\n$PANIC_ALARM_ACTIVE_N" +
      "OT_YET_CONFIRMED\020\001*\211\001\n\037ParkEventPictureS" +
      "electionStatus\0224\n0PARK_EVENT_PICTURE_SEL" +
      "ECTION_STATUS_NOT_SELECTED\020\000\0220\n,PARK_EVE" +
      "NT_PICTURE_SELECTION_STATUS_SELECTED\020\001*\235" +
      "\001\n\035ParkCollisionActivationStatus\022(\n$PARK" +
      "_COLLISION_ACTIVATION_STATUS_OFF\020\000\022\'\n#PA" +
      "RK_COLLISION_ACTIVATION_STATUS_ON\020\001\022)\n%P" +
      "ARK_COLLISION_ACTIVATION_STATUS_INIT\020\002*\367" +
      "\002\n\032ChargingCompatibilityError\022(\n$CHARGIN" +
      "G_COMPATIBILITY_ERROR_DEFAULT\020\000\0223\n/CHARG" +
      "ING_COMPATIBILITY_ERROR_FULL_COMPATIBILI" +
      "TY\020\001\022L\nHCHARGING_COMPATIBILITY_ERROR_FUL" +
      "L_COMPATIBILITY_WITH_ADDITIONAL_HARDWARE" +
      "\020\002\0220\n,CHARGING_COMPATIBILITY_PARTIAL_COM" +
      "PATIBILITY\020\003\022G\nCCHARGING_COMPATIBILITY_P" +
      "ARTIAL_COMPATIBILITY_WITH_ADDITIONAL_DEV" +
      "ICE\020\004\0221\n-CHARGING_COMPATIBILITY_ERROR_NO" +
      "_COMPATIBILITY\020\005*\246\003\n\030ChargingFlapErrorDe" +
      "tails\0228\n4CHARGING_FLAP_ERROR_DETAILS_NO_" +
      "INFO_OR_ERROR_MESSAGE\020\000\022>\n:CHARGING_FLAP" +
      "_ERROR_DETAILS_OPENING_DEFECT_SEARCH_WOR" +
      "KSHOP\020\001\022\'\n#CHARGING_FLAP_ERROR_DETAILS_B" +
      "LOCKED\020\002\022<\n8CHARGING_FLAP_ERROR_DETAILS_" +
      "DRIVING_POSITION_NOT_PARKING\020\003\022-\n)CHARGI" +
      "NG_FLAP_ERROR_DETAILS_STATE_UNKNOWN\020\004\0228\n" +
      "4CHARGING_FLAP_ERROR_DETAILS_PRESSED_DET" +
      "ECTION_DEFECT\020\005\022@\n<CHARGING_FLAP_ERROR_D" +
      "ETAILS_CLOSING_OF_AUTOMATED_FLAP_DEFECT\020" +
      "\006*\350\001\n\030ChargeFlapsPositionState\022\'\n#CHARGE" +
      "_FLAPS_POSITION_STATE_DEFAULT\020\000\022$\n CHARG" +
      "E_FLAPS_POSITION_STATE_OPEN\020\001\022&\n\"CHARGE_" +
      "FLAPS_POSITION_STATE_CLOSED\020\002\022,\n(CHARGE_" +
      "FLAPS_POSITION_STATE_FLAP_PRESSED\020\003\022\'\n#C" +
      "HARGE_FLAPS_POSITION_STATE_UNKNOWN\020\004*\264\005\n" +
      "\030ChargingPowerRestriction\022-\n)CHARGING_PO" +
      "WER_RESTRICTION_NO_RESTRICTION\020\000\0222\n.CHAR" +
      "GING_POWER_RESTRICTION_ECO_CHARGING_ACTI" +
      "VE\020\001\022>\n:CHARGING_POWER_RESTRICTION_REDUC" +
      "ED_DUE_TO_CUSTOMER_SETTING\020\002\022E\nACHARGING" +
      "_POWER_RESTRICTION_REDUCED_DUE_TO_VEHICL" +
      "E_CHARGING_SYSTEM\020\003\022<\n8CHARGING_POWER_RE" +
      "STRICTION_REDUCED_DUE_TO_REMOTE_CONTROL\020" +
      "\004\022E\nACHARGING_POWER_RESTRICTION_REDUCED_" +
      "DUE_TO_CHARGING_INFRASTRUCTURE\020\005\022?\n;CHAR" +
      "GING_POWER_RESTRICTION_REDUCED_DUE_TO_CH" +
      "ARGING_STRATEGY\020\006\0226\n2CHARGING_POWER_REST" +
      "RICTION_STATE_OF_CHARGE_TOO_LOW\020\007\0227\n3CHA" +
      "RGING_POWER_RESTRICTION_STATE_OF_CHARGE_" +
      "TOO_HIGH\020\010\022:\n6CHARGING_POWER_RESTRICTION" +
      "_BATTERY_TEMPERATURE_TOO_LOW\020\t\022;\n7CHARGI" +
      "NG_POWER_RESTRICTION_BATTERY_TEMPERATURE" +
      "_TOO_HIGH\020\n*\316\002\n\rBatteryHealth\022\027\n\023BATTERY" +
      "_GREEN_STATE\020\000\022\030\n\024BATTERY_YELLOW_STATE\020\001" +
      "\022\025\n\021BATTERY_RED_STATE\020\002\022\036\n\032ISSUE_WITH_DA" +
      "TA_EVALUATION\020\003\022\032\n\026NO_EVALUATION_POSSIBL" +
      "E\020\004\022\023\n\017BATTERY_CHANGED\020\005\022\'\n#BATTERY_HEAL" +
      "TH_CANNOT_BE_CALCULATED\020\006\022\032\n\026NO_MB_ORIGI" +
      "NAL_BATTERY\020\007\022%\n!TECHNICAL_LIMITATION_FR" +
      "OM_VEHICLE\020\010\022\033\n\027GENERAL_TECHNICAL_ERROR\020" +
      "\t\022\031\n\025GENERAL_PROCESS_ERROR\020\n*\261\001\n\020Precond" +
      "StateType\022 \n\034PRECOND_STATE_TYPE_ON_UNLOC" +
      "K\020\000\022(\n$PRECOND_STATE_TYPE_AT_DEPARTURE_T" +
      "IME\020\001\022 \n\034PRECOND_STATE_TYPE_IMMEDIATE\020\002\022" +
      "/\n+PRECOND_STATE_TYPE_CHILD_PRESENCE_DET" +
      "ECTION\020\003*y\n\rChargeProgram\022\032\n\026DEFAULT_CHA" +
      "RGE_PROGRAM\020\000\022\032\n\026INSTANT_CHARGE_PROGRAM\020" +
      "\001\022\027\n\023HOME_CHARGE_PROGRAM\020\002\022\027\n\023WORK_CHARG" +
      "E_PROGRAM\020\003*f\n\017AttributeStatus\022\017\n\013VALUE_" +
      "VALID\020\000\022\026\n\022VALUE_NOT_RECEIVED\020\001\022\021\n\rVALUE" +
      "_INVALID\020\003\022\027\n\023VALUE_NOT_AVAILABLE\020\004*g\n\005S" +
      "cope\022\010\n\004USER\020\000\022\022\n\016ONBOARD_FENCES\020\001\022\014\n\010US" +
      "ER_PIN\020\003\022\030\n\024SERVICE_PREREQUISITE\020\004\022\030\n\024US" +
      "ER_PROFILE_PICTURE\020\005B\034\n\032com.daimler.mbca" +
      "rkit.protob\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.daimler.mbcarkit.proto.ServiceActivation.getDescriptor(),
          com.daimler.mbcarkit.proto.UserEvents.getDescriptor(),
          com.daimler.mbcarkit.proto.VehicleCommands.getDescriptor(),
          com.daimler.mbcarkit.proto.Protos.getDescriptor(),
          com.daimler.mbcarkit.proto.Vehicleapi.getDescriptor(),
          com.google.protobuf.TimestampProto.getDescriptor(),
        });
    internal_static_proto_VEPUpdate_descriptor =
      getDescriptor().getMessageType(0);
    internal_static_proto_VEPUpdate_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_VEPUpdate_descriptor,
        new java.lang.String[] { "SequenceNumber", "Vin", "FullUpdate", "EmitTimestamp", "EmitTimestampInMs", "Attributes", });
    internal_static_proto_VEPUpdate_AttributesEntry_descriptor =
      internal_static_proto_VEPUpdate_descriptor.getNestedType(0);
    internal_static_proto_VEPUpdate_AttributesEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_VEPUpdate_AttributesEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_proto_VehicleAttributeStatus_descriptor =
      getDescriptor().getMessageType(1);
    internal_static_proto_VehicleAttributeStatus_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_VehicleAttributeStatus_descriptor,
        new java.lang.String[] { "Timestamp", "TimestampInMs", "Changed", "Status", "ServiceIds", "DisplayValue", "CombustionConsumptionUnit", "GasConsumptionUnit", "ElectricityConsumptionUnit", "SpeedDistanceUnit", "SpeedUnit", "DistanceUnit", "TemperatureUnit", "PressureUnit", "RatioUnit", "ClockHourUnit", "IntValue", "BoolValue", "StringValue", "DoubleValue", "NilValue", "UnsupportedValue", "TemperaturePointsValue", "WeekdayTariffValue", "WeekendTariffValue", "StateOfChargeProfileValue", "WeeklySettingsHeadUnitValue", "SpeedAlertConfigurationValue", "EcoHistogramValue", "WeeklyProfileValue", "ChargeProgramsValue", "ChargingbreakClocktimerValue", "ChargingPowerControl", "KeylineActivationStateValue", "NextDepartureTimeValue", "TcuConnectionStateLowChannel", "TurnOffEnginePreWarning", "ChildPresenceDetectionWarningLastEvent", "ChildPresenceDetectionWarningLevel", "PerformanceLimitationModeStatus", "BatteryHealth", "PrecondState", "ExteriorMonitoringStatus", "InteriorMonitoringStatus", "RemoteUpdateStartStatus", "SohCalibrationRequired", "SocCalibrationRequest", "SohCalibrationRequest", "SohCalibrationState", "SohCalibrationPlanned", "SohFavorableConditions", "SohCalibrationNotifications", "ChargingPowerRestrictions", "ChargingCouplerErrorDetails", "ChargingStopErrorDetails", "ChargingErrorVehicleNoSupport400V", "ChargingErrorImpossibleChangeTo400V", "ChargingErrorImpossibleChangeTo800V", "PrecondOperabilityState", "PictureRecordingStatus", "ParkEventPictureSelectionStatus", "PanicAlarmActive", "InteriorProtectionSelectionStatus", "InteriorProtectionActivationStatus", "TowProtectionSelectionStatus", "TowProtectionActivationStatus", "VehicleTheftAlarmInactiveReason", "ParkCollisionSelectionStatus", "ParkCollisionActivationStatus", "ParkCollisionInactiveReason", "ParkCollisionPictureTransferStatus", "EmergencyPowerSupply", "EvsePairingState", "ChargingPredictionSoc", "ChargingPredictionDepartureTime", "ChargingScheduleActive", "DcChargingProfile", "ChargeFlaps", "ChargeInlets", "ChargingTimer", "ParkEventPictureTransmissionStatus", "ChargingScheduleRequested", "ChargingFlapErrorDetails", "ChargingCompatibilityError", "HvBatteryPrecondAvailability", "HvBatteryPrecondRequestState", "HvBatteryPrecondState", "AmgStageModeState", "AmgStageModeError", "DisplayUnit", "AttributeType", });
    internal_static_proto_AmgStageModeError_descriptor =
      getDescriptor().getMessageType(2);
    internal_static_proto_AmgStageModeError_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_AmgStageModeError_descriptor,
        new java.lang.String[] { "RearSpoiler", "BowWave", "Diffuser", "Light", "Mirror", "Sound", "AirControlSystem", "Venturi", });
    internal_static_proto_KeylineActivationStateValue_descriptor =
      getDescriptor().getMessageType(3);
    internal_static_proto_KeylineActivationStateValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_KeylineActivationStateValue_descriptor,
        new java.lang.String[] { "State", "ActiveKeylines", });
    internal_static_proto_NextDepartureTimeValue_descriptor =
      getDescriptor().getMessageType(4);
    internal_static_proto_NextDepartureTimeValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_NextDepartureTimeValue_descriptor,
        new java.lang.String[] { "Hour", "Minute", });
    internal_static_proto_RemoteUpdateStartStatus_descriptor =
      getDescriptor().getMessageType(5);
    internal_static_proto_RemoteUpdateStartStatus_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_RemoteUpdateStartStatus_descriptor,
        new java.lang.String[] { "DurationAfterRuntime", "PackageId", "UpdateStatus", "ReleaseId", });
    internal_static_proto_ChargingScheduleActive_descriptor =
      getDescriptor().getMessageType(6);
    internal_static_proto_ChargingScheduleActive_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ChargingScheduleActive_descriptor,
        new java.lang.String[] { "ScheduleIdDeprecated", "UseCaseIdDeprecated", "StartTime", "OfflineMode", "Schedule", "UseCaseId", "ScheduleIdStatus", });
    internal_static_proto_ChargingScheduleActive_ChargingScheduleActiveSchedule_descriptor =
      internal_static_proto_ChargingScheduleActive_descriptor.getNestedType(0);
    internal_static_proto_ChargingScheduleActive_ChargingScheduleActiveSchedule_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ChargingScheduleActive_ChargingScheduleActiveSchedule_descriptor,
        new java.lang.String[] { "PowerValues", "DurationValues", });
    internal_static_proto_HvBatteryPrecondState_descriptor =
      getDescriptor().getMessageType(7);
    internal_static_proto_HvBatteryPrecondState_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_HvBatteryPrecondState_descriptor,
        new java.lang.String[] { "Charging", "Discharging", });
    internal_static_proto_HvBatteryPrecondRequestState_descriptor =
      getDescriptor().getMessageType(8);
    internal_static_proto_HvBatteryPrecondRequestState_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_HvBatteryPrecondRequestState_descriptor,
        new java.lang.String[] { "MainCategory", "SubCategory", "SpecificCategory", "Method", "Status", });
    internal_static_proto_PrecondOperabilityState_descriptor =
      getDescriptor().getMessageType(9);
    internal_static_proto_PrecondOperabilityState_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_PrecondOperabilityState_descriptor,
        new java.lang.String[] { "PrecondAvailable", "PrecondErrorState", });
    internal_static_proto_ChargingScheduleRequested_descriptor =
      getDescriptor().getMessageType(10);
    internal_static_proto_ChargingScheduleRequested_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ChargingScheduleRequested_descriptor,
        new java.lang.String[] { "ScheduleIdStatus", "UseCaseId", });
    internal_static_proto_ChargingTimer_descriptor =
      getDescriptor().getMessageType(11);
    internal_static_proto_ChargingTimer_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ChargingTimer_descriptor,
        new java.lang.String[] { "Entries", });
    internal_static_proto_ChargingTimerEntry_descriptor =
      getDescriptor().getMessageType(12);
    internal_static_proto_ChargingTimerEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ChargingTimerEntry_descriptor,
        new java.lang.String[] { "TimerId", "Action", "StartTimeHour", "StartTimeMin", "EndTimeHour", "EndTimeMin", "Day", });
    internal_static_proto_ChargingPredictionSoc_descriptor =
      getDescriptor().getMessageType(13);
    internal_static_proto_ChargingPredictionSoc_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ChargingPredictionSoc_descriptor,
        new java.lang.String[] { "PredictedEndTime", "PredictedElectricalEnergyRange", });
    internal_static_proto_ChargingPredictionDepartureTime_descriptor =
      getDescriptor().getMessageType(14);
    internal_static_proto_ChargingPredictionDepartureTime_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ChargingPredictionDepartureTime_descriptor,
        new java.lang.String[] { "PredictedSoc", "PredictedElectricalEnergyRange", });
    internal_static_proto_ChargeInletsEntry_descriptor =
      getDescriptor().getMessageType(15);
    internal_static_proto_ChargeInletsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ChargeInletsEntry_descriptor,
        new java.lang.String[] { "Id", "CouplerState", "LockState", });
    internal_static_proto_ChargeInlets_descriptor =
      getDescriptor().getMessageType(16);
    internal_static_proto_ChargeInlets_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ChargeInlets_descriptor,
        new java.lang.String[] { "Entries", });
    internal_static_proto_ChargeFlapsEntry_descriptor =
      getDescriptor().getMessageType(17);
    internal_static_proto_ChargeFlapsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ChargeFlapsEntry_descriptor,
        new java.lang.String[] { "Id", "PositionState", });
    internal_static_proto_ChargeFlaps_descriptor =
      getDescriptor().getMessageType(18);
    internal_static_proto_ChargeFlaps_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ChargeFlaps_descriptor,
        new java.lang.String[] { "Entries", });
    internal_static_proto_ChargingPowerRestrictions_descriptor =
      getDescriptor().getMessageType(19);
    internal_static_proto_ChargingPowerRestrictions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ChargingPowerRestrictions_descriptor,
        new java.lang.String[] { "ChargingPowerRestriction", });
    internal_static_proto_ChargingBreakClockTimerValue_descriptor =
      getDescriptor().getMessageType(20);
    internal_static_proto_ChargingBreakClockTimerValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ChargingBreakClockTimerValue_descriptor,
        new java.lang.String[] { "ChargingbreakClocktimerEntry", });
    internal_static_proto_PrecondState_descriptor =
      getDescriptor().getMessageType(21);
    internal_static_proto_PrecondState_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_PrecondState_descriptor,
        new java.lang.String[] { "ActivationState", "PrecondImmediateSupport", "PrecondStateTypes", });
    internal_static_proto_ChargingPowerControl_descriptor =
      getDescriptor().getMessageType(22);
    internal_static_proto_ChargingPowerControl_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ChargingPowerControl_descriptor,
        new java.lang.String[] { "ChargeStatus", "CtrlDuration", "CtrlInfo", "ChargePower", "ServStat", "ServAvail", "UseCase", });
    internal_static_proto_ChargingBreakClockTimerEntry_descriptor =
      getDescriptor().getMessageType(23);
    internal_static_proto_ChargingBreakClockTimerEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ChargingBreakClockTimerEntry_descriptor,
        new java.lang.String[] { "Status", "EndTimeHour", "EndTimeMinute", "StartTimeHour", "StartTimeMinute", "TimerId", });
    internal_static_proto_ChargeProgramsValue_descriptor =
      getDescriptor().getMessageType(24);
    internal_static_proto_ChargeProgramsValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ChargeProgramsValue_descriptor,
        new java.lang.String[] { "ChargeProgramParameters", });
    internal_static_proto_ChargeProgramParameters_descriptor =
      getDescriptor().getMessageType(25);
    internal_static_proto_ChargeProgramParameters_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ChargeProgramParameters_descriptor,
        new java.lang.String[] { "ChargeProgram", "MaxSoc", "AutoUnlock", "LocationBasedCharging", "WeeklyProfile", "ClockTimer", "MaxChargingCurrent", "EcoCharging", });
    internal_static_proto_WeeklyProfileValue_descriptor =
      getDescriptor().getMessageType(26);
    internal_static_proto_WeeklyProfileValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_WeeklyProfileValue_descriptor,
        new java.lang.String[] { "SingleTimeProfileEntriesActivatable", "MaxNumberOfWeeklyTimeProfileSlots", "MaxNumberOfTimeProfiles", "CurrentNumberOfTimeProfileSlots", "CurrentNumberOfTimeProfiles", "TimeProfiles", });
    internal_static_proto_VVRTimeProfile_descriptor =
      getDescriptor().getMessageType(27);
    internal_static_proto_VVRTimeProfile_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_VVRTimeProfile_descriptor,
        new java.lang.String[] { "Identifier", "Hour", "Minute", "Days", "Active", "ApplicationIdentifier", });
    internal_static_proto_EcoHistogramValue_descriptor =
      getDescriptor().getMessageType(28);
    internal_static_proto_EcoHistogramValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_EcoHistogramValue_descriptor,
        new java.lang.String[] { "EcoHistogramBins", });
    internal_static_proto_EcoHistogramBin_descriptor =
      getDescriptor().getMessageType(29);
    internal_static_proto_EcoHistogramBin_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_EcoHistogramBin_descriptor,
        new java.lang.String[] { "Interval", "Value", });
    internal_static_proto_SpeedAlertConfigurationValue_descriptor =
      getDescriptor().getMessageType(30);
    internal_static_proto_SpeedAlertConfigurationValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_SpeedAlertConfigurationValue_descriptor,
        new java.lang.String[] { "SpeedAlertConfigurations", });
    internal_static_proto_SpeedAlertConfiguration_descriptor =
      getDescriptor().getMessageType(31);
    internal_static_proto_SpeedAlertConfiguration_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_SpeedAlertConfiguration_descriptor,
        new java.lang.String[] { "EndTimestampInS", "ThresholdInKph", "ThresholdDisplayValue", });
    internal_static_proto_WeeklySettingsHeadUnitValue_descriptor =
      getDescriptor().getMessageType(32);
    internal_static_proto_WeeklySettingsHeadUnitValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_WeeklySettingsHeadUnitValue_descriptor,
        new java.lang.String[] { "WeeklySettings", });
    internal_static_proto_WeeklySetting_descriptor =
      getDescriptor().getMessageType(33);
    internal_static_proto_WeeklySetting_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_WeeklySetting_descriptor,
        new java.lang.String[] { "Day", "MinutesSinceMidnight", });
    internal_static_proto_TemperaturePointsValue_descriptor =
      getDescriptor().getMessageType(34);
    internal_static_proto_TemperaturePointsValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_TemperaturePointsValue_descriptor,
        new java.lang.String[] { "TemperaturePoints", });
    internal_static_proto_TemperaturePoint_descriptor =
      getDescriptor().getMessageType(35);
    internal_static_proto_TemperaturePoint_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_TemperaturePoint_descriptor,
        new java.lang.String[] { "Zone", "Temperature", "TemperatureDisplayValue", });
    internal_static_proto_WeekdayTariffValue_descriptor =
      getDescriptor().getMessageType(36);
    internal_static_proto_WeekdayTariffValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_WeekdayTariffValue_descriptor,
        new java.lang.String[] { "Tariffs", });
    internal_static_proto_WeekendTariffValue_descriptor =
      getDescriptor().getMessageType(37);
    internal_static_proto_WeekendTariffValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_WeekendTariffValue_descriptor,
        new java.lang.String[] { "Tariffs", });
    internal_static_proto_Tariff_descriptor =
      getDescriptor().getMessageType(38);
    internal_static_proto_Tariff_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_Tariff_descriptor,
        new java.lang.String[] { "Rate", "Time", });
    internal_static_proto_StateOfChargeProfileValue_descriptor =
      getDescriptor().getMessageType(39);
    internal_static_proto_StateOfChargeProfileValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_StateOfChargeProfileValue_descriptor,
        new java.lang.String[] { "StatesOfCharge", });
    internal_static_proto_StateOfCharge_descriptor =
      getDescriptor().getMessageType(40);
    internal_static_proto_StateOfCharge_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_StateOfCharge_descriptor,
        new java.lang.String[] { "TimestampInS", "StateOfCharge", });
    internal_static_proto_VEPUpdatesByVIN_descriptor =
      getDescriptor().getMessageType(41);
    internal_static_proto_VEPUpdatesByVIN_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_VEPUpdatesByVIN_descriptor,
        new java.lang.String[] { "SequenceNumber", "Updates", });
    internal_static_proto_VEPUpdatesByVIN_UpdatesEntry_descriptor =
      internal_static_proto_VEPUpdatesByVIN_descriptor.getNestedType(0);
    internal_static_proto_VEPUpdatesByVIN_UpdatesEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_VEPUpdatesByVIN_UpdatesEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_proto_DebugMessage_descriptor =
      getDescriptor().getMessageType(42);
    internal_static_proto_DebugMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_DebugMessage_descriptor,
        new java.lang.String[] { "Message", });
    internal_static_proto_VehicleStatus_descriptor =
      getDescriptor().getMessageType(43);
    internal_static_proto_VehicleStatus_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_VehicleStatus_descriptor,
        new java.lang.String[] { "Vin", "Attributes", });
    internal_static_proto_VehicleStatus_AttributesEntry_descriptor =
      internal_static_proto_VehicleStatus_descriptor.getNestedType(0);
    internal_static_proto_VehicleStatus_AttributesEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_VehicleStatus_AttributesEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_proto_PushMessage_descriptor =
      getDescriptor().getMessageType(44);
    internal_static_proto_PushMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_PushMessage_descriptor,
        new java.lang.String[] { "TrackingId", "VepUpdate", "VepUpdates", "DebugMessage", "ServiceStatusUpdates", "ServiceStatusUpdate", "UserDataUpdate", "UserVehicleAuthChangedUpdate", "UserPictureUpdate", "UserPinUpdate", "VehicleUpdated", "PreferredDealerChange", "ApptwinCommandStatusUpdatesByVin", "ApptwinPendingCommandRequest", "AssignedVehicles", "DataChangeEvent", "Msg", });
    internal_static_proto_TrackingEvent_descriptor =
      getDescriptor().getMessageType(45);
    internal_static_proto_TrackingEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_TrackingEvent_descriptor,
        new java.lang.String[] { "TrackingId", "Timestamp", "EventType", "Payload", });
    internal_static_proto_TrackingEvent_PayloadEntry_descriptor =
      internal_static_proto_TrackingEvent_descriptor.getNestedType(0);
    internal_static_proto_TrackingEvent_PayloadEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_TrackingEvent_PayloadEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_proto_PayloadValue_descriptor =
      getDescriptor().getMessageType(46);
    internal_static_proto_PayloadValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_PayloadValue_descriptor,
        new java.lang.String[] { "StringValue", "IntValue", "BoolValue", "DoubleValue", "Msg", });
    internal_static_proto_AcknowledgeVEPRequest_descriptor =
      getDescriptor().getMessageType(47);
    internal_static_proto_AcknowledgeVEPRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_AcknowledgeVEPRequest_descriptor,
        new java.lang.String[] { "SequenceNumber", });
    internal_static_proto_AcknowledgeVEPUpdatesByVIN_descriptor =
      getDescriptor().getMessageType(48);
    internal_static_proto_AcknowledgeVEPUpdatesByVIN_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_AcknowledgeVEPUpdatesByVIN_descriptor,
        new java.lang.String[] { "SequenceNumber", });
    internal_static_proto_ConfigurePingInterval_descriptor =
      getDescriptor().getMessageType(49);
    internal_static_proto_ConfigurePingInterval_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_ConfigurePingInterval_descriptor,
        new java.lang.String[] { "PingTimeMillis", });
    internal_static_proto_AcknowledgeVehicleUpdated_descriptor =
      getDescriptor().getMessageType(50);
    internal_static_proto_AcknowledgeVehicleUpdated_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_AcknowledgeVehicleUpdated_descriptor,
        new java.lang.String[] { "SequenceNumber", });
    internal_static_proto_AcknowledgePreferredDealerChange_descriptor =
      getDescriptor().getMessageType(51);
    internal_static_proto_AcknowledgePreferredDealerChange_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_AcknowledgePreferredDealerChange_descriptor,
        new java.lang.String[] { "SequenceNumber", });
    internal_static_proto_VehicleUpdated_descriptor =
      getDescriptor().getMessageType(52);
    internal_static_proto_VehicleUpdated_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_VehicleUpdated_descriptor,
        new java.lang.String[] { "SequenceNumber", "CiamId", "Vin", "EmitTimestampInMs", });
    internal_static_proto_PreferredDealerChange_descriptor =
      getDescriptor().getMessageType(53);
    internal_static_proto_PreferredDealerChange_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_PreferredDealerChange_descriptor,
        new java.lang.String[] { "SequenceNumber", "CiamId", "Vin", "EmitTimestampInMs", });
    internal_static_proto_AcknowledgeDataChangeEvent_descriptor =
      getDescriptor().getMessageType(54);
    internal_static_proto_AcknowledgeDataChangeEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_AcknowledgeDataChangeEvent_descriptor,
        new java.lang.String[] { "SequenceNumber", });
    internal_static_proto_Scopes_descriptor =
      getDescriptor().getMessageType(55);
    internal_static_proto_Scopes_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_Scopes_descriptor,
        new java.lang.String[] { "Scope", "CiamId", "Vin", "AdditionalResources", "ResourceCiamId", "ResourceVin", });
    internal_static_proto_Scopes_AdditionalResourcesEntry_descriptor =
      internal_static_proto_Scopes_descriptor.getNestedType(0);
    internal_static_proto_Scopes_AdditionalResourcesEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_Scopes_AdditionalResourcesEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_proto_DataChangeEvent_descriptor =
      getDescriptor().getMessageType(56);
    internal_static_proto_DataChangeEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_proto_DataChangeEvent_descriptor,
        new java.lang.String[] { "Scopes", "TrackingId", "SequenceNumber", });
    descriptor.resolveAllFeaturesImmutable();
    com.daimler.mbcarkit.proto.ServiceActivation.getDescriptor();
    com.daimler.mbcarkit.proto.UserEvents.getDescriptor();
    com.daimler.mbcarkit.proto.VehicleCommands.getDescriptor();
    com.daimler.mbcarkit.proto.Protos.getDescriptor();
    com.daimler.mbcarkit.proto.Vehicleapi.getDescriptor();
    com.google.protobuf.TimestampProto.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
