// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: Global_Uconnect_Ext_RoadSideAssist.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_RoadSideAssist.proto</summary>
  public static partial class GlobalUconnectExtRoadSideAssistReflection {

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

    static GlobalUconnectExtRoadSideAssistReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "CihHbG9iYWxfVWNvbm5lY3RfRXh0X1JvYWRTaWRlQXNzaXN0LnByb3RvEhdj",
            "b20uZmNhLnVjb25uZWN0Lmdsb2JhbBohR2xvYmFsX1Vjb25uZWN0X1ZlaGlj",
            "bGVJbmZvLnByb3RvGhxHbG9iYWxfVWNvbm5lY3RfRGV2aWNlLnByb3RvGh9H",
            "bG9iYWxfVWNvbm5lY3RfRXh0X0VDYWxsLnByb3RvIpUICg1SU0FEYXRhVXBs",
            "b2FkEhgKEGNhbGxDZW50ZXJOdW1iZXIYCSABKAkSQQoIY2FsbHR5cGUYCiAB",
            "KA4yLy5jb20uZmNhLnVjb25uZWN0Lmdsb2JhbC5SU0FEYXRhVXBsb2FkLkNh",
            "bGxUeXBlEksKD2NhbGxUcmlnZ2VyRW51bRgLIAEoDjIyLmNvbS5mY2EudWNv",
            "bm5lY3QuZ2xvYmFsLlJTQURhdGFVcGxvYWQuQ2FsbFRyaWdnZXISSQoOQ2Fs",
            "bFJlYXNvbkVudW0YDCABKA4yMS5jb20uZmNhLnVjb25uZWN0Lmdsb2JhbC5S",
            "U0FEYXRhVXBsb2FkLkNhbGxSZWFzb24SLwoGZGV2aWNlGAggASgLMh8uY29t",
            "LmZjYS51Y29ubmVjdC5nbG9iYWwuRGV2aWNlEjkKC3ZlaGljbGVJbmZvGAEg",
            "ASgLMiQuY29tLmZjYS51Y29ubmVjdC5nbG9iYWwuVmVoaWNsZUluZm8SOwoM",
            "dGlyZVByZXNzdXJlGAIgASgLMiUuY29tLmZjYS51Y29ubmVjdC5nbG9iYWwu",
            "VGlyZVByZXNzdXJlEhUKDWZ1ZWxSZW1haW5pbmcYAyABKAISSwoNZXJyb3JU",
            "ZWxsVGFsZRgEIAEoCzI0LmNvbS5mY2EudWNvbm5lY3QuZ2xvYmFsLlJTQURh",
            "dGFVcGxvYWQuRXJyb3JUZWxsVGFsZRIVCg1zdGF0ZW9mQ2hhcmdlGAUgASgB",
            "EiMKG2RheXNSZW1haW5pbmdGb3JOZXh0U2VydmljZRgGIAEoBRInCh9kaXN0",
            "YW5jZVJlbWFpbmluZ0Zvck5leHRTZXJ2aWNlGAcgASgFGiYKDUVycm9yVGVs",
            "bFRhbGUSFQoNaXNPaWxQcmVzc3VyZRgBIAEoCCI2CgtDYWxsVHJpZ2dlchIK",
            "CgZNQU5VQUwQABINCglBVVRPTUFUSUMQARIMCghPTkRFTUFORBACIpABCgpD",
            "YWxsUmVhc29uEgsKB0RFRkFVTFQQABIRCg1FTkdJTkVPSUxURU1QEAESDwoL",
            "V0FURVJJTkZVRUwQAhISCg5CUkFLRUlORElDQVRPUhADEhUKEUJSQUtFUEFE",
            "SU5ESUNBVE9SEAQSEQoNTE9XQlJFQUtGTFVJRBAFEhMKD0JSRUFLUEVEQUxG",
            "QVVMVBAGIqkBCghDYWxsVHlwZRIJCgVCUkFORBAAEgwKCFJPQURTSURFEAES",
            "DAoIR1VBUkRJQU4QAhIMCghVQ09OTkVDVBADEg0KCUNPTkNJRVJHRRAEEhMK",
            "D0FTT1NfTk9OX0lNUEFDVBAFEgcKA1NPUxAGEgsKB0FTU0lTVDEQBxILCgdB",
            "U1NJU1QyEAgSCwoHQVNTSVNUMxAJEgsKB0FTU0lTVDQQChIHCgNJVkEQCyLb",
            "AQoRQkNhbGxTdGF0dXNVcGRhdGUSUwoPYmNhbGxTdGF0dXNFbnVtGAEgASgO",
            "MjouY29tLmZjYS51Y29ubmVjdC5nbG9iYWwuQkNhbGxTdGF0dXNVcGRhdGUu",
            "QkNhbGxTdGF0dXNFbnVtInEKD0JDYWxsU3RhdHVzRW51bRIICgRESUFMEAAS",
            "DQoJQ0FOQ0VMTEVEEAESDgoKVEVSTUlOQVRFRBACEhAKDERST1BQRURfQ0FM",
            "TBADEg8KC0NBTExfRkFJTEVEEAQSEgoOQVRURU1QVF9GQUlMRUQQBSJhChVS",
            "U0FWZWhpY2xlRGF0YVJlcXVlc3QSSAoSdmVoaWNsZURhdGFSZXF1ZXN0GAEg",
            "ASgLMiwuY29tLmZjYS51Y29ubmVjdC5nbG9iYWwuRUNhbGxWZWhEYXRhUmVx",
            "dWVzdCJbChZSU0FWZWhpY2xlRGF0YVJlc3BvbnNlEkEKEXZlaGljbGVEYXRh",
            "VXBsb2FkGAEgASgLMiYuY29tLmZjYS51Y29ubmVjdC5nbG9iYWwuUlNBRGF0",
            "YVVwbG9hZCJ0ChVVcGRhdGVSU0FQaG9uZU51bWJlcnMSEQoJUGhvbmVMaXN0",
            "GAEgASgMEkgKE3JhUGhvbmVMaXN0TWVzc2FnZXMYAiADKAsyKy5jb20uZmNh",
            "LnVjb25uZWN0Lmdsb2JhbC5SQVBob25lTGlzdE1lc3NhZ2UixAMKElJBUGhv",
            "bmVMaXN0TWVzc2FnZRIWCg5FbmFibGVDYWxsVHlwZRgBIAEoCBIaChJQcmlt",
            "YXJ5UGhvbmVOdW1iZXIYAiABKAkSHAoUU2Vjb25kYXJ5UGhvbmVOdW1iZXIY",
            "AyABKAkSTgoKY2FsbENlbnRlchgFIAEoDjI6LmNvbS5mY2EudWNvbm5lY3Qu",
            "Z2xvYmFsLlJBUGhvbmVMaXN0TWVzc2FnZS5DYWxsQ2VudGVyVHlwZRJKCgxj",
            "YWxsVHlwZUVudW0YBCABKA4yNC5jb20uZmNhLnVjb25uZWN0Lmdsb2JhbC5S",
            "QVBob25lTGlzdE1lc3NhZ2UuQ2FsbFR5cGUiYgoOQ2FsbENlbnRlclR5cGUS",
            "CQoFQlJBTkQQABIMCghST0FEU0lERRABEgwKCEdVQVJESUFOEAISDAoIVUNP",
            "Tk5FQ1QQAxINCglDT05DSUVSR0UQBBIMCghJVkFfQ0FMTBAFIlwKCENhbGxU",
            "eXBlEgsKB0Fzc2lzdDEQABILCgdBc3Npc3QyEAESCwoHQXNzaXN0MxACEgsK",
            "B0Fzc2lzdDQQAxIHCgNJVkEQBBITCg9BU09TX05PTl9JTVBBQ1QQBSKUAgoW",
            "UmVxdWVzdFJTQVBob25lTnVtYmVycxJjChJ2ZWhpY2xlUHJveHlDb25maWcY",
            "AiABKA4yRy5jb20uZmNhLnVjb25uZWN0Lmdsb2JhbC5SZXF1ZXN0UlNBUGhv",
            "bmVOdW1iZXJzLlZlaGNpY2xlUHJveHlDb25maWdFbnVtEkgKE3JhUGhvbmVM",
            "aXN0TWVzc2FnZXMYASADKAsyKy5jb20uZmNhLnVjb25uZWN0Lmdsb2JhbC5S",
            "QVBob25lTGlzdE1lc3NhZ2UiSwoXVmVoY2ljbGVQcm94eUNvbmZpZ0VudW0S",
            "CAoETk9ORRAAEhEKDVNJTkdMRV9CVVRUT04QARITCg9NVUxUSVBMRV9CVVRU",
            "T04QAlAAUAFQAmIGcHJvdG8z"));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Com.Fca.Uconnect.Global.GlobalUconnectVehicleInfoReflection.Descriptor, global::Com.Fca.Uconnect.Global.GlobalUconnectDeviceReflection.Descriptor, global::Com.Fca.Uconnect.Global.GlobalUconnectExtECallReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.RSADataUpload), global::Com.Fca.Uconnect.Global.RSADataUpload.Parser, new[]{ "CallCenterNumber", "Calltype", "CallTriggerEnum", "CallReasonEnum", "Device", "VehicleInfo", "TirePressure", "FuelRemaining", "ErrorTellTale", "StateofCharge", "DaysRemainingForNextService", "DistanceRemainingForNextService" }, null, new[]{ typeof(global::Com.Fca.Uconnect.Global.RSADataUpload.Types.CallTrigger), typeof(global::Com.Fca.Uconnect.Global.RSADataUpload.Types.CallReason), typeof(global::Com.Fca.Uconnect.Global.RSADataUpload.Types.CallType) }, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.RSADataUpload.Types.ErrorTellTale), global::Com.Fca.Uconnect.Global.RSADataUpload.Types.ErrorTellTale.Parser, new[]{ "IsOilPressure" }, null, null, null)}),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.BCallStatusUpdate), global::Com.Fca.Uconnect.Global.BCallStatusUpdate.Parser, new[]{ "BcallStatusEnum" }, null, new[]{ typeof(global::Com.Fca.Uconnect.Global.BCallStatusUpdate.Types.BCallStatusEnum) }, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.RSAVehicleDataRequest), global::Com.Fca.Uconnect.Global.RSAVehicleDataRequest.Parser, new[]{ "VehicleDataRequest" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.RSAVehicleDataResponse), global::Com.Fca.Uconnect.Global.RSAVehicleDataResponse.Parser, new[]{ "VehicleDataUpload" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.UpdateRSAPhoneNumbers), global::Com.Fca.Uconnect.Global.UpdateRSAPhoneNumbers.Parser, new[]{ "PhoneList", "RaPhoneListMessages" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.RAPhoneListMessage), global::Com.Fca.Uconnect.Global.RAPhoneListMessage.Parser, new[]{ "EnableCallType", "PrimaryPhoneNumber", "SecondaryPhoneNumber", "CallCenter", "CallTypeEnum" }, null, new[]{ typeof(global::Com.Fca.Uconnect.Global.RAPhoneListMessage.Types.CallCenterType), typeof(global::Com.Fca.Uconnect.Global.RAPhoneListMessage.Types.CallType) }, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.RequestRSAPhoneNumbers), global::Com.Fca.Uconnect.Global.RequestRSAPhoneNumbers.Parser, new[]{ "VehicleProxyConfig", "RaPhoneListMessages" }, null, new[]{ typeof(global::Com.Fca.Uconnect.Global.RequestRSAPhoneNumbers.Types.VehcicleProxyConfigEnum) }, null)
          }));
    }
    #endregion

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

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public RSADataUpload(RSADataUpload other) : this() {
      callCenterNumber_ = other.callCenterNumber_;
      calltype_ = other.calltype_;
      callTriggerEnum_ = other.callTriggerEnum_;
      callReasonEnum_ = other.callReasonEnum_;
      Device = other.device_ != null ? other.Device.Clone() : null;
      VehicleInfo = other.vehicleInfo_ != null ? other.VehicleInfo.Clone() : null;
      TirePressure = other.tirePressure_ != null ? other.TirePressure.Clone() : null;
      fuelRemaining_ = other.fuelRemaining_;
      ErrorTellTale = other.errorTellTale_ != null ? other.ErrorTellTale.Clone() : null;
      stateofCharge_ = other.stateofCharge_;
      daysRemainingForNextService_ = other.daysRemainingForNextService_;
      distanceRemainingForNextService_ = other.distanceRemainingForNextService_;
    }

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

    /// <summary>Field number for the "callCenterNumber" field.</summary>
    public const int CallCenterNumberFieldNumber = 9;
    private string callCenterNumber_ = "";
    /// <summary>
    //// Phone number for the call center that the assist call was directed to.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string CallCenterNumber {
      get { return callCenterNumber_; }
      set {
        callCenterNumber_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "calltype" field.</summary>
    public const int CalltypeFieldNumber = 10;
    private global::Com.Fca.Uconnect.Global.RSADataUpload.Types.CallType calltype_ = 0;
    /// <summary>
    //// Enumeration for the type of call being made i.e. Brand, Uconnect, Roadside, Concierge
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.RSADataUpload.Types.CallType Calltype {
      get { return calltype_; }
      set {
        calltype_ = value;
      }
    }

    /// <summary>Field number for the "callTriggerEnum" field.</summary>
    public const int CallTriggerEnumFieldNumber = 11;
    private global::Com.Fca.Uconnect.Global.RSADataUpload.Types.CallTrigger callTriggerEnum_ = 0;
    /// <summary>
    //// Is an automatic non-impact call or manual
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.RSADataUpload.Types.CallTrigger CallTriggerEnum {
      get { return callTriggerEnum_; }
      set {
        callTriggerEnum_ = value;
      }
    }

    /// <summary>Field number for the "CallReasonEnum" field.</summary>
    public const int CallReasonEnumFieldNumber = 12;
    private global::Com.Fca.Uconnect.Global.RSADataUpload.Types.CallReason callReasonEnum_ = 0;
    /// <summary>
    //// Reason - only used in case of automatic call
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.RSADataUpload.Types.CallReason CallReasonEnum {
      get { return callReasonEnum_; }
      set {
        callReasonEnum_ = value;
      }
    }

    /// <summary>Field number for the "device" field.</summary>
    public const int DeviceFieldNumber = 8;
    private global::Com.Fca.Uconnect.Global.Device device_;
    /// <summary>
    //// device info This identifies the type of the device. / Device Manufacturer Name / TBM Serial Number / TBM Part Number / TBM Hardware Version / TBM Software Version / ICCID for the SIM / MSI for the SIM / Number uniquely identifying a subscription in a mobile network. / IMIE Number for the NAD / Modem Hardware Version / Modem Software Version / Modem Serial Number / Model Part Number / WiFi Mac Address / HU Serial Number / HU Part Number / HU Hardware Version / HU Software Version
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.Device Device {
      get { return device_; }
      set {
        device_ = value;
      }
    }

    /// <summary>Field number for the "vehicleInfo" field.</summary>
    public const int VehicleInfoFieldNumber = 1;
    private global::Com.Fca.Uconnect.Global.VehicleInfo vehicleInfo_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.VehicleInfo VehicleInfo {
      get { return vehicleInfo_; }
      set {
        vehicleInfo_ = value;
      }
    }

    /// <summary>Field number for the "tirePressure" field.</summary>
    public const int TirePressureFieldNumber = 2;
    private global::Com.Fca.Uconnect.Global.TirePressure tirePressure_;
    /// <summary>
    ////define Tire pressure for all the tires - not used
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.TirePressure TirePressure {
      get { return tirePressure_; }
      set {
        tirePressure_ = value;
      }
    }

    /// <summary>Field number for the "fuelRemaining" field.</summary>
    public const int FuelRemainingFieldNumber = 3;
    private float fuelRemaining_;
    /// <summary>
    //// Represents Fuel left. Not used
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public float FuelRemaining {
      get { return fuelRemaining_; }
      set {
        fuelRemaining_ = value;
      }
    }

    /// <summary>Field number for the "errorTellTale" field.</summary>
    public const int ErrorTellTaleFieldNumber = 4;
    private global::Com.Fca.Uconnect.Global.RSADataUpload.Types.ErrorTellTale errorTellTale_;
    /// <summary>
    //// Not Used
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.RSADataUpload.Types.ErrorTellTale ErrorTellTale {
      get { return errorTellTale_; }
      set {
        errorTellTale_ = value;
      }
    }

    /// <summary>Field number for the "stateofCharge" field.</summary>
    public const int StateofChargeFieldNumber = 5;
    private double stateofCharge_;
    /// <summary>
    /// 0% - Empty , 100% - Full. Not Used
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public double StateofCharge {
      get { return stateofCharge_; }
      set {
        stateofCharge_ = value;
      }
    }

    /// <summary>Field number for the "daysRemainingForNextService" field.</summary>
    public const int DaysRemainingForNextServiceFieldNumber = 6;
    private int daysRemainingForNextService_;
    /// <summary>
    //// The number of days remaining for next service. NOT USED
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int DaysRemainingForNextService {
      get { return daysRemainingForNextService_; }
      set {
        daysRemainingForNextService_ = value;
      }
    }

    /// <summary>Field number for the "distanceRemainingForNextService" field.</summary>
    public const int DistanceRemainingForNextServiceFieldNumber = 7;
    private int distanceRemainingForNextService_;
    /// <summary>
    //// The distance remaining for next service. NOT USED
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int DistanceRemainingForNextService {
      get { return distanceRemainingForNextService_; }
      set {
        distanceRemainingForNextService_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(RSADataUpload other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (CallCenterNumber != other.CallCenterNumber) return false;
      if (Calltype != other.Calltype) return false;
      if (CallTriggerEnum != other.CallTriggerEnum) return false;
      if (CallReasonEnum != other.CallReasonEnum) return false;
      if (!object.Equals(Device, other.Device)) return false;
      if (!object.Equals(VehicleInfo, other.VehicleInfo)) return false;
      if (!object.Equals(TirePressure, other.TirePressure)) return false;
      if (FuelRemaining != other.FuelRemaining) return false;
      if (!object.Equals(ErrorTellTale, other.ErrorTellTale)) return false;
      if (StateofCharge != other.StateofCharge) return false;
      if (DaysRemainingForNextService != other.DaysRemainingForNextService) return false;
      if (DistanceRemainingForNextService != other.DistanceRemainingForNextService) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (CallCenterNumber.Length != 0) hash ^= CallCenterNumber.GetHashCode();
      if (Calltype != 0) hash ^= Calltype.GetHashCode();
      if (CallTriggerEnum != 0) hash ^= CallTriggerEnum.GetHashCode();
      if (CallReasonEnum != 0) hash ^= CallReasonEnum.GetHashCode();
      if (device_ != null) hash ^= Device.GetHashCode();
      if (vehicleInfo_ != null) hash ^= VehicleInfo.GetHashCode();
      if (tirePressure_ != null) hash ^= TirePressure.GetHashCode();
      if (FuelRemaining != 0F) hash ^= FuelRemaining.GetHashCode();
      if (errorTellTale_ != null) hash ^= ErrorTellTale.GetHashCode();
      if (StateofCharge != 0D) hash ^= StateofCharge.GetHashCode();
      if (DaysRemainingForNextService != 0) hash ^= DaysRemainingForNextService.GetHashCode();
      if (DistanceRemainingForNextService != 0) hash ^= DistanceRemainingForNextService.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 (vehicleInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(VehicleInfo);
      }
      if (tirePressure_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(TirePressure);
      }
      if (FuelRemaining != 0F) {
        output.WriteRawTag(29);
        output.WriteFloat(FuelRemaining);
      }
      if (errorTellTale_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(ErrorTellTale);
      }
      if (StateofCharge != 0D) {
        output.WriteRawTag(41);
        output.WriteDouble(StateofCharge);
      }
      if (DaysRemainingForNextService != 0) {
        output.WriteRawTag(48);
        output.WriteInt32(DaysRemainingForNextService);
      }
      if (DistanceRemainingForNextService != 0) {
        output.WriteRawTag(56);
        output.WriteInt32(DistanceRemainingForNextService);
      }
      if (device_ != null) {
        output.WriteRawTag(66);
        output.WriteMessage(Device);
      }
      if (CallCenterNumber.Length != 0) {
        output.WriteRawTag(74);
        output.WriteString(CallCenterNumber);
      }
      if (Calltype != 0) {
        output.WriteRawTag(80);
        output.WriteEnum((int) Calltype);
      }
      if (CallTriggerEnum != 0) {
        output.WriteRawTag(88);
        output.WriteEnum((int) CallTriggerEnum);
      }
      if (CallReasonEnum != 0) {
        output.WriteRawTag(96);
        output.WriteEnum((int) CallReasonEnum);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (CallCenterNumber.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(CallCenterNumber);
      }
      if (Calltype != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Calltype);
      }
      if (CallTriggerEnum != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) CallTriggerEnum);
      }
      if (CallReasonEnum != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) CallReasonEnum);
      }
      if (device_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Device);
      }
      if (vehicleInfo_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(VehicleInfo);
      }
      if (tirePressure_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(TirePressure);
      }
      if (FuelRemaining != 0F) {
        size += 1 + 4;
      }
      if (errorTellTale_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ErrorTellTale);
      }
      if (StateofCharge != 0D) {
        size += 1 + 8;
      }
      if (DaysRemainingForNextService != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(DaysRemainingForNextService);
      }
      if (DistanceRemainingForNextService != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(DistanceRemainingForNextService);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(RSADataUpload other) {
      if (other == null) {
        return;
      }
      if (other.CallCenterNumber.Length != 0) {
        CallCenterNumber = other.CallCenterNumber;
      }
      if (other.Calltype != 0) {
        Calltype = other.Calltype;
      }
      if (other.CallTriggerEnum != 0) {
        CallTriggerEnum = other.CallTriggerEnum;
      }
      if (other.CallReasonEnum != 0) {
        CallReasonEnum = other.CallReasonEnum;
      }
      if (other.device_ != null) {
        if (device_ == null) {
          device_ = new global::Com.Fca.Uconnect.Global.Device();
        }
        Device.MergeFrom(other.Device);
      }
      if (other.vehicleInfo_ != null) {
        if (vehicleInfo_ == null) {
          vehicleInfo_ = new global::Com.Fca.Uconnect.Global.VehicleInfo();
        }
        VehicleInfo.MergeFrom(other.VehicleInfo);
      }
      if (other.tirePressure_ != null) {
        if (tirePressure_ == null) {
          tirePressure_ = new global::Com.Fca.Uconnect.Global.TirePressure();
        }
        TirePressure.MergeFrom(other.TirePressure);
      }
      if (other.FuelRemaining != 0F) {
        FuelRemaining = other.FuelRemaining;
      }
      if (other.errorTellTale_ != null) {
        if (errorTellTale_ == null) {
          errorTellTale_ = new global::Com.Fca.Uconnect.Global.RSADataUpload.Types.ErrorTellTale();
        }
        ErrorTellTale.MergeFrom(other.ErrorTellTale);
      }
      if (other.StateofCharge != 0D) {
        StateofCharge = other.StateofCharge;
      }
      if (other.DaysRemainingForNextService != 0) {
        DaysRemainingForNextService = other.DaysRemainingForNextService;
      }
      if (other.DistanceRemainingForNextService != 0) {
        DistanceRemainingForNextService = other.DistanceRemainingForNextService;
      }
    }

    [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: {
            if (vehicleInfo_ == null) {
              vehicleInfo_ = new global::Com.Fca.Uconnect.Global.VehicleInfo();
            }
            input.ReadMessage(vehicleInfo_);
            break;
          }
          case 18: {
            if (tirePressure_ == null) {
              tirePressure_ = new global::Com.Fca.Uconnect.Global.TirePressure();
            }
            input.ReadMessage(tirePressure_);
            break;
          }
          case 29: {
            FuelRemaining = input.ReadFloat();
            break;
          }
          case 34: {
            if (errorTellTale_ == null) {
              errorTellTale_ = new global::Com.Fca.Uconnect.Global.RSADataUpload.Types.ErrorTellTale();
            }
            input.ReadMessage(errorTellTale_);
            break;
          }
          case 41: {
            StateofCharge = input.ReadDouble();
            break;
          }
          case 48: {
            DaysRemainingForNextService = input.ReadInt32();
            break;
          }
          case 56: {
            DistanceRemainingForNextService = input.ReadInt32();
            break;
          }
          case 66: {
            if (device_ == null) {
              device_ = new global::Com.Fca.Uconnect.Global.Device();
            }
            input.ReadMessage(device_);
            break;
          }
          case 74: {
            CallCenterNumber = input.ReadString();
            break;
          }
          case 80: {
            calltype_ = (global::Com.Fca.Uconnect.Global.RSADataUpload.Types.CallType) input.ReadEnum();
            break;
          }
          case 88: {
            callTriggerEnum_ = (global::Com.Fca.Uconnect.Global.RSADataUpload.Types.CallTrigger) input.ReadEnum();
            break;
          }
          case 96: {
            callReasonEnum_ = (global::Com.Fca.Uconnect.Global.RSADataUpload.Types.CallReason) input.ReadEnum();
            break;
          }
        }
      }
    }

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

      public enum CallReason {
        [pbr::OriginalName("DEFAULT")] Default = 0,
        [pbr::OriginalName("ENGINEOILTEMP")] Engineoiltemp = 1,
        [pbr::OriginalName("WATERINFUEL")] Waterinfuel = 2,
        [pbr::OriginalName("BRAKEINDICATOR")] Brakeindicator = 3,
        [pbr::OriginalName("BRAKEPADINDICATOR")] Brakepadindicator = 4,
        [pbr::OriginalName("LOWBREAKFLUID")] Lowbreakfluid = 5,
        [pbr::OriginalName("BREAKPEDALFAULT")] Breakpedalfault = 6,
      }

      public enum CallType {
        /// <summary>
        /// DEPRECATED
        /// </summary>
        [pbr::OriginalName("BRAND")] Brand = 0,
        /// <summary>
        /// DEPRECATED
        /// </summary>
        [pbr::OriginalName("ROADSIDE")] Roadside = 1,
        /// <summary>
        ///DEPRECATED
        /// </summary>
        [pbr::OriginalName("GUARDIAN")] Guardian = 2,
        /// <summary>
        ///DEPRECATED
        /// </summary>
        [pbr::OriginalName("UCONNECT")] Uconnect = 3,
        /// <summary>
        ///DEPRECATED
        /// </summary>
        [pbr::OriginalName("CONCIERGE")] Concierge = 4,
        [pbr::OriginalName("ASOS_NON_IMPACT")] AsosNonImpact = 5,
        /// <summary>
        /// DO NOT USE FOR BCALLS
        /// </summary>
        [pbr::OriginalName("SOS")] Sos = 6,
        [pbr::OriginalName("ASSIST1")] Assist1 = 7,
        [pbr::OriginalName("ASSIST2")] Assist2 = 8,
        [pbr::OriginalName("ASSIST3")] Assist3 = 9,
        [pbr::OriginalName("ASSIST4")] Assist4 = 10,
        [pbr::OriginalName("IVA")] Iva = 11,
      }

      /// <summary>
      ///*
      /// This message is to define any error Tell Tale signs
      /// </summary>
      public sealed partial class ErrorTellTale : pb::IMessage<ErrorTellTale> {
        private static readonly pb::MessageParser<ErrorTellTale> _parser = new pb::MessageParser<ErrorTellTale>(() => new ErrorTellTale());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<ErrorTellTale> Parser { get { return _parser; } }

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

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

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

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public ErrorTellTale(ErrorTellTale other) : this() {
          isOilPressure_ = other.isOilPressure_;
        }

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

        /// <summary>Field number for the "isOilPressure" field.</summary>
        public const int IsOilPressureFieldNumber = 1;
        private bool isOilPressure_;
        /// <summary>
        //// This is for Oil Tell-tale Sign.
        /// </summary>
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool IsOilPressure {
          get { return isOilPressure_; }
          set {
            isOilPressure_ = value;
          }
        }

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

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(ErrorTellTale other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (IsOilPressure != other.IsOilPressure) return false;
          return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode() {
          int hash = 1;
          if (IsOilPressure != false) hash ^= IsOilPressure.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 (IsOilPressure != false) {
            output.WriteRawTag(8);
            output.WriteBool(IsOilPressure);
          }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize() {
          int size = 0;
          if (IsOilPressure != false) {
            size += 1 + 1;
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(ErrorTellTale other) {
          if (other == null) {
            return;
          }
          if (other.IsOilPressure != false) {
            IsOilPressure = other.IsOilPressure;
          }
        }

        [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: {
                IsOilPressure = input.ReadBool();
                break;
              }
            }
          }
        }

      }

    }
    #endregion

  }

  /// <summary>
  ///*
  /// This message is to update the status of the BCall.
  ///&lt;div class=exmsg-main>
  /// &lt;h4>BCallStatusUpdate Example Message:&lt;/h4>
  /// &lt;div class=ex-msg>
  ///	&lt;code>
  ///		timestamp: 1489600243281
  /// 		messageId: 2
  /// 		messages
  /// 		{
  /// 		 [com.fca.uconnect.global.bcallStatusUpdate]
  /// 		 {
  /// 		  bcallStatusEnum: DIAL
  /// 		 }
  /// 		}
  ///	&lt;/code>
  ///  &lt;/div>
  /// &lt;/div>
  /// </summary>
  public sealed partial class BCallStatusUpdate : pb::IMessage<BCallStatusUpdate> {
    private static readonly pb::MessageParser<BCallStatusUpdate> _parser = new pb::MessageParser<BCallStatusUpdate>(() => new BCallStatusUpdate());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<BCallStatusUpdate> Parser { get { return _parser; } }

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public BCallStatusUpdate(BCallStatusUpdate other) : this() {
      bcallStatusEnum_ = other.bcallStatusEnum_;
    }

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

    /// <summary>Field number for the "bcallStatusEnum" field.</summary>
    public const int BcallStatusEnumFieldNumber = 1;
    private global::Com.Fca.Uconnect.Global.BCallStatusUpdate.Types.BCallStatusEnum bcallStatusEnum_ = 0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.BCallStatusUpdate.Types.BCallStatusEnum BcallStatusEnum {
      get { return bcallStatusEnum_; }
      set {
        bcallStatusEnum_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(BCallStatusUpdate other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (BcallStatusEnum != other.BcallStatusEnum) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (BcallStatusEnum != 0) hash ^= BcallStatusEnum.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 (BcallStatusEnum != 0) {
        output.WriteRawTag(8);
        output.WriteEnum((int) BcallStatusEnum);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (BcallStatusEnum != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) BcallStatusEnum);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(BCallStatusUpdate other) {
      if (other == null) {
        return;
      }
      if (other.BcallStatusEnum != 0) {
        BcallStatusEnum = other.BcallStatusEnum;
      }
    }

    [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: {
            bcallStatusEnum_ = (global::Com.Fca.Uconnect.Global.BCallStatusUpdate.Types.BCallStatusEnum) input.ReadEnum();
            break;
          }
        }
      }
    }

    #region Nested types
    /// <summary>Container for nested types declared in the BCallStatusUpdate message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static partial class Types {
      public enum BCallStatusEnum {
        [pbr::OriginalName("DIAL")] Dial = 0,
        [pbr::OriginalName("CANCELLED")] Cancelled = 1,
        /// <summary>
        ////This represents the call is terminated.
        /// </summary>
        [pbr::OriginalName("TERMINATED")] Terminated = 2,
        /// <summary>
        ////This is sent when TBM detects dropped call without a terminate tone.
        /// </summary>
        [pbr::OriginalName("DROPPED_CALL")] DroppedCall = 3,
        /// <summary>
        ////This is sent when TBM fails to Establish CALL.
        /// </summary>
        [pbr::OriginalName("CALL_FAILED")] CallFailed = 4,
        /// <summary>
        //// Sent during retry when call connection fails to be established.
        /// </summary>
        [pbr::OriginalName("ATTEMPT_FAILED")] AttemptFailed = 5,
      }

    }
    #endregion

  }

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

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public RSAVehicleDataRequest(RSAVehicleDataRequest other) : this() {
      VehicleDataRequest = other.vehicleDataRequest_ != null ? other.VehicleDataRequest.Clone() : null;
    }

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

    /// <summary>Field number for the "vehicleDataRequest" field.</summary>
    public const int VehicleDataRequestFieldNumber = 1;
    private global::Com.Fca.Uconnect.Global.ECallVehDataRequest vehicleDataRequest_;
    /// <summary>
    //// Requests the vehicle data
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.ECallVehDataRequest VehicleDataRequest {
      get { return vehicleDataRequest_; }
      set {
        vehicleDataRequest_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(RSAVehicleDataRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(VehicleDataRequest, other.VehicleDataRequest)) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (vehicleDataRequest_ != null) hash ^= VehicleDataRequest.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 (vehicleDataRequest_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(VehicleDataRequest);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (vehicleDataRequest_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(VehicleDataRequest);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(RSAVehicleDataRequest other) {
      if (other == null) {
        return;
      }
      if (other.vehicleDataRequest_ != null) {
        if (vehicleDataRequest_ == null) {
          vehicleDataRequest_ = new global::Com.Fca.Uconnect.Global.ECallVehDataRequest();
        }
        VehicleDataRequest.MergeFrom(other.VehicleDataRequest);
      }
    }

    [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: {
            if (vehicleDataRequest_ == null) {
              vehicleDataRequest_ = new global::Com.Fca.Uconnect.Global.ECallVehDataRequest();
            }
            input.ReadMessage(vehicleDataRequest_);
            break;
          }
        }
      }
    }

  }

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

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public RSAVehicleDataResponse(RSAVehicleDataResponse other) : this() {
      VehicleDataUpload = other.vehicleDataUpload_ != null ? other.VehicleDataUpload.Clone() : null;
    }

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

    /// <summary>Field number for the "vehicleDataUpload" field.</summary>
    public const int VehicleDataUploadFieldNumber = 1;
    private global::Com.Fca.Uconnect.Global.RSADataUpload vehicleDataUpload_;
    /// <summary>
    //// Returns the requested vehicle data
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.RSADataUpload VehicleDataUpload {
      get { return vehicleDataUpload_; }
      set {
        vehicleDataUpload_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(RSAVehicleDataResponse other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(VehicleDataUpload, other.VehicleDataUpload)) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (vehicleDataUpload_ != null) hash ^= VehicleDataUpload.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 (vehicleDataUpload_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(VehicleDataUpload);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (vehicleDataUpload_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(VehicleDataUpload);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(RSAVehicleDataResponse other) {
      if (other == null) {
        return;
      }
      if (other.vehicleDataUpload_ != null) {
        if (vehicleDataUpload_ == null) {
          vehicleDataUpload_ = new global::Com.Fca.Uconnect.Global.RSADataUpload();
        }
        VehicleDataUpload.MergeFrom(other.VehicleDataUpload);
      }
    }

    [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: {
            if (vehicleDataUpload_ == null) {
              vehicleDataUpload_ = new global::Com.Fca.Uconnect.Global.RSADataUpload();
            }
            input.ReadMessage(vehicleDataUpload_);
            break;
          }
        }
      }
    }

  }

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

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public UpdateRSAPhoneNumbers(UpdateRSAPhoneNumbers other) : this() {
      phoneList_ = other.phoneList_;
      raPhoneListMessages_ = other.raPhoneListMessages_.Clone();
    }

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

    /// <summary>Field number for the "PhoneList" field.</summary>
    public const int PhoneListFieldNumber = 1;
    private pb::ByteString phoneList_ = pb::ByteString.Empty;
    /// <summary>
    //// Deprecated
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pb::ByteString PhoneList {
      get { return phoneList_; }
      set {
        phoneList_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "raPhoneListMessages" field.</summary>
    public const int RaPhoneListMessagesFieldNumber = 2;
    private static readonly pb::FieldCodec<global::Com.Fca.Uconnect.Global.RAPhoneListMessage> _repeated_raPhoneListMessages_codec
        = pb::FieldCodec.ForMessage(18, global::Com.Fca.Uconnect.Global.RAPhoneListMessage.Parser);
    private readonly pbc::RepeatedField<global::Com.Fca.Uconnect.Global.RAPhoneListMessage> raPhoneListMessages_ = new pbc::RepeatedField<global::Com.Fca.Uconnect.Global.RAPhoneListMessage>();
    /// <summary>
    //// repeated structure providing details for each phone number that requires updating
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Com.Fca.Uconnect.Global.RAPhoneListMessage> RaPhoneListMessages {
      get { return raPhoneListMessages_; }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(UpdateRSAPhoneNumbers other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (PhoneList != other.PhoneList) return false;
      if(!raPhoneListMessages_.Equals(other.raPhoneListMessages_)) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (PhoneList.Length != 0) hash ^= PhoneList.GetHashCode();
      hash ^= raPhoneListMessages_.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 (PhoneList.Length != 0) {
        output.WriteRawTag(10);
        output.WriteBytes(PhoneList);
      }
      raPhoneListMessages_.WriteTo(output, _repeated_raPhoneListMessages_codec);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (PhoneList.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(PhoneList);
      }
      size += raPhoneListMessages_.CalculateSize(_repeated_raPhoneListMessages_codec);
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(UpdateRSAPhoneNumbers other) {
      if (other == null) {
        return;
      }
      if (other.PhoneList.Length != 0) {
        PhoneList = other.PhoneList;
      }
      raPhoneListMessages_.Add(other.raPhoneListMessages_);
    }

    [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: {
            PhoneList = input.ReadBytes();
            break;
          }
          case 18: {
            raPhoneListMessages_.AddEntriesFrom(input, _repeated_raPhoneListMessages_codec);
            break;
          }
        }
      }
    }

  }

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

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public RAPhoneListMessage(RAPhoneListMessage other) : this() {
      enableCallType_ = other.enableCallType_;
      primaryPhoneNumber_ = other.primaryPhoneNumber_;
      secondaryPhoneNumber_ = other.secondaryPhoneNumber_;
      callCenter_ = other.callCenter_;
      callTypeEnum_ = other.callTypeEnum_;
    }

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

    /// <summary>Field number for the "EnableCallType" field.</summary>
    public const int EnableCallTypeFieldNumber = 1;
    private bool enableCallType_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool EnableCallType {
      get { return enableCallType_; }
      set {
        enableCallType_ = value;
      }
    }

    /// <summary>Field number for the "PrimaryPhoneNumber" field.</summary>
    public const int PrimaryPhoneNumberFieldNumber = 2;
    private string primaryPhoneNumber_ = "";
    /// <summary>
    //// Primary Phone Number for the feature
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string PrimaryPhoneNumber {
      get { return primaryPhoneNumber_; }
      set {
        primaryPhoneNumber_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "SecondaryPhoneNumber" field.</summary>
    public const int SecondaryPhoneNumberFieldNumber = 3;
    private string secondaryPhoneNumber_ = "";
    /// <summary>
    //// Secondary Phone Number for the feature
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string SecondaryPhoneNumber {
      get { return secondaryPhoneNumber_; }
      set {
        secondaryPhoneNumber_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "callCenter" field.</summary>
    public const int CallCenterFieldNumber = 5;
    private global::Com.Fca.Uconnect.Global.RAPhoneListMessage.Types.CallCenterType callCenter_ = 0;
    /// <summary>
    //// This field can be ignored by the vehicle and is used for backend uniform API design purposes only
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.RAPhoneListMessage.Types.CallCenterType CallCenter {
      get { return callCenter_; }
      set {
        callCenter_ = value;
      }
    }

    /// <summary>Field number for the "callTypeEnum" field.</summary>
    public const int CallTypeEnumFieldNumber = 4;
    private global::Com.Fca.Uconnect.Global.RAPhoneListMessage.Types.CallType callTypeEnum_ = 0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.RAPhoneListMessage.Types.CallType CallTypeEnum {
      get { return callTypeEnum_; }
      set {
        callTypeEnum_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(RAPhoneListMessage other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (EnableCallType != other.EnableCallType) return false;
      if (PrimaryPhoneNumber != other.PrimaryPhoneNumber) return false;
      if (SecondaryPhoneNumber != other.SecondaryPhoneNumber) return false;
      if (CallCenter != other.CallCenter) return false;
      if (CallTypeEnum != other.CallTypeEnum) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (EnableCallType != false) hash ^= EnableCallType.GetHashCode();
      if (PrimaryPhoneNumber.Length != 0) hash ^= PrimaryPhoneNumber.GetHashCode();
      if (SecondaryPhoneNumber.Length != 0) hash ^= SecondaryPhoneNumber.GetHashCode();
      if (CallCenter != 0) hash ^= CallCenter.GetHashCode();
      if (CallTypeEnum != 0) hash ^= CallTypeEnum.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 (EnableCallType != false) {
        output.WriteRawTag(8);
        output.WriteBool(EnableCallType);
      }
      if (PrimaryPhoneNumber.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(PrimaryPhoneNumber);
      }
      if (SecondaryPhoneNumber.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(SecondaryPhoneNumber);
      }
      if (CallTypeEnum != 0) {
        output.WriteRawTag(32);
        output.WriteEnum((int) CallTypeEnum);
      }
      if (CallCenter != 0) {
        output.WriteRawTag(40);
        output.WriteEnum((int) CallCenter);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (EnableCallType != false) {
        size += 1 + 1;
      }
      if (PrimaryPhoneNumber.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PrimaryPhoneNumber);
      }
      if (SecondaryPhoneNumber.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(SecondaryPhoneNumber);
      }
      if (CallCenter != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) CallCenter);
      }
      if (CallTypeEnum != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) CallTypeEnum);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(RAPhoneListMessage other) {
      if (other == null) {
        return;
      }
      if (other.EnableCallType != false) {
        EnableCallType = other.EnableCallType;
      }
      if (other.PrimaryPhoneNumber.Length != 0) {
        PrimaryPhoneNumber = other.PrimaryPhoneNumber;
      }
      if (other.SecondaryPhoneNumber.Length != 0) {
        SecondaryPhoneNumber = other.SecondaryPhoneNumber;
      }
      if (other.CallCenter != 0) {
        CallCenter = other.CallCenter;
      }
      if (other.CallTypeEnum != 0) {
        CallTypeEnum = other.CallTypeEnum;
      }
    }

    [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: {
            EnableCallType = input.ReadBool();
            break;
          }
          case 18: {
            PrimaryPhoneNumber = input.ReadString();
            break;
          }
          case 26: {
            SecondaryPhoneNumber = input.ReadString();
            break;
          }
          case 32: {
            callTypeEnum_ = (global::Com.Fca.Uconnect.Global.RAPhoneListMessage.Types.CallType) input.ReadEnum();
            break;
          }
          case 40: {
            callCenter_ = (global::Com.Fca.Uconnect.Global.RAPhoneListMessage.Types.CallCenterType) input.ReadEnum();
            break;
          }
        }
      }
    }

    #region Nested types
    /// <summary>Container for nested types declared in the RAPhoneListMessage message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static partial class Types {
      public enum CallCenterType {
        [pbr::OriginalName("BRAND")] Brand = 0,
        [pbr::OriginalName("ROADSIDE")] Roadside = 1,
        [pbr::OriginalName("GUARDIAN")] Guardian = 2,
        [pbr::OriginalName("UCONNECT")] Uconnect = 3,
        [pbr::OriginalName("CONCIERGE")] Concierge = 4,
        [pbr::OriginalName("IVA_CALL")] IvaCall = 5,
      }

      public enum CallType {
        [pbr::OriginalName("Assist1")] Assist1 = 0,
        [pbr::OriginalName("Assist2")] Assist2 = 1,
        [pbr::OriginalName("Assist3")] Assist3 = 2,
        [pbr::OriginalName("Assist4")] Assist4 = 3,
        [pbr::OriginalName("IVA")] Iva = 4,
        /// <summary>
        /// SOS = 6;
        /// </summary>
        [pbr::OriginalName("ASOS_NON_IMPACT")] AsosNonImpact = 5,
      }

    }
    #endregion

  }

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

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public RequestRSAPhoneNumbers(RequestRSAPhoneNumbers other) : this() {
      vehicleProxyConfig_ = other.vehicleProxyConfig_;
      raPhoneListMessages_ = other.raPhoneListMessages_.Clone();
    }

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

    /// <summary>Field number for the "vehicleProxyConfig" field.</summary>
    public const int VehicleProxyConfigFieldNumber = 2;
    private global::Com.Fca.Uconnect.Global.RequestRSAPhoneNumbers.Types.VehcicleProxyConfigEnum vehicleProxyConfig_ = 0;
    /// <summary>
    //// Sends the Vehicle Proxy Configuration to SDP
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.RequestRSAPhoneNumbers.Types.VehcicleProxyConfigEnum VehicleProxyConfig {
      get { return vehicleProxyConfig_; }
      set {
        vehicleProxyConfig_ = value;
      }
    }

    /// <summary>Field number for the "raPhoneListMessages" field.</summary>
    public const int RaPhoneListMessagesFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Com.Fca.Uconnect.Global.RAPhoneListMessage> _repeated_raPhoneListMessages_codec
        = pb::FieldCodec.ForMessage(10, global::Com.Fca.Uconnect.Global.RAPhoneListMessage.Parser);
    private readonly pbc::RepeatedField<global::Com.Fca.Uconnect.Global.RAPhoneListMessage> raPhoneListMessages_ = new pbc::RepeatedField<global::Com.Fca.Uconnect.Global.RAPhoneListMessage>();
    /// <summary>
    //// Sends the current vehicle phone list for comparison with SDP list for the vehicles current profile.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Com.Fca.Uconnect.Global.RAPhoneListMessage> RaPhoneListMessages {
      get { return raPhoneListMessages_; }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(RequestRSAPhoneNumbers other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (VehicleProxyConfig != other.VehicleProxyConfig) return false;
      if(!raPhoneListMessages_.Equals(other.raPhoneListMessages_)) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (VehicleProxyConfig != 0) hash ^= VehicleProxyConfig.GetHashCode();
      hash ^= raPhoneListMessages_.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) {
      raPhoneListMessages_.WriteTo(output, _repeated_raPhoneListMessages_codec);
      if (VehicleProxyConfig != 0) {
        output.WriteRawTag(16);
        output.WriteEnum((int) VehicleProxyConfig);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (VehicleProxyConfig != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) VehicleProxyConfig);
      }
      size += raPhoneListMessages_.CalculateSize(_repeated_raPhoneListMessages_codec);
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(RequestRSAPhoneNumbers other) {
      if (other == null) {
        return;
      }
      if (other.VehicleProxyConfig != 0) {
        VehicleProxyConfig = other.VehicleProxyConfig;
      }
      raPhoneListMessages_.Add(other.raPhoneListMessages_);
    }

    [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: {
            raPhoneListMessages_.AddEntriesFrom(input, _repeated_raPhoneListMessages_codec);
            break;
          }
          case 16: {
            vehicleProxyConfig_ = (global::Com.Fca.Uconnect.Global.RequestRSAPhoneNumbers.Types.VehcicleProxyConfigEnum) input.ReadEnum();
            break;
          }
        }
      }
    }

    #region Nested types
    /// <summary>Container for nested types declared in the RequestRSAPhoneNumbers message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static partial class Types {
      public enum VehcicleProxyConfigEnum {
        [pbr::OriginalName("NONE")] None = 0,
        [pbr::OriginalName("SINGLE_BUTTON")] SingleButton = 1,
        [pbr::OriginalName("MULTIPLE_BUTTON")] MultipleButton = 2,
      }

    }
    #endregion

  }

  #endregion

}

#endregion Designer generated code
