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

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

    static GlobalUconnectExtActivationReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "CiRHbG9iYWxfVWNvbm5lY3RfRXh0X0FjdGl2YXRpb24ucHJvdG8SF2NvbS5m",
            "Y2EudWNvbm5lY3QuZ2xvYmFsIqUBChFBY3RpdmF0aW9uUmVxdWVzdBIRCgl2",
            "ZWhpY2xlSWQYASABKAkSEQoJZmlyc3ROYW1lGAIgASgJEhAKCGxhc3ROYW1l",
            "GAMgASgJEhQKDGVtYWlsQWRkcmVzcxgEIAEoCRIQCghsYW5ndWFnZRgGIAEo",
            "CRIPCgdjb3VudHJ5GAcgASgJEh8KF21vYmlsZURldmljZVBob25lTnVtYmVy",
            "GAggASgJIiwKCUNyZWF0ZVBpbhILCgNwaW4YASABKAwSEgoKY29uZmlybVBp",
            "bhgCIAEoDCJhCgtWYWxpZGF0ZVBpbhILCgNwaW4YASABKAwSRQoRYWNjb3Vu",
            "dFZhbGlkYXRpb24YAiABKAsyKi5jb20uZmNhLnVjb25uZWN0Lmdsb2JhbC5B",
            "Y3RpdmF0aW9uUmVxdWVzdCLrAQoZQ29tcGxldGVBY3RpdmF0aW9uUmVxdWVz",
            "dBI1CgljcmVhdGVQaW4YBCABKAsyIi5jb20uZmNhLnVjb25uZWN0Lmdsb2Jh",
            "bC5DcmVhdGVQaW4SCwoDcGluGAIgASgMEkkKFWFjdGl2YXRpb25SZXF1ZXN0",
            "RGF0YRgDIAEoCzIqLmNvbS5mY2EudWNvbm5lY3QuZ2xvYmFsLkFjdGl2YXRp",
            "b25SZXF1ZXN0Ej8KDmxlZ2FsRG9jdW1lbnRzGAEgAygLMicuY29tLmZjYS51",
            "Y29ubmVjdC5nbG9iYWwuTGVnYWxEb2N1bWVudHMi8gEKDkxlZ2FsRG9jdW1l",
            "bnRzEhIKCmRvY3VtZW50SUQYAyABKAkSTAoLdGNJbmRpY2F0b3IYASABKA4y",
            "Ny5jb20uZmNhLnVjb25uZWN0Lmdsb2JhbC5MZWdhbERvY3VtZW50cy5UQ0lu",
            "ZGljYXRvckVudW0SUgoRcHJpdmFjeUFncmVlbWVlbnQYAiABKA4yNy5jb20u",
            "ZmNhLnVjb25uZWN0Lmdsb2JhbC5MZWdhbERvY3VtZW50cy5UQ0luZGljYXRv",
            "ckVudW0iKgoPVENJbmRpY2F0b3JFbnVtEgwKCERJU0FHUkVFEAASCQoFQUdS",
            "RUUQASK/AQoLUGluUmVzcG9uc2USRQoJUGluU3RhdHVzGAEgASgOMjIuY29t",
            "LmZjYS51Y29ubmVjdC5nbG9iYWwuUGluUmVzcG9uc2UuUGluU3RhdHVzRW51",
            "bSJpCg1QaW5TdGF0dXNFbnVtEg8KC1BJTl9DUkVBVEVEEAASDQoJUElOX1ZB",
            "TElEEAESDwoLUElOX0lOVkFMSUQQAhITCg9QSU5fTk9UX0NSRUFURUQQAxIS",
            "Cg5BQ0NPVU5UX0xPQ0tFRBAEIq8CChJBY3RpdmF0aW9uUmVzcG9uc2USSgoI",
            "cmVzcG9uc2UYASABKA4yOC5jb20uZmNhLnVjb25uZWN0Lmdsb2JhbC5BY3Rp",
            "dmF0aW9uUmVzcG9uc2UuUmVzcG9uc2VFbnVtEhMKC2lzVHJhbnNpZW50GAIg",
            "ASgIEhkKEWZhaWx1cmVSZWFzb25Db2RlGAMgASgFIpwBCgxSZXNwb25zZUVu",
            "dW0SDQoJQUNUSVZBVEVEEAASGQoVUkVHSVNUUkFUSU9OX1JFUVVJUkVEEAES",
            "CwoHRkFJTFVSRRACEhAKDFZBTElEQVRFX1BJThADEg4KClNJR05fTEVHQUwQ",
            "BBIXChNDT01QTEVURV9BQ1RJVkFUSU9OEAUSGgoWQUNUSVZBVElPTl9JTl9Q",
            "Uk9HUkVTUxAGIv4BCg9VcGRhdGVMZWdhbERvY3MSTwoJbGVnYWxEb2NzGAEg",
            "AygLMjwuY29tLmZjYS51Y29ubmVjdC5nbG9iYWwuVXBkYXRlTGVnYWxEb2Nz",
            "LkxlZ2FsRG9jc0RldGFpbFR5cGUamQEKE0xlZ2FsRG9jc0RldGFpbFR5cGUS",
            "OwoMZG9jdW1lbnRUeXBlGAQgASgOMiUuY29tLmZjYS51Y29ubmVjdC5nbG9i",
            "YWwuRG9jdW1lbnRUeXBlEhIKCmRvY3VtZW50SUQYASABKAkSFwoPZG9jdW1l",
            "bnRWZXJzaW9uGAIgASgJEhgKEGRvY3VtZW50TGFuZ3VhZ2UYAyABKAkiSQoQ",
            "TGVnYWxEb2NzUHVibGlzaBI1CglsZWdhbERvY3MYASADKAsyIi5jb20uZmNh",
            "LnVjb25uZWN0Lmdsb2JhbC5MZWdhbERvY3MiiAEKCUxlZ2FsRG9jcxI8Cg1k",
            "b2N1bWVudFR5cGVzGAQgASgOMiUuY29tLmZjYS51Y29ubmVjdC5nbG9iYWwu",
            "RG9jdW1lbnRUeXBlEhIKCmRvY3VtZW50SUQYASABKAkSFwoPZG9jdW1lbnRW",
            "ZXJzaW9uGAIgASgJEhAKCGRvY3VtZW50GAMgASgMKjcKDERvY3VtZW50VHlw",
            "ZRIPCgtERUZBVUxUVFlQRRAAEgkKBVRFUk1TEAESCwoHUFJJVkFDWRACYgZw",
            "cm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { },
          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Com.Fca.Uconnect.Global.DocumentType), }, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.ActivationRequest), global::Com.Fca.Uconnect.Global.ActivationRequest.Parser, new[]{ "VehicleId", "FirstName", "LastName", "EmailAddress", "Language", "Country", "MobileDevicePhoneNumber" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.CreatePin), global::Com.Fca.Uconnect.Global.CreatePin.Parser, new[]{ "Pin", "ConfirmPin" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.ValidatePin), global::Com.Fca.Uconnect.Global.ValidatePin.Parser, new[]{ "Pin", "AccountValidation" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.CompleteActivationRequest), global::Com.Fca.Uconnect.Global.CompleteActivationRequest.Parser, new[]{ "CreatePin", "Pin", "ActivationRequestData", "LegalDocuments" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.LegalDocuments), global::Com.Fca.Uconnect.Global.LegalDocuments.Parser, new[]{ "DocumentID", "TcIndicator", "PrivacyAgreemeent" }, null, new[]{ typeof(global::Com.Fca.Uconnect.Global.LegalDocuments.Types.TCIndicatorEnum) }, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.PinResponse), global::Com.Fca.Uconnect.Global.PinResponse.Parser, new[]{ "PinStatus" }, null, new[]{ typeof(global::Com.Fca.Uconnect.Global.PinResponse.Types.PinStatusEnum) }, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.ActivationResponse), global::Com.Fca.Uconnect.Global.ActivationResponse.Parser, new[]{ "Response", "IsTransient", "FailureReasonCode" }, null, new[]{ typeof(global::Com.Fca.Uconnect.Global.ActivationResponse.Types.ResponseEnum) }, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.UpdateLegalDocs), global::Com.Fca.Uconnect.Global.UpdateLegalDocs.Parser, new[]{ "LegalDocs" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.UpdateLegalDocs.Types.LegalDocsDetailType), global::Com.Fca.Uconnect.Global.UpdateLegalDocs.Types.LegalDocsDetailType.Parser, new[]{ "DocumentType", "DocumentID", "DocumentVersion", "DocumentLanguage" }, null, null, null)}),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.LegalDocsPublish), global::Com.Fca.Uconnect.Global.LegalDocsPublish.Parser, new[]{ "LegalDocs" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.LegalDocs), global::Com.Fca.Uconnect.Global.LegalDocs.Parser, new[]{ "DocumentTypes", "DocumentID", "DocumentVersion", "Document" }, null, null, null)
          }));
    }
    #endregion

  }
  #region Enums
  public enum DocumentType {
    [pbr::OriginalName("DEFAULTTYPE")] Defaulttype = 0,
    [pbr::OriginalName("TERMS")] Terms = 1,
    [pbr::OriginalName("PRIVACY")] Privacy = 2,
  }

  #endregion

  #region Messages
  /// <summary>
  ///*
  /// This message represents  Activation request of vehicle for services and other configurations.
  /// &lt;div class=exmsg-main>
  /// &lt;h4>Activation Request Example Message:&lt;/h4>
  /// &lt;div class=ex-msg>
  ///	&lt;code>
  /// 		timestamp: 1488574019636
  /// 		messageId: 1
  /// 		messages
  /// 	    {
  /// 		 [com.fca.uconnect.global.activationRequest]
  /// 		 {
  /// 			vehicleId: "123456"
  /// 			firstName: "abc"
  /// 			lastName: "xyz"
  /// 			emailAddress: "abc@fca.com"
  /// 			tcIndicator: AGREE
  /// 		 }
  /// 		}
  ///	&lt;/code>
  ///   &lt;/div>
  /// &lt;/div>
  /// </summary>
  public sealed partial class ActivationRequest : pb::IMessage<ActivationRequest> {
    private static readonly pb::MessageParser<ActivationRequest> _parser = new pb::MessageParser<ActivationRequest>(() => new ActivationRequest());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<ActivationRequest> Parser { get { return _parser; } }

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public ActivationRequest(ActivationRequest other) : this() {
      vehicleId_ = other.vehicleId_;
      firstName_ = other.firstName_;
      lastName_ = other.lastName_;
      emailAddress_ = other.emailAddress_;
      language_ = other.language_;
      country_ = other.country_;
      mobileDevicePhoneNumber_ = other.mobileDevicePhoneNumber_;
    }

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

    /// <summary>Field number for the "vehicleId" field.</summary>
    public const int VehicleIdFieldNumber = 1;
    private string vehicleId_ = "";
    /// <summary>
    //// Unique ID for the Vehicle. This is either the VIN or an abstracted ID correalating to the VIN in back office
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string VehicleId {
      get { return vehicleId_; }
      set {
        vehicleId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "firstName" field.</summary>
    public const int FirstNameFieldNumber = 2;
    private string firstName_ = "";
    /// <summary>
    //// First name of the person for whom services are to be activated.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string FirstName {
      get { return firstName_; }
      set {
        firstName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "lastName" field.</summary>
    public const int LastNameFieldNumber = 3;
    private string lastName_ = "";
    /// <summary>
    //// Last name of the person for whom services are to be activated.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string LastName {
      get { return lastName_; }
      set {
        lastName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "emailAddress" field.</summary>
    public const int EmailAddressFieldNumber = 4;
    private string emailAddress_ = "";
    /// <summary>
    //// Email address of the person for whom services are to be activated.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string EmailAddress {
      get { return emailAddress_; }
      set {
        emailAddress_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "language" field.</summary>
    public const int LanguageFieldNumber = 6;
    private string language_ = "";
    /// <summary>
    //// The values shall be formatted according to the ISO alpha-3/639.2 standard.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Language {
      get { return language_; }
      set {
        language_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "country" field.</summary>
    public const int CountryFieldNumber = 7;
    private string country_ = "";
    /// <summary>
    //// The values shall be formatted according to the ISO Alpha-2 standard.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Country {
      get { return country_; }
      set {
        country_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "mobileDevicePhoneNumber" field.</summary>
    public const int MobileDevicePhoneNumberFieldNumber = 8;
    private string mobileDevicePhoneNumber_ = "";
    /// <summary>
    //// An alternative to emailAddress for an out of band channel to communicate activation details to the user.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string MobileDevicePhoneNumber {
      get { return mobileDevicePhoneNumber_; }
      set {
        mobileDevicePhoneNumber_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(ActivationRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (VehicleId != other.VehicleId) return false;
      if (FirstName != other.FirstName) return false;
      if (LastName != other.LastName) return false;
      if (EmailAddress != other.EmailAddress) return false;
      if (Language != other.Language) return false;
      if (Country != other.Country) return false;
      if (MobileDevicePhoneNumber != other.MobileDevicePhoneNumber) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (VehicleId.Length != 0) hash ^= VehicleId.GetHashCode();
      if (FirstName.Length != 0) hash ^= FirstName.GetHashCode();
      if (LastName.Length != 0) hash ^= LastName.GetHashCode();
      if (EmailAddress.Length != 0) hash ^= EmailAddress.GetHashCode();
      if (Language.Length != 0) hash ^= Language.GetHashCode();
      if (Country.Length != 0) hash ^= Country.GetHashCode();
      if (MobileDevicePhoneNumber.Length != 0) hash ^= MobileDevicePhoneNumber.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 (VehicleId.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(VehicleId);
      }
      if (FirstName.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(FirstName);
      }
      if (LastName.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(LastName);
      }
      if (EmailAddress.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(EmailAddress);
      }
      if (Language.Length != 0) {
        output.WriteRawTag(50);
        output.WriteString(Language);
      }
      if (Country.Length != 0) {
        output.WriteRawTag(58);
        output.WriteString(Country);
      }
      if (MobileDevicePhoneNumber.Length != 0) {
        output.WriteRawTag(66);
        output.WriteString(MobileDevicePhoneNumber);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (VehicleId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(VehicleId);
      }
      if (FirstName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(FirstName);
      }
      if (LastName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(LastName);
      }
      if (EmailAddress.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(EmailAddress);
      }
      if (Language.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Language);
      }
      if (Country.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Country);
      }
      if (MobileDevicePhoneNumber.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(MobileDevicePhoneNumber);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(ActivationRequest other) {
      if (other == null) {
        return;
      }
      if (other.VehicleId.Length != 0) {
        VehicleId = other.VehicleId;
      }
      if (other.FirstName.Length != 0) {
        FirstName = other.FirstName;
      }
      if (other.LastName.Length != 0) {
        LastName = other.LastName;
      }
      if (other.EmailAddress.Length != 0) {
        EmailAddress = other.EmailAddress;
      }
      if (other.Language.Length != 0) {
        Language = other.Language;
      }
      if (other.Country.Length != 0) {
        Country = other.Country;
      }
      if (other.MobileDevicePhoneNumber.Length != 0) {
        MobileDevicePhoneNumber = other.MobileDevicePhoneNumber;
      }
    }

    [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: {
            VehicleId = input.ReadString();
            break;
          }
          case 18: {
            FirstName = input.ReadString();
            break;
          }
          case 26: {
            LastName = input.ReadString();
            break;
          }
          case 34: {
            EmailAddress = input.ReadString();
            break;
          }
          case 50: {
            Language = input.ReadString();
            break;
          }
          case 58: {
            Country = input.ReadString();
            break;
          }
          case 66: {
            MobileDevicePhoneNumber = input.ReadString();
            break;
          }
        }
      }
    }

  }

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

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CreatePin(CreatePin other) : this() {
      pin_ = other.pin_;
      confirmPin_ = other.confirmPin_;
    }

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

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

    /// <summary>Field number for the "confirmPin" field.</summary>
    public const int ConfirmPinFieldNumber = 2;
    private pb::ByteString confirmPin_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pb::ByteString ConfirmPin {
      get { return confirmPin_; }
      set {
        confirmPin_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(CreatePin other) {
      if (other == null) {
        return;
      }
      if (other.Pin.Length != 0) {
        Pin = other.Pin;
      }
      if (other.ConfirmPin.Length != 0) {
        ConfirmPin = other.ConfirmPin;
      }
    }

    [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: {
            Pin = input.ReadBytes();
            break;
          }
          case 18: {
            ConfirmPin = input.ReadBytes();
            break;
          }
        }
      }
    }

  }

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

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public ValidatePin(ValidatePin other) : this() {
      pin_ = other.pin_;
      AccountValidation = other.accountValidation_ != null ? other.AccountValidation.Clone() : null;
    }

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

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

    /// <summary>Field number for the "accountValidation" field.</summary>
    public const int AccountValidationFieldNumber = 2;
    private global::Com.Fca.Uconnect.Global.ActivationRequest accountValidation_;
    /// <summary>
    ////
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.ActivationRequest AccountValidation {
      get { return accountValidation_; }
      set {
        accountValidation_ = value;
      }
    }

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

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(ValidatePin other) {
      if (other == null) {
        return;
      }
      if (other.Pin.Length != 0) {
        Pin = other.Pin;
      }
      if (other.accountValidation_ != null) {
        if (accountValidation_ == null) {
          accountValidation_ = new global::Com.Fca.Uconnect.Global.ActivationRequest();
        }
        AccountValidation.MergeFrom(other.AccountValidation);
      }
    }

    [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: {
            Pin = input.ReadBytes();
            break;
          }
          case 18: {
            if (accountValidation_ == null) {
              accountValidation_ = new global::Com.Fca.Uconnect.Global.ActivationRequest();
            }
            input.ReadMessage(accountValidation_);
            break;
          }
        }
      }
    }

  }

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

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CompleteActivationRequest(CompleteActivationRequest other) : this() {
      CreatePin = other.createPin_ != null ? other.CreatePin.Clone() : null;
      pin_ = other.pin_;
      ActivationRequestData = other.activationRequestData_ != null ? other.ActivationRequestData.Clone() : null;
      legalDocuments_ = other.legalDocuments_.Clone();
    }

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

    /// <summary>Field number for the "createPin" field.</summary>
    public const int CreatePinFieldNumber = 4;
    private global::Com.Fca.Uconnect.Global.CreatePin createPin_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.CreatePin CreatePin {
      get { return createPin_; }
      set {
        createPin_ = value;
      }
    }

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

    /// <summary>Field number for the "activationRequestData" field.</summary>
    public const int ActivationRequestDataFieldNumber = 3;
    private global::Com.Fca.Uconnect.Global.ActivationRequest activationRequestData_;
    /// <summary>
    //// resend Activation Request Info
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.ActivationRequest ActivationRequestData {
      get { return activationRequestData_; }
      set {
        activationRequestData_ = value;
      }
    }

    /// <summary>Field number for the "legalDocuments" field.</summary>
    public const int LegalDocumentsFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Com.Fca.Uconnect.Global.LegalDocuments> _repeated_legalDocuments_codec
        = pb::FieldCodec.ForMessage(10, global::Com.Fca.Uconnect.Global.LegalDocuments.Parser);
    private readonly pbc::RepeatedField<global::Com.Fca.Uconnect.Global.LegalDocuments> legalDocuments_ = new pbc::RepeatedField<global::Com.Fca.Uconnect.Global.LegalDocuments>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Com.Fca.Uconnect.Global.LegalDocuments> LegalDocuments {
      get { return legalDocuments_; }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(CompleteActivationRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(CreatePin, other.CreatePin)) return false;
      if (Pin != other.Pin) return false;
      if (!object.Equals(ActivationRequestData, other.ActivationRequestData)) return false;
      if(!legalDocuments_.Equals(other.legalDocuments_)) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (createPin_ != null) hash ^= CreatePin.GetHashCode();
      if (Pin.Length != 0) hash ^= Pin.GetHashCode();
      if (activationRequestData_ != null) hash ^= ActivationRequestData.GetHashCode();
      hash ^= legalDocuments_.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) {
      legalDocuments_.WriteTo(output, _repeated_legalDocuments_codec);
      if (Pin.Length != 0) {
        output.WriteRawTag(18);
        output.WriteBytes(Pin);
      }
      if (activationRequestData_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(ActivationRequestData);
      }
      if (createPin_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(CreatePin);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (createPin_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(CreatePin);
      }
      if (Pin.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(Pin);
      }
      if (activationRequestData_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ActivationRequestData);
      }
      size += legalDocuments_.CalculateSize(_repeated_legalDocuments_codec);
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(CompleteActivationRequest other) {
      if (other == null) {
        return;
      }
      if (other.createPin_ != null) {
        if (createPin_ == null) {
          createPin_ = new global::Com.Fca.Uconnect.Global.CreatePin();
        }
        CreatePin.MergeFrom(other.CreatePin);
      }
      if (other.Pin.Length != 0) {
        Pin = other.Pin;
      }
      if (other.activationRequestData_ != null) {
        if (activationRequestData_ == null) {
          activationRequestData_ = new global::Com.Fca.Uconnect.Global.ActivationRequest();
        }
        ActivationRequestData.MergeFrom(other.ActivationRequestData);
      }
      legalDocuments_.Add(other.legalDocuments_);
    }

    [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: {
            legalDocuments_.AddEntriesFrom(input, _repeated_legalDocuments_codec);
            break;
          }
          case 18: {
            Pin = input.ReadBytes();
            break;
          }
          case 26: {
            if (activationRequestData_ == null) {
              activationRequestData_ = new global::Com.Fca.Uconnect.Global.ActivationRequest();
            }
            input.ReadMessage(activationRequestData_);
            break;
          }
          case 34: {
            if (createPin_ == null) {
              createPin_ = new global::Com.Fca.Uconnect.Global.CreatePin();
            }
            input.ReadMessage(createPin_);
            break;
          }
        }
      }
    }

  }

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

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public LegalDocuments(LegalDocuments other) : this() {
      documentID_ = other.documentID_;
      tcIndicator_ = other.tcIndicator_;
      privacyAgreemeent_ = other.privacyAgreemeent_;
    }

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

    /// <summary>Field number for the "documentID" field.</summary>
    public const int DocumentIDFieldNumber = 3;
    private string documentID_ = "";
    /// <summary>
    //// Document Identification
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string DocumentID {
      get { return documentID_; }
      set {
        documentID_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "tcIndicator" field.</summary>
    public const int TcIndicatorFieldNumber = 1;
    private global::Com.Fca.Uconnect.Global.LegalDocuments.Types.TCIndicatorEnum tcIndicator_ = 0;
    /// <summary>
    //// Affirmation by the Telematics Unit that the person for whom services are to be activated has accepted a Terms and Conditions document.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.LegalDocuments.Types.TCIndicatorEnum TcIndicator {
      get { return tcIndicator_; }
      set {
        tcIndicator_ = value;
      }
    }

    /// <summary>Field number for the "privacyAgreemeent" field.</summary>
    public const int PrivacyAgreemeentFieldNumber = 2;
    private global::Com.Fca.Uconnect.Global.LegalDocuments.Types.TCIndicatorEnum privacyAgreemeent_ = 0;
    /// <summary>
    //// Affirmation of the Privacy agreement for EMEA Customers and Canada
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.LegalDocuments.Types.TCIndicatorEnum PrivacyAgreemeent {
      get { return privacyAgreemeent_; }
      set {
        privacyAgreemeent_ = value;
      }
    }

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

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(LegalDocuments other) {
      if (other == null) {
        return;
      }
      if (other.DocumentID.Length != 0) {
        DocumentID = other.DocumentID;
      }
      if (other.TcIndicator != 0) {
        TcIndicator = other.TcIndicator;
      }
      if (other.PrivacyAgreemeent != 0) {
        PrivacyAgreemeent = other.PrivacyAgreemeent;
      }
    }

    [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: {
            tcIndicator_ = (global::Com.Fca.Uconnect.Global.LegalDocuments.Types.TCIndicatorEnum) input.ReadEnum();
            break;
          }
          case 16: {
            privacyAgreemeent_ = (global::Com.Fca.Uconnect.Global.LegalDocuments.Types.TCIndicatorEnum) input.ReadEnum();
            break;
          }
          case 26: {
            DocumentID = input.ReadString();
            break;
          }
        }
      }
    }

    #region Nested types
    /// <summary>Container for nested types declared in the LegalDocuments message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static partial class Types {
      public enum TCIndicatorEnum {
        /// <summary>
        ////User did not agree.
        /// </summary>
        [pbr::OriginalName("DISAGREE")] Disagree = 0,
        /// <summary>
        //// User agreed.
        /// </summary>
        [pbr::OriginalName("AGREE")] Agree = 1,
      }

    }
    #endregion

  }

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

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

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

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

    partial void OnConstruction();

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

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

    /// <summary>Field number for the "PinStatus" field.</summary>
    public const int PinStatusFieldNumber = 1;
    private global::Com.Fca.Uconnect.Global.PinResponse.Types.PinStatusEnum pinStatus_ = 0;
    /// <summary>
    //// Used only with ValidatePin
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.PinResponse.Types.PinStatusEnum PinStatus {
      get { return pinStatus_; }
      set {
        pinStatus_ = value;
      }
    }

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

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

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

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

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

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

    #region Nested types
    /// <summary>Container for nested types declared in the PinResponse message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static partial class Types {
      public enum PinStatusEnum {
        /// <summary>
        //// A Pin was successfully created and a new account now exists - Deprecated
        /// </summary>
        [pbr::OriginalName("PIN_CREATED")] PinCreated = 0,
        /// <summary>
        //// The Pin for the existing account was validated
        /// </summary>
        [pbr::OriginalName("PIN_VALID")] PinValid = 1,
        /// <summary>
        //// The supplied PIN was invalid
        /// </summary>
        [pbr::OriginalName("PIN_INVALID")] PinInvalid = 2,
        /// <summary>
        //// Failed to create the new Pin and account -  Deprecated
        /// </summary>
        [pbr::OriginalName("PIN_NOT_CREATED")] PinNotCreated = 3,
        /// <summary>
        //// Too many failed attempts at Pin validation the use account is locked
        /// </summary>
        [pbr::OriginalName("ACCOUNT_LOCKED")] AccountLocked = 4,
      }

    }
    #endregion

  }

  /// <summary>
  ///*
  /// This message is in response to  ActivationRequest.
  ///&lt;div class=exmsg-main>
  /// &lt;h4>Activation Response Example Message:&lt;/h4>
  /// &lt;div class=ex-msg>
  ///	&lt;code>
  /// 		timestamp: 1488740988983
  /// 		messageId: 2
  /// 		correlationId: 1
  /// 		messages
  /// 		{
  /// 		 [com.fca.uconnect.global.activationResponse]
  /// 		 {
  /// 			responseEnum: ACTIVATED
  /// 		 }
  /// 		}
  ///	&lt;/code>
  ///   &lt;/div>&lt;/div>
  /// </summary>
  public sealed partial class ActivationResponse : pb::IMessage<ActivationResponse> {
    private static readonly pb::MessageParser<ActivationResponse> _parser = new pb::MessageParser<ActivationResponse>(() => new ActivationResponse());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<ActivationResponse> Parser { get { return _parser; } }

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

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

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

    partial void OnConstruction();

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

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

    /// <summary>Field number for the "response" field.</summary>
    public const int ResponseFieldNumber = 1;
    private global::Com.Fca.Uconnect.Global.ActivationResponse.Types.ResponseEnum response_ = 0;
    /// <summary>
    //// Indicator of the status of the associated ActivationRequest. The correlationId in the containing UconnectMessage must be the same as the messageId of the ActivationRequest.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.ActivationResponse.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 a retry can be attempted.
    /// </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>
    //// Specific Error Code
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int FailureReasonCode {
      get { return failureReasonCode_; }
      set {
        failureReasonCode_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(ActivationResponse 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;
      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();
      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);
      }
    }

    [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);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(ActivationResponse 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;
      }
    }

    [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.ActivationResponse.Types.ResponseEnum) input.ReadEnum();
            break;
          }
          case 16: {
            IsTransient = input.ReadBool();
            break;
          }
          case 24: {
            FailureReasonCode = input.ReadInt32();
            break;
          }
        }
      }
    }

    #region Nested types
    /// <summary>Container for nested types declared in the ActivationResponse message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static partial class Types {
      public enum ResponseEnum {
        /// <summary>
        //// Activated successfully. Set Only After CompleteActivationRequest is sent
        /// </summary>
        [pbr::OriginalName("ACTIVATED")] Activated = 0,
        /// <summary>
        ////Registration required for Activation - Please Create PIN with CompleteActivation
        /// </summary>
        [pbr::OriginalName("REGISTRATION_REQUIRED")] RegistrationRequired = 1,
        /// <summary>
        ////Failed due to system exception.
        /// </summary>
        [pbr::OriginalName("FAILURE")] Failure = 2,
        /// <summary>
        //// Deprecated
        /// </summary>
        [pbr::OriginalName("VALIDATE_PIN")] ValidatePin = 3,
        /// <summary>
        //// Deprecated
        /// </summary>
        [pbr::OriginalName("SIGN_LEGAL")] SignLegal = 4,
        /// <summary>
        //// An Account Exists, submit CompleteActivationRequest - No pin required
        /// </summary>
        [pbr::OriginalName("COMPLETE_ACTIVATION")] CompleteActivation = 5,
        /// <summary>
        //// For China - RNR Requires completion. Provisioning will be completed after the RNR is done.
        /// </summary>
        [pbr::OriginalName("ACTIVATION_IN_PROGRESS")] ActivationInProgress = 6,
      }

    }
    #endregion

  }

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

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public UpdateLegalDocs(UpdateLegalDocs other) : this() {
      legalDocs_ = other.legalDocs_.Clone();
    }

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

    /// <summary>Field number for the "legalDocs" field.</summary>
    public const int LegalDocsFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Com.Fca.Uconnect.Global.UpdateLegalDocs.Types.LegalDocsDetailType> _repeated_legalDocs_codec
        = pb::FieldCodec.ForMessage(10, global::Com.Fca.Uconnect.Global.UpdateLegalDocs.Types.LegalDocsDetailType.Parser);
    private readonly pbc::RepeatedField<global::Com.Fca.Uconnect.Global.UpdateLegalDocs.Types.LegalDocsDetailType> legalDocs_ = new pbc::RepeatedField<global::Com.Fca.Uconnect.Global.UpdateLegalDocs.Types.LegalDocsDetailType>();
    /// <summary>
    //// Used to send update legal documents to the client. This can include T&amp;C\n Or Privacy Agreements
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Com.Fca.Uconnect.Global.UpdateLegalDocs.Types.LegalDocsDetailType> LegalDocs {
      get { return legalDocs_; }
    }

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= legalDocs_.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) {
      legalDocs_.WriteTo(output, _repeated_legalDocs_codec);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      size += legalDocs_.CalculateSize(_repeated_legalDocs_codec);
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(UpdateLegalDocs other) {
      if (other == null) {
        return;
      }
      legalDocs_.Add(other.legalDocs_);
    }

    [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: {
            legalDocs_.AddEntriesFrom(input, _repeated_legalDocs_codec);
            break;
          }
        }
      }
    }

    #region Nested types
    /// <summary>Container for nested types declared in the UpdateLegalDocs message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static partial class Types {
      public sealed partial class LegalDocsDetailType : pb::IMessage<LegalDocsDetailType> {
        private static readonly pb::MessageParser<LegalDocsDetailType> _parser = new pb::MessageParser<LegalDocsDetailType>(() => new LegalDocsDetailType());
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<LegalDocsDetailType> Parser { get { return _parser; } }

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

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

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

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public LegalDocsDetailType(LegalDocsDetailType other) : this() {
          documentType_ = other.documentType_;
          documentID_ = other.documentID_;
          documentVersion_ = other.documentVersion_;
          documentLanguage_ = other.documentLanguage_;
        }

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

        /// <summary>Field number for the "documentType" field.</summary>
        public const int DocumentTypeFieldNumber = 4;
        private global::Com.Fca.Uconnect.Global.DocumentType documentType_ = 0;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public global::Com.Fca.Uconnect.Global.DocumentType DocumentType {
          get { return documentType_; }
          set {
            documentType_ = value;
          }
        }

        /// <summary>Field number for the "documentID" field.</summary>
        public const int DocumentIDFieldNumber = 1;
        private string documentID_ = "";
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public string DocumentID {
          get { return documentID_; }
          set {
            documentID_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
          }
        }

        /// <summary>Field number for the "documentVersion" field.</summary>
        public const int DocumentVersionFieldNumber = 2;
        private string documentVersion_ = "";
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public string DocumentVersion {
          get { return documentVersion_; }
          set {
            documentVersion_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
          }
        }

        /// <summary>Field number for the "documentLanguage" field.</summary>
        public const int DocumentLanguageFieldNumber = 3;
        private string documentLanguage_ = "";
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public string DocumentLanguage {
          get { return documentLanguage_; }
          set {
            documentLanguage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
          }
        }

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

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool Equals(LegalDocsDetailType other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (DocumentType != other.DocumentType) return false;
          if (DocumentID != other.DocumentID) return false;
          if (DocumentVersion != other.DocumentVersion) return false;
          if (DocumentLanguage != other.DocumentLanguage) return false;
          return true;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode() {
          int hash = 1;
          if (DocumentType != 0) hash ^= DocumentType.GetHashCode();
          if (DocumentID.Length != 0) hash ^= DocumentID.GetHashCode();
          if (DocumentVersion.Length != 0) hash ^= DocumentVersion.GetHashCode();
          if (DocumentLanguage.Length != 0) hash ^= DocumentLanguage.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 (DocumentID.Length != 0) {
            output.WriteRawTag(10);
            output.WriteString(DocumentID);
          }
          if (DocumentVersion.Length != 0) {
            output.WriteRawTag(18);
            output.WriteString(DocumentVersion);
          }
          if (DocumentLanguage.Length != 0) {
            output.WriteRawTag(26);
            output.WriteString(DocumentLanguage);
          }
          if (DocumentType != 0) {
            output.WriteRawTag(32);
            output.WriteEnum((int) DocumentType);
          }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize() {
          int size = 0;
          if (DocumentType != 0) {
            size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DocumentType);
          }
          if (DocumentID.Length != 0) {
            size += 1 + pb::CodedOutputStream.ComputeStringSize(DocumentID);
          }
          if (DocumentVersion.Length != 0) {
            size += 1 + pb::CodedOutputStream.ComputeStringSize(DocumentVersion);
          }
          if (DocumentLanguage.Length != 0) {
            size += 1 + pb::CodedOutputStream.ComputeStringSize(DocumentLanguage);
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(LegalDocsDetailType other) {
          if (other == null) {
            return;
          }
          if (other.DocumentType != 0) {
            DocumentType = other.DocumentType;
          }
          if (other.DocumentID.Length != 0) {
            DocumentID = other.DocumentID;
          }
          if (other.DocumentVersion.Length != 0) {
            DocumentVersion = other.DocumentVersion;
          }
          if (other.DocumentLanguage.Length != 0) {
            DocumentLanguage = other.DocumentLanguage;
          }
        }

        [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: {
                DocumentID = input.ReadString();
                break;
              }
              case 18: {
                DocumentVersion = input.ReadString();
                break;
              }
              case 26: {
                DocumentLanguage = input.ReadString();
                break;
              }
              case 32: {
                documentType_ = (global::Com.Fca.Uconnect.Global.DocumentType) input.ReadEnum();
                break;
              }
            }
          }
        }

      }

    }
    #endregion

  }

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

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public LegalDocsPublish(LegalDocsPublish other) : this() {
      legalDocs_ = other.legalDocs_.Clone();
    }

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

    /// <summary>Field number for the "legalDocs" field.</summary>
    public const int LegalDocsFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Com.Fca.Uconnect.Global.LegalDocs> _repeated_legalDocs_codec
        = pb::FieldCodec.ForMessage(10, global::Com.Fca.Uconnect.Global.LegalDocs.Parser);
    private readonly pbc::RepeatedField<global::Com.Fca.Uconnect.Global.LegalDocs> legalDocs_ = new pbc::RepeatedField<global::Com.Fca.Uconnect.Global.LegalDocs>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Com.Fca.Uconnect.Global.LegalDocs> LegalDocs {
      get { return legalDocs_; }
    }

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= legalDocs_.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) {
      legalDocs_.WriteTo(output, _repeated_legalDocs_codec);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      size += legalDocs_.CalculateSize(_repeated_legalDocs_codec);
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(LegalDocsPublish other) {
      if (other == null) {
        return;
      }
      legalDocs_.Add(other.legalDocs_);
    }

    [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: {
            legalDocs_.AddEntriesFrom(input, _repeated_legalDocs_codec);
            break;
          }
        }
      }
    }

  }

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

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public LegalDocs(LegalDocs other) : this() {
      documentTypes_ = other.documentTypes_;
      documentID_ = other.documentID_;
      documentVersion_ = other.documentVersion_;
      document_ = other.document_;
    }

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

    /// <summary>Field number for the "documentTypes" field.</summary>
    public const int DocumentTypesFieldNumber = 4;
    private global::Com.Fca.Uconnect.Global.DocumentType documentTypes_ = 0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.DocumentType DocumentTypes {
      get { return documentTypes_; }
      set {
        documentTypes_ = value;
      }
    }

    /// <summary>Field number for the "documentID" field.</summary>
    public const int DocumentIDFieldNumber = 1;
    private string documentID_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string DocumentID {
      get { return documentID_; }
      set {
        documentID_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "documentVersion" field.</summary>
    public const int DocumentVersionFieldNumber = 2;
    private string documentVersion_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string DocumentVersion {
      get { return documentVersion_; }
      set {
        documentVersion_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "document" field.</summary>
    public const int DocumentFieldNumber = 3;
    private pb::ByteString document_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pb::ByteString Document {
      get { return document_; }
      set {
        document_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(LegalDocs other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (DocumentTypes != other.DocumentTypes) return false;
      if (DocumentID != other.DocumentID) return false;
      if (DocumentVersion != other.DocumentVersion) return false;
      if (Document != other.Document) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (DocumentTypes != 0) hash ^= DocumentTypes.GetHashCode();
      if (DocumentID.Length != 0) hash ^= DocumentID.GetHashCode();
      if (DocumentVersion.Length != 0) hash ^= DocumentVersion.GetHashCode();
      if (Document.Length != 0) hash ^= Document.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 (DocumentID.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(DocumentID);
      }
      if (DocumentVersion.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(DocumentVersion);
      }
      if (Document.Length != 0) {
        output.WriteRawTag(26);
        output.WriteBytes(Document);
      }
      if (DocumentTypes != 0) {
        output.WriteRawTag(32);
        output.WriteEnum((int) DocumentTypes);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (DocumentTypes != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DocumentTypes);
      }
      if (DocumentID.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DocumentID);
      }
      if (DocumentVersion.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DocumentVersion);
      }
      if (Document.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(Document);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(LegalDocs other) {
      if (other == null) {
        return;
      }
      if (other.DocumentTypes != 0) {
        DocumentTypes = other.DocumentTypes;
      }
      if (other.DocumentID.Length != 0) {
        DocumentID = other.DocumentID;
      }
      if (other.DocumentVersion.Length != 0) {
        DocumentVersion = other.DocumentVersion;
      }
      if (other.Document.Length != 0) {
        Document = other.Document;
      }
    }

    [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: {
            DocumentID = input.ReadString();
            break;
          }
          case 18: {
            DocumentVersion = input.ReadString();
            break;
          }
          case 26: {
            Document = input.ReadBytes();
            break;
          }
          case 32: {
            documentTypes_ = (global::Com.Fca.Uconnect.Global.DocumentType) input.ReadEnum();
            break;
          }
        }
      }
    }

  }

  #endregion

}

#endregion Designer generated code
