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

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

    static GlobalUconnectExtLastMileReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "CiJHbG9iYWxfVWNvbm5lY3RfRXh0X0xhc3RNaWxlLnByb3RvEhdjb20uZmNh",
            "LnVjb25uZWN0Lmdsb2JhbBohR2xvYmFsX1Vjb25uZWN0X1ZlaGljbGVJbmZv",
            "LnByb3RvIqEBCgxMYXN0TWlsZVB1c2gSPwoRdGFyZ2V0RGVzdGluYXRpb24Y",
            "AiABKAsyJC5jb20uZmNhLnVjb25uZWN0Lmdsb2JhbC5EZXN0aW5hdGlvbhI6",
            "Cg9jdXJyZW50TG9jYXRpb24YAyABKAsyIS5jb20uZmNhLnVjb25uZWN0Lmds",
            "b2JhbC5Mb2NhdGlvbhIUCgxMTU5SZXF1ZXN0SUQYBCABKAwiygEKEExhc3RN",
            "aWxlUmVzcG9uc2USSAoIcmVzcG9uc2UYASABKA4yNi5jb20uZmNhLnVjb25u",
            "ZWN0Lmdsb2JhbC5MYXN0TWlsZVJlc3BvbnNlLlJlc3BvbnNlRW51bRIUCgxM",
            "TU5SZXF1ZXN0SUQYBCABKAwSEwoLaXNUcmFuc2llbnQYAiABKAgSGQoRZmFp",
            "bHVyZVJlYXNvbkNvZGUYAyABKAUiJgoMUmVzcG9uc2VFbnVtEgsKB1NVQ0NF",
            "U1MQABIJCgVFUlJPUhABUABiBnByb3RvMw=="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Com.Fca.Uconnect.Global.GlobalUconnectVehicleInfoReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.LastMilePush), global::Com.Fca.Uconnect.Global.LastMilePush.Parser, new[]{ "TargetDestination", "CurrentLocation", "LMNRequestID" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Com.Fca.Uconnect.Global.LastMileResponse), global::Com.Fca.Uconnect.Global.LastMileResponse.Parser, new[]{ "Response", "LMNRequestID", "IsTransient", "FailureReasonCode" }, null, new[]{ typeof(global::Com.Fca.Uconnect.Global.LastMileResponse.Types.ResponseEnum) }, null)
          }));
    }
    #endregion

  }
  #region Messages
  /// <summary>
  ///*
  /// This message represents  the last mile destination.
  /// {
  /// "LMNRequestID": "abcdef",
  /// "targetDestination": {
  ///  "routePreference": "DEFAULT",
  /// "createTimestamp": 1564062948246,
  /// "location": {
  ///   "positionLatitude": 2345.1,
  ///   "positionLongitude": 2345.1,
  ///   "estimatedPositionError": 1234,
  ///  "positionAltitude": 2345.1,
  ///   "isGPSFixNotAvailable": true,
  ///   "estimatedAltitudeError": 1234,
  ///   "positionDirection": 2345.1,
  ///   "gpsFixTypeEnum": "ID_FIX_NO_POS"
  /// },
  /// "destinationPoi": {
  ///  "name": "abcdef",
  ///   "category": "abcdef",
  ///   "id": 1234,
  ///   "phoneNumber": "abcdef",
  ///   "description": "abcdef",
  ///   "url": "abcdef"
  /// },
  /// "destinationAddress": {
  ///   "countryName": "abcdef",
  ///   "countryCode": 1234,
  ///   "provinceName": "abcdef",
  ///   "provinceCode": 1234,
  ///   "cityName": "abcdef",
  ///   "cityCode": 1234,
  ///   "districtCountyName": "abcdef",
  ///   "districtCountyCode": 1234,
  ///   "streetName": "abcdef",
  ///   "secondUnitDesignator": "abcdef",
  ///   "streetCode": 1234,
  ///   "houseNumber": "abcdef",
  ///   "postalCode": "abcdef"
  /// }
  /// },
  /// "currentLocation": {
  ///  "positionLatitude": 2345.1,
  ///  "positionLongitude": 2345.1,
  ///  "estimatedPositionError": 1234,
  ///  "positionAltitude": 2345.1,
  ///  "isGPSFixNotAvailable": true,
  ///  "estimatedAltitudeError": 1234,
  ///  "positionDirection": 2345.1,
  ///  "gpsFixTypeEnum": "ID_FIX_NO_POS"
  /// }
  /// }
  /// </summary>
  public sealed partial class LastMilePush : pb::IMessage<LastMilePush> {
    private static readonly pb::MessageParser<LastMilePush> _parser = new pb::MessageParser<LastMilePush>(() => new LastMilePush());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<LastMilePush> Parser { get { return _parser; } }

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public LastMilePush(LastMilePush other) : this() {
      TargetDestination = other.targetDestination_ != null ? other.TargetDestination.Clone() : null;
      CurrentLocation = other.currentLocation_ != null ? other.CurrentLocation.Clone() : null;
      lMNRequestID_ = other.lMNRequestID_;
    }

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

    /// <summary>Field number for the "targetDestination" field.</summary>
    public const int TargetDestinationFieldNumber = 2;
    private global::Com.Fca.Uconnect.Global.Destination targetDestination_;
    /// <summary>
    //// Final POI Destination information
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.Destination TargetDestination {
      get { return targetDestination_; }
      set {
        targetDestination_ = value;
      }
    }

    /// <summary>Field number for the "currentLocation" field.</summary>
    public const int CurrentLocationFieldNumber = 3;
    private global::Com.Fca.Uconnect.Global.Location currentLocation_;
    /// <summary>
    //// Current Location as of Last Mile Push request
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Com.Fca.Uconnect.Global.Location CurrentLocation {
      get { return currentLocation_; }
      set {
        currentLocation_ = value;
      }
    }

    /// <summary>Field number for the "LMNRequestID" field.</summary>
    public const int LMNRequestIDFieldNumber = 4;
    private pb::ByteString lMNRequestID_ = pb::ByteString.Empty;
    /// <summary>
    //// Service Request ID Assigned by HU for Trace-ability
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pb::ByteString LMNRequestID {
      get { return lMNRequestID_; }
      set {
        lMNRequestID_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (targetDestination_ != null) hash ^= TargetDestination.GetHashCode();
      if (currentLocation_ != null) hash ^= CurrentLocation.GetHashCode();
      if (LMNRequestID.Length != 0) hash ^= LMNRequestID.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 (targetDestination_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(TargetDestination);
      }
      if (currentLocation_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(CurrentLocation);
      }
      if (LMNRequestID.Length != 0) {
        output.WriteRawTag(34);
        output.WriteBytes(LMNRequestID);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (targetDestination_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(TargetDestination);
      }
      if (currentLocation_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(CurrentLocation);
      }
      if (LMNRequestID.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(LMNRequestID);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(LastMilePush other) {
      if (other == null) {
        return;
      }
      if (other.targetDestination_ != null) {
        if (targetDestination_ == null) {
          targetDestination_ = new global::Com.Fca.Uconnect.Global.Destination();
        }
        TargetDestination.MergeFrom(other.TargetDestination);
      }
      if (other.currentLocation_ != null) {
        if (currentLocation_ == null) {
          currentLocation_ = new global::Com.Fca.Uconnect.Global.Location();
        }
        CurrentLocation.MergeFrom(other.CurrentLocation);
      }
      if (other.LMNRequestID.Length != 0) {
        LMNRequestID = other.LMNRequestID;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 18: {
            if (targetDestination_ == null) {
              targetDestination_ = new global::Com.Fca.Uconnect.Global.Destination();
            }
            input.ReadMessage(targetDestination_);
            break;
          }
          case 26: {
            if (currentLocation_ == null) {
              currentLocation_ = new global::Com.Fca.Uconnect.Global.Location();
            }
            input.ReadMessage(currentLocation_);
            break;
          }
          case 34: {
            LMNRequestID = input.ReadBytes();
            break;
          }
        }
      }
    }

  }

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

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

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

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

    partial void OnConstruction();

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

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

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

    /// <summary>Field number for the "LMNRequestID" field.</summary>
    public const int LMNRequestIDFieldNumber = 4;
    private pb::ByteString lMNRequestID_ = pb::ByteString.Empty;
    /// <summary>
    //// Assigned by the HU and used for traceability.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pb::ByteString LMNRequestID {
      get { return lMNRequestID_; }
      set {
        lMNRequestID_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    /// <summary>Field number for the "failureReasonCode" field.</summary>
    public const int FailureReasonCodeFieldNumber = 3;
    private int failureReasonCode_;
    /// <summary>
    //// provide detailed error reason 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 LastMileResponse);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(LastMileResponse other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Response != other.Response) return false;
      if (LMNRequestID != other.LMNRequestID) 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 (LMNRequestID.Length != 0) hash ^= LMNRequestID.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);
      }
      if (LMNRequestID.Length != 0) {
        output.WriteRawTag(34);
        output.WriteBytes(LMNRequestID);
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(LastMileResponse other) {
      if (other == null) {
        return;
      }
      if (other.Response != 0) {
        Response = other.Response;
      }
      if (other.LMNRequestID.Length != 0) {
        LMNRequestID = other.LMNRequestID;
      }
      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.LastMileResponse.Types.ResponseEnum) input.ReadEnum();
            break;
          }
          case 16: {
            IsTransient = input.ReadBool();
            break;
          }
          case 24: {
            FailureReasonCode = input.ReadInt32();
            break;
          }
          case 34: {
            LMNRequestID = input.ReadBytes();
            break;
          }
        }
      }
    }

    #region Nested types
    /// <summary>Container for nested types declared in the LastMileResponse message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static partial class Types {
      public enum ResponseEnum {
        /// <summary>
        //// Message Delivered Successful
        /// </summary>
        [pbr::OriginalName("SUCCESS")] Success = 0,
        /// <summary>
        //// Generic Error for Other App and System Level Errors
        /// </summary>
        [pbr::OriginalName("ERROR")] Error = 1,
      }

    }
    #endregion

  }

  #endregion

}

#endregion Designer generated code
