// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: Global_Uconnect_Ext_Eco_Coaching.proto
#pragma warning disable 1591, 0612, 3021
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace Com.Fca.Uconnect.Global {

  /// <summary>Holder for reflection information generated from Global_Uconnect_Ext_Eco_Coaching.proto</summary>
  public static partial class GlobalUconnectExtEcoCoachingReflection {

    #region Descriptor
    /// <summary>File descriptor for Global_Uconnect_Ext_Eco_Coaching.proto</summary>
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static GlobalUconnectExtEcoCoachingReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "CiZHbG9iYWxfVWNvbm5lY3RfRXh0X0Vjb19Db2FjaGluZy5wcm90bxIXY29t",
            "LmZjYS51Y29ubmVjdC5nbG9iYWwaHkdsb2JhbF9VY29ubmVjdF9FeHRfQXV0",
            "aC5wcm90byKEAgoSVXBsb2FkQ29hY2hpbmdEYXRhEg4KBnVzZXJJRBgBIAEo",
            "CRIPCgd3ZWJTaXRlGAIgASgJEg4KBnRyaXBJRBgFIAEoCRJRCglkYXRhVHlw",
            "ZWQYAyABKA4yPi5jb20uZmNhLnVjb25uZWN0Lmdsb2JhbC5VcGxvYWRDb2Fj",
            "aGluZ0RhdGEuZGF0YVVwbG9hZFR5cGVFbnVtEhAKCHRyaXBEYXRhGAQgASgM",
            "EhQKDHByb2ZpbGVUb2tlbhgGIAEoDCJCChJkYXRhVXBsb2FkVHlwZUVudW0S",
            "CAoEQkFTRRAAEgsKB0VDT1RSSVAQARIKCgZTVEFUVVMQBBIJCgVFVkVOVBAF",
            "IssCChpVcGxvYWRDb2FjaGluZ0RhdGFSZXNwb25zZRJSCghyZXNwb25zZRgB",
            "IAEoDjJALmNvbS5mY2EudWNvbm5lY3QuZ2xvYmFsLlVwbG9hZENvYWNoaW5n",
            "RGF0YVJlc3BvbnNlLlJlc3BvbnNlRW51bRITCgtpc1RyYW5zaWVudBgCIAEo",
            "CBIZChFmYWlsdXJlUmVhc29uQ29kZRgDIAEoBRIbChNmYWlsdXJlUmVhc29u",
            "U3RyaW5nGAQgASgJIosBCgxSZXNwb25zZUVudW0SCwoHU1VDQ0VTUxAAEgwK",
            "CEVSUk9SX09LEAESIAocRVJST1JfU0VSVklDRVNfTk9UX0FDVElWQVRFRBAC",
            "EhIKDkVSUk9SX0lOVEVSTkFMEAMSFAoQRVJST1JfVVNSX0FUVEFDSBAEEhQK",
            "EEVSUk9SX1ZJTl9BVFRBQ0gQBSKtBwoUVXBsb2FkQ29hY2hpbmdEYXRhVjIS",
            "DgoGdXNlcklEGAEgASgJEg8KB3dlYlNpdGUYAiABKAkSDgoGdHJpcElEGAUg",
            "ASgJEhIKCnRyYXZlbERhdGUYBCABKAMSFAoMcHJvZmlsZVRva2VuGAYgASgM",
            "EhAKCGVjb1Njb3JlGAcgASgFEhkKEWFjY2VsZXJhdGlvblNjb3JlGAggASgF",
            "EhkKEWRlY2VsZXJhdGlvblNjb3JlGAkgASgFEhIKCnNwZWVkU2NvcmUYCiAB",
            "KAUSFQoNc2hpZnRpbmdTY29yZRgLIAEoBRIbChNmdWVsQ29uc3VtcHRpb25S",
            "YXRlGAwgASgCEhQKDGF2ZXJhZ2VTcGVlZBgNIAEoAhITCgtlbGFwc2VkVGlt",
            "ZRgOIAEoAxIYChBkaXN0YW5jZVRyYXZlbGVkGA8gASgCEkwKCGdlYXJNb2Rl",
            "GBAgASgOMjouY29tLmZjYS51Y29ubmVjdC5nbG9iYWwuVXBsb2FkQ29hY2hp",
            "bmdEYXRhVjIuR2Vhck1vZGVFbnVtElYKDWRpc3RhbmNlVW5pdHMYESABKA4y",
            "Py5jb20uZmNhLnVjb25uZWN0Lmdsb2JhbC5VcGxvYWRDb2FjaGluZ0RhdGFW",
            "Mi5EaXN0YW5jZVVuaXRzRW51bRJcChBjb25zdW1wdGlvblVuaXRzGBMgASgO",
            "MkIuY29tLmZjYS51Y29ubmVjdC5nbG9iYWwuVXBsb2FkQ29hY2hpbmdEYXRh",
            "VjIuQ29uc3VtcHRpb25Vbml0c0VudW0SUAoKc3BlZWRVbml0cxgUIAEoDjI8",
            "LmNvbS5mY2EudWNvbm5lY3QuZ2xvYmFsLlVwbG9hZENvYWNoaW5nRGF0YVYy",
            "LlNwZWVkVW5pdHNFbnVtIjwKDEdlYXJNb2RlRW51bRIRCg1ERUZBVUxUX1ZB",
            "TFVFEAASDQoJQVVUT01BVElDEAESCgoGTUFOVUFMEAIiQQoRRGlzdGFuY2VV",
            "bml0c0VudW0SEQoNREVGQVVMVF9VTklUUxAAEgkKBU1JTEVTEAESDgoKS0lM",
            "T01FVEVSUxACIlcKFENvbnN1bXB0aW9uVW5pdHNFbnVtEhAKDERFRkFVTFRf",
            "Q09OUxAAEggKBEtNUEwQARILCgdMUDEwMEtNEAISCgoGTVBHX1VLEAMSCgoG",
            "TVBHX1VTEAQiNQoOU3BlZWRVbml0c0VudW0SEQoNREVGQVVMVF9TUEVFRBAA",
            "EgcKA0tQSBABEgcKA01QSBACYgZwcm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Com.Fca.Uconnect.Global.GlobalUconnectExtAuthReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.UploadCoachingData), global::Com.Fca.Uconnect.Global.UploadCoachingData.Parser, new[]{ "UserID", "WebSite", "TripID", "DataTyped", "TripData", "ProfileToken" }, null, new[]{ typeof(global::Com.Fca.Uconnect.Global.UploadCoachingData.Types.dataUploadTypeEnum) }, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.UploadCoachingDataResponse), global::Com.Fca.Uconnect.Global.UploadCoachingDataResponse.Parser, new[]{ "Response", "IsTransient", "FailureReasonCode", "FailureReasonString" }, null, new[]{ typeof(global::Com.Fca.Uconnect.Global.UploadCoachingDataResponse.Types.ResponseEnum) }, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.UploadCoachingDataV2), global::Com.Fca.Uconnect.Global.UploadCoachingDataV2.Parser, new[]{ "UserID", "WebSite", "TripID", "TravelDate", "ProfileToken", "EcoScore", "AccelerationScore", "DecelerationScore", "SpeedScore", "ShiftingScore", "FuelConsumptionRate", "AverageSpeed", "ElapsedTime", "DistanceTraveled", "GearMode", "DistanceUnits", "ConsumptionUnits", "SpeedUnits" }, null, new[]{ typeof(global::Com.Fca.Uconnect.Global.UploadCoachingDataV2.Types.GearModeEnum), typeof(global::Com.Fca.Uconnect.Global.UploadCoachingDataV2.Types.DistanceUnitsEnum), typeof(global::Com.Fca.Uconnect.Global.UploadCoachingDataV2.Types.ConsumptionUnitsEnum), typeof(global::Com.Fca.Uconnect.Global.UploadCoachingDataV2.Types.SpeedUnitsEnum) }, null)
          }));
    }
    #endregion

  }
  #region Messages
  public sealed partial class UploadCoachingData : pb::IMessage<UploadCoachingData> {
    private static readonly pb::MessageParser<UploadCoachingData> _parser = new pb::MessageParser<UploadCoachingData>(() => new UploadCoachingData());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<UploadCoachingData> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Fca.Uconnect.Global.GlobalUconnectExtEcoCoachingReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public UploadCoachingData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public UploadCoachingData(UploadCoachingData other) : this() {
      userID_ = other.userID_;
      webSite_ = other.webSite_;
      tripID_ = other.tripID_;
      dataTyped_ = other.dataTyped_;
      tripData_ = other.tripData_;
      profileToken_ = other.profileToken_;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public UploadCoachingData Clone() {
      return new UploadCoachingData(this);
    }

    /// <summary>Field number for the "userID" field.</summary>
    public const int UserIDFieldNumber = 1;
    private string userID_ = "";
    /// <summary>
    ////Same as ID used for the Personal Login, used for routing only
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string UserID {
      get { return userID_; }
      set {
        userID_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "webSite" field.</summary>
    public const int WebSiteFieldNumber = 2;
    private string webSite_ = "";
    /// <summary>
    ////Targeted Web Address
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string WebSite {
      get { return webSite_; }
      set {
        webSite_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "tripID" field.</summary>
    public const int TripIDFieldNumber = 5;
    private string tripID_ = "";
    /// <summary>
    //// Trip ID for ECO
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string TripID {
      get { return tripID_; }
      set {
        tripID_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "dataTyped" field.</summary>
    public const int DataTypedFieldNumber = 3;
    private global::Com.Fca.Uconnect.Global.UploadCoachingData.Types.dataUploadTypeEnum dataTyped_ = 0;
    /// <summary>
    //// Data Type EcoTrip, BrandTrip, Trail, Status, Event
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.UploadCoachingData.Types.dataUploadTypeEnum DataTyped {
      get { return dataTyped_; }
      set {
        dataTyped_ = value;
      }
    }

    /// <summary>Field number for the "tripData" field.</summary>
    public const int TripDataFieldNumber = 4;
    private pb::ByteString tripData_ = pb::ByteString.Empty;
    /// <summary>
    //// Data being uploaded
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pb::ByteString TripData {
      get { return tripData_; }
      set {
        tripData_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "profileToken" field.</summary>
    public const int ProfileTokenFieldNumber = 6;
    private pb::ByteString profileToken_ = pb::ByteString.Empty;
    /// <summary>
    //// Token obtained for Eco Coaching Profile
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pb::ByteString ProfileToken {
      get { return profileToken_; }
      set {
        profileToken_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as UploadCoachingData);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(UploadCoachingData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (UserID != other.UserID) return false;
      if (WebSite != other.WebSite) return false;
      if (TripID != other.TripID) return false;
      if (DataTyped != other.DataTyped) return false;
      if (TripData != other.TripData) return false;
      if (ProfileToken != other.ProfileToken) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (UserID.Length != 0) hash ^= UserID.GetHashCode();
      if (WebSite.Length != 0) hash ^= WebSite.GetHashCode();
      if (TripID.Length != 0) hash ^= TripID.GetHashCode();
      if (DataTyped != 0) hash ^= DataTyped.GetHashCode();
      if (TripData.Length != 0) hash ^= TripData.GetHashCode();
      if (ProfileToken.Length != 0) hash ^= ProfileToken.GetHashCode();
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (UserID.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(UserID);
      }
      if (WebSite.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(WebSite);
      }
      if (DataTyped != 0) {
        output.WriteRawTag(24);
        output.WriteEnum((int) DataTyped);
      }
      if (TripData.Length != 0) {
        output.WriteRawTag(34);
        output.WriteBytes(TripData);
      }
      if (TripID.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(TripID);
      }
      if (ProfileToken.Length != 0) {
        output.WriteRawTag(50);
        output.WriteBytes(ProfileToken);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (UserID.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(UserID);
      }
      if (WebSite.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(WebSite);
      }
      if (TripID.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(TripID);
      }
      if (DataTyped != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DataTyped);
      }
      if (TripData.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(TripData);
      }
      if (ProfileToken.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(ProfileToken);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(UploadCoachingData other) {
      if (other == null) {
        return;
      }
      if (other.UserID.Length != 0) {
        UserID = other.UserID;
      }
      if (other.WebSite.Length != 0) {
        WebSite = other.WebSite;
      }
      if (other.TripID.Length != 0) {
        TripID = other.TripID;
      }
      if (other.DataTyped != 0) {
        DataTyped = other.DataTyped;
      }
      if (other.TripData.Length != 0) {
        TripData = other.TripData;
      }
      if (other.ProfileToken.Length != 0) {
        ProfileToken = other.ProfileToken;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            UserID = input.ReadString();
            break;
          }
          case 18: {
            WebSite = input.ReadString();
            break;
          }
          case 24: {
            dataTyped_ = (global::Com.Fca.Uconnect.Global.UploadCoachingData.Types.dataUploadTypeEnum) input.ReadEnum();
            break;
          }
          case 34: {
            TripData = input.ReadBytes();
            break;
          }
          case 42: {
            TripID = input.ReadString();
            break;
          }
          case 50: {
            ProfileToken = input.ReadBytes();
            break;
          }
        }
      }
    }

    #region Nested types
    /// <summary>Container for nested types declared in the UploadCoachingData message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static partial class Types {
      public enum dataUploadTypeEnum {
        /// <summary>
        //// Required Default value
        /// </summary>
        [pbr::OriginalName("BASE")] Base = 0,
        /// <summary>
        //// Trip Data for Eco
        /// </summary>
        [pbr::OriginalName("ECOTRIP")] Ecotrip = 1,
        /// <summary>
        //// Status Data to be uploaded
        /// </summary>
        [pbr::OriginalName("STATUS")] Status = 4,
        /// <summary>
        //// Event based data upload [i.e. Ingition Off/On]
        /// </summary>
        [pbr::OriginalName("EVENT")] Event = 5,
      }

    }
    #endregion

  }

  public sealed partial class UploadCoachingDataResponse : pb::IMessage<UploadCoachingDataResponse> {
    private static readonly pb::MessageParser<UploadCoachingDataResponse> _parser = new pb::MessageParser<UploadCoachingDataResponse>(() => new UploadCoachingDataResponse());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<UploadCoachingDataResponse> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Fca.Uconnect.Global.GlobalUconnectExtEcoCoachingReflection.Descriptor.MessageTypes[1]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public UploadCoachingDataResponse() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public UploadCoachingDataResponse(UploadCoachingDataResponse other) : this() {
      response_ = other.response_;
      isTransient_ = other.isTransient_;
      failureReasonCode_ = other.failureReasonCode_;
      failureReasonString_ = other.failureReasonString_;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public UploadCoachingDataResponse Clone() {
      return new UploadCoachingDataResponse(this);
    }

    /// <summary>Field number for the "response" field.</summary>
    public const int ResponseFieldNumber = 1;
    private global::Com.Fca.Uconnect.Global.UploadCoachingDataResponse.Types.ResponseEnum response_ = 0;
    /// <summary>
    //// Success or Failure
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.UploadCoachingDataResponse.Types.ResponseEnum Response {
      get { return response_; }
      set {
        response_ = value;
      }
    }

    /// <summary>Field number for the "isTransient" field.</summary>
    public const int IsTransientFieldNumber = 2;
    private bool isTransient_;
    /// <summary>
    //// Indicates if the error is transient and to attempt a retry.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool IsTransient {
      get { return isTransient_; }
      set {
        isTransient_ = value;
      }
    }

    /// <summary>Field number for the "failureReasonCode" field.</summary>
    public const int FailureReasonCodeFieldNumber = 3;
    private int failureReasonCode_;
    /// <summary>
    //// App or System Supplied Reason Code for Failures - See Error Codes page in wiki for details
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int FailureReasonCode {
      get { return failureReasonCode_; }
      set {
        failureReasonCode_ = value;
      }
    }

    /// <summary>Field number for the "failureReasonString" field.</summary>
    public const int FailureReasonStringFieldNumber = 4;
    private string failureReasonString_ = "";
    /// <summary>
    //// can be mapped to httpResponse from B2B services
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string FailureReasonString {
      get { return failureReasonString_; }
      set {
        failureReasonString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as UploadCoachingDataResponse);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(UploadCoachingDataResponse other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Response != other.Response) return false;
      if (IsTransient != other.IsTransient) return false;
      if (FailureReasonCode != other.FailureReasonCode) return false;
      if (FailureReasonString != other.FailureReasonString) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (Response != 0) hash ^= Response.GetHashCode();
      if (IsTransient != false) hash ^= IsTransient.GetHashCode();
      if (FailureReasonCode != 0) hash ^= FailureReasonCode.GetHashCode();
      if (FailureReasonString.Length != 0) hash ^= FailureReasonString.GetHashCode();
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (Response != 0) {
        output.WriteRawTag(8);
        output.WriteEnum((int) Response);
      }
      if (IsTransient != false) {
        output.WriteRawTag(16);
        output.WriteBool(IsTransient);
      }
      if (FailureReasonCode != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(FailureReasonCode);
      }
      if (FailureReasonString.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(FailureReasonString);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (Response != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Response);
      }
      if (IsTransient != false) {
        size += 1 + 1;
      }
      if (FailureReasonCode != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(FailureReasonCode);
      }
      if (FailureReasonString.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(FailureReasonString);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(UploadCoachingDataResponse other) {
      if (other == null) {
        return;
      }
      if (other.Response != 0) {
        Response = other.Response;
      }
      if (other.IsTransient != false) {
        IsTransient = other.IsTransient;
      }
      if (other.FailureReasonCode != 0) {
        FailureReasonCode = other.FailureReasonCode;
      }
      if (other.FailureReasonString.Length != 0) {
        FailureReasonString = other.FailureReasonString;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 8: {
            response_ = (global::Com.Fca.Uconnect.Global.UploadCoachingDataResponse.Types.ResponseEnum) input.ReadEnum();
            break;
          }
          case 16: {
            IsTransient = input.ReadBool();
            break;
          }
          case 24: {
            FailureReasonCode = input.ReadInt32();
            break;
          }
          case 34: {
            FailureReasonString = input.ReadString();
            break;
          }
        }
      }
    }

    #region Nested types
    /// <summary>Container for nested types declared in the UploadCoachingDataResponse message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static partial class Types {
      public enum ResponseEnum {
        /// <summary>
        ////Success
        /// </summary>
        [pbr::OriginalName("SUCCESS")] Success = 0,
        [pbr::OriginalName("ERROR_OK")] ErrorOk = 1,
        [pbr::OriginalName("ERROR_SERVICES_NOT_ACTIVATED")] ErrorServicesNotActivated = 2,
        [pbr::OriginalName("ERROR_INTERNAL")] ErrorInternal = 3,
        [pbr::OriginalName("ERROR_USR_ATTACH")] ErrorUsrAttach = 4,
        [pbr::OriginalName("ERROR_VIN_ATTACH")] ErrorVinAttach = 5,
      }

    }
    #endregion

  }

  public sealed partial class UploadCoachingDataV2 : pb::IMessage<UploadCoachingDataV2> {
    private static readonly pb::MessageParser<UploadCoachingDataV2> _parser = new pb::MessageParser<UploadCoachingDataV2>(() => new UploadCoachingDataV2());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<UploadCoachingDataV2> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Com.Fca.Uconnect.Global.GlobalUconnectExtEcoCoachingReflection.Descriptor.MessageTypes[2]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public UploadCoachingDataV2() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public UploadCoachingDataV2(UploadCoachingDataV2 other) : this() {
      userID_ = other.userID_;
      webSite_ = other.webSite_;
      tripID_ = other.tripID_;
      travelDate_ = other.travelDate_;
      profileToken_ = other.profileToken_;
      ecoScore_ = other.ecoScore_;
      accelerationScore_ = other.accelerationScore_;
      decelerationScore_ = other.decelerationScore_;
      speedScore_ = other.speedScore_;
      shiftingScore_ = other.shiftingScore_;
      fuelConsumptionRate_ = other.fuelConsumptionRate_;
      averageSpeed_ = other.averageSpeed_;
      elapsedTime_ = other.elapsedTime_;
      distanceTraveled_ = other.distanceTraveled_;
      gearMode_ = other.gearMode_;
      distanceUnits_ = other.distanceUnits_;
      consumptionUnits_ = other.consumptionUnits_;
      speedUnits_ = other.speedUnits_;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public UploadCoachingDataV2 Clone() {
      return new UploadCoachingDataV2(this);
    }

    /// <summary>Field number for the "userID" field.</summary>
    public const int UserIDFieldNumber = 1;
    private string userID_ = "";
    /// <summary>
    ////Same as ID used for the Personal Login, used for routing only
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string UserID {
      get { return userID_; }
      set {
        userID_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "webSite" field.</summary>
    public const int WebSiteFieldNumber = 2;
    private string webSite_ = "";
    /// <summary>
    ////Targeted Web Address
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string WebSite {
      get { return webSite_; }
      set {
        webSite_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "tripID" field.</summary>
    public const int TripIDFieldNumber = 5;
    private string tripID_ = "";
    /// <summary>
    //// Trip ID for ECO
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string TripID {
      get { return tripID_; }
      set {
        tripID_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "travelDate" field.</summary>
    public const int TravelDateFieldNumber = 4;
    private long travelDate_;
    /// <summary>
    //// Travel Date expressed in UTC
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long TravelDate {
      get { return travelDate_; }
      set {
        travelDate_ = value;
      }
    }

    /// <summary>Field number for the "profileToken" field.</summary>
    public const int ProfileTokenFieldNumber = 6;
    private pb::ByteString profileToken_ = pb::ByteString.Empty;
    /// <summary>
    //// Token obtained for Eco Coaching Profile
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pb::ByteString ProfileToken {
      get { return profileToken_; }
      set {
        profileToken_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "ecoScore" field.</summary>
    public const int EcoScoreFieldNumber = 7;
    private int ecoScore_;
    /// <summary>
    //// Trip Eco Score
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int EcoScore {
      get { return ecoScore_; }
      set {
        ecoScore_ = value;
      }
    }

    /// <summary>Field number for the "accelerationScore" field.</summary>
    public const int AccelerationScoreFieldNumber = 8;
    private int accelerationScore_;
    /// <summary>
    ////Acceleration Score 0-150
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int AccelerationScore {
      get { return accelerationScore_; }
      set {
        accelerationScore_ = value;
      }
    }

    /// <summary>Field number for the "decelerationScore" field.</summary>
    public const int DecelerationScoreFieldNumber = 9;
    private int decelerationScore_;
    /// <summary>
    //// Deceleration Score 0-15
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int DecelerationScore {
      get { return decelerationScore_; }
      set {
        decelerationScore_ = value;
      }
    }

    /// <summary>Field number for the "speedScore" field.</summary>
    public const int SpeedScoreFieldNumber = 10;
    private int speedScore_;
    /// <summary>
    //// Speed Score 0-15
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int SpeedScore {
      get { return speedScore_; }
      set {
        speedScore_ = value;
      }
    }

    /// <summary>Field number for the "shiftingScore" field.</summary>
    public const int ShiftingScoreFieldNumber = 11;
    private int shiftingScore_;
    /// <summary>
    //// Shifting Score 0-15
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int ShiftingScore {
      get { return shiftingScore_; }
      set {
        shiftingScore_ = value;
      }
    }

    /// <summary>Field number for the "fuelConsumptionRate" field.</summary>
    public const int FuelConsumptionRateFieldNumber = 12;
    private float fuelConsumptionRate_;
    /// <summary>
    //// 0.0 to Float Max
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public float FuelConsumptionRate {
      get { return fuelConsumptionRate_; }
      set {
        fuelConsumptionRate_ = value;
      }
    }

    /// <summary>Field number for the "averageSpeed" field.</summary>
    public const int AverageSpeedFieldNumber = 13;
    private float averageSpeed_;
    /// <summary>
    //// 0.0 to Float Max
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public float AverageSpeed {
      get { return averageSpeed_; }
      set {
        averageSpeed_ = value;
      }
    }

    /// <summary>Field number for the "elapsedTime" field.</summary>
    public const int ElapsedTimeFieldNumber = 14;
    private long elapsedTime_;
    /// <summary>
    //// Elapsed time in milliseconds
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long ElapsedTime {
      get { return elapsedTime_; }
      set {
        elapsedTime_ = value;
      }
    }

    /// <summary>Field number for the "distanceTraveled" field.</summary>
    public const int DistanceTraveledFieldNumber = 15;
    private float distanceTraveled_;
    /// <summary>
    //// Distance Traveled
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public float DistanceTraveled {
      get { return distanceTraveled_; }
      set {
        distanceTraveled_ = value;
      }
    }

    /// <summary>Field number for the "gearMode" field.</summary>
    public const int GearModeFieldNumber = 16;
    private global::Com.Fca.Uconnect.Global.UploadCoachingDataV2.Types.GearModeEnum gearMode_ = 0;
    /// <summary>
    //// Gear Modes: AUTOMATIC, MANUAL
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.UploadCoachingDataV2.Types.GearModeEnum GearMode {
      get { return gearMode_; }
      set {
        gearMode_ = value;
      }
    }

    /// <summary>Field number for the "distanceUnits" field.</summary>
    public const int DistanceUnitsFieldNumber = 17;
    private global::Com.Fca.Uconnect.Global.UploadCoachingDataV2.Types.DistanceUnitsEnum distanceUnits_ = 0;
    /// <summary>
    //// Distance Units: Miles, Kilometers
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.UploadCoachingDataV2.Types.DistanceUnitsEnum DistanceUnits {
      get { return distanceUnits_; }
      set {
        distanceUnits_ = value;
      }
    }

    /// <summary>Field number for the "consumptionUnits" field.</summary>
    public const int ConsumptionUnitsFieldNumber = 19;
    private global::Com.Fca.Uconnect.Global.UploadCoachingDataV2.Types.ConsumptionUnitsEnum consumptionUnits_ = 0;
    /// <summary>
    //// Consumption Units
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.UploadCoachingDataV2.Types.ConsumptionUnitsEnum ConsumptionUnits {
      get { return consumptionUnits_; }
      set {
        consumptionUnits_ = value;
      }
    }

    /// <summary>Field number for the "speedUnits" field.</summary>
    public const int SpeedUnitsFieldNumber = 20;
    private global::Com.Fca.Uconnect.Global.UploadCoachingDataV2.Types.SpeedUnitsEnum speedUnits_ = 0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.UploadCoachingDataV2.Types.SpeedUnitsEnum SpeedUnits {
      get { return speedUnits_; }
      set {
        speedUnits_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as UploadCoachingDataV2);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(UploadCoachingDataV2 other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (UserID != other.UserID) return false;
      if (WebSite != other.WebSite) return false;
      if (TripID != other.TripID) return false;
      if (TravelDate != other.TravelDate) return false;
      if (ProfileToken != other.ProfileToken) return false;
      if (EcoScore != other.EcoScore) return false;
      if (AccelerationScore != other.AccelerationScore) return false;
      if (DecelerationScore != other.DecelerationScore) return false;
      if (SpeedScore != other.SpeedScore) return false;
      if (ShiftingScore != other.ShiftingScore) return false;
      if (FuelConsumptionRate != other.FuelConsumptionRate) return false;
      if (AverageSpeed != other.AverageSpeed) return false;
      if (ElapsedTime != other.ElapsedTime) return false;
      if (DistanceTraveled != other.DistanceTraveled) return false;
      if (GearMode != other.GearMode) return false;
      if (DistanceUnits != other.DistanceUnits) return false;
      if (ConsumptionUnits != other.ConsumptionUnits) return false;
      if (SpeedUnits != other.SpeedUnits) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (UserID.Length != 0) hash ^= UserID.GetHashCode();
      if (WebSite.Length != 0) hash ^= WebSite.GetHashCode();
      if (TripID.Length != 0) hash ^= TripID.GetHashCode();
      if (TravelDate != 0L) hash ^= TravelDate.GetHashCode();
      if (ProfileToken.Length != 0) hash ^= ProfileToken.GetHashCode();
      if (EcoScore != 0) hash ^= EcoScore.GetHashCode();
      if (AccelerationScore != 0) hash ^= AccelerationScore.GetHashCode();
      if (DecelerationScore != 0) hash ^= DecelerationScore.GetHashCode();
      if (SpeedScore != 0) hash ^= SpeedScore.GetHashCode();
      if (ShiftingScore != 0) hash ^= ShiftingScore.GetHashCode();
      if (FuelConsumptionRate != 0F) hash ^= FuelConsumptionRate.GetHashCode();
      if (AverageSpeed != 0F) hash ^= AverageSpeed.GetHashCode();
      if (ElapsedTime != 0L) hash ^= ElapsedTime.GetHashCode();
      if (DistanceTraveled != 0F) hash ^= DistanceTraveled.GetHashCode();
      if (GearMode != 0) hash ^= GearMode.GetHashCode();
      if (DistanceUnits != 0) hash ^= DistanceUnits.GetHashCode();
      if (ConsumptionUnits != 0) hash ^= ConsumptionUnits.GetHashCode();
      if (SpeedUnits != 0) hash ^= SpeedUnits.GetHashCode();
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (UserID.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(UserID);
      }
      if (WebSite.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(WebSite);
      }
      if (TravelDate != 0L) {
        output.WriteRawTag(32);
        output.WriteInt64(TravelDate);
      }
      if (TripID.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(TripID);
      }
      if (ProfileToken.Length != 0) {
        output.WriteRawTag(50);
        output.WriteBytes(ProfileToken);
      }
      if (EcoScore != 0) {
        output.WriteRawTag(56);
        output.WriteInt32(EcoScore);
      }
      if (AccelerationScore != 0) {
        output.WriteRawTag(64);
        output.WriteInt32(AccelerationScore);
      }
      if (DecelerationScore != 0) {
        output.WriteRawTag(72);
        output.WriteInt32(DecelerationScore);
      }
      if (SpeedScore != 0) {
        output.WriteRawTag(80);
        output.WriteInt32(SpeedScore);
      }
      if (ShiftingScore != 0) {
        output.WriteRawTag(88);
        output.WriteInt32(ShiftingScore);
      }
      if (FuelConsumptionRate != 0F) {
        output.WriteRawTag(101);
        output.WriteFloat(FuelConsumptionRate);
      }
      if (AverageSpeed != 0F) {
        output.WriteRawTag(109);
        output.WriteFloat(AverageSpeed);
      }
      if (ElapsedTime != 0L) {
        output.WriteRawTag(112);
        output.WriteInt64(ElapsedTime);
      }
      if (DistanceTraveled != 0F) {
        output.WriteRawTag(125);
        output.WriteFloat(DistanceTraveled);
      }
      if (GearMode != 0) {
        output.WriteRawTag(128, 1);
        output.WriteEnum((int) GearMode);
      }
      if (DistanceUnits != 0) {
        output.WriteRawTag(136, 1);
        output.WriteEnum((int) DistanceUnits);
      }
      if (ConsumptionUnits != 0) {
        output.WriteRawTag(152, 1);
        output.WriteEnum((int) ConsumptionUnits);
      }
      if (SpeedUnits != 0) {
        output.WriteRawTag(160, 1);
        output.WriteEnum((int) SpeedUnits);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (UserID.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(UserID);
      }
      if (WebSite.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(WebSite);
      }
      if (TripID.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(TripID);
      }
      if (TravelDate != 0L) {
        size += 1 + pb::CodedOutputStream.ComputeInt64Size(TravelDate);
      }
      if (ProfileToken.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(ProfileToken);
      }
      if (EcoScore != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(EcoScore);
      }
      if (AccelerationScore != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(AccelerationScore);
      }
      if (DecelerationScore != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(DecelerationScore);
      }
      if (SpeedScore != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(SpeedScore);
      }
      if (ShiftingScore != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(ShiftingScore);
      }
      if (FuelConsumptionRate != 0F) {
        size += 1 + 4;
      }
      if (AverageSpeed != 0F) {
        size += 1 + 4;
      }
      if (ElapsedTime != 0L) {
        size += 1 + pb::CodedOutputStream.ComputeInt64Size(ElapsedTime);
      }
      if (DistanceTraveled != 0F) {
        size += 1 + 4;
      }
      if (GearMode != 0) {
        size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) GearMode);
      }
      if (DistanceUnits != 0) {
        size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) DistanceUnits);
      }
      if (ConsumptionUnits != 0) {
        size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ConsumptionUnits);
      }
      if (SpeedUnits != 0) {
        size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SpeedUnits);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(UploadCoachingDataV2 other) {
      if (other == null) {
        return;
      }
      if (other.UserID.Length != 0) {
        UserID = other.UserID;
      }
      if (other.WebSite.Length != 0) {
        WebSite = other.WebSite;
      }
      if (other.TripID.Length != 0) {
        TripID = other.TripID;
      }
      if (other.TravelDate != 0L) {
        TravelDate = other.TravelDate;
      }
      if (other.ProfileToken.Length != 0) {
        ProfileToken = other.ProfileToken;
      }
      if (other.EcoScore != 0) {
        EcoScore = other.EcoScore;
      }
      if (other.AccelerationScore != 0) {
        AccelerationScore = other.AccelerationScore;
      }
      if (other.DecelerationScore != 0) {
        DecelerationScore = other.DecelerationScore;
      }
      if (other.SpeedScore != 0) {
        SpeedScore = other.SpeedScore;
      }
      if (other.ShiftingScore != 0) {
        ShiftingScore = other.ShiftingScore;
      }
      if (other.FuelConsumptionRate != 0F) {
        FuelConsumptionRate = other.FuelConsumptionRate;
      }
      if (other.AverageSpeed != 0F) {
        AverageSpeed = other.AverageSpeed;
      }
      if (other.ElapsedTime != 0L) {
        ElapsedTime = other.ElapsedTime;
      }
      if (other.DistanceTraveled != 0F) {
        DistanceTraveled = other.DistanceTraveled;
      }
      if (other.GearMode != 0) {
        GearMode = other.GearMode;
      }
      if (other.DistanceUnits != 0) {
        DistanceUnits = other.DistanceUnits;
      }
      if (other.ConsumptionUnits != 0) {
        ConsumptionUnits = other.ConsumptionUnits;
      }
      if (other.SpeedUnits != 0) {
        SpeedUnits = other.SpeedUnits;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            UserID = input.ReadString();
            break;
          }
          case 18: {
            WebSite = input.ReadString();
            break;
          }
          case 32: {
            TravelDate = input.ReadInt64();
            break;
          }
          case 42: {
            TripID = input.ReadString();
            break;
          }
          case 50: {
            ProfileToken = input.ReadBytes();
            break;
          }
          case 56: {
            EcoScore = input.ReadInt32();
            break;
          }
          case 64: {
            AccelerationScore = input.ReadInt32();
            break;
          }
          case 72: {
            DecelerationScore = input.ReadInt32();
            break;
          }
          case 80: {
            SpeedScore = input.ReadInt32();
            break;
          }
          case 88: {
            ShiftingScore = input.ReadInt32();
            break;
          }
          case 101: {
            FuelConsumptionRate = input.ReadFloat();
            break;
          }
          case 109: {
            AverageSpeed = input.ReadFloat();
            break;
          }
          case 112: {
            ElapsedTime = input.ReadInt64();
            break;
          }
          case 125: {
            DistanceTraveled = input.ReadFloat();
            break;
          }
          case 128: {
            gearMode_ = (global::Com.Fca.Uconnect.Global.UploadCoachingDataV2.Types.GearModeEnum) input.ReadEnum();
            break;
          }
          case 136: {
            distanceUnits_ = (global::Com.Fca.Uconnect.Global.UploadCoachingDataV2.Types.DistanceUnitsEnum) input.ReadEnum();
            break;
          }
          case 152: {
            consumptionUnits_ = (global::Com.Fca.Uconnect.Global.UploadCoachingDataV2.Types.ConsumptionUnitsEnum) input.ReadEnum();
            break;
          }
          case 160: {
            speedUnits_ = (global::Com.Fca.Uconnect.Global.UploadCoachingDataV2.Types.SpeedUnitsEnum) input.ReadEnum();
            break;
          }
        }
      }
    }

    #region Nested types
    /// <summary>Container for nested types declared in the UploadCoachingDataV2 message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static partial class Types {
      public enum GearModeEnum {
        [pbr::OriginalName("DEFAULT_VALUE")] DefaultValue = 0,
        [pbr::OriginalName("AUTOMATIC")] Automatic = 1,
        [pbr::OriginalName("MANUAL")] Manual = 2,
      }

      public enum DistanceUnitsEnum {
        [pbr::OriginalName("DEFAULT_UNITS")] DefaultUnits = 0,
        [pbr::OriginalName("MILES")] Miles = 1,
        [pbr::OriginalName("KILOMETERS")] Kilometers = 2,
      }

      public enum ConsumptionUnitsEnum {
        [pbr::OriginalName("DEFAULT_CONS")] DefaultCons = 0,
        [pbr::OriginalName("KMPL")] Kmpl = 1,
        [pbr::OriginalName("LP100KM")] Lp100Km = 2,
        [pbr::OriginalName("MPG_UK")] MpgUk = 3,
        [pbr::OriginalName("MPG_US")] MpgUs = 4,
      }

      public enum SpeedUnitsEnum {
        [pbr::OriginalName("DEFAULT_SPEED")] DefaultSpeed = 0,
        [pbr::OriginalName("KPH")] Kph = 1,
        [pbr::OriginalName("MPH")] Mph = 2,
      }

    }
    #endregion

  }

  #endregion

}

#endregion Designer generated code
