// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: Global_Uconnect_Ext_VehicleMessaging.proto

package com.fca.uconnect.global;

public final class GlobalUconnectExtVehicleMessaging {
  private GlobalUconnectExtVehicleMessaging() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
    registry.add(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.vehicleMessagePublish);
    registry.add(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.vehicleMessageAck);
    registry.add(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.vehicleMessageDispositionPublish);
    registry.add(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.vehicleMessageDispositionAck);
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface VehicleMessagePublishOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleMessagePublish)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *&#47; Must be usable as key on the TBM, global uniqueness is not assured and depends on the SDP implementation
     * </pre>
     *
     * <code>optional int32 vehicleMessageID = 1;</code>
     */
    boolean hasVehicleMessageID();
    /**
     * <pre>
     *&#47; Must be usable as key on the TBM, global uniqueness is not assured and depends on the SDP implementation
     * </pre>
     *
     * <code>optional int32 vehicleMessageID = 1;</code>
     */
    int getVehicleMessageID();

    /**
     * <code>optional string vin = 2;</code>
     */
    boolean hasVin();
    /**
     * <code>optional string vin = 2;</code>
     */
    java.lang.String getVin();
    /**
     * <code>optional string vin = 2;</code>
     */
    com.google.protobuf.ByteString
        getVinBytes();

    /**
     * <code>optional .com.fca.uconnect.global.VehicleMessagePublish.MessageType messageType = 3;</code>
     */
    boolean hasMessageType();
    /**
     * <code>optional .com.fca.uconnect.global.VehicleMessagePublish.MessageType messageType = 3;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.MessageType getMessageType();

    /**
     * <pre>
     *&#47; the template to be used to format the message
     * </pre>
     *
     * <code>optional string messageTemplate = 4;</code>
     */
    boolean hasMessageTemplate();
    /**
     * <pre>
     *&#47; the template to be used to format the message
     * </pre>
     *
     * <code>optional string messageTemplate = 4;</code>
     */
    java.lang.String getMessageTemplate();
    /**
     * <pre>
     *&#47; the template to be used to format the message
     * </pre>
     *
     * <code>optional string messageTemplate = 4;</code>
     */
    com.google.protobuf.ByteString
        getMessageTemplateBytes();

    /**
     * <pre>
     *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
     */
    java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString> 
        getMessageList();
    /**
     * <pre>
     *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString getMessage(int index);
    /**
     * <pre>
     *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
     */
    int getMessageCount();
    /**
     * <pre>
     *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
     */
    java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageStringOrBuilder> 
        getMessageOrBuilderList();
    /**
     * <pre>
     *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageStringOrBuilder getMessageOrBuilder(
        int index);

    /**
     * <code>map&lt;string, string&gt; messageParameters = 6;</code>
     */
    int getMessageParametersCount();
    /**
     * <code>map&lt;string, string&gt; messageParameters = 6;</code>
     */
    boolean containsMessageParameters(
        java.lang.String key);
    /**
     * Use {@link #getMessageParametersMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getMessageParameters();
    /**
     * <code>map&lt;string, string&gt; messageParameters = 6;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getMessageParametersMap();
    /**
     * <code>map&lt;string, string&gt; messageParameters = 6;</code>
     */

    java.lang.String getMessageParametersOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * <code>map&lt;string, string&gt; messageParameters = 6;</code>
     */

    java.lang.String getMessageParametersOrThrow(
        java.lang.String key);
  }
  /**
   * <pre>
   **
   * This message is to send any Alert Messages to the Vehicle like Service or Recall.
   * &lt;div class=exmsg-main&gt;
   * &lt;h4&gt;VehicleMessagePublish Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   * 		timestamp: 1490983981881
   * 		messageId: 11
   * 		messages
   * 		{
   * 		 [com.fca.uconnect.global.vehicleMessagePublish]
   * 		 {
   * 		   vin: "1HGCM82633A004352"
   * 		   messageType: SERVICE_NOTICE
   * 		   message
   * 		   {
   * 			language: "ENGLISH"
   * 			messageText: "Your Vehicle is Due for Service"
   * 			}
   * 		 }
   * 		}
   *	&lt;/code&gt;
   *   &lt;/div&gt;
   * &lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.VehicleMessagePublish}
   */
  public  static final class VehicleMessagePublish extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleMessagePublish)
      VehicleMessagePublishOrBuilder {
    // Use VehicleMessagePublish.newBuilder() to construct.
    private VehicleMessagePublish(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VehicleMessagePublish() {
      vehicleMessageID_ = 0;
      vin_ = "";
      messageType_ = 0;
      messageTemplate_ = "";
      message_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private VehicleMessagePublish(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              vehicleMessageID_ = input.readInt32();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              vin_ = bs;
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.MessageType value = com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.MessageType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                bitField0_ |= 0x00000004;
                messageType_ = rawValue;
              }
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              messageTemplate_ = bs;
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                message_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString>();
                mutable_bitField0_ |= 0x00000010;
              }
              message_.add(
                  input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.PARSER, extensionRegistry));
              break;
            }
            case 50: {
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                messageParameters_ = com.google.protobuf.MapField.newMapField(
                    MessageParametersDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000020;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              messageParameters = input.readMessage(
                  MessageParametersDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              messageParameters_.getMutableMap().put(messageParameters.getKey(), messageParameters.getValue());
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          message_ = java.util.Collections.unmodifiableList(message_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessagePublish_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 6:
          return internalGetMessageParameters();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessagePublish_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.class, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.VehicleMessagePublish.MessageType}
     */
    public enum MessageType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; Represents Recall Notice Message.
       * </pre>
       *
       * <code>RECALL_NOTICE = 0;</code>
       */
      RECALL_NOTICE(0),
      /**
       * <pre>
       *&#47; Represents Service Notice Message.
       * </pre>
       *
       * <code>SERVICE_NOTICE = 1;</code>
       */
      SERVICE_NOTICE(1),
      /**
       * <pre>
       *&#47; Represents Parental Control Notification Message.
       * </pre>
       *
       * <code>PC_NOTIFICATION = 2;</code>
       */
      PC_NOTIFICATION(2),
      ;

      /**
       * <pre>
       *&#47; Represents Recall Notice Message.
       * </pre>
       *
       * <code>RECALL_NOTICE = 0;</code>
       */
      public static final int RECALL_NOTICE_VALUE = 0;
      /**
       * <pre>
       *&#47; Represents Service Notice Message.
       * </pre>
       *
       * <code>SERVICE_NOTICE = 1;</code>
       */
      public static final int SERVICE_NOTICE_VALUE = 1;
      /**
       * <pre>
       *&#47; Represents Parental Control Notification Message.
       * </pre>
       *
       * <code>PC_NOTIFICATION = 2;</code>
       */
      public static final int PC_NOTIFICATION_VALUE = 2;


      public final int getNumber() {
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static MessageType valueOf(int value) {
        return forNumber(value);
      }

      public static MessageType forNumber(int value) {
        switch (value) {
          case 0: return RECALL_NOTICE;
          case 1: return SERVICE_NOTICE;
          case 2: return PC_NOTIFICATION;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.getDescriptor().getEnumTypes().get(0);
      }

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.VehicleMessagePublish.MessageType)
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.VehicleMessagePublish.MessageDetailType}
     */
    public enum MessageDetailType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>RECALL_ID = 0;</code>
       */
      RECALL_ID(0),
      /**
       * <code>RECALL_COMPONENT = 1;</code>
       */
      RECALL_COMPONENT(1),
      /**
       * <code>RECALL_SUMMARY = 2;</code>
       */
      RECALL_SUMMARY(2),
      /**
       * <code>RECALL_CONSEQUENCE = 3;</code>
       */
      RECALL_CONSEQUENCE(3),
      /**
       * <code>OWNER_NEXT_STEPS = 4;</code>
       */
      OWNER_NEXT_STEPS(4),
      /**
       * <code>SERVICE_DUE_DATE = 5;</code>
       */
      SERVICE_DUE_DATE(5),
      ;

      /**
       * <code>RECALL_ID = 0;</code>
       */
      public static final int RECALL_ID_VALUE = 0;
      /**
       * <code>RECALL_COMPONENT = 1;</code>
       */
      public static final int RECALL_COMPONENT_VALUE = 1;
      /**
       * <code>RECALL_SUMMARY = 2;</code>
       */
      public static final int RECALL_SUMMARY_VALUE = 2;
      /**
       * <code>RECALL_CONSEQUENCE = 3;</code>
       */
      public static final int RECALL_CONSEQUENCE_VALUE = 3;
      /**
       * <code>OWNER_NEXT_STEPS = 4;</code>
       */
      public static final int OWNER_NEXT_STEPS_VALUE = 4;
      /**
       * <code>SERVICE_DUE_DATE = 5;</code>
       */
      public static final int SERVICE_DUE_DATE_VALUE = 5;


      public final int getNumber() {
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static MessageDetailType valueOf(int value) {
        return forNumber(value);
      }

      public static MessageDetailType forNumber(int value) {
        switch (value) {
          case 0: return RECALL_ID;
          case 1: return RECALL_COMPONENT;
          case 2: return RECALL_SUMMARY;
          case 3: return RECALL_CONSEQUENCE;
          case 4: return OWNER_NEXT_STEPS;
          case 5: return SERVICE_DUE_DATE;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.getDescriptor().getEnumTypes().get(1);
      }

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.VehicleMessagePublish.MessageDetailType)
    }

    public interface LanguageStringOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleMessagePublish.LanguageString)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47; the language this text is for
       * </pre>
       *
       * <code>optional string language = 1;</code>
       */
      boolean hasLanguage();
      /**
       * <pre>
       *&#47; the language this text is for
       * </pre>
       *
       * <code>optional string language = 1;</code>
       */
      java.lang.String getLanguage();
      /**
       * <pre>
       *&#47; the language this text is for
       * </pre>
       *
       * <code>optional string language = 1;</code>
       */
      com.google.protobuf.ByteString
          getLanguageBytes();

      /**
       * <pre>
       *&#47; the text in the given language
       * </pre>
       *
       * <code>optional string messageText = 2;</code>
       */
      boolean hasMessageText();
      /**
       * <pre>
       *&#47; the text in the given language
       * </pre>
       *
       * <code>optional string messageText = 2;</code>
       */
      java.lang.String getMessageText();
      /**
       * <pre>
       *&#47; the text in the given language
       * </pre>
       *
       * <code>optional string messageText = 2;</code>
       */
      com.google.protobuf.ByteString
          getMessageTextBytes();
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.VehicleMessagePublish.LanguageString}
     */
    public  static final class LanguageString extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleMessagePublish.LanguageString)
        LanguageStringOrBuilder {
      // Use LanguageString.newBuilder() to construct.
      private LanguageString(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private LanguageString() {
        language_ = "";
        messageText_ = "";
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private LanguageString(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                language_ = bs;
                break;
              }
              case 18: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                messageText_ = bs;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessagePublish_LanguageString_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessagePublish_LanguageString_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.class, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.Builder.class);
      }

      private int bitField0_;
      public static final int LANGUAGE_FIELD_NUMBER = 1;
      private volatile java.lang.Object language_;
      /**
       * <pre>
       *&#47; the language this text is for
       * </pre>
       *
       * <code>optional string language = 1;</code>
       */
      public boolean hasLanguage() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       *&#47; the language this text is for
       * </pre>
       *
       * <code>optional string language = 1;</code>
       */
      public java.lang.String getLanguage() {
        java.lang.Object ref = language_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            language_ = s;
          }
          return s;
        }
      }
      /**
       * <pre>
       *&#47; the language this text is for
       * </pre>
       *
       * <code>optional string language = 1;</code>
       */
      public com.google.protobuf.ByteString
          getLanguageBytes() {
        java.lang.Object ref = language_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          language_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int MESSAGETEXT_FIELD_NUMBER = 2;
      private volatile java.lang.Object messageText_;
      /**
       * <pre>
       *&#47; the text in the given language
       * </pre>
       *
       * <code>optional string messageText = 2;</code>
       */
      public boolean hasMessageText() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       *&#47; the text in the given language
       * </pre>
       *
       * <code>optional string messageText = 2;</code>
       */
      public java.lang.String getMessageText() {
        java.lang.Object ref = messageText_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            messageText_ = s;
          }
          return s;
        }
      }
      /**
       * <pre>
       *&#47; the text in the given language
       * </pre>
       *
       * <code>optional string messageText = 2;</code>
       */
      public com.google.protobuf.ByteString
          getMessageTextBytes() {
        java.lang.Object ref = messageText_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          messageText_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, language_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, messageText_);
        }
        unknownFields.writeTo(output);
      }

      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, language_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, messageText_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString other = (com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString) obj;

        boolean result = true;
        result = result && (hasLanguage() == other.hasLanguage());
        if (hasLanguage()) {
          result = result && getLanguage()
              .equals(other.getLanguage());
        }
        result = result && (hasMessageText() == other.hasMessageText());
        if (hasMessageText()) {
          result = result && getMessageText()
              .equals(other.getMessageText());
        }
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptorForType().hashCode();
        if (hasLanguage()) {
          hash = (37 * hash) + LANGUAGE_FIELD_NUMBER;
          hash = (53 * hash) + getLanguage().hashCode();
        }
        if (hasMessageText()) {
          hash = (37 * hash) + MESSAGETEXT_FIELD_NUMBER;
          hash = (53 * hash) + getMessageText().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.fca.uconnect.global.VehicleMessagePublish.LanguageString}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleMessagePublish.LanguageString)
          com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageStringOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessagePublish_LanguageString_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessagePublish_LanguageString_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.class, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        public Builder clear() {
          super.clear();
          language_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          messageText_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessagePublish_LanguageString_descriptor;
        }

        public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.getDefaultInstance();
        }

        public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString build() {
          com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString result = new com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.language_ = language_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.messageText_ = messageText_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder clone() {
          return (Builder) super.clone();
        }
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.setField(field, value);
        }
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.getDefaultInstance()) return this;
          if (other.hasLanguage()) {
            bitField0_ |= 0x00000001;
            language_ = other.language_;
            onChanged();
          }
          if (other.hasMessageText()) {
            bitField0_ |= 0x00000002;
            messageText_ = other.messageText_;
            onChanged();
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private java.lang.Object language_ = "";
        /**
         * <pre>
         *&#47; the language this text is for
         * </pre>
         *
         * <code>optional string language = 1;</code>
         */
        public boolean hasLanguage() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <pre>
         *&#47; the language this text is for
         * </pre>
         *
         * <code>optional string language = 1;</code>
         */
        public java.lang.String getLanguage() {
          java.lang.Object ref = language_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              language_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         *&#47; the language this text is for
         * </pre>
         *
         * <code>optional string language = 1;</code>
         */
        public com.google.protobuf.ByteString
            getLanguageBytes() {
          java.lang.Object ref = language_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            language_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         *&#47; the language this text is for
         * </pre>
         *
         * <code>optional string language = 1;</code>
         */
        public Builder setLanguage(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          language_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; the language this text is for
         * </pre>
         *
         * <code>optional string language = 1;</code>
         */
        public Builder clearLanguage() {
          bitField0_ = (bitField0_ & ~0x00000001);
          language_ = getDefaultInstance().getLanguage();
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; the language this text is for
         * </pre>
         *
         * <code>optional string language = 1;</code>
         */
        public Builder setLanguageBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          language_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object messageText_ = "";
        /**
         * <pre>
         *&#47; the text in the given language
         * </pre>
         *
         * <code>optional string messageText = 2;</code>
         */
        public boolean hasMessageText() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <pre>
         *&#47; the text in the given language
         * </pre>
         *
         * <code>optional string messageText = 2;</code>
         */
        public java.lang.String getMessageText() {
          java.lang.Object ref = messageText_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              messageText_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         *&#47; the text in the given language
         * </pre>
         *
         * <code>optional string messageText = 2;</code>
         */
        public com.google.protobuf.ByteString
            getMessageTextBytes() {
          java.lang.Object ref = messageText_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            messageText_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         *&#47; the text in the given language
         * </pre>
         *
         * <code>optional string messageText = 2;</code>
         */
        public Builder setMessageText(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          messageText_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; the text in the given language
         * </pre>
         *
         * <code>optional string messageText = 2;</code>
         */
        public Builder clearMessageText() {
          bitField0_ = (bitField0_ & ~0x00000002);
          messageText_ = getDefaultInstance().getMessageText();
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; the text in the given language
         * </pre>
         *
         * <code>optional string messageText = 2;</code>
         */
        public Builder setMessageTextBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          messageText_ = value;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.VehicleMessagePublish.LanguageString)
      }

      // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.VehicleMessagePublish.LanguageString)
      private static final com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString();
      }

      public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      @java.lang.Deprecated public static final com.google.protobuf.Parser<LanguageString>
          PARSER = new com.google.protobuf.AbstractParser<LanguageString>() {
        public LanguageString parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return new LanguageString(input, extensionRegistry);
        }
      };

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

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

      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int VEHICLEMESSAGEID_FIELD_NUMBER = 1;
    private int vehicleMessageID_;
    /**
     * <pre>
     *&#47; Must be usable as key on the TBM, global uniqueness is not assured and depends on the SDP implementation
     * </pre>
     *
     * <code>optional int32 vehicleMessageID = 1;</code>
     */
    public boolean hasVehicleMessageID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     *&#47; Must be usable as key on the TBM, global uniqueness is not assured and depends on the SDP implementation
     * </pre>
     *
     * <code>optional int32 vehicleMessageID = 1;</code>
     */
    public int getVehicleMessageID() {
      return vehicleMessageID_;
    }

    public static final int VIN_FIELD_NUMBER = 2;
    private volatile java.lang.Object vin_;
    /**
     * <code>optional string vin = 2;</code>
     */
    public boolean hasVin() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional string vin = 2;</code>
     */
    public java.lang.String getVin() {
      java.lang.Object ref = vin_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          vin_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string vin = 2;</code>
     */
    public com.google.protobuf.ByteString
        getVinBytes() {
      java.lang.Object ref = vin_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        vin_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGETYPE_FIELD_NUMBER = 3;
    private int messageType_;
    /**
     * <code>optional .com.fca.uconnect.global.VehicleMessagePublish.MessageType messageType = 3;</code>
     */
    public boolean hasMessageType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional .com.fca.uconnect.global.VehicleMessagePublish.MessageType messageType = 3;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.MessageType getMessageType() {
      com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.MessageType result = com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.MessageType.valueOf(messageType_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.MessageType.RECALL_NOTICE : result;
    }

    public static final int MESSAGETEMPLATE_FIELD_NUMBER = 4;
    private volatile java.lang.Object messageTemplate_;
    /**
     * <pre>
     *&#47; the template to be used to format the message
     * </pre>
     *
     * <code>optional string messageTemplate = 4;</code>
     */
    public boolean hasMessageTemplate() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <pre>
     *&#47; the template to be used to format the message
     * </pre>
     *
     * <code>optional string messageTemplate = 4;</code>
     */
    public java.lang.String getMessageTemplate() {
      java.lang.Object ref = messageTemplate_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          messageTemplate_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; the template to be used to format the message
     * </pre>
     *
     * <code>optional string messageTemplate = 4;</code>
     */
    public com.google.protobuf.ByteString
        getMessageTemplateBytes() {
      java.lang.Object ref = messageTemplate_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        messageTemplate_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 5;
    private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString> message_;
    /**
     * <pre>
     *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
     */
    public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString> getMessageList() {
      return message_;
    }
    /**
     * <pre>
     *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
     */
    public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageStringOrBuilder> 
        getMessageOrBuilderList() {
      return message_;
    }
    /**
     * <pre>
     *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
     */
    public int getMessageCount() {
      return message_.size();
    }
    /**
     * <pre>
     *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString getMessage(int index) {
      return message_.get(index);
    }
    /**
     * <pre>
     *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageStringOrBuilder getMessageOrBuilder(
        int index) {
      return message_.get(index);
    }

    public static final int MESSAGEPARAMETERS_FIELD_NUMBER = 6;
    private static final class MessageParametersDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessagePublish_MessageParametersEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> messageParameters_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetMessageParameters() {
      if (messageParameters_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            MessageParametersDefaultEntryHolder.defaultEntry);
      }
      return messageParameters_;
    }

    public int getMessageParametersCount() {
      return internalGetMessageParameters().getMap().size();
    }
    /**
     * <code>map&lt;string, string&gt; messageParameters = 6;</code>
     */

    public boolean containsMessageParameters(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      return internalGetMessageParameters().getMap().containsKey(key);
    }
    /**
     * Use {@link #getMessageParametersMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getMessageParameters() {
      return getMessageParametersMap();
    }
    /**
     * <code>map&lt;string, string&gt; messageParameters = 6;</code>
     */

    public java.util.Map<java.lang.String, java.lang.String> getMessageParametersMap() {
      return internalGetMessageParameters().getMap();
    }
    /**
     * <code>map&lt;string, string&gt; messageParameters = 6;</code>
     */

    public java.lang.String getMessageParametersOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetMessageParameters().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, string&gt; messageParameters = 6;</code>
     */

    public java.lang.String getMessageParametersOrThrow(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetMessageParameters().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, vehicleMessageID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, vin_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, messageType_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, messageTemplate_);
      }
      for (int i = 0; i < message_.size(); i++) {
        output.writeMessage(5, message_.get(i));
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetMessageParameters().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        messageParameters = MessageParametersDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        output.writeMessage(6, messageParameters);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, vehicleMessageID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, vin_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, messageType_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, messageTemplate_);
      }
      for (int i = 0; i < message_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, message_.get(i));
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetMessageParameters().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        messageParameters = MessageParametersDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, messageParameters);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish other = (com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish) obj;

      boolean result = true;
      result = result && (hasVehicleMessageID() == other.hasVehicleMessageID());
      if (hasVehicleMessageID()) {
        result = result && (getVehicleMessageID()
            == other.getVehicleMessageID());
      }
      result = result && (hasVin() == other.hasVin());
      if (hasVin()) {
        result = result && getVin()
            .equals(other.getVin());
      }
      result = result && (hasMessageType() == other.hasMessageType());
      if (hasMessageType()) {
        result = result && messageType_ == other.messageType_;
      }
      result = result && (hasMessageTemplate() == other.hasMessageTemplate());
      if (hasMessageTemplate()) {
        result = result && getMessageTemplate()
            .equals(other.getMessageTemplate());
      }
      result = result && getMessageList()
          .equals(other.getMessageList());
      result = result && internalGetMessageParameters().equals(
          other.internalGetMessageParameters());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasVehicleMessageID()) {
        hash = (37 * hash) + VEHICLEMESSAGEID_FIELD_NUMBER;
        hash = (53 * hash) + getVehicleMessageID();
      }
      if (hasVin()) {
        hash = (37 * hash) + VIN_FIELD_NUMBER;
        hash = (53 * hash) + getVin().hashCode();
      }
      if (hasMessageType()) {
        hash = (37 * hash) + MESSAGETYPE_FIELD_NUMBER;
        hash = (53 * hash) + messageType_;
      }
      if (hasMessageTemplate()) {
        hash = (37 * hash) + MESSAGETEMPLATE_FIELD_NUMBER;
        hash = (53 * hash) + getMessageTemplate().hashCode();
      }
      if (getMessageCount() > 0) {
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessageList().hashCode();
      }
      if (!internalGetMessageParameters().getMap().isEmpty()) {
        hash = (37 * hash) + MESSAGEPARAMETERS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetMessageParameters().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * This message is to send any Alert Messages to the Vehicle like Service or Recall.
     * &lt;div class=exmsg-main&gt;
     * &lt;h4&gt;VehicleMessagePublish Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     * 		timestamp: 1490983981881
     * 		messageId: 11
     * 		messages
     * 		{
     * 		 [com.fca.uconnect.global.vehicleMessagePublish]
     * 		 {
     * 		   vin: "1HGCM82633A004352"
     * 		   messageType: SERVICE_NOTICE
     * 		   message
     * 		   {
     * 			language: "ENGLISH"
     * 			messageText: "Your Vehicle is Due for Service"
     * 			}
     * 		 }
     * 		}
     *	&lt;/code&gt;
     *   &lt;/div&gt;
     * &lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.VehicleMessagePublish}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleMessagePublish)
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublishOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessagePublish_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 6:
            return internalGetMessageParameters();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 6:
            return internalGetMutableMessageParameters();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessagePublish_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.class, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getMessageFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        vehicleMessageID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        vin_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        messageType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        messageTemplate_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        if (messageBuilder_ == null) {
          message_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          messageBuilder_.clear();
        }
        internalGetMutableMessageParameters().clear();
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessagePublish_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish build() {
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish result = new com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.vehicleMessageID_ = vehicleMessageID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.vin_ = vin_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.messageType_ = messageType_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.messageTemplate_ = messageTemplate_;
        if (messageBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            message_ = java.util.Collections.unmodifiableList(message_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.message_ = message_;
        } else {
          result.message_ = messageBuilder_.build();
        }
        result.messageParameters_ = internalGetMessageParameters();
        result.messageParameters_.makeImmutable();
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.getDefaultInstance()) return this;
        if (other.hasVehicleMessageID()) {
          setVehicleMessageID(other.getVehicleMessageID());
        }
        if (other.hasVin()) {
          bitField0_ |= 0x00000002;
          vin_ = other.vin_;
          onChanged();
        }
        if (other.hasMessageType()) {
          setMessageType(other.getMessageType());
        }
        if (other.hasMessageTemplate()) {
          bitField0_ |= 0x00000008;
          messageTemplate_ = other.messageTemplate_;
          onChanged();
        }
        if (messageBuilder_ == null) {
          if (!other.message_.isEmpty()) {
            if (message_.isEmpty()) {
              message_ = other.message_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureMessageIsMutable();
              message_.addAll(other.message_);
            }
            onChanged();
          }
        } else {
          if (!other.message_.isEmpty()) {
            if (messageBuilder_.isEmpty()) {
              messageBuilder_.dispose();
              messageBuilder_ = null;
              message_ = other.message_;
              bitField0_ = (bitField0_ & ~0x00000010);
              messageBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getMessageFieldBuilder() : null;
            } else {
              messageBuilder_.addAllMessages(other.message_);
            }
          }
        }
        internalGetMutableMessageParameters().mergeFrom(
            other.internalGetMessageParameters());
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int vehicleMessageID_ ;
      /**
       * <pre>
       *&#47; Must be usable as key on the TBM, global uniqueness is not assured and depends on the SDP implementation
       * </pre>
       *
       * <code>optional int32 vehicleMessageID = 1;</code>
       */
      public boolean hasVehicleMessageID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       *&#47; Must be usable as key on the TBM, global uniqueness is not assured and depends on the SDP implementation
       * </pre>
       *
       * <code>optional int32 vehicleMessageID = 1;</code>
       */
      public int getVehicleMessageID() {
        return vehicleMessageID_;
      }
      /**
       * <pre>
       *&#47; Must be usable as key on the TBM, global uniqueness is not assured and depends on the SDP implementation
       * </pre>
       *
       * <code>optional int32 vehicleMessageID = 1;</code>
       */
      public Builder setVehicleMessageID(int value) {
        bitField0_ |= 0x00000001;
        vehicleMessageID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Must be usable as key on the TBM, global uniqueness is not assured and depends on the SDP implementation
       * </pre>
       *
       * <code>optional int32 vehicleMessageID = 1;</code>
       */
      public Builder clearVehicleMessageID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        vehicleMessageID_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object vin_ = "";
      /**
       * <code>optional string vin = 2;</code>
       */
      public boolean hasVin() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string vin = 2;</code>
       */
      public java.lang.String getVin() {
        java.lang.Object ref = vin_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            vin_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string vin = 2;</code>
       */
      public com.google.protobuf.ByteString
          getVinBytes() {
        java.lang.Object ref = vin_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          vin_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string vin = 2;</code>
       */
      public Builder setVin(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        vin_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string vin = 2;</code>
       */
      public Builder clearVin() {
        bitField0_ = (bitField0_ & ~0x00000002);
        vin_ = getDefaultInstance().getVin();
        onChanged();
        return this;
      }
      /**
       * <code>optional string vin = 2;</code>
       */
      public Builder setVinBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        vin_ = value;
        onChanged();
        return this;
      }

      private int messageType_ = 0;
      /**
       * <code>optional .com.fca.uconnect.global.VehicleMessagePublish.MessageType messageType = 3;</code>
       */
      public boolean hasMessageType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional .com.fca.uconnect.global.VehicleMessagePublish.MessageType messageType = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.MessageType getMessageType() {
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.MessageType result = com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.MessageType.valueOf(messageType_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.MessageType.RECALL_NOTICE : result;
      }
      /**
       * <code>optional .com.fca.uconnect.global.VehicleMessagePublish.MessageType messageType = 3;</code>
       */
      public Builder setMessageType(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.MessageType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        messageType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .com.fca.uconnect.global.VehicleMessagePublish.MessageType messageType = 3;</code>
       */
      public Builder clearMessageType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        messageType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object messageTemplate_ = "";
      /**
       * <pre>
       *&#47; the template to be used to format the message
       * </pre>
       *
       * <code>optional string messageTemplate = 4;</code>
       */
      public boolean hasMessageTemplate() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       *&#47; the template to be used to format the message
       * </pre>
       *
       * <code>optional string messageTemplate = 4;</code>
       */
      public java.lang.String getMessageTemplate() {
        java.lang.Object ref = messageTemplate_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            messageTemplate_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; the template to be used to format the message
       * </pre>
       *
       * <code>optional string messageTemplate = 4;</code>
       */
      public com.google.protobuf.ByteString
          getMessageTemplateBytes() {
        java.lang.Object ref = messageTemplate_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          messageTemplate_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; the template to be used to format the message
       * </pre>
       *
       * <code>optional string messageTemplate = 4;</code>
       */
      public Builder setMessageTemplate(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        messageTemplate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; the template to be used to format the message
       * </pre>
       *
       * <code>optional string messageTemplate = 4;</code>
       */
      public Builder clearMessageTemplate() {
        bitField0_ = (bitField0_ & ~0x00000008);
        messageTemplate_ = getDefaultInstance().getMessageTemplate();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; the template to be used to format the message
       * </pre>
       *
       * <code>optional string messageTemplate = 4;</code>
       */
      public Builder setMessageTemplateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        messageTemplate_ = value;
        onChanged();
        return this;
      }

      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString> message_ =
        java.util.Collections.emptyList();
      private void ensureMessageIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          message_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString>(message_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.Builder, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageStringOrBuilder> messageBuilder_;

      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString> getMessageList() {
        if (messageBuilder_ == null) {
          return java.util.Collections.unmodifiableList(message_);
        } else {
          return messageBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public int getMessageCount() {
        if (messageBuilder_ == null) {
          return message_.size();
        } else {
          return messageBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString getMessage(int index) {
        if (messageBuilder_ == null) {
          return message_.get(index);
        } else {
          return messageBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public Builder setMessage(
          int index, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString value) {
        if (messageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMessageIsMutable();
          message_.set(index, value);
          onChanged();
        } else {
          messageBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public Builder setMessage(
          int index, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.Builder builderForValue) {
        if (messageBuilder_ == null) {
          ensureMessageIsMutable();
          message_.set(index, builderForValue.build());
          onChanged();
        } else {
          messageBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public Builder addMessage(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString value) {
        if (messageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMessageIsMutable();
          message_.add(value);
          onChanged();
        } else {
          messageBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public Builder addMessage(
          int index, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString value) {
        if (messageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMessageIsMutable();
          message_.add(index, value);
          onChanged();
        } else {
          messageBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public Builder addMessage(
          com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.Builder builderForValue) {
        if (messageBuilder_ == null) {
          ensureMessageIsMutable();
          message_.add(builderForValue.build());
          onChanged();
        } else {
          messageBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public Builder addMessage(
          int index, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.Builder builderForValue) {
        if (messageBuilder_ == null) {
          ensureMessageIsMutable();
          message_.add(index, builderForValue.build());
          onChanged();
        } else {
          messageBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public Builder addAllMessage(
          java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString> values) {
        if (messageBuilder_ == null) {
          ensureMessageIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, message_);
          onChanged();
        } else {
          messageBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public Builder clearMessage() {
        if (messageBuilder_ == null) {
          message_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          messageBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public Builder removeMessage(int index) {
        if (messageBuilder_ == null) {
          ensureMessageIsMutable();
          message_.remove(index);
          onChanged();
        } else {
          messageBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.Builder getMessageBuilder(
          int index) {
        return getMessageFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageStringOrBuilder getMessageOrBuilder(
          int index) {
        if (messageBuilder_ == null) {
          return message_.get(index);  } else {
          return messageBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageStringOrBuilder> 
           getMessageOrBuilderList() {
        if (messageBuilder_ != null) {
          return messageBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(message_);
        }
      }
      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.Builder addMessageBuilder() {
        return getMessageFieldBuilder().addBuilder(
            com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.getDefaultInstance());
      }
      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.Builder addMessageBuilder(
          int index) {
        return getMessageFieldBuilder().addBuilder(
            index, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.getDefaultInstance());
      }
      /**
       * <pre>
       *&#47; the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleMessagePublish.LanguageString message = 5;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.Builder> 
           getMessageBuilderList() {
        return getMessageFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.Builder, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageStringOrBuilder> 
          getMessageFieldBuilder() {
        if (messageBuilder_ == null) {
          messageBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageString.Builder, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.LanguageStringOrBuilder>(
                  message_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          message_ = null;
        }
        return messageBuilder_;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> messageParameters_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMessageParameters() {
        if (messageParameters_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              MessageParametersDefaultEntryHolder.defaultEntry);
        }
        return messageParameters_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableMessageParameters() {
        onChanged();;
        if (messageParameters_ == null) {
          messageParameters_ = com.google.protobuf.MapField.newMapField(
              MessageParametersDefaultEntryHolder.defaultEntry);
        }
        if (!messageParameters_.isMutable()) {
          messageParameters_ = messageParameters_.copy();
        }
        return messageParameters_;
      }

      public int getMessageParametersCount() {
        return internalGetMessageParameters().getMap().size();
      }
      /**
       * <code>map&lt;string, string&gt; messageParameters = 6;</code>
       */

      public boolean containsMessageParameters(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        return internalGetMessageParameters().getMap().containsKey(key);
      }
      /**
       * Use {@link #getMessageParametersMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getMessageParameters() {
        return getMessageParametersMap();
      }
      /**
       * <code>map&lt;string, string&gt; messageParameters = 6;</code>
       */

      public java.util.Map<java.lang.String, java.lang.String> getMessageParametersMap() {
        return internalGetMessageParameters().getMap();
      }
      /**
       * <code>map&lt;string, string&gt; messageParameters = 6;</code>
       */

      public java.lang.String getMessageParametersOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetMessageParameters().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, string&gt; messageParameters = 6;</code>
       */

      public java.lang.String getMessageParametersOrThrow(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetMessageParameters().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearMessageParameters() {
        getMutableMessageParameters().clear();
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; messageParameters = 6;</code>
       */

      public Builder removeMessageParameters(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        getMutableMessageParameters().remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
      getMutableMessageParameters() {
        return internalGetMutableMessageParameters().getMutableMap();
      }
      /**
       * <code>map&lt;string, string&gt; messageParameters = 6;</code>
       */
      public Builder putMessageParameters(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        if (value == null) { throw new java.lang.NullPointerException(); }
        getMutableMessageParameters().put(key, value);
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; messageParameters = 6;</code>
       */

      public Builder putAllMessageParameters(
          java.util.Map<java.lang.String, java.lang.String> values) {
        getMutableMessageParameters().putAll(values);
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.VehicleMessagePublish)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.VehicleMessagePublish)
    private static final com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<VehicleMessagePublish>
        PARSER = new com.google.protobuf.AbstractParser<VehicleMessagePublish>() {
      public VehicleMessagePublish parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new VehicleMessagePublish(input, extensionRegistry);
      }
    };

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

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

    public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface VehicleMessageAckOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleMessageAck)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional int32 vehicleMessageID = 1;</code>
     */
    boolean hasVehicleMessageID();
    /**
     * <code>optional int32 vehicleMessageID = 1;</code>
     */
    int getVehicleMessageID();

    /**
     * <code>optional int64 messageReceiptTimestamp = 2;</code>
     */
    boolean hasMessageReceiptTimestamp();
    /**
     * <code>optional int64 messageReceiptTimestamp = 2;</code>
     */
    long getMessageReceiptTimestamp();

    /**
     * <code>optional .com.fca.uconnect.global.VehicleMessageAck.ResponseEnum status = 3;</code>
     */
    boolean hasStatus();
    /**
     * <code>optional .com.fca.uconnect.global.VehicleMessageAck.ResponseEnum status = 3;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.ResponseEnum getStatus();

    /**
     * <pre>
     *&#47; for MESSAGE_STAGING_FAILED, any status message or result codes may be sent here 
     * </pre>
     *
     * <code>optional string failureDiagnostic = 4;</code>
     */
    boolean hasFailureDiagnostic();
    /**
     * <pre>
     *&#47; for MESSAGE_STAGING_FAILED, any status message or result codes may be sent here 
     * </pre>
     *
     * <code>optional string failureDiagnostic = 4;</code>
     */
    java.lang.String getFailureDiagnostic();
    /**
     * <pre>
     *&#47; for MESSAGE_STAGING_FAILED, any status message or result codes may be sent here 
     * </pre>
     *
     * <code>optional string failureDiagnostic = 4;</code>
     */
    com.google.protobuf.ByteString
        getFailureDiagnosticBytes();
  }
  /**
   * <pre>
   **
   * This message is to Acknowledge SDP for  VehicleMessagePublish Message.
   * &lt;div class=exmsg-main&gt;
   * &lt;h4&gt;VehicleMessageAck Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   * 		timestamp: 1490983982096
   * 		messageId: 1
   * 		correlationId: 11
   * 		messages
   * 		{
   * 		  [com.fca.uconnect.global.vehicleMessageAck]
   * 		  {
   * 			vehicleMessageID: 1
   * 			messageReceiptTimestamp: 1490983982095
   * 			status: MESSAGE_STAGED_FOR_DISPLAY
   * 		  }
   * 		}
   *	&lt;/code&gt;
   *   &lt;/div&gt;
   * &lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.VehicleMessageAck}
   */
  public  static final class VehicleMessageAck extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleMessageAck)
      VehicleMessageAckOrBuilder {
    // Use VehicleMessageAck.newBuilder() to construct.
    private VehicleMessageAck(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VehicleMessageAck() {
      vehicleMessageID_ = 0;
      messageReceiptTimestamp_ = 0L;
      status_ = 0;
      failureDiagnostic_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private VehicleMessageAck(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              vehicleMessageID_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              messageReceiptTimestamp_ = input.readInt64();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.ResponseEnum value = com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.ResponseEnum.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                bitField0_ |= 0x00000004;
                status_ = rawValue;
              }
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              failureDiagnostic_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessageAck_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessageAck_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.class, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.VehicleMessageAck.ResponseEnum}
     */
    public enum ResponseEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; The HU has successfully passed the message to the next downstream component, and is waiting for a reponse
       * </pre>
       *
       * <code>MESSAGE_STAGED_FOR_DISPLAY = 0;</code>
       */
      MESSAGE_STAGED_FOR_DISPLAY(0),
      /**
       * <pre>
       *&#47; The HU has the message, but cannot process messages of that type. The message is discarded, retry is unlikely to succeed
       * </pre>
       *
       * <code>MESSAGE_TYPE_NOT_SUPPORTED = 1;</code>
       */
      MESSAGE_TYPE_NOT_SUPPORTED(1),
      /**
       * <pre>
       *&#47; None of the languages in which the message was furnished can be displayed by the HMI. The message is discarded
       * </pre>
       *
       * <code>MESSAGE_LANGUAGES_NOT_SUPPORTED = 2;</code>
       */
      MESSAGE_LANGUAGES_NOT_SUPPORTED(2),
      /**
       * <pre>
       *&#47; The HU attempted to stage the message for display, but failed for an unexpected reason. The message is discarded, the SDP should examine the diagnostic to determine whether to resend
       * </pre>
       *
       * <code>MESSAGE_STAGING_FAILED = 3;</code>
       */
      MESSAGE_STAGING_FAILED(3),
      /**
       * <pre>
       *&#47; The HU attempted to stage the message for display, but failed with a diagnostic that the destination ECU is absent. The message is discarded on the HU, and may be sent again.
       * </pre>
       *
       * <code>MESSAGE_DESTINATION_TEMPORARILY_NOT_AVAILABLE = 4;</code>
       */
      MESSAGE_DESTINATION_TEMPORARILY_NOT_AVAILABLE(4),
      /**
       * <pre>
       *&#47; The message was discarded because the VIN attached to the HU is not the VIN in the message.
       * </pre>
       *
       * <code>MESSAGE_VIN_NOT_VALID = 5;</code>
       */
      MESSAGE_VIN_NOT_VALID(5),
      ;

      /**
       * <pre>
       *&#47; The HU has successfully passed the message to the next downstream component, and is waiting for a reponse
       * </pre>
       *
       * <code>MESSAGE_STAGED_FOR_DISPLAY = 0;</code>
       */
      public static final int MESSAGE_STAGED_FOR_DISPLAY_VALUE = 0;
      /**
       * <pre>
       *&#47; The HU has the message, but cannot process messages of that type. The message is discarded, retry is unlikely to succeed
       * </pre>
       *
       * <code>MESSAGE_TYPE_NOT_SUPPORTED = 1;</code>
       */
      public static final int MESSAGE_TYPE_NOT_SUPPORTED_VALUE = 1;
      /**
       * <pre>
       *&#47; None of the languages in which the message was furnished can be displayed by the HMI. The message is discarded
       * </pre>
       *
       * <code>MESSAGE_LANGUAGES_NOT_SUPPORTED = 2;</code>
       */
      public static final int MESSAGE_LANGUAGES_NOT_SUPPORTED_VALUE = 2;
      /**
       * <pre>
       *&#47; The HU attempted to stage the message for display, but failed for an unexpected reason. The message is discarded, the SDP should examine the diagnostic to determine whether to resend
       * </pre>
       *
       * <code>MESSAGE_STAGING_FAILED = 3;</code>
       */
      public static final int MESSAGE_STAGING_FAILED_VALUE = 3;
      /**
       * <pre>
       *&#47; The HU attempted to stage the message for display, but failed with a diagnostic that the destination ECU is absent. The message is discarded on the HU, and may be sent again.
       * </pre>
       *
       * <code>MESSAGE_DESTINATION_TEMPORARILY_NOT_AVAILABLE = 4;</code>
       */
      public static final int MESSAGE_DESTINATION_TEMPORARILY_NOT_AVAILABLE_VALUE = 4;
      /**
       * <pre>
       *&#47; The message was discarded because the VIN attached to the HU is not the VIN in the message.
       * </pre>
       *
       * <code>MESSAGE_VIN_NOT_VALID = 5;</code>
       */
      public static final int MESSAGE_VIN_NOT_VALID_VALUE = 5;


      public final int getNumber() {
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ResponseEnum valueOf(int value) {
        return forNumber(value);
      }

      public static ResponseEnum forNumber(int value) {
        switch (value) {
          case 0: return MESSAGE_STAGED_FOR_DISPLAY;
          case 1: return MESSAGE_TYPE_NOT_SUPPORTED;
          case 2: return MESSAGE_LANGUAGES_NOT_SUPPORTED;
          case 3: return MESSAGE_STAGING_FAILED;
          case 4: return MESSAGE_DESTINATION_TEMPORARILY_NOT_AVAILABLE;
          case 5: return MESSAGE_VIN_NOT_VALID;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.getDescriptor().getEnumTypes().get(0);
      }

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.VehicleMessageAck.ResponseEnum)
    }

    private int bitField0_;
    public static final int VEHICLEMESSAGEID_FIELD_NUMBER = 1;
    private int vehicleMessageID_;
    /**
     * <code>optional int32 vehicleMessageID = 1;</code>
     */
    public boolean hasVehicleMessageID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional int32 vehicleMessageID = 1;</code>
     */
    public int getVehicleMessageID() {
      return vehicleMessageID_;
    }

    public static final int MESSAGERECEIPTTIMESTAMP_FIELD_NUMBER = 2;
    private long messageReceiptTimestamp_;
    /**
     * <code>optional int64 messageReceiptTimestamp = 2;</code>
     */
    public boolean hasMessageReceiptTimestamp() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional int64 messageReceiptTimestamp = 2;</code>
     */
    public long getMessageReceiptTimestamp() {
      return messageReceiptTimestamp_;
    }

    public static final int STATUS_FIELD_NUMBER = 3;
    private int status_;
    /**
     * <code>optional .com.fca.uconnect.global.VehicleMessageAck.ResponseEnum status = 3;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional .com.fca.uconnect.global.VehicleMessageAck.ResponseEnum status = 3;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.ResponseEnum getStatus() {
      com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.ResponseEnum.valueOf(status_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.ResponseEnum.MESSAGE_STAGED_FOR_DISPLAY : result;
    }

    public static final int FAILUREDIAGNOSTIC_FIELD_NUMBER = 4;
    private volatile java.lang.Object failureDiagnostic_;
    /**
     * <pre>
     *&#47; for MESSAGE_STAGING_FAILED, any status message or result codes may be sent here 
     * </pre>
     *
     * <code>optional string failureDiagnostic = 4;</code>
     */
    public boolean hasFailureDiagnostic() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <pre>
     *&#47; for MESSAGE_STAGING_FAILED, any status message or result codes may be sent here 
     * </pre>
     *
     * <code>optional string failureDiagnostic = 4;</code>
     */
    public java.lang.String getFailureDiagnostic() {
      java.lang.Object ref = failureDiagnostic_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          failureDiagnostic_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; for MESSAGE_STAGING_FAILED, any status message or result codes may be sent here 
     * </pre>
     *
     * <code>optional string failureDiagnostic = 4;</code>
     */
    public com.google.protobuf.ByteString
        getFailureDiagnosticBytes() {
      java.lang.Object ref = failureDiagnostic_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        failureDiagnostic_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, vehicleMessageID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, messageReceiptTimestamp_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, status_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, failureDiagnostic_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, vehicleMessageID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, messageReceiptTimestamp_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, status_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, failureDiagnostic_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck other = (com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck) obj;

      boolean result = true;
      result = result && (hasVehicleMessageID() == other.hasVehicleMessageID());
      if (hasVehicleMessageID()) {
        result = result && (getVehicleMessageID()
            == other.getVehicleMessageID());
      }
      result = result && (hasMessageReceiptTimestamp() == other.hasMessageReceiptTimestamp());
      if (hasMessageReceiptTimestamp()) {
        result = result && (getMessageReceiptTimestamp()
            == other.getMessageReceiptTimestamp());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && status_ == other.status_;
      }
      result = result && (hasFailureDiagnostic() == other.hasFailureDiagnostic());
      if (hasFailureDiagnostic()) {
        result = result && getFailureDiagnostic()
            .equals(other.getFailureDiagnostic());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasVehicleMessageID()) {
        hash = (37 * hash) + VEHICLEMESSAGEID_FIELD_NUMBER;
        hash = (53 * hash) + getVehicleMessageID();
      }
      if (hasMessageReceiptTimestamp()) {
        hash = (37 * hash) + MESSAGERECEIPTTIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getMessageReceiptTimestamp());
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + status_;
      }
      if (hasFailureDiagnostic()) {
        hash = (37 * hash) + FAILUREDIAGNOSTIC_FIELD_NUMBER;
        hash = (53 * hash) + getFailureDiagnostic().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * This message is to Acknowledge SDP for  VehicleMessagePublish Message.
     * &lt;div class=exmsg-main&gt;
     * &lt;h4&gt;VehicleMessageAck Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     * 		timestamp: 1490983982096
     * 		messageId: 1
     * 		correlationId: 11
     * 		messages
     * 		{
     * 		  [com.fca.uconnect.global.vehicleMessageAck]
     * 		  {
     * 			vehicleMessageID: 1
     * 			messageReceiptTimestamp: 1490983982095
     * 			status: MESSAGE_STAGED_FOR_DISPLAY
     * 		  }
     * 		}
     *	&lt;/code&gt;
     *   &lt;/div&gt;
     * &lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.VehicleMessageAck}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleMessageAck)
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAckOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessageAck_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessageAck_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.class, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        vehicleMessageID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        messageReceiptTimestamp_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        status_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        failureDiagnostic_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessageAck_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck build() {
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck result = new com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.vehicleMessageID_ = vehicleMessageID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.messageReceiptTimestamp_ = messageReceiptTimestamp_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.status_ = status_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.failureDiagnostic_ = failureDiagnostic_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.getDefaultInstance()) return this;
        if (other.hasVehicleMessageID()) {
          setVehicleMessageID(other.getVehicleMessageID());
        }
        if (other.hasMessageReceiptTimestamp()) {
          setMessageReceiptTimestamp(other.getMessageReceiptTimestamp());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasFailureDiagnostic()) {
          bitField0_ |= 0x00000008;
          failureDiagnostic_ = other.failureDiagnostic_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int vehicleMessageID_ ;
      /**
       * <code>optional int32 vehicleMessageID = 1;</code>
       */
      public boolean hasVehicleMessageID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int32 vehicleMessageID = 1;</code>
       */
      public int getVehicleMessageID() {
        return vehicleMessageID_;
      }
      /**
       * <code>optional int32 vehicleMessageID = 1;</code>
       */
      public Builder setVehicleMessageID(int value) {
        bitField0_ |= 0x00000001;
        vehicleMessageID_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 vehicleMessageID = 1;</code>
       */
      public Builder clearVehicleMessageID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        vehicleMessageID_ = 0;
        onChanged();
        return this;
      }

      private long messageReceiptTimestamp_ ;
      /**
       * <code>optional int64 messageReceiptTimestamp = 2;</code>
       */
      public boolean hasMessageReceiptTimestamp() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional int64 messageReceiptTimestamp = 2;</code>
       */
      public long getMessageReceiptTimestamp() {
        return messageReceiptTimestamp_;
      }
      /**
       * <code>optional int64 messageReceiptTimestamp = 2;</code>
       */
      public Builder setMessageReceiptTimestamp(long value) {
        bitField0_ |= 0x00000002;
        messageReceiptTimestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 messageReceiptTimestamp = 2;</code>
       */
      public Builder clearMessageReceiptTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000002);
        messageReceiptTimestamp_ = 0L;
        onChanged();
        return this;
      }

      private int status_ = 0;
      /**
       * <code>optional .com.fca.uconnect.global.VehicleMessageAck.ResponseEnum status = 3;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional .com.fca.uconnect.global.VehicleMessageAck.ResponseEnum status = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.ResponseEnum getStatus() {
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.ResponseEnum.valueOf(status_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.ResponseEnum.MESSAGE_STAGED_FOR_DISPLAY : result;
      }
      /**
       * <code>optional .com.fca.uconnect.global.VehicleMessageAck.ResponseEnum status = 3;</code>
       */
      public Builder setStatus(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.ResponseEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        status_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .com.fca.uconnect.global.VehicleMessageAck.ResponseEnum status = 3;</code>
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000004);
        status_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object failureDiagnostic_ = "";
      /**
       * <pre>
       *&#47; for MESSAGE_STAGING_FAILED, any status message or result codes may be sent here 
       * </pre>
       *
       * <code>optional string failureDiagnostic = 4;</code>
       */
      public boolean hasFailureDiagnostic() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       *&#47; for MESSAGE_STAGING_FAILED, any status message or result codes may be sent here 
       * </pre>
       *
       * <code>optional string failureDiagnostic = 4;</code>
       */
      public java.lang.String getFailureDiagnostic() {
        java.lang.Object ref = failureDiagnostic_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            failureDiagnostic_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; for MESSAGE_STAGING_FAILED, any status message or result codes may be sent here 
       * </pre>
       *
       * <code>optional string failureDiagnostic = 4;</code>
       */
      public com.google.protobuf.ByteString
          getFailureDiagnosticBytes() {
        java.lang.Object ref = failureDiagnostic_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          failureDiagnostic_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; for MESSAGE_STAGING_FAILED, any status message or result codes may be sent here 
       * </pre>
       *
       * <code>optional string failureDiagnostic = 4;</code>
       */
      public Builder setFailureDiagnostic(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        failureDiagnostic_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; for MESSAGE_STAGING_FAILED, any status message or result codes may be sent here 
       * </pre>
       *
       * <code>optional string failureDiagnostic = 4;</code>
       */
      public Builder clearFailureDiagnostic() {
        bitField0_ = (bitField0_ & ~0x00000008);
        failureDiagnostic_ = getDefaultInstance().getFailureDiagnostic();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; for MESSAGE_STAGING_FAILED, any status message or result codes may be sent here 
       * </pre>
       *
       * <code>optional string failureDiagnostic = 4;</code>
       */
      public Builder setFailureDiagnosticBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        failureDiagnostic_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.VehicleMessageAck)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.VehicleMessageAck)
    private static final com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<VehicleMessageAck>
        PARSER = new com.google.protobuf.AbstractParser<VehicleMessageAck>() {
      public VehicleMessageAck parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new VehicleMessageAck(input, extensionRegistry);
      }
    };

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

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

    public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface VehicleMessageDispositionPublishOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleMessageDispositionPublish)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional int32 vehicleMessageID = 1;</code>
     */
    boolean hasVehicleMessageID();
    /**
     * <code>optional int32 vehicleMessageID = 1;</code>
     */
    int getVehicleMessageID();

    /**
     * <pre>
     *&#47; time the message was shown, or VIN change detected
     * </pre>
     *
     * <code>optional int64 messageDisplayTimestamp = 2;</code>
     */
    boolean hasMessageDisplayTimestamp();
    /**
     * <pre>
     *&#47; time the message was shown, or VIN change detected
     * </pre>
     *
     * <code>optional int64 messageDisplayTimestamp = 2;</code>
     */
    long getMessageDisplayTimestamp();

    /**
     * <pre>
     *&#47; time of operator interaction that closed message display
     * </pre>
     *
     * <code>optional int64 messageHMIDispositionEventTimestamp = 3;</code>
     */
    boolean hasMessageHMIDispositionEventTimestamp();
    /**
     * <pre>
     *&#47; time of operator interaction that closed message display
     * </pre>
     *
     * <code>optional int64 messageHMIDispositionEventTimestamp = 3;</code>
     */
    long getMessageHMIDispositionEventTimestamp();

    /**
     * <code>optional .com.fca.uconnect.global.VehicleMessageDispositionPublish.MessageDispositionEnum disposition = 4;</code>
     */
    boolean hasDisposition();
    /**
     * <code>optional .com.fca.uconnect.global.VehicleMessageDispositionPublish.MessageDispositionEnum disposition = 4;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.MessageDispositionEnum getDisposition();

    /**
     * <pre>
     *&#47; for MESSAGE_DISPLAY_FAILED, any status message or result codes may be sent here 
     * </pre>
     *
     * <code>optional string failureDiagnostic = 5;</code>
     */
    boolean hasFailureDiagnostic();
    /**
     * <pre>
     *&#47; for MESSAGE_DISPLAY_FAILED, any status message or result codes may be sent here 
     * </pre>
     *
     * <code>optional string failureDiagnostic = 5;</code>
     */
    java.lang.String getFailureDiagnostic();
    /**
     * <pre>
     *&#47; for MESSAGE_DISPLAY_FAILED, any status message or result codes may be sent here 
     * </pre>
     *
     * <code>optional string failureDiagnostic = 5;</code>
     */
    com.google.protobuf.ByteString
        getFailureDiagnosticBytes();
  }
  /**
   * <pre>
   **
   * The message has been fully processed, the HU has purged it fully.
   * &lt;div class=exmsg-main&gt;
   * &lt;h4&gt;VehicleMessageDispositionPublish Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   * 		timestamp: 1490983992118
   * 		messageId: 2
   * 		correlationId: 11
   * 		messages
   * 		{
   * 		 [com.fca.uconnect.global.vehicleMessageDispositionPublish]
   * 		 {
   * 		  vehicleMessageID: "&#92;275&#92;237d&#92;235u&#92;350&#92;323&#92;021&#92;212l&#92;002o&#92;247
   * 							&#92;036&#92;007&#92;031!&#92;251&#92;001&#92;316"
   * 		  messageDisplayTimestamp: 1490983982111
   * 		  messageHMIDispositionEventTimestamp: 1490983992116
   * 		  disposition: MESSAGE_DISPLAY_CANCELLED
   * 		 }
   * 		}
   *	&lt;/code&gt;
   *   &lt;/div&gt;
   * &lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.VehicleMessageDispositionPublish}
   */
  public  static final class VehicleMessageDispositionPublish extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleMessageDispositionPublish)
      VehicleMessageDispositionPublishOrBuilder {
    // Use VehicleMessageDispositionPublish.newBuilder() to construct.
    private VehicleMessageDispositionPublish(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VehicleMessageDispositionPublish() {
      vehicleMessageID_ = 0;
      messageDisplayTimestamp_ = 0L;
      messageHMIDispositionEventTimestamp_ = 0L;
      disposition_ = 0;
      failureDiagnostic_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private VehicleMessageDispositionPublish(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              vehicleMessageID_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              messageDisplayTimestamp_ = input.readInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              messageHMIDispositionEventTimestamp_ = input.readInt64();
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.MessageDispositionEnum value = com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.MessageDispositionEnum.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(4, rawValue);
              } else {
                bitField0_ |= 0x00000008;
                disposition_ = rawValue;
              }
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              failureDiagnostic_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessageDispositionPublish_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessageDispositionPublish_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.class, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.VehicleMessageDispositionPublish.MessageDispositionEnum}
     */
    public enum MessageDispositionEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; The message has been shown, and the operator has acknowledged reading and understanding the message
       * </pre>
       *
       * <code>MESSAGE_CONFIRMED_BY_OPERATOR = 0;</code>
       */
      MESSAGE_CONFIRMED_BY_OPERATOR(0),
      /**
       * <pre>
       *&#47; The HMI element displaying the message was closed by the operator in a manner that implies that the message may not have been read or understood. An example would be a popup window closed by pushing an iconic close button that applies to all such popup windows.
       * </pre>
       *
       * <code>MESSAGE_DISPLAY_CANCELLED = 1;</code>
       */
      MESSAGE_DISPLAY_CANCELLED(1),
      /**
       * <pre>
       *&#47; The message was not displayed because the vin in VehicleMessagePublish is not the vin attached to the HU or the display ECU. Implies that the VIN has changed.
       * </pre>
       *
       * <code>MESSAGE_VIN_NOT_VALID = 2;</code>
       */
      MESSAGE_VIN_NOT_VALID(2),
      /**
       * <pre>
       *&#47; logic in the HU or a downstream component has determined that the message is too old to display
       * </pre>
       *
       * <code>MESSAGE_TIMED_OUT = 3;</code>
       */
      MESSAGE_TIMED_OUT(3),
      /**
       * <pre>
       *&#47; None of the languages in which the message was furnished can be displayed by the HMI.
       * </pre>
       *
       * <code>MESSAGE_LANGUAGES_NOT_SUPPORTED = 4;</code>
       */
      MESSAGE_LANGUAGES_NOT_SUPPORTED(4),
      /**
       * <pre>
       *&#47; logic in the HU or a downstream component has discarded the message for an unexpected reason.
       * </pre>
       *
       * <code>MESSAGE_DISPLAY_FAILED = 5;</code>
       */
      MESSAGE_DISPLAY_FAILED(5),
      ;

      /**
       * <pre>
       *&#47; The message has been shown, and the operator has acknowledged reading and understanding the message
       * </pre>
       *
       * <code>MESSAGE_CONFIRMED_BY_OPERATOR = 0;</code>
       */
      public static final int MESSAGE_CONFIRMED_BY_OPERATOR_VALUE = 0;
      /**
       * <pre>
       *&#47; The HMI element displaying the message was closed by the operator in a manner that implies that the message may not have been read or understood. An example would be a popup window closed by pushing an iconic close button that applies to all such popup windows.
       * </pre>
       *
       * <code>MESSAGE_DISPLAY_CANCELLED = 1;</code>
       */
      public static final int MESSAGE_DISPLAY_CANCELLED_VALUE = 1;
      /**
       * <pre>
       *&#47; The message was not displayed because the vin in VehicleMessagePublish is not the vin attached to the HU or the display ECU. Implies that the VIN has changed.
       * </pre>
       *
       * <code>MESSAGE_VIN_NOT_VALID = 2;</code>
       */
      public static final int MESSAGE_VIN_NOT_VALID_VALUE = 2;
      /**
       * <pre>
       *&#47; logic in the HU or a downstream component has determined that the message is too old to display
       * </pre>
       *
       * <code>MESSAGE_TIMED_OUT = 3;</code>
       */
      public static final int MESSAGE_TIMED_OUT_VALUE = 3;
      /**
       * <pre>
       *&#47; None of the languages in which the message was furnished can be displayed by the HMI.
       * </pre>
       *
       * <code>MESSAGE_LANGUAGES_NOT_SUPPORTED = 4;</code>
       */
      public static final int MESSAGE_LANGUAGES_NOT_SUPPORTED_VALUE = 4;
      /**
       * <pre>
       *&#47; logic in the HU or a downstream component has discarded the message for an unexpected reason.
       * </pre>
       *
       * <code>MESSAGE_DISPLAY_FAILED = 5;</code>
       */
      public static final int MESSAGE_DISPLAY_FAILED_VALUE = 5;


      public final int getNumber() {
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static MessageDispositionEnum valueOf(int value) {
        return forNumber(value);
      }

      public static MessageDispositionEnum forNumber(int value) {
        switch (value) {
          case 0: return MESSAGE_CONFIRMED_BY_OPERATOR;
          case 1: return MESSAGE_DISPLAY_CANCELLED;
          case 2: return MESSAGE_VIN_NOT_VALID;
          case 3: return MESSAGE_TIMED_OUT;
          case 4: return MESSAGE_LANGUAGES_NOT_SUPPORTED;
          case 5: return MESSAGE_DISPLAY_FAILED;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.getDescriptor().getEnumTypes().get(0);
      }

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.VehicleMessageDispositionPublish.MessageDispositionEnum)
    }

    private int bitField0_;
    public static final int VEHICLEMESSAGEID_FIELD_NUMBER = 1;
    private int vehicleMessageID_;
    /**
     * <code>optional int32 vehicleMessageID = 1;</code>
     */
    public boolean hasVehicleMessageID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional int32 vehicleMessageID = 1;</code>
     */
    public int getVehicleMessageID() {
      return vehicleMessageID_;
    }

    public static final int MESSAGEDISPLAYTIMESTAMP_FIELD_NUMBER = 2;
    private long messageDisplayTimestamp_;
    /**
     * <pre>
     *&#47; time the message was shown, or VIN change detected
     * </pre>
     *
     * <code>optional int64 messageDisplayTimestamp = 2;</code>
     */
    public boolean hasMessageDisplayTimestamp() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     *&#47; time the message was shown, or VIN change detected
     * </pre>
     *
     * <code>optional int64 messageDisplayTimestamp = 2;</code>
     */
    public long getMessageDisplayTimestamp() {
      return messageDisplayTimestamp_;
    }

    public static final int MESSAGEHMIDISPOSITIONEVENTTIMESTAMP_FIELD_NUMBER = 3;
    private long messageHMIDispositionEventTimestamp_;
    /**
     * <pre>
     *&#47; time of operator interaction that closed message display
     * </pre>
     *
     * <code>optional int64 messageHMIDispositionEventTimestamp = 3;</code>
     */
    public boolean hasMessageHMIDispositionEventTimestamp() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <pre>
     *&#47; time of operator interaction that closed message display
     * </pre>
     *
     * <code>optional int64 messageHMIDispositionEventTimestamp = 3;</code>
     */
    public long getMessageHMIDispositionEventTimestamp() {
      return messageHMIDispositionEventTimestamp_;
    }

    public static final int DISPOSITION_FIELD_NUMBER = 4;
    private int disposition_;
    /**
     * <code>optional .com.fca.uconnect.global.VehicleMessageDispositionPublish.MessageDispositionEnum disposition = 4;</code>
     */
    public boolean hasDisposition() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional .com.fca.uconnect.global.VehicleMessageDispositionPublish.MessageDispositionEnum disposition = 4;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.MessageDispositionEnum getDisposition() {
      com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.MessageDispositionEnum result = com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.MessageDispositionEnum.valueOf(disposition_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.MessageDispositionEnum.MESSAGE_CONFIRMED_BY_OPERATOR : result;
    }

    public static final int FAILUREDIAGNOSTIC_FIELD_NUMBER = 5;
    private volatile java.lang.Object failureDiagnostic_;
    /**
     * <pre>
     *&#47; for MESSAGE_DISPLAY_FAILED, any status message or result codes may be sent here 
     * </pre>
     *
     * <code>optional string failureDiagnostic = 5;</code>
     */
    public boolean hasFailureDiagnostic() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <pre>
     *&#47; for MESSAGE_DISPLAY_FAILED, any status message or result codes may be sent here 
     * </pre>
     *
     * <code>optional string failureDiagnostic = 5;</code>
     */
    public java.lang.String getFailureDiagnostic() {
      java.lang.Object ref = failureDiagnostic_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          failureDiagnostic_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; for MESSAGE_DISPLAY_FAILED, any status message or result codes may be sent here 
     * </pre>
     *
     * <code>optional string failureDiagnostic = 5;</code>
     */
    public com.google.protobuf.ByteString
        getFailureDiagnosticBytes() {
      java.lang.Object ref = failureDiagnostic_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        failureDiagnostic_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, vehicleMessageID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, messageDisplayTimestamp_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt64(3, messageHMIDispositionEventTimestamp_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(4, disposition_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, failureDiagnostic_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, vehicleMessageID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, messageDisplayTimestamp_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, messageHMIDispositionEventTimestamp_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, disposition_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, failureDiagnostic_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish other = (com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish) obj;

      boolean result = true;
      result = result && (hasVehicleMessageID() == other.hasVehicleMessageID());
      if (hasVehicleMessageID()) {
        result = result && (getVehicleMessageID()
            == other.getVehicleMessageID());
      }
      result = result && (hasMessageDisplayTimestamp() == other.hasMessageDisplayTimestamp());
      if (hasMessageDisplayTimestamp()) {
        result = result && (getMessageDisplayTimestamp()
            == other.getMessageDisplayTimestamp());
      }
      result = result && (hasMessageHMIDispositionEventTimestamp() == other.hasMessageHMIDispositionEventTimestamp());
      if (hasMessageHMIDispositionEventTimestamp()) {
        result = result && (getMessageHMIDispositionEventTimestamp()
            == other.getMessageHMIDispositionEventTimestamp());
      }
      result = result && (hasDisposition() == other.hasDisposition());
      if (hasDisposition()) {
        result = result && disposition_ == other.disposition_;
      }
      result = result && (hasFailureDiagnostic() == other.hasFailureDiagnostic());
      if (hasFailureDiagnostic()) {
        result = result && getFailureDiagnostic()
            .equals(other.getFailureDiagnostic());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasVehicleMessageID()) {
        hash = (37 * hash) + VEHICLEMESSAGEID_FIELD_NUMBER;
        hash = (53 * hash) + getVehicleMessageID();
      }
      if (hasMessageDisplayTimestamp()) {
        hash = (37 * hash) + MESSAGEDISPLAYTIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getMessageDisplayTimestamp());
      }
      if (hasMessageHMIDispositionEventTimestamp()) {
        hash = (37 * hash) + MESSAGEHMIDISPOSITIONEVENTTIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getMessageHMIDispositionEventTimestamp());
      }
      if (hasDisposition()) {
        hash = (37 * hash) + DISPOSITION_FIELD_NUMBER;
        hash = (53 * hash) + disposition_;
      }
      if (hasFailureDiagnostic()) {
        hash = (37 * hash) + FAILUREDIAGNOSTIC_FIELD_NUMBER;
        hash = (53 * hash) + getFailureDiagnostic().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * The message has been fully processed, the HU has purged it fully.
     * &lt;div class=exmsg-main&gt;
     * &lt;h4&gt;VehicleMessageDispositionPublish Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     * 		timestamp: 1490983992118
     * 		messageId: 2
     * 		correlationId: 11
     * 		messages
     * 		{
     * 		 [com.fca.uconnect.global.vehicleMessageDispositionPublish]
     * 		 {
     * 		  vehicleMessageID: "&#92;275&#92;237d&#92;235u&#92;350&#92;323&#92;021&#92;212l&#92;002o&#92;247
     * 							&#92;036&#92;007&#92;031!&#92;251&#92;001&#92;316"
     * 		  messageDisplayTimestamp: 1490983982111
     * 		  messageHMIDispositionEventTimestamp: 1490983992116
     * 		  disposition: MESSAGE_DISPLAY_CANCELLED
     * 		 }
     * 		}
     *	&lt;/code&gt;
     *   &lt;/div&gt;
     * &lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.VehicleMessageDispositionPublish}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleMessageDispositionPublish)
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublishOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessageDispositionPublish_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessageDispositionPublish_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.class, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        vehicleMessageID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        messageDisplayTimestamp_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        messageHMIDispositionEventTimestamp_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        disposition_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        failureDiagnostic_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessageDispositionPublish_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish build() {
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish result = new com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.vehicleMessageID_ = vehicleMessageID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.messageDisplayTimestamp_ = messageDisplayTimestamp_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.messageHMIDispositionEventTimestamp_ = messageHMIDispositionEventTimestamp_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.disposition_ = disposition_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.failureDiagnostic_ = failureDiagnostic_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.getDefaultInstance()) return this;
        if (other.hasVehicleMessageID()) {
          setVehicleMessageID(other.getVehicleMessageID());
        }
        if (other.hasMessageDisplayTimestamp()) {
          setMessageDisplayTimestamp(other.getMessageDisplayTimestamp());
        }
        if (other.hasMessageHMIDispositionEventTimestamp()) {
          setMessageHMIDispositionEventTimestamp(other.getMessageHMIDispositionEventTimestamp());
        }
        if (other.hasDisposition()) {
          setDisposition(other.getDisposition());
        }
        if (other.hasFailureDiagnostic()) {
          bitField0_ |= 0x00000010;
          failureDiagnostic_ = other.failureDiagnostic_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int vehicleMessageID_ ;
      /**
       * <code>optional int32 vehicleMessageID = 1;</code>
       */
      public boolean hasVehicleMessageID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int32 vehicleMessageID = 1;</code>
       */
      public int getVehicleMessageID() {
        return vehicleMessageID_;
      }
      /**
       * <code>optional int32 vehicleMessageID = 1;</code>
       */
      public Builder setVehicleMessageID(int value) {
        bitField0_ |= 0x00000001;
        vehicleMessageID_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 vehicleMessageID = 1;</code>
       */
      public Builder clearVehicleMessageID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        vehicleMessageID_ = 0;
        onChanged();
        return this;
      }

      private long messageDisplayTimestamp_ ;
      /**
       * <pre>
       *&#47; time the message was shown, or VIN change detected
       * </pre>
       *
       * <code>optional int64 messageDisplayTimestamp = 2;</code>
       */
      public boolean hasMessageDisplayTimestamp() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       *&#47; time the message was shown, or VIN change detected
       * </pre>
       *
       * <code>optional int64 messageDisplayTimestamp = 2;</code>
       */
      public long getMessageDisplayTimestamp() {
        return messageDisplayTimestamp_;
      }
      /**
       * <pre>
       *&#47; time the message was shown, or VIN change detected
       * </pre>
       *
       * <code>optional int64 messageDisplayTimestamp = 2;</code>
       */
      public Builder setMessageDisplayTimestamp(long value) {
        bitField0_ |= 0x00000002;
        messageDisplayTimestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; time the message was shown, or VIN change detected
       * </pre>
       *
       * <code>optional int64 messageDisplayTimestamp = 2;</code>
       */
      public Builder clearMessageDisplayTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000002);
        messageDisplayTimestamp_ = 0L;
        onChanged();
        return this;
      }

      private long messageHMIDispositionEventTimestamp_ ;
      /**
       * <pre>
       *&#47; time of operator interaction that closed message display
       * </pre>
       *
       * <code>optional int64 messageHMIDispositionEventTimestamp = 3;</code>
       */
      public boolean hasMessageHMIDispositionEventTimestamp() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       *&#47; time of operator interaction that closed message display
       * </pre>
       *
       * <code>optional int64 messageHMIDispositionEventTimestamp = 3;</code>
       */
      public long getMessageHMIDispositionEventTimestamp() {
        return messageHMIDispositionEventTimestamp_;
      }
      /**
       * <pre>
       *&#47; time of operator interaction that closed message display
       * </pre>
       *
       * <code>optional int64 messageHMIDispositionEventTimestamp = 3;</code>
       */
      public Builder setMessageHMIDispositionEventTimestamp(long value) {
        bitField0_ |= 0x00000004;
        messageHMIDispositionEventTimestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; time of operator interaction that closed message display
       * </pre>
       *
       * <code>optional int64 messageHMIDispositionEventTimestamp = 3;</code>
       */
      public Builder clearMessageHMIDispositionEventTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000004);
        messageHMIDispositionEventTimestamp_ = 0L;
        onChanged();
        return this;
      }

      private int disposition_ = 0;
      /**
       * <code>optional .com.fca.uconnect.global.VehicleMessageDispositionPublish.MessageDispositionEnum disposition = 4;</code>
       */
      public boolean hasDisposition() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional .com.fca.uconnect.global.VehicleMessageDispositionPublish.MessageDispositionEnum disposition = 4;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.MessageDispositionEnum getDisposition() {
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.MessageDispositionEnum result = com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.MessageDispositionEnum.valueOf(disposition_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.MessageDispositionEnum.MESSAGE_CONFIRMED_BY_OPERATOR : result;
      }
      /**
       * <code>optional .com.fca.uconnect.global.VehicleMessageDispositionPublish.MessageDispositionEnum disposition = 4;</code>
       */
      public Builder setDisposition(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.MessageDispositionEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        disposition_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .com.fca.uconnect.global.VehicleMessageDispositionPublish.MessageDispositionEnum disposition = 4;</code>
       */
      public Builder clearDisposition() {
        bitField0_ = (bitField0_ & ~0x00000008);
        disposition_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object failureDiagnostic_ = "";
      /**
       * <pre>
       *&#47; for MESSAGE_DISPLAY_FAILED, any status message or result codes may be sent here 
       * </pre>
       *
       * <code>optional string failureDiagnostic = 5;</code>
       */
      public boolean hasFailureDiagnostic() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <pre>
       *&#47; for MESSAGE_DISPLAY_FAILED, any status message or result codes may be sent here 
       * </pre>
       *
       * <code>optional string failureDiagnostic = 5;</code>
       */
      public java.lang.String getFailureDiagnostic() {
        java.lang.Object ref = failureDiagnostic_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            failureDiagnostic_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; for MESSAGE_DISPLAY_FAILED, any status message or result codes may be sent here 
       * </pre>
       *
       * <code>optional string failureDiagnostic = 5;</code>
       */
      public com.google.protobuf.ByteString
          getFailureDiagnosticBytes() {
        java.lang.Object ref = failureDiagnostic_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          failureDiagnostic_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; for MESSAGE_DISPLAY_FAILED, any status message or result codes may be sent here 
       * </pre>
       *
       * <code>optional string failureDiagnostic = 5;</code>
       */
      public Builder setFailureDiagnostic(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        failureDiagnostic_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; for MESSAGE_DISPLAY_FAILED, any status message or result codes may be sent here 
       * </pre>
       *
       * <code>optional string failureDiagnostic = 5;</code>
       */
      public Builder clearFailureDiagnostic() {
        bitField0_ = (bitField0_ & ~0x00000010);
        failureDiagnostic_ = getDefaultInstance().getFailureDiagnostic();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; for MESSAGE_DISPLAY_FAILED, any status message or result codes may be sent here 
       * </pre>
       *
       * <code>optional string failureDiagnostic = 5;</code>
       */
      public Builder setFailureDiagnosticBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        failureDiagnostic_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.VehicleMessageDispositionPublish)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.VehicleMessageDispositionPublish)
    private static final com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<VehicleMessageDispositionPublish>
        PARSER = new com.google.protobuf.AbstractParser<VehicleMessageDispositionPublish>() {
      public VehicleMessageDispositionPublish parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new VehicleMessageDispositionPublish(input, extensionRegistry);
      }
    };

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

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

    public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface VehicleMessageDispositionAckOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleMessageDispositionAck)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional .com.fca.uconnect.global.VehicleMessageDispositionAck.DispositionResponseEnum response = 1;</code>
     */
    boolean hasResponse();
    /**
     * <code>optional .com.fca.uconnect.global.VehicleMessageDispositionAck.DispositionResponseEnum response = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.DispositionResponseEnum getResponse();
  }
  /**
   * <pre>
   **
   * The message is to acknowledge the  vehicleMessageDispositionPublish message.
   * &lt;div class=exmsg-main&gt;
   * &lt;h4&gt;VehicleMessageDispositionAck Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   * 		timestamp: 1490983992220
   * 		messageId: 3
   * 		correlationId: 2
   * 		messages
   * 		{
   * 		 [com.fca.uconnect.global.vehicleMessageDispositionAck]
   * 		 {
   * 		  response: SUCCESS
   * 		 }
   * 		}
   *	&lt;/code&gt;
   *   &lt;/div&gt;
   * &lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.VehicleMessageDispositionAck}
   */
  public  static final class VehicleMessageDispositionAck extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleMessageDispositionAck)
      VehicleMessageDispositionAckOrBuilder {
    // Use VehicleMessageDispositionAck.newBuilder() to construct.
    private VehicleMessageDispositionAck(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VehicleMessageDispositionAck() {
      response_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private VehicleMessageDispositionAck(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.DispositionResponseEnum value = com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.DispositionResponseEnum.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                response_ = rawValue;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessageDispositionAck_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessageDispositionAck_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.class, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.VehicleMessageDispositionAck.DispositionResponseEnum}
     */
    public enum DispositionResponseEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>SUCCESS = 0;</code>
       */
      SUCCESS(0),
      /**
       * <code>FAILURE = 1;</code>
       */
      FAILURE(1),
      ;

      /**
       * <code>SUCCESS = 0;</code>
       */
      public static final int SUCCESS_VALUE = 0;
      /**
       * <code>FAILURE = 1;</code>
       */
      public static final int FAILURE_VALUE = 1;


      public final int getNumber() {
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static DispositionResponseEnum valueOf(int value) {
        return forNumber(value);
      }

      public static DispositionResponseEnum forNumber(int value) {
        switch (value) {
          case 0: return SUCCESS;
          case 1: return FAILURE;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.getDescriptor().getEnumTypes().get(0);
      }

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.VehicleMessageDispositionAck.DispositionResponseEnum)
    }

    private int bitField0_;
    public static final int RESPONSE_FIELD_NUMBER = 1;
    private int response_;
    /**
     * <code>optional .com.fca.uconnect.global.VehicleMessageDispositionAck.DispositionResponseEnum response = 1;</code>
     */
    public boolean hasResponse() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional .com.fca.uconnect.global.VehicleMessageDispositionAck.DispositionResponseEnum response = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.DispositionResponseEnum getResponse() {
      com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.DispositionResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.DispositionResponseEnum.valueOf(response_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.DispositionResponseEnum.SUCCESS : result;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, response_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, response_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck other = (com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck) obj;

      boolean result = true;
      result = result && (hasResponse() == other.hasResponse());
      if (hasResponse()) {
        result = result && response_ == other.response_;
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasResponse()) {
        hash = (37 * hash) + RESPONSE_FIELD_NUMBER;
        hash = (53 * hash) + response_;
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * The message is to acknowledge the  vehicleMessageDispositionPublish message.
     * &lt;div class=exmsg-main&gt;
     * &lt;h4&gt;VehicleMessageDispositionAck Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     * 		timestamp: 1490983992220
     * 		messageId: 3
     * 		correlationId: 2
     * 		messages
     * 		{
     * 		 [com.fca.uconnect.global.vehicleMessageDispositionAck]
     * 		 {
     * 		  response: SUCCESS
     * 		 }
     * 		}
     *	&lt;/code&gt;
     *   &lt;/div&gt;
     * &lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.VehicleMessageDispositionAck}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleMessageDispositionAck)
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAckOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessageDispositionAck_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessageDispositionAck_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.class, com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        response_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.internal_static_com_fca_uconnect_global_VehicleMessageDispositionAck_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck build() {
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck result = new com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.response_ = response_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.getDefaultInstance()) return this;
        if (other.hasResponse()) {
          setResponse(other.getResponse());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int response_ = 0;
      /**
       * <code>optional .com.fca.uconnect.global.VehicleMessageDispositionAck.DispositionResponseEnum response = 1;</code>
       */
      public boolean hasResponse() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .com.fca.uconnect.global.VehicleMessageDispositionAck.DispositionResponseEnum response = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.DispositionResponseEnum getResponse() {
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.DispositionResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.DispositionResponseEnum.valueOf(response_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.DispositionResponseEnum.SUCCESS : result;
      }
      /**
       * <code>optional .com.fca.uconnect.global.VehicleMessageDispositionAck.DispositionResponseEnum response = 1;</code>
       */
      public Builder setResponse(com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.DispositionResponseEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        response_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .com.fca.uconnect.global.VehicleMessageDispositionAck.DispositionResponseEnum response = 1;</code>
       */
      public Builder clearResponse() {
        bitField0_ = (bitField0_ & ~0x00000001);
        response_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.VehicleMessageDispositionAck)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.VehicleMessageDispositionAck)
    private static final com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<VehicleMessageDispositionAck>
        PARSER = new com.google.protobuf.AbstractParser<VehicleMessageDispositionAck>() {
      public VehicleMessageDispositionAck parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new VehicleMessageDispositionAck(input, extensionRegistry);
      }
    };

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

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

    public com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public static final int VEHICLEMESSAGEPUBLISH_FIELD_NUMBER = 1610;
  /**
   * <code>extend .com.fca.uconnect.global.UconnectAny { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      com.fca.uconnect.global.GlobalUconnectControl.UconnectAny,
      com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish> vehicleMessagePublish = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.class,
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessagePublish.getDefaultInstance());
  public static final int VEHICLEMESSAGEACK_FIELD_NUMBER = 1611;
  /**
   * <code>extend .com.fca.uconnect.global.UconnectAny { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      com.fca.uconnect.global.GlobalUconnectControl.UconnectAny,
      com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck> vehicleMessageAck = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.class,
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageAck.getDefaultInstance());
  public static final int VEHICLEMESSAGEDISPOSITIONPUBLISH_FIELD_NUMBER = 1612;
  /**
   * <code>extend .com.fca.uconnect.global.UconnectAny { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      com.fca.uconnect.global.GlobalUconnectControl.UconnectAny,
      com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish> vehicleMessageDispositionPublish = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.class,
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionPublish.getDefaultInstance());
  public static final int VEHICLEMESSAGEDISPOSITIONACK_FIELD_NUMBER = 1613;
  /**
   * <code>extend .com.fca.uconnect.global.UconnectAny { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      com.fca.uconnect.global.GlobalUconnectControl.UconnectAny,
      com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck> vehicleMessageDispositionAck = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.class,
        com.fca.uconnect.global.GlobalUconnectExtVehicleMessaging.VehicleMessageDispositionAck.getDefaultInstance());
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleMessagePublish_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleMessagePublish_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleMessagePublish_LanguageString_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleMessagePublish_LanguageString_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleMessagePublish_MessageParametersEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleMessagePublish_MessageParametersEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleMessageAck_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleMessageAck_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleMessageDispositionPublish_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleMessageDispositionPublish_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleMessageDispositionAck_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleMessageDispositionAck_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n*Global_Uconnect_Ext_VehicleMessaging.p" +
      "roto\022\027com.fca.uconnect.global\032\035Global_Uc" +
      "onnect_Control.proto\"\253\005\n\025VehicleMessageP" +
      "ublish\022\030\n\020vehicleMessageID\030\001 \001(\005\022\013\n\003vin\030" +
      "\002 \001(\t\022O\n\013messageType\030\003 \001(\0162:.com.fca.uco" +
      "nnect.global.VehicleMessagePublish.Messa" +
      "geType\022\027\n\017messageTemplate\030\004 \001(\t\022N\n\007messa" +
      "ge\030\005 \003(\0132=.com.fca.uconnect.global.Vehic" +
      "leMessagePublish.LanguageString\022`\n\021messa" +
      "geParameters\030\006 \003(\0132E.com.fca.uconnect.gl",
      "obal.VehicleMessagePublish.MessageParame" +
      "tersEntry\0327\n\016LanguageString\022\020\n\010language\030" +
      "\001 \001(\t\022\023\n\013messageText\030\002 \001(\t\0328\n\026MessagePar" +
      "ametersEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t" +
      ":\0028\001\"I\n\013MessageType\022\021\n\rRECALL_NOTICE\020\000\022\022" +
      "\n\016SERVICE_NOTICE\020\001\022\023\n\017PC_NOTIFICATION\020\002\"" +
      "\220\001\n\021MessageDetailType\022\r\n\tRECALL_ID\020\000\022\024\n\020" +
      "RECALL_COMPONENT\020\001\022\022\n\016RECALL_SUMMARY\020\002\022\026" +
      "\n\022RECALL_CONSEQUENCE\020\003\022\024\n\020OWNER_NEXT_STE" +
      "PS\020\004\022\024\n\020SERVICE_DUE_DATE\020\005\"\222\003\n\021VehicleMe",
      "ssageAck\022\030\n\020vehicleMessageID\030\001 \001(\005\022\037\n\027me" +
      "ssageReceiptTimestamp\030\002 \001(\003\022G\n\006status\030\003 " +
      "\001(\01627.com.fca.uconnect.global.VehicleMes" +
      "sageAck.ResponseEnum\022\031\n\021failureDiagnosti" +
      "c\030\004 \001(\t\"\335\001\n\014ResponseEnum\022\036\n\032MESSAGE_STAG" +
      "ED_FOR_DISPLAY\020\000\022\036\n\032MESSAGE_TYPE_NOT_SUP" +
      "PORTED\020\001\022#\n\037MESSAGE_LANGUAGES_NOT_SUPPOR" +
      "TED\020\002\022\032\n\026MESSAGE_STAGING_FAILED\020\003\0221\n-MES" +
      "SAGE_DESTINATION_TEMPORARILY_NOT_AVAILAB" +
      "LE\020\004\022\031\n\025MESSAGE_VIN_NOT_VALID\020\005\"\334\003\n Vehi",
      "cleMessageDispositionPublish\022\030\n\020vehicleM" +
      "essageID\030\001 \001(\005\022\037\n\027messageDisplayTimestam" +
      "p\030\002 \001(\003\022+\n#messageHMIDispositionEventTim" +
      "estamp\030\003 \001(\003\022e\n\013disposition\030\004 \001(\0162P.com." +
      "fca.uconnect.global.VehicleMessageDispos" +
      "itionPublish.MessageDispositionEnum\022\031\n\021f" +
      "ailureDiagnostic\030\005 \001(\t\"\315\001\n\026MessageDispos" +
      "itionEnum\022!\n\035MESSAGE_CONFIRMED_BY_OPERAT" +
      "OR\020\000\022\035\n\031MESSAGE_DISPLAY_CANCELLED\020\001\022\031\n\025M" +
      "ESSAGE_VIN_NOT_VALID\020\002\022\025\n\021MESSAGE_TIMED_",
      "OUT\020\003\022#\n\037MESSAGE_LANGUAGES_NOT_SUPPORTED" +
      "\020\004\022\032\n\026MESSAGE_DISPLAY_FAILED\020\005\"\264\001\n\034Vehic" +
      "leMessageDispositionAck\022_\n\010response\030\001 \001(" +
      "\0162M.com.fca.uconnect.global.VehicleMessa" +
      "geDispositionAck.DispositionResponseEnum" +
      "\"3\n\027DispositionResponseEnum\022\013\n\007SUCCESS\020\000" +
      "\022\013\n\007FAILURE\020\001:t\n\025vehicleMessagePublish\022$" +
      ".com.fca.uconnect.global.UconnectAny\030\312\014 " +
      "\001(\0132..com.fca.uconnect.global.VehicleMes" +
      "sagePublish:l\n\021vehicleMessageAck\022$.com.f",
      "ca.uconnect.global.UconnectAny\030\313\014 \001(\0132*." +
      "com.fca.uconnect.global.VehicleMessageAc" +
      "k:\212\001\n vehicleMessageDispositionPublish\022$" +
      ".com.fca.uconnect.global.UconnectAny\030\314\014 " +
      "\001(\01329.com.fca.uconnect.global.VehicleMes" +
      "sageDispositionPublish:\202\001\n\034vehicleMessag" +
      "eDispositionAck\022$.com.fca.uconnect.globa" +
      "l.UconnectAny\030\315\014 \001(\01325.com.fca.uconnect." +
      "global.VehicleMessageDispositionAckP\000"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.fca.uconnect.global.GlobalUconnectControl.getDescriptor(),
        }, assigner);
    internal_static_com_fca_uconnect_global_VehicleMessagePublish_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_com_fca_uconnect_global_VehicleMessagePublish_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleMessagePublish_descriptor,
        new java.lang.String[] { "VehicleMessageID", "Vin", "MessageType", "MessageTemplate", "Message", "MessageParameters", });
    internal_static_com_fca_uconnect_global_VehicleMessagePublish_LanguageString_descriptor =
      internal_static_com_fca_uconnect_global_VehicleMessagePublish_descriptor.getNestedTypes().get(0);
    internal_static_com_fca_uconnect_global_VehicleMessagePublish_LanguageString_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleMessagePublish_LanguageString_descriptor,
        new java.lang.String[] { "Language", "MessageText", });
    internal_static_com_fca_uconnect_global_VehicleMessagePublish_MessageParametersEntry_descriptor =
      internal_static_com_fca_uconnect_global_VehicleMessagePublish_descriptor.getNestedTypes().get(1);
    internal_static_com_fca_uconnect_global_VehicleMessagePublish_MessageParametersEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleMessagePublish_MessageParametersEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_com_fca_uconnect_global_VehicleMessageAck_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_com_fca_uconnect_global_VehicleMessageAck_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleMessageAck_descriptor,
        new java.lang.String[] { "VehicleMessageID", "MessageReceiptTimestamp", "Status", "FailureDiagnostic", });
    internal_static_com_fca_uconnect_global_VehicleMessageDispositionPublish_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_com_fca_uconnect_global_VehicleMessageDispositionPublish_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleMessageDispositionPublish_descriptor,
        new java.lang.String[] { "VehicleMessageID", "MessageDisplayTimestamp", "MessageHMIDispositionEventTimestamp", "Disposition", "FailureDiagnostic", });
    internal_static_com_fca_uconnect_global_VehicleMessageDispositionAck_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_com_fca_uconnect_global_VehicleMessageDispositionAck_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleMessageDispositionAck_descriptor,
        new java.lang.String[] { "Response", });
    vehicleMessagePublish.internalInit(descriptor.getExtensions().get(0));
    vehicleMessageAck.internalInit(descriptor.getExtensions().get(1));
    vehicleMessageDispositionPublish.internalInit(descriptor.getExtensions().get(2));
    vehicleMessageDispositionAck.internalInit(descriptor.getExtensions().get(3));
    com.fca.uconnect.global.GlobalUconnectControl.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
