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

package com.fca.uconnect.global;

public final class GlobalUconnectExtVehDataAcquisition {
  private GlobalUconnectExtVehDataAcquisition() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

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

    /**
     * <pre>
     *&#47; This will be deprecated, it makes more sense to have on a per subscriptionId basis
     * </pre>
     *
     * <code>int32 version = 1;</code>
     */
    int getVersion();

    /**
     * <pre>
     *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
     */
    java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription> 
        getPolicySubscriptionList();
    /**
     * <pre>
     *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription getPolicySubscription(int index);
    /**
     * <pre>
     *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
     */
    int getPolicySubscriptionCount();
    /**
     * <pre>
     *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
     */
    java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscriptionOrBuilder> 
        getPolicySubscriptionOrBuilderList();
    /**
     * <pre>
     *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscriptionOrBuilder getPolicySubscriptionOrBuilder(
        int index);

    /**
     * <pre>
     *&#47;Added for signature correlation to message
     * </pre>
     *
     * <code>int64 timestamp = 3;</code>
     */
    long getTimestamp();

    /**
     * <pre>
     *&#47;Added for signature correlation to message
     * </pre>
     *
     * <code>int32 messageId = 4;</code>
     */
    int getMessageId();

    /**
     * <pre>
     *&#47;Added for signature correlation to message
     * </pre>
     *
     * <code>int32 signatureId = 5;</code>
     */
    int getSignatureId();

    /**
     * <pre>
     *&#47;  approach to support raw content in the Policy message.
     * </pre>
     *
     * <code>bytes rawPayload = 6;</code>
     */
    com.google.protobuf.ByteString getRawPayload();

    /**
     * <pre>
     *&#47; Content type of the raw content being uploaded
     * </pre>
     *
     * <code>string rawContentType = 7;</code>
     */
    java.lang.String getRawContentType();
    /**
     * <pre>
     *&#47; Content type of the raw content being uploaded
     * </pre>
     *
     * <code>string rawContentType = 7;</code>
     */
    com.google.protobuf.ByteString
        getRawContentTypeBytes();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish}
   */
  public  static final class VehicleDataAcquisitionPolicyPublish extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish)
      VehicleDataAcquisitionPolicyPublishOrBuilder {
    // Use VehicleDataAcquisitionPolicyPublish.newBuilder() to construct.
    private VehicleDataAcquisitionPolicyPublish(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VehicleDataAcquisitionPolicyPublish() {
      version_ = 0;
      policySubscription_ = java.util.Collections.emptyList();
      timestamp_ = 0L;
      messageId_ = 0;
      signatureId_ = 0;
      rawPayload_ = com.google.protobuf.ByteString.EMPTY;
      rawContentType_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private VehicleDataAcquisitionPolicyPublish(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              version_ = input.readInt32();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                policySubscription_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription>();
                mutable_bitField0_ |= 0x00000002;
              }
              policySubscription_.add(
                  input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.parser(), extensionRegistry));
              break;
            }
            case 24: {

              timestamp_ = input.readInt64();
              break;
            }
            case 32: {

              messageId_ = input.readInt32();
              break;
            }
            case 40: {

              signatureId_ = input.readInt32();
              break;
            }
            case 50: {

              rawPayload_ = input.readBytes();
              break;
            }
            case 58: {
              java.lang.String s = input.readStringRequireUtf8();

              rawContentType_ = s;
              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_ & 0x00000002) == 0x00000002)) {
          policySubscription_ = java.util.Collections.unmodifiableList(policySubscription_);
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Builder.class);
    }

    /**
     * <pre>
     **
     * Form in which collected data is to be collected. All signals must support at least RAW type.
     * </pre>
     *
     * Protobuf enum {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum}
     */
    public enum SignalTypeEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>RAW = 0;</code>
       */
      RAW(0),
      /**
       * <code>ENGINEERING_UNITS = 1;</code>
       */
      ENGINEERING_UNITS(1),
      /**
       * <code>ENCRYPTED = 2;</code>
       */
      ENCRYPTED(2),
      /**
       * <pre>
       *&#47; the first row for a given dataset in a message will have an absolute value, subsuquent rows will contain a differential value
       * </pre>
       *
       * <code>DIFFERENCE_RAW = 3;</code>
       */
      DIFFERENCE_RAW(3),
      /**
       * <pre>
       *&#47; the first row for a given dataset in a message will have an absolute value, subsuquent rows will contain a differential value
       * </pre>
       *
       * <code>DIFFERENCE_ENGINEERING_UNITS = 4;</code>
       */
      DIFFERENCE_ENGINEERING_UNITS(4),
      /**
       * <pre>
       *&#47; the first row for a given dataset in a message will have an absolute value, subsuquent rows will contain a differential value
       * </pre>
       *
       * <code>DIFFERENCE_ENCRYPTED = 5;</code>
       */
      DIFFERENCE_ENCRYPTED(5),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>RAW = 0;</code>
       */
      public static final int RAW_VALUE = 0;
      /**
       * <code>ENGINEERING_UNITS = 1;</code>
       */
      public static final int ENGINEERING_UNITS_VALUE = 1;
      /**
       * <code>ENCRYPTED = 2;</code>
       */
      public static final int ENCRYPTED_VALUE = 2;
      /**
       * <pre>
       *&#47; the first row for a given dataset in a message will have an absolute value, subsuquent rows will contain a differential value
       * </pre>
       *
       * <code>DIFFERENCE_RAW = 3;</code>
       */
      public static final int DIFFERENCE_RAW_VALUE = 3;
      /**
       * <pre>
       *&#47; the first row for a given dataset in a message will have an absolute value, subsuquent rows will contain a differential value
       * </pre>
       *
       * <code>DIFFERENCE_ENGINEERING_UNITS = 4;</code>
       */
      public static final int DIFFERENCE_ENGINEERING_UNITS_VALUE = 4;
      /**
       * <pre>
       *&#47; the first row for a given dataset in a message will have an absolute value, subsuquent rows will contain a differential value
       * </pre>
       *
       * <code>DIFFERENCE_ENCRYPTED = 5;</code>
       */
      public static final int DIFFERENCE_ENCRYPTED_VALUE = 5;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

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

      public static SignalTypeEnum forNumber(int value) {
        switch (value) {
          case 0: return RAW;
          case 1: return ENGINEERING_UNITS;
          case 2: return ENCRYPTED;
          case 3: return DIFFERENCE_RAW;
          case 4: return DIFFERENCE_ENGINEERING_UNITS;
          case 5: return DIFFERENCE_ENCRYPTED;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<SignalTypeEnum>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          SignalTypeEnum> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<SignalTypeEnum>() {
              public SignalTypeEnum findValueByNumber(int number) {
                return SignalTypeEnum.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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.getDescriptor().getEnumTypes().get(0);
      }

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum)
    }

    /**
     * <pre>
     **
     * Define Unit Of Measures for Signal
     * </pre>
     *
     * Protobuf enum {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum}
     */
    public enum SignalValueUOMEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>NA = 0;</code>
       */
      NA(0),
      /**
       * <code>CENTIMETER = 1;</code>
       */
      CENTIMETER(1),
      /**
       * <code>METER = 2;</code>
       */
      METER(2),
      /**
       * <code>KILOMETER = 3;</code>
       */
      KILOMETER(3),
      /**
       * <code>INCH = 4;</code>
       */
      INCH(4),
      /**
       * <code>FOOT = 5;</code>
       */
      FOOT(5),
      /**
       * <code>MILE = 6;</code>
       */
      MILE(6),
      /**
       * <code>MILLILITER = 7;</code>
       */
      MILLILITER(7),
      /**
       * <code>LITER = 8;</code>
       */
      LITER(8),
      /**
       * <code>PINT = 9;</code>
       */
      PINT(9),
      /**
       * <code>QUART = 10;</code>
       */
      QUART(10),
      /**
       * <code>GALLON = 11;</code>
       */
      GALLON(11),
      /**
       * <code>RADIAN = 12;</code>
       */
      RADIAN(12),
      /**
       * <code>DEGREE = 13;</code>
       */
      DEGREE(13),
      /**
       * <code>SECOND = 14;</code>
       */
      SECOND(14),
      /**
       * <code>MINUTE = 15;</code>
       */
      MINUTE(15),
      /**
       * <code>HOUR = 16;</code>
       */
      HOUR(16),
      /**
       * <code>DAY = 17;</code>
       */
      DAY(17),
      /**
       * <code>YEAR = 18;</code>
       */
      YEAR(18),
      /**
       * <code>HERTZ = 19;</code>
       */
      HERTZ(19),
      /**
       * <code>RADIANS_PER_SECOND = 20;</code>
       */
      RADIANS_PER_SECOND(20),
      /**
       * <code>DEGREES_PER_SECOND = 21;</code>
       */
      DEGREES_PER_SECOND(21),
      /**
       * <code>DECIBEL = 22;</code>
       */
      DECIBEL(22),
      /**
       * <code>METERS_PER_SECOND = 23;</code>
       */
      METERS_PER_SECOND(23),
      /**
       * <code>KILOMETERS_PER_HOUR = 24;</code>
       */
      KILOMETERS_PER_HOUR(24),
      /**
       * <code>FEET_PER_SECOND = 25;</code>
       */
      FEET_PER_SECOND(25),
      /**
       * <code>MILES_PER_HOUR = 26;</code>
       */
      MILES_PER_HOUR(26),
      /**
       * <code>GRAM = 27;</code>
       */
      GRAM(27),
      /**
       * <code>KILOGRAM = 28;</code>
       */
      KILOGRAM(28),
      /**
       * <code>OUNCE = 29;</code>
       */
      OUNCE(29),
      /**
       * <code>POUND = 30;</code>
       */
      POUND(30),
      /**
       * <code>TON = 31;</code>
       */
      TON(31),
      /**
       * <code>NEWTON = 32;</code>
       */
      NEWTON(32),
      /**
       * <code>NEWTON_METER = 33;</code>
       */
      NEWTON_METER(33),
      /**
       * <code>FOOT_POUND = 34;</code>
       */
      FOOT_POUND(34),
      /**
       * <code>JOULE = 35;</code>
       */
      JOULE(35),
      /**
       * <code>WATT = 36;</code>
       */
      WATT(36),
      /**
       * <code>KILOWATT = 37;</code>
       */
      KILOWATT(37),
      /**
       * <code>HORSEPOWER = 38;</code>
       */
      HORSEPOWER(38),
      /**
       * <code>POUNDS_PER_SQUARE_INCH = 39;</code>
       */
      POUNDS_PER_SQUARE_INCH(39),
      /**
       * <code>KELVIN = 40;</code>
       */
      KELVIN(40),
      /**
       * <code>CENTIGRADE = 41;</code>
       */
      CENTIGRADE(41),
      /**
       * <code>FAHRENHEIT = 42;</code>
       */
      FAHRENHEIT(42),
      /**
       * <code>LUMEN = 43;</code>
       */
      LUMEN(43),
      /**
       * <code>AMPERE = 44;</code>
       */
      AMPERE(44),
      /**
       * <code>VOLT = 45;</code>
       */
      VOLT(45),
      /**
       * <code>OHM = 46;</code>
       */
      OHM(46),
      /**
       * <code>KOHMS = 47;</code>
       */
      KOHMS(47),
      /**
       * <code>PERCENT = 48;</code>
       */
      PERCENT(48),
      /**
       * <code>BARS = 49;</code>
       */
      BARS(49),
      /**
       * <code>PSI_PER_BIT = 50;</code>
       */
      PSI_PER_BIT(50),
      /**
       * <code>PULSE = 51;</code>
       */
      PULSE(51),
      /**
       * <code>KILOMETERS_PER_LITER = 52;</code>
       */
      KILOMETERS_PER_LITER(52),
      /**
       * <code>MILES_PER_GALLON = 53;</code>
       */
      MILES_PER_GALLON(53),
      /**
       * <code>LITRES_PER_HOUR = 54;</code>
       */
      LITRES_PER_HOUR(54),
      /**
       * <code>METERS_PER_SECOND_SECOND = 55;</code>
       */
      METERS_PER_SECOND_SECOND(55),
      /**
       * <code>MILLIARCSECONDS = 56;</code>
       */
      MILLIARCSECONDS(56),
      /**
       * <code>MILLIMETER = 57;</code>
       */
      MILLIMETER(57),
      /**
       * <code>FEET_PER_SECOND_SECOND = 58;</code>
       */
      FEET_PER_SECOND_SECOND(58),
      /**
       * <code>REVOLUTION_PER_MINUTE = 59;</code>
       */
      REVOLUTION_PER_MINUTE(59),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>NA = 0;</code>
       */
      public static final int NA_VALUE = 0;
      /**
       * <code>CENTIMETER = 1;</code>
       */
      public static final int CENTIMETER_VALUE = 1;
      /**
       * <code>METER = 2;</code>
       */
      public static final int METER_VALUE = 2;
      /**
       * <code>KILOMETER = 3;</code>
       */
      public static final int KILOMETER_VALUE = 3;
      /**
       * <code>INCH = 4;</code>
       */
      public static final int INCH_VALUE = 4;
      /**
       * <code>FOOT = 5;</code>
       */
      public static final int FOOT_VALUE = 5;
      /**
       * <code>MILE = 6;</code>
       */
      public static final int MILE_VALUE = 6;
      /**
       * <code>MILLILITER = 7;</code>
       */
      public static final int MILLILITER_VALUE = 7;
      /**
       * <code>LITER = 8;</code>
       */
      public static final int LITER_VALUE = 8;
      /**
       * <code>PINT = 9;</code>
       */
      public static final int PINT_VALUE = 9;
      /**
       * <code>QUART = 10;</code>
       */
      public static final int QUART_VALUE = 10;
      /**
       * <code>GALLON = 11;</code>
       */
      public static final int GALLON_VALUE = 11;
      /**
       * <code>RADIAN = 12;</code>
       */
      public static final int RADIAN_VALUE = 12;
      /**
       * <code>DEGREE = 13;</code>
       */
      public static final int DEGREE_VALUE = 13;
      /**
       * <code>SECOND = 14;</code>
       */
      public static final int SECOND_VALUE = 14;
      /**
       * <code>MINUTE = 15;</code>
       */
      public static final int MINUTE_VALUE = 15;
      /**
       * <code>HOUR = 16;</code>
       */
      public static final int HOUR_VALUE = 16;
      /**
       * <code>DAY = 17;</code>
       */
      public static final int DAY_VALUE = 17;
      /**
       * <code>YEAR = 18;</code>
       */
      public static final int YEAR_VALUE = 18;
      /**
       * <code>HERTZ = 19;</code>
       */
      public static final int HERTZ_VALUE = 19;
      /**
       * <code>RADIANS_PER_SECOND = 20;</code>
       */
      public static final int RADIANS_PER_SECOND_VALUE = 20;
      /**
       * <code>DEGREES_PER_SECOND = 21;</code>
       */
      public static final int DEGREES_PER_SECOND_VALUE = 21;
      /**
       * <code>DECIBEL = 22;</code>
       */
      public static final int DECIBEL_VALUE = 22;
      /**
       * <code>METERS_PER_SECOND = 23;</code>
       */
      public static final int METERS_PER_SECOND_VALUE = 23;
      /**
       * <code>KILOMETERS_PER_HOUR = 24;</code>
       */
      public static final int KILOMETERS_PER_HOUR_VALUE = 24;
      /**
       * <code>FEET_PER_SECOND = 25;</code>
       */
      public static final int FEET_PER_SECOND_VALUE = 25;
      /**
       * <code>MILES_PER_HOUR = 26;</code>
       */
      public static final int MILES_PER_HOUR_VALUE = 26;
      /**
       * <code>GRAM = 27;</code>
       */
      public static final int GRAM_VALUE = 27;
      /**
       * <code>KILOGRAM = 28;</code>
       */
      public static final int KILOGRAM_VALUE = 28;
      /**
       * <code>OUNCE = 29;</code>
       */
      public static final int OUNCE_VALUE = 29;
      /**
       * <code>POUND = 30;</code>
       */
      public static final int POUND_VALUE = 30;
      /**
       * <code>TON = 31;</code>
       */
      public static final int TON_VALUE = 31;
      /**
       * <code>NEWTON = 32;</code>
       */
      public static final int NEWTON_VALUE = 32;
      /**
       * <code>NEWTON_METER = 33;</code>
       */
      public static final int NEWTON_METER_VALUE = 33;
      /**
       * <code>FOOT_POUND = 34;</code>
       */
      public static final int FOOT_POUND_VALUE = 34;
      /**
       * <code>JOULE = 35;</code>
       */
      public static final int JOULE_VALUE = 35;
      /**
       * <code>WATT = 36;</code>
       */
      public static final int WATT_VALUE = 36;
      /**
       * <code>KILOWATT = 37;</code>
       */
      public static final int KILOWATT_VALUE = 37;
      /**
       * <code>HORSEPOWER = 38;</code>
       */
      public static final int HORSEPOWER_VALUE = 38;
      /**
       * <code>POUNDS_PER_SQUARE_INCH = 39;</code>
       */
      public static final int POUNDS_PER_SQUARE_INCH_VALUE = 39;
      /**
       * <code>KELVIN = 40;</code>
       */
      public static final int KELVIN_VALUE = 40;
      /**
       * <code>CENTIGRADE = 41;</code>
       */
      public static final int CENTIGRADE_VALUE = 41;
      /**
       * <code>FAHRENHEIT = 42;</code>
       */
      public static final int FAHRENHEIT_VALUE = 42;
      /**
       * <code>LUMEN = 43;</code>
       */
      public static final int LUMEN_VALUE = 43;
      /**
       * <code>AMPERE = 44;</code>
       */
      public static final int AMPERE_VALUE = 44;
      /**
       * <code>VOLT = 45;</code>
       */
      public static final int VOLT_VALUE = 45;
      /**
       * <code>OHM = 46;</code>
       */
      public static final int OHM_VALUE = 46;
      /**
       * <code>KOHMS = 47;</code>
       */
      public static final int KOHMS_VALUE = 47;
      /**
       * <code>PERCENT = 48;</code>
       */
      public static final int PERCENT_VALUE = 48;
      /**
       * <code>BARS = 49;</code>
       */
      public static final int BARS_VALUE = 49;
      /**
       * <code>PSI_PER_BIT = 50;</code>
       */
      public static final int PSI_PER_BIT_VALUE = 50;
      /**
       * <code>PULSE = 51;</code>
       */
      public static final int PULSE_VALUE = 51;
      /**
       * <code>KILOMETERS_PER_LITER = 52;</code>
       */
      public static final int KILOMETERS_PER_LITER_VALUE = 52;
      /**
       * <code>MILES_PER_GALLON = 53;</code>
       */
      public static final int MILES_PER_GALLON_VALUE = 53;
      /**
       * <code>LITRES_PER_HOUR = 54;</code>
       */
      public static final int LITRES_PER_HOUR_VALUE = 54;
      /**
       * <code>METERS_PER_SECOND_SECOND = 55;</code>
       */
      public static final int METERS_PER_SECOND_SECOND_VALUE = 55;
      /**
       * <code>MILLIARCSECONDS = 56;</code>
       */
      public static final int MILLIARCSECONDS_VALUE = 56;
      /**
       * <code>MILLIMETER = 57;</code>
       */
      public static final int MILLIMETER_VALUE = 57;
      /**
       * <code>FEET_PER_SECOND_SECOND = 58;</code>
       */
      public static final int FEET_PER_SECOND_SECOND_VALUE = 58;
      /**
       * <code>REVOLUTION_PER_MINUTE = 59;</code>
       */
      public static final int REVOLUTION_PER_MINUTE_VALUE = 59;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

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

      public static SignalValueUOMEnum forNumber(int value) {
        switch (value) {
          case 0: return NA;
          case 1: return CENTIMETER;
          case 2: return METER;
          case 3: return KILOMETER;
          case 4: return INCH;
          case 5: return FOOT;
          case 6: return MILE;
          case 7: return MILLILITER;
          case 8: return LITER;
          case 9: return PINT;
          case 10: return QUART;
          case 11: return GALLON;
          case 12: return RADIAN;
          case 13: return DEGREE;
          case 14: return SECOND;
          case 15: return MINUTE;
          case 16: return HOUR;
          case 17: return DAY;
          case 18: return YEAR;
          case 19: return HERTZ;
          case 20: return RADIANS_PER_SECOND;
          case 21: return DEGREES_PER_SECOND;
          case 22: return DECIBEL;
          case 23: return METERS_PER_SECOND;
          case 24: return KILOMETERS_PER_HOUR;
          case 25: return FEET_PER_SECOND;
          case 26: return MILES_PER_HOUR;
          case 27: return GRAM;
          case 28: return KILOGRAM;
          case 29: return OUNCE;
          case 30: return POUND;
          case 31: return TON;
          case 32: return NEWTON;
          case 33: return NEWTON_METER;
          case 34: return FOOT_POUND;
          case 35: return JOULE;
          case 36: return WATT;
          case 37: return KILOWATT;
          case 38: return HORSEPOWER;
          case 39: return POUNDS_PER_SQUARE_INCH;
          case 40: return KELVIN;
          case 41: return CENTIGRADE;
          case 42: return FAHRENHEIT;
          case 43: return LUMEN;
          case 44: return AMPERE;
          case 45: return VOLT;
          case 46: return OHM;
          case 47: return KOHMS;
          case 48: return PERCENT;
          case 49: return BARS;
          case 50: return PSI_PER_BIT;
          case 51: return PULSE;
          case 52: return KILOMETERS_PER_LITER;
          case 53: return MILES_PER_GALLON;
          case 54: return LITRES_PER_HOUR;
          case 55: return METERS_PER_SECOND_SECOND;
          case 56: return MILLIARCSECONDS;
          case 57: return MILLIMETER;
          case 58: return FEET_PER_SECOND_SECOND;
          case 59: return REVOLUTION_PER_MINUTE;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<SignalValueUOMEnum>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          SignalValueUOMEnum> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<SignalValueUOMEnum>() {
              public SignalValueUOMEnum findValueByNumber(int number) {
                return SignalValueUOMEnum.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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.getDescriptor().getEnumTypes().get(1);
      }

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum)
    }

    /**
     * <pre>
     **
     * How the row timestamps are to differentially encoded.
     * </pre>
     *
     * Protobuf enum {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum}
     */
    public enum DifferenceTimeStampTypeEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; each row will have an absolute timestamp 
       * </pre>
       *
       * <code>NONE = 0;</code>
       */
      NONE(0),
      /**
       * <pre>
       *&#47; the first row will have an absolute timestamp, subsequent rows will have a timestamp that represents the number of milliseconds since the prior row
       * </pre>
       *
       * <code>EXPLICIT_DIFFERENCES = 1;</code>
       */
      EXPLICIT_DIFFERENCES(1),
      /**
       * <pre>
       *&#47; the first row will have an absolute timestamp, subsequent rows shall be considered to have been collected at the exactly the periodic collection rate since the prior row
       * </pre>
       *
       * <code>FIXED_PERIOD_DIFFERENCES = 2;</code>
       */
      FIXED_PERIOD_DIFFERENCES(2),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47; each row will have an absolute timestamp 
       * </pre>
       *
       * <code>NONE = 0;</code>
       */
      public static final int NONE_VALUE = 0;
      /**
       * <pre>
       *&#47; the first row will have an absolute timestamp, subsequent rows will have a timestamp that represents the number of milliseconds since the prior row
       * </pre>
       *
       * <code>EXPLICIT_DIFFERENCES = 1;</code>
       */
      public static final int EXPLICIT_DIFFERENCES_VALUE = 1;
      /**
       * <pre>
       *&#47; the first row will have an absolute timestamp, subsequent rows shall be considered to have been collected at the exactly the periodic collection rate since the prior row
       * </pre>
       *
       * <code>FIXED_PERIOD_DIFFERENCES = 2;</code>
       */
      public static final int FIXED_PERIOD_DIFFERENCES_VALUE = 2;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

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

      public static DifferenceTimeStampTypeEnum forNumber(int value) {
        switch (value) {
          case 0: return NONE;
          case 1: return EXPLICIT_DIFFERENCES;
          case 2: return FIXED_PERIOD_DIFFERENCES;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<DifferenceTimeStampTypeEnum>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          DifferenceTimeStampTypeEnum> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<DifferenceTimeStampTypeEnum>() {
              public DifferenceTimeStampTypeEnum findValueByNumber(int number) {
                return DifferenceTimeStampTypeEnum.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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.getDescriptor().getEnumTypes().get(2);
      }

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum)
    }

    /**
     * <pre>
     **
     * Stack machine operator for FilterCriteria evaluation. Operators pop the given number of values from the stack,
     * evaluate per their specification, and push one value back on the stack. If an operand is to be popped and the depth is zero,
     * or if the types of the popped values are incorrect for evaluation according to the rules of Java types, evaluation of criteria is 
     * immediately stopped and no data will be captured in the current iteration.
     * </pre>
     *
     * Protobuf enum {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterOperator}
     */
    public enum FilterOperator
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; "!"
       * </pre>
       *
       * <code>NOT = 0;</code>
       */
      NOT(0),
      /**
       * <pre>
       *&#47; "&lt;"
       * </pre>
       *
       * <code>LESS = 1;</code>
       */
      LESS(1),
      /**
       * <pre>
       *&#47; "&lt;="
       * </pre>
       *
       * <code>LESS_OR_EQUAL = 2;</code>
       */
      LESS_OR_EQUAL(2),
      /**
       * <pre>
       *&#47; "=="
       * </pre>
       *
       * <code>EQUAL = 3;</code>
       */
      EQUAL(3),
      /**
       * <pre>
       *&#47; "&gt;
       * </pre>
       *
       * <code>GREATER_OR_EQUAL = 4;</code>
       */
      GREATER_OR_EQUAL(4),
      /**
       * <pre>
       *&#47; "&gt;
       * </pre>
       *
       * <code>GREATER = 5;</code>
       */
      GREATER(5),
      /**
       * <pre>
       *&#47; "!="
       * </pre>
       *
       * <code>NOT_EQUAL = 6;</code>
       */
      NOT_EQUAL(6),
      /**
       * <pre>
       *&#47; "&amp;&amp;"
       * </pre>
       *
       * <code>AND = 7;</code>
       */
      AND(7),
      /**
       * <pre>
       *&#47; "||"
       * </pre>
       *
       * <code>OR = 8;</code>
       */
      OR(8),
      /**
       * <pre>
       *&#47; "+"
       * </pre>
       *
       * <code>ADD = 9;</code>
       */
      ADD(9),
      /**
       * <pre>
       *&#47; "-"
       * </pre>
       *
       * <code>SUBTRACT = 10;</code>
       */
      SUBTRACT(10),
      /**
       * <pre>
       *&#47; "*"
       * </pre>
       *
       * <code>MUTLIPLY = 11;</code>
       */
      MUTLIPLY(11),
      /**
       * <pre>
       *&#47; "/"
       * </pre>
       *
       * <code>DIVIDE = 12;</code>
       */
      DIVIDE(12),
      /**
       * <pre>
       *&#47; "%"
       * </pre>
       *
       * <code>MOD = 13;</code>
       */
      MOD(13),
      /**
       * <pre>
       *&#47; "&lt;&lt;"
       * </pre>
       *
       * <code>LSHIFT = 14;</code>
       */
      LSHIFT(14),
      /**
       * <pre>
       *&#47; "&gt;
       * </pre>
       *
       * <code>RSHIFT = 15;</code>
       */
      RSHIFT(15),
      /**
       * <pre>
       *&#47; "&amp;"
       * </pre>
       *
       * <code>BITAND = 16;</code>
       */
      BITAND(16),
      /**
       * <pre>
       *&#47; "|"
       * </pre>
       *
       * <code>BITOR = 17;</code>
       */
      BITOR(17),
      /**
       * <pre>
       *&#47; "~"
       * </pre>
       *
       * <code>BITNOT = 18;</code>
       */
      BITNOT(18),
      /**
       * <pre>
       *&#47; "^"
       * </pre>
       *
       * <code>BITXOR = 19;</code>
       */
      BITXOR(19),
      /**
       * <pre>
       *&#47; "-"
       * </pre>
       *
       * <code>NEGATE = 20;</code>
       */
      NEGATE(20),
      /**
       * <pre>
       *&#47; "+"
       * </pre>
       *
       * <code>NOT_NEGATE = 21;</code>
       */
      NOT_NEGATE(21),
      /**
       * <pre>
       *&#47; "=" top of stack to variable
       * </pre>
       *
       * <code>VARIABLE_ASSIGN = 24;</code>
       */
      VARIABLE_ASSIGN(24),
      /**
       * <pre>
       *&#47; variable to top of stack
       * </pre>
       *
       * <code>VARIABLE_REF = 25;</code>
       */
      VARIABLE_REF(25),
      /**
       * <pre>
       *&#47; call function, top of stack is number of arguments
       * </pre>
       *
       * <code>FUNCTION_CALL = 26;</code>
       */
      FUNCTION_CALL(26),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47; "!"
       * </pre>
       *
       * <code>NOT = 0;</code>
       */
      public static final int NOT_VALUE = 0;
      /**
       * <pre>
       *&#47; "&lt;"
       * </pre>
       *
       * <code>LESS = 1;</code>
       */
      public static final int LESS_VALUE = 1;
      /**
       * <pre>
       *&#47; "&lt;="
       * </pre>
       *
       * <code>LESS_OR_EQUAL = 2;</code>
       */
      public static final int LESS_OR_EQUAL_VALUE = 2;
      /**
       * <pre>
       *&#47; "=="
       * </pre>
       *
       * <code>EQUAL = 3;</code>
       */
      public static final int EQUAL_VALUE = 3;
      /**
       * <pre>
       *&#47; "&gt;
       * </pre>
       *
       * <code>GREATER_OR_EQUAL = 4;</code>
       */
      public static final int GREATER_OR_EQUAL_VALUE = 4;
      /**
       * <pre>
       *&#47; "&gt;
       * </pre>
       *
       * <code>GREATER = 5;</code>
       */
      public static final int GREATER_VALUE = 5;
      /**
       * <pre>
       *&#47; "!="
       * </pre>
       *
       * <code>NOT_EQUAL = 6;</code>
       */
      public static final int NOT_EQUAL_VALUE = 6;
      /**
       * <pre>
       *&#47; "&amp;&amp;"
       * </pre>
       *
       * <code>AND = 7;</code>
       */
      public static final int AND_VALUE = 7;
      /**
       * <pre>
       *&#47; "||"
       * </pre>
       *
       * <code>OR = 8;</code>
       */
      public static final int OR_VALUE = 8;
      /**
       * <pre>
       *&#47; "+"
       * </pre>
       *
       * <code>ADD = 9;</code>
       */
      public static final int ADD_VALUE = 9;
      /**
       * <pre>
       *&#47; "-"
       * </pre>
       *
       * <code>SUBTRACT = 10;</code>
       */
      public static final int SUBTRACT_VALUE = 10;
      /**
       * <pre>
       *&#47; "*"
       * </pre>
       *
       * <code>MUTLIPLY = 11;</code>
       */
      public static final int MUTLIPLY_VALUE = 11;
      /**
       * <pre>
       *&#47; "/"
       * </pre>
       *
       * <code>DIVIDE = 12;</code>
       */
      public static final int DIVIDE_VALUE = 12;
      /**
       * <pre>
       *&#47; "%"
       * </pre>
       *
       * <code>MOD = 13;</code>
       */
      public static final int MOD_VALUE = 13;
      /**
       * <pre>
       *&#47; "&lt;&lt;"
       * </pre>
       *
       * <code>LSHIFT = 14;</code>
       */
      public static final int LSHIFT_VALUE = 14;
      /**
       * <pre>
       *&#47; "&gt;
       * </pre>
       *
       * <code>RSHIFT = 15;</code>
       */
      public static final int RSHIFT_VALUE = 15;
      /**
       * <pre>
       *&#47; "&amp;"
       * </pre>
       *
       * <code>BITAND = 16;</code>
       */
      public static final int BITAND_VALUE = 16;
      /**
       * <pre>
       *&#47; "|"
       * </pre>
       *
       * <code>BITOR = 17;</code>
       */
      public static final int BITOR_VALUE = 17;
      /**
       * <pre>
       *&#47; "~"
       * </pre>
       *
       * <code>BITNOT = 18;</code>
       */
      public static final int BITNOT_VALUE = 18;
      /**
       * <pre>
       *&#47; "^"
       * </pre>
       *
       * <code>BITXOR = 19;</code>
       */
      public static final int BITXOR_VALUE = 19;
      /**
       * <pre>
       *&#47; "-"
       * </pre>
       *
       * <code>NEGATE = 20;</code>
       */
      public static final int NEGATE_VALUE = 20;
      /**
       * <pre>
       *&#47; "+"
       * </pre>
       *
       * <code>NOT_NEGATE = 21;</code>
       */
      public static final int NOT_NEGATE_VALUE = 21;
      /**
       * <pre>
       *&#47; "=" top of stack to variable
       * </pre>
       *
       * <code>VARIABLE_ASSIGN = 24;</code>
       */
      public static final int VARIABLE_ASSIGN_VALUE = 24;
      /**
       * <pre>
       *&#47; variable to top of stack
       * </pre>
       *
       * <code>VARIABLE_REF = 25;</code>
       */
      public static final int VARIABLE_REF_VALUE = 25;
      /**
       * <pre>
       *&#47; call function, top of stack is number of arguments
       * </pre>
       *
       * <code>FUNCTION_CALL = 26;</code>
       */
      public static final int FUNCTION_CALL_VALUE = 26;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

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

      public static FilterOperator forNumber(int value) {
        switch (value) {
          case 0: return NOT;
          case 1: return LESS;
          case 2: return LESS_OR_EQUAL;
          case 3: return EQUAL;
          case 4: return GREATER_OR_EQUAL;
          case 5: return GREATER;
          case 6: return NOT_EQUAL;
          case 7: return AND;
          case 8: return OR;
          case 9: return ADD;
          case 10: return SUBTRACT;
          case 11: return MUTLIPLY;
          case 12: return DIVIDE;
          case 13: return MOD;
          case 14: return LSHIFT;
          case 15: return RSHIFT;
          case 16: return BITAND;
          case 17: return BITOR;
          case 18: return BITNOT;
          case 19: return BITXOR;
          case 20: return NEGATE;
          case 21: return NOT_NEGATE;
          case 24: return VARIABLE_ASSIGN;
          case 25: return VARIABLE_REF;
          case 26: return FUNCTION_CALL;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<FilterOperator>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          FilterOperator> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<FilterOperator>() {
              public FilterOperator findValueByNumber(int number) {
                return FilterOperator.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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.getDescriptor().getEnumTypes().get(3);
      }

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterOperator)
    }

    /**
     * <pre>
     **
     * Indicate if the SignalId is to be used as a global unique identifier or as an index into the list of signals for the DataSetSubscription.
     * </pre>
     *
     * Protobuf enum {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum}
     */
    public enum SignalIdTypeEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; Indicates that signalId values are to represent an index into the list of signals provided in the DataSetSubscription.
       * </pre>
       *
       * <code>INDEX_DATASETSIGNALS = 0;</code>
       */
      INDEX_DATASETSIGNALS(0),
      /**
       * <pre>
       *&#47; Indicates the signalId values are global unique values used to identify the signals.
       * </pre>
       *
       * <code>UNIQUE_SIGNAL_ID = 1;</code>
       */
      UNIQUE_SIGNAL_ID(1),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47; Indicates that signalId values are to represent an index into the list of signals provided in the DataSetSubscription.
       * </pre>
       *
       * <code>INDEX_DATASETSIGNALS = 0;</code>
       */
      public static final int INDEX_DATASETSIGNALS_VALUE = 0;
      /**
       * <pre>
       *&#47; Indicates the signalId values are global unique values used to identify the signals.
       * </pre>
       *
       * <code>UNIQUE_SIGNAL_ID = 1;</code>
       */
      public static final int UNIQUE_SIGNAL_ID_VALUE = 1;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

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

      public static SignalIdTypeEnum forNumber(int value) {
        switch (value) {
          case 0: return INDEX_DATASETSIGNALS;
          case 1: return UNIQUE_SIGNAL_ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<SignalIdTypeEnum>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          SignalIdTypeEnum> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<SignalIdTypeEnum>() {
              public SignalIdTypeEnum findValueByNumber(int number) {
                return SignalIdTypeEnum.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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.getDescriptor().getEnumTypes().get(4);
      }

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum)
    }

    public interface QueuePolicyOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47; data shall be flushed to persistent storage at this rate, in milliseconds.
       * </pre>
       *
       * <code>int32 flushRate = 1;</code>
       */
      int getFlushRate();

      /**
       * <pre>
       *&#47; queued data shall be uploaded to the SDP at this rate, in milliseconds.
       * </pre>
       *
       * <code>int32 uploadRate = 2;</code>
       */
      int getUploadRate();

      /**
       * <pre>
       *&#47; the total persisted storage shall not exceed this number of bytes. Once the limit is reached, data shall be flushed in as close to a LIFO manner as possible to accommodate newly queued data.
       * </pre>
       *
       * <code>int32 maxSize = 3;</code>
       */
      int getMaxSize();
    }
    /**
     * <pre>
     **
     *  Policy for how and when captured data is stored and sent to the SDP. The TU shall make a best effort to meet the specified targets,
     * given varying constraints on CPU, memory, storage and network capacity and availability.  
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy}
     */
    public  static final class QueuePolicy extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy)
        QueuePolicyOrBuilder {
      // Use QueuePolicy.newBuilder() to construct.
      private QueuePolicy(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private QueuePolicy() {
        flushRate_ = 0;
        uploadRate_ = 0;
        maxSize_ = 0;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private QueuePolicy(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 8: {

                flushRate_ = input.readInt32();
                break;
              }
              case 16: {

                uploadRate_ = input.readInt32();
                break;
              }
              case 24: {

                maxSize_ = input.readInt32();
                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 {
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_QueuePolicy_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_QueuePolicy_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.Builder.class);
      }

      public static final int FLUSHRATE_FIELD_NUMBER = 1;
      private int flushRate_;
      /**
       * <pre>
       *&#47; data shall be flushed to persistent storage at this rate, in milliseconds.
       * </pre>
       *
       * <code>int32 flushRate = 1;</code>
       */
      public int getFlushRate() {
        return flushRate_;
      }

      public static final int UPLOADRATE_FIELD_NUMBER = 2;
      private int uploadRate_;
      /**
       * <pre>
       *&#47; queued data shall be uploaded to the SDP at this rate, in milliseconds.
       * </pre>
       *
       * <code>int32 uploadRate = 2;</code>
       */
      public int getUploadRate() {
        return uploadRate_;
      }

      public static final int MAXSIZE_FIELD_NUMBER = 3;
      private int maxSize_;
      /**
       * <pre>
       *&#47; the total persisted storage shall not exceed this number of bytes. Once the limit is reached, data shall be flushed in as close to a LIFO manner as possible to accommodate newly queued data.
       * </pre>
       *
       * <code>int32 maxSize = 3;</code>
       */
      public int getMaxSize() {
        return maxSize_;
      }

      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 (flushRate_ != 0) {
          output.writeInt32(1, flushRate_);
        }
        if (uploadRate_ != 0) {
          output.writeInt32(2, uploadRate_);
        }
        if (maxSize_ != 0) {
          output.writeInt32(3, maxSize_);
        }
      }

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

        size = 0;
        if (flushRate_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, flushRate_);
        }
        if (uploadRate_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, uploadRate_);
        }
        if (maxSize_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, maxSize_);
        }
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy) obj;

        boolean result = true;
        result = result && (getFlushRate()
            == other.getFlushRate());
        result = result && (getUploadRate()
            == other.getUploadRate());
        result = result && (getMaxSize()
            == other.getMaxSize());
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + FLUSHRATE_FIELD_NUMBER;
        hash = (53 * hash) + getFlushRate();
        hash = (37 * hash) + UPLOADRATE_FIELD_NUMBER;
        hash = (53 * hash) + getUploadRate();
        hash = (37 * hash) + MAXSIZE_FIELD_NUMBER;
        hash = (53 * hash) + getMaxSize();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy 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>
       **
       *  Policy for how and when captured data is stored and sent to the SDP. The TU shall make a best effort to meet the specified targets,
       * given varying constraints on CPU, memory, storage and network capacity and availability.  
       * </pre>
       *
       * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy)
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicyOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_QueuePolicy_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_QueuePolicy_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.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();
          flushRate_ = 0;

          uploadRate_ = 0;

          maxSize_ = 0;

          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy(this);
          result.flushRate_ = flushRate_;
          result.uploadRate_ = uploadRate_;
          result.maxSize_ = maxSize_;
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.getDefaultInstance()) return this;
          if (other.getFlushRate() != 0) {
            setFlushRate(other.getFlushRate());
          }
          if (other.getUploadRate() != 0) {
            setUploadRate(other.getUploadRate());
          }
          if (other.getMaxSize() != 0) {
            setMaxSize(other.getMaxSize());
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private int flushRate_ ;
        /**
         * <pre>
         *&#47; data shall be flushed to persistent storage at this rate, in milliseconds.
         * </pre>
         *
         * <code>int32 flushRate = 1;</code>
         */
        public int getFlushRate() {
          return flushRate_;
        }
        /**
         * <pre>
         *&#47; data shall be flushed to persistent storage at this rate, in milliseconds.
         * </pre>
         *
         * <code>int32 flushRate = 1;</code>
         */
        public Builder setFlushRate(int value) {
          
          flushRate_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; data shall be flushed to persistent storage at this rate, in milliseconds.
         * </pre>
         *
         * <code>int32 flushRate = 1;</code>
         */
        public Builder clearFlushRate() {
          
          flushRate_ = 0;
          onChanged();
          return this;
        }

        private int uploadRate_ ;
        /**
         * <pre>
         *&#47; queued data shall be uploaded to the SDP at this rate, in milliseconds.
         * </pre>
         *
         * <code>int32 uploadRate = 2;</code>
         */
        public int getUploadRate() {
          return uploadRate_;
        }
        /**
         * <pre>
         *&#47; queued data shall be uploaded to the SDP at this rate, in milliseconds.
         * </pre>
         *
         * <code>int32 uploadRate = 2;</code>
         */
        public Builder setUploadRate(int value) {
          
          uploadRate_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; queued data shall be uploaded to the SDP at this rate, in milliseconds.
         * </pre>
         *
         * <code>int32 uploadRate = 2;</code>
         */
        public Builder clearUploadRate() {
          
          uploadRate_ = 0;
          onChanged();
          return this;
        }

        private int maxSize_ ;
        /**
         * <pre>
         *&#47; the total persisted storage shall not exceed this number of bytes. Once the limit is reached, data shall be flushed in as close to a LIFO manner as possible to accommodate newly queued data.
         * </pre>
         *
         * <code>int32 maxSize = 3;</code>
         */
        public int getMaxSize() {
          return maxSize_;
        }
        /**
         * <pre>
         *&#47; the total persisted storage shall not exceed this number of bytes. Once the limit is reached, data shall be flushed in as close to a LIFO manner as possible to accommodate newly queued data.
         * </pre>
         *
         * <code>int32 maxSize = 3;</code>
         */
        public Builder setMaxSize(int value) {
          
          maxSize_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; the total persisted storage shall not exceed this number of bytes. Once the limit is reached, data shall be flushed in as close to a LIFO manner as possible to accommodate newly queued data.
         * </pre>
         *
         * <code>int32 maxSize = 3;</code>
         */
        public Builder clearMaxSize() {
          
          maxSize_ = 0;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface DataSetSignalOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47; The name of the signal to be collected
       * </pre>
       *
       * <code>string signalName = 1;</code>
       */
      java.lang.String getSignalName();
      /**
       * <pre>
       *&#47; The name of the signal to be collected
       * </pre>
       *
       * <code>string signalName = 1;</code>
       */
      com.google.protobuf.ByteString
          getSignalNameBytes();

      /**
       * <pre>
       *&#47; The type of data to be collected for the signal
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum type = 2;</code>
       */
      int getTypeValue();
      /**
       * <pre>
       *&#47; The type of data to be collected for the signal
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum type = 2;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum getType();

      /**
       * <pre>
       *&#47; Used as an additional identifier for onChangeDataSet signal definitions.  The identifier can be either a global unique number or an index for the signal in the DataSet.  
       * </pre>
       *
       * <code>int32 signalId = 3;</code>
       */
      int getSignalId();

      /**
       * <pre>
       *&#47; Identify the expected UOM in which the signal value will be provided.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum uom = 4;</code>
       */
      int getUomValue();
      /**
       * <pre>
       *&#47; Identify the expected UOM in which the signal value will be provided.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum uom = 4;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum getUom();
    }
    /**
     * <pre>
     **
     * &lt;p&gt;
     * A data set signal name identifies a particular data element to be collected by the TBM. Each referenced signal name will be polled at most once per interval, including use in filter criteria.
     * &lt;p&gt;
     * Some data set signal names are global, and are  to
     * be supported in all regions. The following signals are globally :
     * &lt;ul&gt;
     * &lt;li&gt;VIN - the VIN of the vehicle the TU is installed in. String.&lt;/li&gt;
     * &lt;li&gt;SWReleaseBranch - the version of the TU firmware. String.&lt;/li&gt;
     * &lt;li&gt;HUSerialNumber - the serial number of the TU. String.&lt;/li&gt;
     * &lt;li&gt;currentTimeMillis - the TU system clock, expressed in milliseconds elapsed since 1 January 1970 00:00:00 UTC. int64.&lt;/li&gt;
     * &lt;/ul&gt;
     * &lt;p&gt;If a signal name is not mandatory and global, it should be prefixed with a namespace identifier. The current set of namespace identifiers is
     * &lt;ul&gt;&lt;li&gt;KONA&lt;/li&gt;&lt;li&gt;geocode&lt;/li&gt;&lt;/ul&gt;
     * &lt;p&gt;The KONA namespace describes signals supported by the VP4 KONA api. The  form is KONA.SignalName.ChannelName where SignalName and ChannelName are the KONA signal and channel names respectively.
     * &lt;p&gt;The geocode namespace describes signals commonly available from commercial GPS hardware. The signals available in the geocode namespace are:
     * &lt;ul&gt;
     * &lt;li&gt;geocode.Latitude - degrees latitude. double.&lt;/li&gt;
     * &lt;li&gt;geocode.Longitude -  degrees longitude. double.&lt;/li&gt;
     * &lt;li&gt;geocode.Altitude - meters altitude. float.&lt;/li&gt;
     * &lt;li&gt;geocode.HorizontalAccuracy - horizontal position accuracy. float.&lt;/li&gt;
     * &lt;li&gt;geocode.VerticalAccuracy - vertical position accuracy. float.&lt;/li&gt;
     * &lt;li&gt;geocode.Course - course. float.&lt;/li&gt;
     * &lt;li&gt;geocode.Azimuth - azimuth. float.&lt;/li&gt;
     * &lt;li&gt;geocode.Speed -  speed. float.&lt;/li&gt;
     * &lt;li&gt;geocode.LocationMethod - method used to determine location . int32.&lt;/li&gt;
     * &lt;li&gt;geocode.Timestamp - GPS timestamp in seconds. int64.&lt;/li&gt;
     * &lt;/ul&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal}
     */
    public  static final class DataSetSignal extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal)
        DataSetSignalOrBuilder {
      // Use DataSetSignal.newBuilder() to construct.
      private DataSetSignal(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private DataSetSignal() {
        signalName_ = "";
        type_ = 0;
        signalId_ = 0;
        uom_ = 0;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private DataSetSignal(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();

                signalName_ = s;
                break;
              }
              case 16: {
                int rawValue = input.readEnum();

                type_ = rawValue;
                break;
              }
              case 24: {

                signalId_ = input.readInt32();
                break;
              }
              case 32: {
                int rawValue = input.readEnum();

                uom_ = 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 {
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSignal_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSignal_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.Builder.class);
      }

      public static final int SIGNALNAME_FIELD_NUMBER = 1;
      private volatile java.lang.Object signalName_;
      /**
       * <pre>
       *&#47; The name of the signal to be collected
       * </pre>
       *
       * <code>string signalName = 1;</code>
       */
      public java.lang.String getSignalName() {
        java.lang.Object ref = signalName_;
        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();
          signalName_ = s;
          return s;
        }
      }
      /**
       * <pre>
       *&#47; The name of the signal to be collected
       * </pre>
       *
       * <code>string signalName = 1;</code>
       */
      public com.google.protobuf.ByteString
          getSignalNameBytes() {
        java.lang.Object ref = signalName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          signalName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int TYPE_FIELD_NUMBER = 2;
      private int type_;
      /**
       * <pre>
       *&#47; The type of data to be collected for the signal
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum type = 2;</code>
       */
      public int getTypeValue() {
        return type_;
      }
      /**
       * <pre>
       *&#47; The type of data to be collected for the signal
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum type = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum getType() {
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum result = com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum.valueOf(type_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum.UNRECOGNIZED : result;
      }

      public static final int SIGNALID_FIELD_NUMBER = 3;
      private int signalId_;
      /**
       * <pre>
       *&#47; Used as an additional identifier for onChangeDataSet signal definitions.  The identifier can be either a global unique number or an index for the signal in the DataSet.  
       * </pre>
       *
       * <code>int32 signalId = 3;</code>
       */
      public int getSignalId() {
        return signalId_;
      }

      public static final int UOM_FIELD_NUMBER = 4;
      private int uom_;
      /**
       * <pre>
       *&#47; Identify the expected UOM in which the signal value will be provided.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum uom = 4;</code>
       */
      public int getUomValue() {
        return uom_;
      }
      /**
       * <pre>
       *&#47; Identify the expected UOM in which the signal value will be provided.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum uom = 4;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum getUom() {
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum result = com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum.valueOf(uom_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum.UNRECOGNIZED : 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 (!getSignalNameBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, signalName_);
        }
        if (type_ != com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum.RAW.getNumber()) {
          output.writeEnum(2, type_);
        }
        if (signalId_ != 0) {
          output.writeInt32(3, signalId_);
        }
        if (uom_ != com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum.NA.getNumber()) {
          output.writeEnum(4, uom_);
        }
      }

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

        size = 0;
        if (!getSignalNameBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, signalName_);
        }
        if (type_ != com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum.RAW.getNumber()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(2, type_);
        }
        if (signalId_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, signalId_);
        }
        if (uom_ != com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum.NA.getNumber()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(4, uom_);
        }
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal) obj;

        boolean result = true;
        result = result && getSignalName()
            .equals(other.getSignalName());
        result = result && type_ == other.type_;
        result = result && (getSignalId()
            == other.getSignalId());
        result = result && uom_ == other.uom_;
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + SIGNALNAME_FIELD_NUMBER;
        hash = (53 * hash) + getSignalName().hashCode();
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + type_;
        hash = (37 * hash) + SIGNALID_FIELD_NUMBER;
        hash = (53 * hash) + getSignalId();
        hash = (37 * hash) + UOM_FIELD_NUMBER;
        hash = (53 * hash) + uom_;
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal 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>
       **
       * &lt;p&gt;
       * A data set signal name identifies a particular data element to be collected by the TBM. Each referenced signal name will be polled at most once per interval, including use in filter criteria.
       * &lt;p&gt;
       * Some data set signal names are global, and are  to
       * be supported in all regions. The following signals are globally :
       * &lt;ul&gt;
       * &lt;li&gt;VIN - the VIN of the vehicle the TU is installed in. String.&lt;/li&gt;
       * &lt;li&gt;SWReleaseBranch - the version of the TU firmware. String.&lt;/li&gt;
       * &lt;li&gt;HUSerialNumber - the serial number of the TU. String.&lt;/li&gt;
       * &lt;li&gt;currentTimeMillis - the TU system clock, expressed in milliseconds elapsed since 1 January 1970 00:00:00 UTC. int64.&lt;/li&gt;
       * &lt;/ul&gt;
       * &lt;p&gt;If a signal name is not mandatory and global, it should be prefixed with a namespace identifier. The current set of namespace identifiers is
       * &lt;ul&gt;&lt;li&gt;KONA&lt;/li&gt;&lt;li&gt;geocode&lt;/li&gt;&lt;/ul&gt;
       * &lt;p&gt;The KONA namespace describes signals supported by the VP4 KONA api. The  form is KONA.SignalName.ChannelName where SignalName and ChannelName are the KONA signal and channel names respectively.
       * &lt;p&gt;The geocode namespace describes signals commonly available from commercial GPS hardware. The signals available in the geocode namespace are:
       * &lt;ul&gt;
       * &lt;li&gt;geocode.Latitude - degrees latitude. double.&lt;/li&gt;
       * &lt;li&gt;geocode.Longitude -  degrees longitude. double.&lt;/li&gt;
       * &lt;li&gt;geocode.Altitude - meters altitude. float.&lt;/li&gt;
       * &lt;li&gt;geocode.HorizontalAccuracy - horizontal position accuracy. float.&lt;/li&gt;
       * &lt;li&gt;geocode.VerticalAccuracy - vertical position accuracy. float.&lt;/li&gt;
       * &lt;li&gt;geocode.Course - course. float.&lt;/li&gt;
       * &lt;li&gt;geocode.Azimuth - azimuth. float.&lt;/li&gt;
       * &lt;li&gt;geocode.Speed -  speed. float.&lt;/li&gt;
       * &lt;li&gt;geocode.LocationMethod - method used to determine location . int32.&lt;/li&gt;
       * &lt;li&gt;geocode.Timestamp - GPS timestamp in seconds. int64.&lt;/li&gt;
       * &lt;/ul&gt;
       * </pre>
       *
       * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal)
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignalOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSignal_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSignal_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.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();
          signalName_ = "";

          type_ = 0;

          signalId_ = 0;

          uom_ = 0;

          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal(this);
          result.signalName_ = signalName_;
          result.type_ = type_;
          result.signalId_ = signalId_;
          result.uom_ = uom_;
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.getDefaultInstance()) return this;
          if (!other.getSignalName().isEmpty()) {
            signalName_ = other.signalName_;
            onChanged();
          }
          if (other.type_ != 0) {
            setTypeValue(other.getTypeValue());
          }
          if (other.getSignalId() != 0) {
            setSignalId(other.getSignalId());
          }
          if (other.uom_ != 0) {
            setUomValue(other.getUomValue());
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private java.lang.Object signalName_ = "";
        /**
         * <pre>
         *&#47; The name of the signal to be collected
         * </pre>
         *
         * <code>string signalName = 1;</code>
         */
        public java.lang.String getSignalName() {
          java.lang.Object ref = signalName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            signalName_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         *&#47; The name of the signal to be collected
         * </pre>
         *
         * <code>string signalName = 1;</code>
         */
        public com.google.protobuf.ByteString
            getSignalNameBytes() {
          java.lang.Object ref = signalName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            signalName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         *&#47; The name of the signal to be collected
         * </pre>
         *
         * <code>string signalName = 1;</code>
         */
        public Builder setSignalName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          signalName_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; The name of the signal to be collected
         * </pre>
         *
         * <code>string signalName = 1;</code>
         */
        public Builder clearSignalName() {
          
          signalName_ = getDefaultInstance().getSignalName();
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; The name of the signal to be collected
         * </pre>
         *
         * <code>string signalName = 1;</code>
         */
        public Builder setSignalNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          signalName_ = value;
          onChanged();
          return this;
        }

        private int type_ = 0;
        /**
         * <pre>
         *&#47; The type of data to be collected for the signal
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum type = 2;</code>
         */
        public int getTypeValue() {
          return type_;
        }
        /**
         * <pre>
         *&#47; The type of data to be collected for the signal
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum type = 2;</code>
         */
        public Builder setTypeValue(int value) {
          type_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; The type of data to be collected for the signal
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum type = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum getType() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum result = com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum.valueOf(type_);
          return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum.UNRECOGNIZED : result;
        }
        /**
         * <pre>
         *&#47; The type of data to be collected for the signal
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum type = 2;</code>
         */
        public Builder setType(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum value) {
          if (value == null) {
            throw new NullPointerException();
          }
          
          type_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; The type of data to be collected for the signal
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalTypeEnum type = 2;</code>
         */
        public Builder clearType() {
          
          type_ = 0;
          onChanged();
          return this;
        }

        private int signalId_ ;
        /**
         * <pre>
         *&#47; Used as an additional identifier for onChangeDataSet signal definitions.  The identifier can be either a global unique number or an index for the signal in the DataSet.  
         * </pre>
         *
         * <code>int32 signalId = 3;</code>
         */
        public int getSignalId() {
          return signalId_;
        }
        /**
         * <pre>
         *&#47; Used as an additional identifier for onChangeDataSet signal definitions.  The identifier can be either a global unique number or an index for the signal in the DataSet.  
         * </pre>
         *
         * <code>int32 signalId = 3;</code>
         */
        public Builder setSignalId(int value) {
          
          signalId_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Used as an additional identifier for onChangeDataSet signal definitions.  The identifier can be either a global unique number or an index for the signal in the DataSet.  
         * </pre>
         *
         * <code>int32 signalId = 3;</code>
         */
        public Builder clearSignalId() {
          
          signalId_ = 0;
          onChanged();
          return this;
        }

        private int uom_ = 0;
        /**
         * <pre>
         *&#47; Identify the expected UOM in which the signal value will be provided.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum uom = 4;</code>
         */
        public int getUomValue() {
          return uom_;
        }
        /**
         * <pre>
         *&#47; Identify the expected UOM in which the signal value will be provided.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum uom = 4;</code>
         */
        public Builder setUomValue(int value) {
          uom_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Identify the expected UOM in which the signal value will be provided.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum uom = 4;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum getUom() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum result = com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum.valueOf(uom_);
          return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum.UNRECOGNIZED : result;
        }
        /**
         * <pre>
         *&#47; Identify the expected UOM in which the signal value will be provided.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum uom = 4;</code>
         */
        public Builder setUom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum value) {
          if (value == null) {
            throw new NullPointerException();
          }
          
          uom_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Identify the expected UOM in which the signal value will be provided.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum uom = 4;</code>
         */
        public Builder clearUom() {
          
          uom_ = 0;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface FilterCriteriaOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>string signalId = 10;</code>
       */
      java.lang.String getSignalId();
      /**
       * <code>string signalId = 10;</code>
       */
      com.google.protobuf.ByteString
          getSignalIdBytes();

      /**
       * <pre>
       *&#47; push current value of this signal
       * </pre>
       *
       * <code>string signalName = 1;</code>
       */
      java.lang.String getSignalName();
      /**
       * <pre>
       *&#47; push current value of this signal
       * </pre>
       *
       * <code>string signalName = 1;</code>
       */
      com.google.protobuf.ByteString
          getSignalNameBytes();

      /**
       * <pre>
       *&#47; push constant double on stack
       * </pre>
       *
       * <code>double doubleValue = 2;</code>
       */
      double getDoubleValue();

      /**
       * <pre>
       *&#47; push constant float on stack
       * </pre>
       *
       * <code>float floatValue = 3;</code>
       */
      float getFloatValue();

      /**
       * <pre>
       *&#47; push constant signed 32 bit integer on stack
       * </pre>
       *
       * <code>int32 int32Value = 4;</code>
       */
      int getInt32Value();

      /**
       * <pre>
       *&#47; push constant signed 64 bit integer on stack
       * </pre>
       *
       * <code>int64 int64Value = 5;</code>
       */
      long getInt64Value();

      /**
       * <pre>
       *&#47; push constant on stack
       * </pre>
       *
       * <code>string stringValue = 6;</code>
       */
      java.lang.String getStringValue();
      /**
       * <pre>
       *&#47; push constant on stack
       * </pre>
       *
       * <code>string stringValue = 6;</code>
       */
      com.google.protobuf.ByteString
          getStringValueBytes();

      /**
       * <pre>
       *&#47; pop, eval, push result. See enum FilterOperator for details
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterOperator operator = 7;</code>
       */
      int getOperatorValue();
      /**
       * <pre>
       *&#47; pop, eval, push result. See enum FilterOperator for details
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterOperator operator = 7;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterOperator getOperator();

      /**
       * <pre>
       *&#47; skip next branch criteria
       * </pre>
       *
       * <code>int32 branch = 8;</code>
       */
      int getBranch();

      /**
       * <pre>
       *&#47; pop stack, if true skip next branch_if criteria
       * </pre>
       *
       * <code>int32 branch_if = 9;</code>
       */
      int getBranchIf();

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.CriteriaCase getCriteriaCase();
    }
    /**
     * <pre>
     **
     * If filter criteria are present, a data row will be generated if
     * and only if the criteria evaluate to true.
     * The implementation is a simple stack machine; signal values and constants
     * are pushed, operators pop values and push booleans. The machine starts with
     * an empty stack and must end with exactly one boolean value on the stack.
     * State may be carried from one iteration to the next by the use of named regi
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria}
     */
    public  static final class FilterCriteria extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria)
        FilterCriteriaOrBuilder {
      // Use FilterCriteria.newBuilder() to construct.
      private FilterCriteria(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private FilterCriteria() {
        signalId_ = "";
        signalName_ = "";
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private FilterCriteria(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();

                signalName_ = s;
                break;
              }
              case 17: {
                criteriaCase_ = 2;
                criteria_ = input.readDouble();
                break;
              }
              case 29: {
                criteriaCase_ = 3;
                criteria_ = input.readFloat();
                break;
              }
              case 32: {
                criteriaCase_ = 4;
                criteria_ = input.readInt32();
                break;
              }
              case 40: {
                criteriaCase_ = 5;
                criteria_ = input.readInt64();
                break;
              }
              case 50: {
                java.lang.String s = input.readStringRequireUtf8();
                criteriaCase_ = 6;
                criteria_ = s;
                break;
              }
              case 56: {
                int rawValue = input.readEnum();
                criteriaCase_ = 7;
                criteria_ = rawValue;
                break;
              }
              case 64: {
                criteriaCase_ = 8;
                criteria_ = input.readInt32();
                break;
              }
              case 72: {
                criteriaCase_ = 9;
                criteria_ = input.readInt32();
                break;
              }
              case 82: {
                java.lang.String s = input.readStringRequireUtf8();

                signalId_ = s;
                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 {
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_FilterCriteria_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_FilterCriteria_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder.class);
      }

      private int criteriaCase_ = 0;
      private java.lang.Object criteria_;
      public enum CriteriaCase
          implements com.google.protobuf.Internal.EnumLite {
        DOUBLEVALUE(2),
        FLOATVALUE(3),
        INT32VALUE(4),
        INT64VALUE(5),
        STRINGVALUE(6),
        OPERATOR(7),
        BRANCH(8),
        BRANCH_IF(9),
        CRITERIA_NOT_SET(0);
        private final int value;
        private CriteriaCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static CriteriaCase valueOf(int value) {
          return forNumber(value);
        }

        public static CriteriaCase forNumber(int value) {
          switch (value) {
            case 2: return DOUBLEVALUE;
            case 3: return FLOATVALUE;
            case 4: return INT32VALUE;
            case 5: return INT64VALUE;
            case 6: return STRINGVALUE;
            case 7: return OPERATOR;
            case 8: return BRANCH;
            case 9: return BRANCH_IF;
            case 0: return CRITERIA_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };

      public CriteriaCase
      getCriteriaCase() {
        return CriteriaCase.forNumber(
            criteriaCase_);
      }

      public static final int SIGNALID_FIELD_NUMBER = 10;
      private volatile java.lang.Object signalId_;
      /**
       * <code>string signalId = 10;</code>
       */
      public java.lang.String getSignalId() {
        java.lang.Object ref = signalId_;
        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();
          signalId_ = s;
          return s;
        }
      }
      /**
       * <code>string signalId = 10;</code>
       */
      public com.google.protobuf.ByteString
          getSignalIdBytes() {
        java.lang.Object ref = signalId_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          signalId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int SIGNALNAME_FIELD_NUMBER = 1;
      private volatile java.lang.Object signalName_;
      /**
       * <pre>
       *&#47; push current value of this signal
       * </pre>
       *
       * <code>string signalName = 1;</code>
       */
      public java.lang.String getSignalName() {
        java.lang.Object ref = signalName_;
        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();
          signalName_ = s;
          return s;
        }
      }
      /**
       * <pre>
       *&#47; push current value of this signal
       * </pre>
       *
       * <code>string signalName = 1;</code>
       */
      public com.google.protobuf.ByteString
          getSignalNameBytes() {
        java.lang.Object ref = signalName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          signalName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int DOUBLEVALUE_FIELD_NUMBER = 2;
      /**
       * <pre>
       *&#47; push constant double on stack
       * </pre>
       *
       * <code>double doubleValue = 2;</code>
       */
      public double getDoubleValue() {
        if (criteriaCase_ == 2) {
          return (java.lang.Double) criteria_;
        }
        return 0D;
      }

      public static final int FLOATVALUE_FIELD_NUMBER = 3;
      /**
       * <pre>
       *&#47; push constant float on stack
       * </pre>
       *
       * <code>float floatValue = 3;</code>
       */
      public float getFloatValue() {
        if (criteriaCase_ == 3) {
          return (java.lang.Float) criteria_;
        }
        return 0F;
      }

      public static final int INT32VALUE_FIELD_NUMBER = 4;
      /**
       * <pre>
       *&#47; push constant signed 32 bit integer on stack
       * </pre>
       *
       * <code>int32 int32Value = 4;</code>
       */
      public int getInt32Value() {
        if (criteriaCase_ == 4) {
          return (java.lang.Integer) criteria_;
        }
        return 0;
      }

      public static final int INT64VALUE_FIELD_NUMBER = 5;
      /**
       * <pre>
       *&#47; push constant signed 64 bit integer on stack
       * </pre>
       *
       * <code>int64 int64Value = 5;</code>
       */
      public long getInt64Value() {
        if (criteriaCase_ == 5) {
          return (java.lang.Long) criteria_;
        }
        return 0L;
      }

      public static final int STRINGVALUE_FIELD_NUMBER = 6;
      /**
       * <pre>
       *&#47; push constant on stack
       * </pre>
       *
       * <code>string stringValue = 6;</code>
       */
      public java.lang.String getStringValue() {
        java.lang.Object ref = "";
        if (criteriaCase_ == 6) {
          ref = criteria_;
        }
        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 (criteriaCase_ == 6) {
            criteria_ = s;
          }
          return s;
        }
      }
      /**
       * <pre>
       *&#47; push constant on stack
       * </pre>
       *
       * <code>string stringValue = 6;</code>
       */
      public com.google.protobuf.ByteString
          getStringValueBytes() {
        java.lang.Object ref = "";
        if (criteriaCase_ == 6) {
          ref = criteria_;
        }
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (criteriaCase_ == 6) {
            criteria_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int OPERATOR_FIELD_NUMBER = 7;
      /**
       * <pre>
       *&#47; pop, eval, push result. See enum FilterOperator for details
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterOperator operator = 7;</code>
       */
      public int getOperatorValue() {
        if (criteriaCase_ == 7) {
          return (java.lang.Integer) criteria_;
        }
        return 0;
      }
      /**
       * <pre>
       *&#47; pop, eval, push result. See enum FilterOperator for details
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterOperator operator = 7;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterOperator getOperator() {
        if (criteriaCase_ == 7) {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterOperator result = com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterOperator.valueOf(
              (java.lang.Integer) criteria_);
          return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterOperator.UNRECOGNIZED : result;
        }
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterOperator.NOT;
      }

      public static final int BRANCH_FIELD_NUMBER = 8;
      /**
       * <pre>
       *&#47; skip next branch criteria
       * </pre>
       *
       * <code>int32 branch = 8;</code>
       */
      public int getBranch() {
        if (criteriaCase_ == 8) {
          return (java.lang.Integer) criteria_;
        }
        return 0;
      }

      public static final int BRANCH_IF_FIELD_NUMBER = 9;
      /**
       * <pre>
       *&#47; pop stack, if true skip next branch_if criteria
       * </pre>
       *
       * <code>int32 branch_if = 9;</code>
       */
      public int getBranchIf() {
        if (criteriaCase_ == 9) {
          return (java.lang.Integer) criteria_;
        }
        return 0;
      }

      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 (!getSignalNameBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, signalName_);
        }
        if (criteriaCase_ == 2) {
          output.writeDouble(
              2, (double)((java.lang.Double) criteria_));
        }
        if (criteriaCase_ == 3) {
          output.writeFloat(
              3, (float)((java.lang.Float) criteria_));
        }
        if (criteriaCase_ == 4) {
          output.writeInt32(
              4, (int)((java.lang.Integer) criteria_));
        }
        if (criteriaCase_ == 5) {
          output.writeInt64(
              5, (long)((java.lang.Long) criteria_));
        }
        if (criteriaCase_ == 6) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 6, criteria_);
        }
        if (criteriaCase_ == 7) {
          output.writeEnum(7, ((java.lang.Integer) criteria_));
        }
        if (criteriaCase_ == 8) {
          output.writeInt32(
              8, (int)((java.lang.Integer) criteria_));
        }
        if (criteriaCase_ == 9) {
          output.writeInt32(
              9, (int)((java.lang.Integer) criteria_));
        }
        if (!getSignalIdBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 10, signalId_);
        }
      }

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

        size = 0;
        if (!getSignalNameBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, signalName_);
        }
        if (criteriaCase_ == 2) {
          size += com.google.protobuf.CodedOutputStream
            .computeDoubleSize(
                2, (double)((java.lang.Double) criteria_));
        }
        if (criteriaCase_ == 3) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(
                3, (float)((java.lang.Float) criteria_));
        }
        if (criteriaCase_ == 4) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(
                4, (int)((java.lang.Integer) criteria_));
        }
        if (criteriaCase_ == 5) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(
                5, (long)((java.lang.Long) criteria_));
        }
        if (criteriaCase_ == 6) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, criteria_);
        }
        if (criteriaCase_ == 7) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(7, ((java.lang.Integer) criteria_));
        }
        if (criteriaCase_ == 8) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(
                8, (int)((java.lang.Integer) criteria_));
        }
        if (criteriaCase_ == 9) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(
                9, (int)((java.lang.Integer) criteria_));
        }
        if (!getSignalIdBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, signalId_);
        }
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria) obj;

        boolean result = true;
        result = result && getSignalId()
            .equals(other.getSignalId());
        result = result && getSignalName()
            .equals(other.getSignalName());
        result = result && getCriteriaCase().equals(
            other.getCriteriaCase());
        if (!result) return false;
        switch (criteriaCase_) {
          case 2:
            result = result && (
                java.lang.Double.doubleToLongBits(getDoubleValue())
                == java.lang.Double.doubleToLongBits(
                    other.getDoubleValue()));
            break;
          case 3:
            result = result && (
                java.lang.Float.floatToIntBits(getFloatValue())
                == java.lang.Float.floatToIntBits(
                    other.getFloatValue()));
            break;
          case 4:
            result = result && (getInt32Value()
                == other.getInt32Value());
            break;
          case 5:
            result = result && (getInt64Value()
                == other.getInt64Value());
            break;
          case 6:
            result = result && getStringValue()
                .equals(other.getStringValue());
            break;
          case 7:
            result = result && getOperatorValue()
                == other.getOperatorValue();
            break;
          case 8:
            result = result && (getBranch()
                == other.getBranch());
            break;
          case 9:
            result = result && (getBranchIf()
                == other.getBranchIf());
            break;
          case 0:
          default:
        }
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + SIGNALID_FIELD_NUMBER;
        hash = (53 * hash) + getSignalId().hashCode();
        hash = (37 * hash) + SIGNALNAME_FIELD_NUMBER;
        hash = (53 * hash) + getSignalName().hashCode();
        switch (criteriaCase_) {
          case 2:
            hash = (37 * hash) + DOUBLEVALUE_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                java.lang.Double.doubleToLongBits(getDoubleValue()));
            break;
          case 3:
            hash = (37 * hash) + FLOATVALUE_FIELD_NUMBER;
            hash = (53 * hash) + java.lang.Float.floatToIntBits(
                getFloatValue());
            break;
          case 4:
            hash = (37 * hash) + INT32VALUE_FIELD_NUMBER;
            hash = (53 * hash) + getInt32Value();
            break;
          case 5:
            hash = (37 * hash) + INT64VALUE_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                getInt64Value());
            break;
          case 6:
            hash = (37 * hash) + STRINGVALUE_FIELD_NUMBER;
            hash = (53 * hash) + getStringValue().hashCode();
            break;
          case 7:
            hash = (37 * hash) + OPERATOR_FIELD_NUMBER;
            hash = (53 * hash) + getOperatorValue();
            break;
          case 8:
            hash = (37 * hash) + BRANCH_FIELD_NUMBER;
            hash = (53 * hash) + getBranch();
            break;
          case 9:
            hash = (37 * hash) + BRANCH_IF_FIELD_NUMBER;
            hash = (53 * hash) + getBranchIf();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria 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>
       **
       * If filter criteria are present, a data row will be generated if
       * and only if the criteria evaluate to true.
       * The implementation is a simple stack machine; signal values and constants
       * are pushed, operators pop values and push booleans. The machine starts with
       * an empty stack and must end with exactly one boolean value on the stack.
       * State may be carried from one iteration to the next by the use of named regi
       * </pre>
       *
       * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria)
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_FilterCriteria_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_FilterCriteria_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.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();
          signalId_ = "";

          signalName_ = "";

          criteriaCase_ = 0;
          criteria_ = null;
          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria(this);
          result.signalId_ = signalId_;
          result.signalName_ = signalName_;
          if (criteriaCase_ == 2) {
            result.criteria_ = criteria_;
          }
          if (criteriaCase_ == 3) {
            result.criteria_ = criteria_;
          }
          if (criteriaCase_ == 4) {
            result.criteria_ = criteria_;
          }
          if (criteriaCase_ == 5) {
            result.criteria_ = criteria_;
          }
          if (criteriaCase_ == 6) {
            result.criteria_ = criteria_;
          }
          if (criteriaCase_ == 7) {
            result.criteria_ = criteria_;
          }
          if (criteriaCase_ == 8) {
            result.criteria_ = criteria_;
          }
          if (criteriaCase_ == 9) {
            result.criteria_ = criteria_;
          }
          result.criteriaCase_ = criteriaCase_;
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.getDefaultInstance()) return this;
          if (!other.getSignalId().isEmpty()) {
            signalId_ = other.signalId_;
            onChanged();
          }
          if (!other.getSignalName().isEmpty()) {
            signalName_ = other.signalName_;
            onChanged();
          }
          switch (other.getCriteriaCase()) {
            case DOUBLEVALUE: {
              setDoubleValue(other.getDoubleValue());
              break;
            }
            case FLOATVALUE: {
              setFloatValue(other.getFloatValue());
              break;
            }
            case INT32VALUE: {
              setInt32Value(other.getInt32Value());
              break;
            }
            case INT64VALUE: {
              setInt64Value(other.getInt64Value());
              break;
            }
            case STRINGVALUE: {
              criteriaCase_ = 6;
              criteria_ = other.criteria_;
              onChanged();
              break;
            }
            case OPERATOR: {
              setOperatorValue(other.getOperatorValue());
              break;
            }
            case BRANCH: {
              setBranch(other.getBranch());
              break;
            }
            case BRANCH_IF: {
              setBranchIf(other.getBranchIf());
              break;
            }
            case CRITERIA_NOT_SET: {
              break;
            }
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int criteriaCase_ = 0;
        private java.lang.Object criteria_;
        public CriteriaCase
            getCriteriaCase() {
          return CriteriaCase.forNumber(
              criteriaCase_);
        }

        public Builder clearCriteria() {
          criteriaCase_ = 0;
          criteria_ = null;
          onChanged();
          return this;
        }


        private java.lang.Object signalId_ = "";
        /**
         * <code>string signalId = 10;</code>
         */
        public java.lang.String getSignalId() {
          java.lang.Object ref = signalId_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            signalId_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string signalId = 10;</code>
         */
        public com.google.protobuf.ByteString
            getSignalIdBytes() {
          java.lang.Object ref = signalId_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            signalId_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string signalId = 10;</code>
         */
        public Builder setSignalId(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          signalId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string signalId = 10;</code>
         */
        public Builder clearSignalId() {
          
          signalId_ = getDefaultInstance().getSignalId();
          onChanged();
          return this;
        }
        /**
         * <code>string signalId = 10;</code>
         */
        public Builder setSignalIdBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          signalId_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object signalName_ = "";
        /**
         * <pre>
         *&#47; push current value of this signal
         * </pre>
         *
         * <code>string signalName = 1;</code>
         */
        public java.lang.String getSignalName() {
          java.lang.Object ref = signalName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            signalName_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         *&#47; push current value of this signal
         * </pre>
         *
         * <code>string signalName = 1;</code>
         */
        public com.google.protobuf.ByteString
            getSignalNameBytes() {
          java.lang.Object ref = signalName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            signalName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         *&#47; push current value of this signal
         * </pre>
         *
         * <code>string signalName = 1;</code>
         */
        public Builder setSignalName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          signalName_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; push current value of this signal
         * </pre>
         *
         * <code>string signalName = 1;</code>
         */
        public Builder clearSignalName() {
          
          signalName_ = getDefaultInstance().getSignalName();
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; push current value of this signal
         * </pre>
         *
         * <code>string signalName = 1;</code>
         */
        public Builder setSignalNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          signalName_ = value;
          onChanged();
          return this;
        }

        /**
         * <pre>
         *&#47; push constant double on stack
         * </pre>
         *
         * <code>double doubleValue = 2;</code>
         */
        public double getDoubleValue() {
          if (criteriaCase_ == 2) {
            return (java.lang.Double) criteria_;
          }
          return 0D;
        }
        /**
         * <pre>
         *&#47; push constant double on stack
         * </pre>
         *
         * <code>double doubleValue = 2;</code>
         */
        public Builder setDoubleValue(double value) {
          criteriaCase_ = 2;
          criteria_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; push constant double on stack
         * </pre>
         *
         * <code>double doubleValue = 2;</code>
         */
        public Builder clearDoubleValue() {
          if (criteriaCase_ == 2) {
            criteriaCase_ = 0;
            criteria_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * <pre>
         *&#47; push constant float on stack
         * </pre>
         *
         * <code>float floatValue = 3;</code>
         */
        public float getFloatValue() {
          if (criteriaCase_ == 3) {
            return (java.lang.Float) criteria_;
          }
          return 0F;
        }
        /**
         * <pre>
         *&#47; push constant float on stack
         * </pre>
         *
         * <code>float floatValue = 3;</code>
         */
        public Builder setFloatValue(float value) {
          criteriaCase_ = 3;
          criteria_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; push constant float on stack
         * </pre>
         *
         * <code>float floatValue = 3;</code>
         */
        public Builder clearFloatValue() {
          if (criteriaCase_ == 3) {
            criteriaCase_ = 0;
            criteria_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * <pre>
         *&#47; push constant signed 32 bit integer on stack
         * </pre>
         *
         * <code>int32 int32Value = 4;</code>
         */
        public int getInt32Value() {
          if (criteriaCase_ == 4) {
            return (java.lang.Integer) criteria_;
          }
          return 0;
        }
        /**
         * <pre>
         *&#47; push constant signed 32 bit integer on stack
         * </pre>
         *
         * <code>int32 int32Value = 4;</code>
         */
        public Builder setInt32Value(int value) {
          criteriaCase_ = 4;
          criteria_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; push constant signed 32 bit integer on stack
         * </pre>
         *
         * <code>int32 int32Value = 4;</code>
         */
        public Builder clearInt32Value() {
          if (criteriaCase_ == 4) {
            criteriaCase_ = 0;
            criteria_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * <pre>
         *&#47; push constant signed 64 bit integer on stack
         * </pre>
         *
         * <code>int64 int64Value = 5;</code>
         */
        public long getInt64Value() {
          if (criteriaCase_ == 5) {
            return (java.lang.Long) criteria_;
          }
          return 0L;
        }
        /**
         * <pre>
         *&#47; push constant signed 64 bit integer on stack
         * </pre>
         *
         * <code>int64 int64Value = 5;</code>
         */
        public Builder setInt64Value(long value) {
          criteriaCase_ = 5;
          criteria_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; push constant signed 64 bit integer on stack
         * </pre>
         *
         * <code>int64 int64Value = 5;</code>
         */
        public Builder clearInt64Value() {
          if (criteriaCase_ == 5) {
            criteriaCase_ = 0;
            criteria_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * <pre>
         *&#47; push constant on stack
         * </pre>
         *
         * <code>string stringValue = 6;</code>
         */
        public java.lang.String getStringValue() {
          java.lang.Object ref = "";
          if (criteriaCase_ == 6) {
            ref = criteria_;
          }
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (criteriaCase_ == 6) {
              criteria_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         *&#47; push constant on stack
         * </pre>
         *
         * <code>string stringValue = 6;</code>
         */
        public com.google.protobuf.ByteString
            getStringValueBytes() {
          java.lang.Object ref = "";
          if (criteriaCase_ == 6) {
            ref = criteria_;
          }
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            if (criteriaCase_ == 6) {
              criteria_ = b;
            }
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         *&#47; push constant on stack
         * </pre>
         *
         * <code>string stringValue = 6;</code>
         */
        public Builder setStringValue(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  criteriaCase_ = 6;
          criteria_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; push constant on stack
         * </pre>
         *
         * <code>string stringValue = 6;</code>
         */
        public Builder clearStringValue() {
          if (criteriaCase_ == 6) {
            criteriaCase_ = 0;
            criteria_ = null;
            onChanged();
          }
          return this;
        }
        /**
         * <pre>
         *&#47; push constant on stack
         * </pre>
         *
         * <code>string stringValue = 6;</code>
         */
        public Builder setStringValueBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          criteriaCase_ = 6;
          criteria_ = value;
          onChanged();
          return this;
        }

        /**
         * <pre>
         *&#47; pop, eval, push result. See enum FilterOperator for details
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterOperator operator = 7;</code>
         */
        public int getOperatorValue() {
          if (criteriaCase_ == 7) {
            return ((java.lang.Integer) criteria_).intValue();
          }
          return 0;
        }
        /**
         * <pre>
         *&#47; pop, eval, push result. See enum FilterOperator for details
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterOperator operator = 7;</code>
         */
        public Builder setOperatorValue(int value) {
          criteriaCase_ = 7;
          criteria_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; pop, eval, push result. See enum FilterOperator for details
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterOperator operator = 7;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterOperator getOperator() {
          if (criteriaCase_ == 7) {
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterOperator result = com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterOperator.valueOf(
                (java.lang.Integer) criteria_);
            return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterOperator.UNRECOGNIZED : result;
          }
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterOperator.NOT;
        }
        /**
         * <pre>
         *&#47; pop, eval, push result. See enum FilterOperator for details
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterOperator operator = 7;</code>
         */
        public Builder setOperator(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterOperator value) {
          if (value == null) {
            throw new NullPointerException();
          }
          criteriaCase_ = 7;
          criteria_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; pop, eval, push result. See enum FilterOperator for details
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterOperator operator = 7;</code>
         */
        public Builder clearOperator() {
          if (criteriaCase_ == 7) {
            criteriaCase_ = 0;
            criteria_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * <pre>
         *&#47; skip next branch criteria
         * </pre>
         *
         * <code>int32 branch = 8;</code>
         */
        public int getBranch() {
          if (criteriaCase_ == 8) {
            return (java.lang.Integer) criteria_;
          }
          return 0;
        }
        /**
         * <pre>
         *&#47; skip next branch criteria
         * </pre>
         *
         * <code>int32 branch = 8;</code>
         */
        public Builder setBranch(int value) {
          criteriaCase_ = 8;
          criteria_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; skip next branch criteria
         * </pre>
         *
         * <code>int32 branch = 8;</code>
         */
        public Builder clearBranch() {
          if (criteriaCase_ == 8) {
            criteriaCase_ = 0;
            criteria_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * <pre>
         *&#47; pop stack, if true skip next branch_if criteria
         * </pre>
         *
         * <code>int32 branch_if = 9;</code>
         */
        public int getBranchIf() {
          if (criteriaCase_ == 9) {
            return (java.lang.Integer) criteria_;
          }
          return 0;
        }
        /**
         * <pre>
         *&#47; pop stack, if true skip next branch_if criteria
         * </pre>
         *
         * <code>int32 branch_if = 9;</code>
         */
        public Builder setBranchIf(int value) {
          criteriaCase_ = 9;
          criteria_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; pop stack, if true skip next branch_if criteria
         * </pre>
         *
         * <code>int32 branch_if = 9;</code>
         */
        public Builder clearBranchIf() {
          if (criteriaCase_ == 9) {
            criteriaCase_ = 0;
            criteria_ = null;
            onChanged();
          }
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface EventTriggerCriteriaOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47; criteria to determine whether to trigger a collection window
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
       */
      java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria> 
          getFilterExpressionList();
      /**
       * <pre>
       *&#47; criteria to determine whether to trigger a collection window
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria getFilterExpression(int index);
      /**
       * <pre>
       *&#47; criteria to determine whether to trigger a collection window
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
       */
      int getFilterExpressionCount();
      /**
       * <pre>
       *&#47; criteria to determine whether to trigger a collection window
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
       */
      java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder> 
          getFilterExpressionOrBuilderList();
      /**
       * <pre>
       *&#47; criteria to determine whether to trigger a collection window
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder getFilterExpressionOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria}
     */
    public  static final class EventTriggerCriteria extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria)
        EventTriggerCriteriaOrBuilder {
      // Use EventTriggerCriteria.newBuilder() to construct.
      private EventTriggerCriteria(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private EventTriggerCriteria() {
        filterExpression_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private EventTriggerCriteria(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  filterExpression_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria>();
                  mutable_bitField0_ |= 0x00000001;
                }
                filterExpression_.add(
                    input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.parser(), extensionRegistry));
                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_ & 0x00000001) == 0x00000001)) {
            filterExpression_ = java.util.Collections.unmodifiableList(filterExpression_);
          }
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_EventTriggerCriteria_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_EventTriggerCriteria_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder.class);
      }

      public static final int FILTEREXPRESSION_FIELD_NUMBER = 1;
      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria> filterExpression_;
      /**
       * <pre>
       *&#47; criteria to determine whether to trigger a collection window
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria> getFilterExpressionList() {
        return filterExpression_;
      }
      /**
       * <pre>
       *&#47; criteria to determine whether to trigger a collection window
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder> 
          getFilterExpressionOrBuilderList() {
        return filterExpression_;
      }
      /**
       * <pre>
       *&#47; criteria to determine whether to trigger a collection window
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
       */
      public int getFilterExpressionCount() {
        return filterExpression_.size();
      }
      /**
       * <pre>
       *&#47; criteria to determine whether to trigger a collection window
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria getFilterExpression(int index) {
        return filterExpression_.get(index);
      }
      /**
       * <pre>
       *&#47; criteria to determine whether to trigger a collection window
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder getFilterExpressionOrBuilder(
          int index) {
        return filterExpression_.get(index);
      }

      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 {
        for (int i = 0; i < filterExpression_.size(); i++) {
          output.writeMessage(1, filterExpression_.get(i));
        }
      }

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

        size = 0;
        for (int i = 0; i < filterExpression_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, filterExpression_.get(i));
        }
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria) obj;

        boolean result = true;
        result = result && getFilterExpressionList()
            .equals(other.getFilterExpressionList());
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getFilterExpressionCount() > 0) {
          hash = (37 * hash) + FILTEREXPRESSION_FIELD_NUMBER;
          hash = (53 * hash) + getFilterExpressionList().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria 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.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria)
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteriaOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_EventTriggerCriteria_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_EventTriggerCriteria_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getFilterExpressionFieldBuilder();
          }
        }
        public Builder clear() {
          super.clear();
          if (filterExpressionBuilder_ == null) {
            filterExpression_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            filterExpressionBuilder_.clear();
          }
          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria(this);
          int from_bitField0_ = bitField0_;
          if (filterExpressionBuilder_ == null) {
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
              filterExpression_ = java.util.Collections.unmodifiableList(filterExpression_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.filterExpression_ = filterExpression_;
          } else {
            result.filterExpression_ = filterExpressionBuilder_.build();
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.getDefaultInstance()) return this;
          if (filterExpressionBuilder_ == null) {
            if (!other.filterExpression_.isEmpty()) {
              if (filterExpression_.isEmpty()) {
                filterExpression_ = other.filterExpression_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureFilterExpressionIsMutable();
                filterExpression_.addAll(other.filterExpression_);
              }
              onChanged();
            }
          } else {
            if (!other.filterExpression_.isEmpty()) {
              if (filterExpressionBuilder_.isEmpty()) {
                filterExpressionBuilder_.dispose();
                filterExpressionBuilder_ = null;
                filterExpression_ = other.filterExpression_;
                bitField0_ = (bitField0_ & ~0x00000001);
                filterExpressionBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getFilterExpressionFieldBuilder() : null;
              } else {
                filterExpressionBuilder_.addAllMessages(other.filterExpression_);
              }
            }
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria> filterExpression_ =
          java.util.Collections.emptyList();
        private void ensureFilterExpressionIsMutable() {
          if (!((bitField0_ & 0x00000001) == 0x00000001)) {
            filterExpression_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria>(filterExpression_);
            bitField0_ |= 0x00000001;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder> filterExpressionBuilder_;

        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria> getFilterExpressionList() {
          if (filterExpressionBuilder_ == null) {
            return java.util.Collections.unmodifiableList(filterExpression_);
          } else {
            return filterExpressionBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public int getFilterExpressionCount() {
          if (filterExpressionBuilder_ == null) {
            return filterExpression_.size();
          } else {
            return filterExpressionBuilder_.getCount();
          }
        }
        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria getFilterExpression(int index) {
          if (filterExpressionBuilder_ == null) {
            return filterExpression_.get(index);
          } else {
            return filterExpressionBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public Builder setFilterExpression(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria value) {
          if (filterExpressionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureFilterExpressionIsMutable();
            filterExpression_.set(index, value);
            onChanged();
          } else {
            filterExpressionBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public Builder setFilterExpression(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder builderForValue) {
          if (filterExpressionBuilder_ == null) {
            ensureFilterExpressionIsMutable();
            filterExpression_.set(index, builderForValue.build());
            onChanged();
          } else {
            filterExpressionBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public Builder addFilterExpression(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria value) {
          if (filterExpressionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureFilterExpressionIsMutable();
            filterExpression_.add(value);
            onChanged();
          } else {
            filterExpressionBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public Builder addFilterExpression(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria value) {
          if (filterExpressionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureFilterExpressionIsMutable();
            filterExpression_.add(index, value);
            onChanged();
          } else {
            filterExpressionBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public Builder addFilterExpression(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder builderForValue) {
          if (filterExpressionBuilder_ == null) {
            ensureFilterExpressionIsMutable();
            filterExpression_.add(builderForValue.build());
            onChanged();
          } else {
            filterExpressionBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public Builder addFilterExpression(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder builderForValue) {
          if (filterExpressionBuilder_ == null) {
            ensureFilterExpressionIsMutable();
            filterExpression_.add(index, builderForValue.build());
            onChanged();
          } else {
            filterExpressionBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public Builder addAllFilterExpression(
            java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria> values) {
          if (filterExpressionBuilder_ == null) {
            ensureFilterExpressionIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, filterExpression_);
            onChanged();
          } else {
            filterExpressionBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public Builder clearFilterExpression() {
          if (filterExpressionBuilder_ == null) {
            filterExpression_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            filterExpressionBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public Builder removeFilterExpression(int index) {
          if (filterExpressionBuilder_ == null) {
            ensureFilterExpressionIsMutable();
            filterExpression_.remove(index);
            onChanged();
          } else {
            filterExpressionBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder getFilterExpressionBuilder(
            int index) {
          return getFilterExpressionFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder getFilterExpressionOrBuilder(
            int index) {
          if (filterExpressionBuilder_ == null) {
            return filterExpression_.get(index);  } else {
            return filterExpressionBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder> 
             getFilterExpressionOrBuilderList() {
          if (filterExpressionBuilder_ != null) {
            return filterExpressionBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(filterExpression_);
          }
        }
        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder addFilterExpressionBuilder() {
          return getFilterExpressionFieldBuilder().addBuilder(
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder addFilterExpressionBuilder(
            int index) {
          return getFilterExpressionFieldBuilder().addBuilder(
              index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; criteria to determine whether to trigger a collection window
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 1;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder> 
             getFilterExpressionBuilderList() {
          return getFilterExpressionFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder> 
            getFilterExpressionFieldBuilder() {
          if (filterExpressionBuilder_ == null) {
            filterExpressionBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder>(
                    filterExpression_,
                    ((bitField0_ & 0x00000001) == 0x00000001),
                    getParentForChildren(),
                    isClean());
            filterExpression_ = null;
          }
          return filterExpressionBuilder_;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface CaptureWindowPolicyOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47; indicates the number of samples to buffer for the window prior to the trigger event.
       * </pre>
       *
       * <code>int32 numPreTriggerSamples = 1;</code>
       */
      int getNumPreTriggerSamples();

      /**
       * <pre>
       *&#47; indicates the number of samples to buffer for the window after the trigger event.  
       * </pre>
       *
       * <code>int32 numPostTriggerSamples = 2;</code>
       */
      int getNumPostTriggerSamples();

      /**
       * <pre>
       *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
       */
      java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria> 
          getEventTriggerCriteriaList();
      /**
       * <pre>
       *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria getEventTriggerCriteria(int index);
      /**
       * <pre>
       *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
       */
      int getEventTriggerCriteriaCount();
      /**
       * <pre>
       *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
       */
      java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteriaOrBuilder> 
          getEventTriggerCriteriaOrBuilderList();
      /**
       * <pre>
       *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteriaOrBuilder getEventTriggerCriteriaOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy}
     */
    public  static final class CaptureWindowPolicy extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy)
        CaptureWindowPolicyOrBuilder {
      // Use CaptureWindowPolicy.newBuilder() to construct.
      private CaptureWindowPolicy(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private CaptureWindowPolicy() {
        numPreTriggerSamples_ = 0;
        numPostTriggerSamples_ = 0;
        eventTriggerCriteria_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private CaptureWindowPolicy(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 8: {

                numPreTriggerSamples_ = input.readInt32();
                break;
              }
              case 16: {

                numPostTriggerSamples_ = input.readInt32();
                break;
              }
              case 26: {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  eventTriggerCriteria_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria>();
                  mutable_bitField0_ |= 0x00000004;
                }
                eventTriggerCriteria_.add(
                    input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.parser(), extensionRegistry));
                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_ & 0x00000004) == 0x00000004)) {
            eventTriggerCriteria_ = java.util.Collections.unmodifiableList(eventTriggerCriteria_);
          }
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_CaptureWindowPolicy_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_CaptureWindowPolicy_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.Builder.class);
      }

      private int bitField0_;
      public static final int NUMPRETRIGGERSAMPLES_FIELD_NUMBER = 1;
      private int numPreTriggerSamples_;
      /**
       * <pre>
       *&#47; indicates the number of samples to buffer for the window prior to the trigger event.
       * </pre>
       *
       * <code>int32 numPreTriggerSamples = 1;</code>
       */
      public int getNumPreTriggerSamples() {
        return numPreTriggerSamples_;
      }

      public static final int NUMPOSTTRIGGERSAMPLES_FIELD_NUMBER = 2;
      private int numPostTriggerSamples_;
      /**
       * <pre>
       *&#47; indicates the number of samples to buffer for the window after the trigger event.  
       * </pre>
       *
       * <code>int32 numPostTriggerSamples = 2;</code>
       */
      public int getNumPostTriggerSamples() {
        return numPostTriggerSamples_;
      }

      public static final int EVENTTRIGGERCRITERIA_FIELD_NUMBER = 3;
      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria> eventTriggerCriteria_;
      /**
       * <pre>
       *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria> getEventTriggerCriteriaList() {
        return eventTriggerCriteria_;
      }
      /**
       * <pre>
       *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteriaOrBuilder> 
          getEventTriggerCriteriaOrBuilderList() {
        return eventTriggerCriteria_;
      }
      /**
       * <pre>
       *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
       */
      public int getEventTriggerCriteriaCount() {
        return eventTriggerCriteria_.size();
      }
      /**
       * <pre>
       *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria getEventTriggerCriteria(int index) {
        return eventTriggerCriteria_.get(index);
      }
      /**
       * <pre>
       *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteriaOrBuilder getEventTriggerCriteriaOrBuilder(
          int index) {
        return eventTriggerCriteria_.get(index);
      }

      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 (numPreTriggerSamples_ != 0) {
          output.writeInt32(1, numPreTriggerSamples_);
        }
        if (numPostTriggerSamples_ != 0) {
          output.writeInt32(2, numPostTriggerSamples_);
        }
        for (int i = 0; i < eventTriggerCriteria_.size(); i++) {
          output.writeMessage(3, eventTriggerCriteria_.get(i));
        }
      }

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

        size = 0;
        if (numPreTriggerSamples_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, numPreTriggerSamples_);
        }
        if (numPostTriggerSamples_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, numPostTriggerSamples_);
        }
        for (int i = 0; i < eventTriggerCriteria_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, eventTriggerCriteria_.get(i));
        }
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy) obj;

        boolean result = true;
        result = result && (getNumPreTriggerSamples()
            == other.getNumPreTriggerSamples());
        result = result && (getNumPostTriggerSamples()
            == other.getNumPostTriggerSamples());
        result = result && getEventTriggerCriteriaList()
            .equals(other.getEventTriggerCriteriaList());
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + NUMPRETRIGGERSAMPLES_FIELD_NUMBER;
        hash = (53 * hash) + getNumPreTriggerSamples();
        hash = (37 * hash) + NUMPOSTTRIGGERSAMPLES_FIELD_NUMBER;
        hash = (53 * hash) + getNumPostTriggerSamples();
        if (getEventTriggerCriteriaCount() > 0) {
          hash = (37 * hash) + EVENTTRIGGERCRITERIA_FIELD_NUMBER;
          hash = (53 * hash) + getEventTriggerCriteriaList().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy 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.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy)
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicyOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_CaptureWindowPolicy_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_CaptureWindowPolicy_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getEventTriggerCriteriaFieldBuilder();
          }
        }
        public Builder clear() {
          super.clear();
          numPreTriggerSamples_ = 0;

          numPostTriggerSamples_ = 0;

          if (eventTriggerCriteriaBuilder_ == null) {
            eventTriggerCriteria_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            eventTriggerCriteriaBuilder_.clear();
          }
          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          result.numPreTriggerSamples_ = numPreTriggerSamples_;
          result.numPostTriggerSamples_ = numPostTriggerSamples_;
          if (eventTriggerCriteriaBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004)) {
              eventTriggerCriteria_ = java.util.Collections.unmodifiableList(eventTriggerCriteria_);
              bitField0_ = (bitField0_ & ~0x00000004);
            }
            result.eventTriggerCriteria_ = eventTriggerCriteria_;
          } else {
            result.eventTriggerCriteria_ = eventTriggerCriteriaBuilder_.build();
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.getDefaultInstance()) return this;
          if (other.getNumPreTriggerSamples() != 0) {
            setNumPreTriggerSamples(other.getNumPreTriggerSamples());
          }
          if (other.getNumPostTriggerSamples() != 0) {
            setNumPostTriggerSamples(other.getNumPostTriggerSamples());
          }
          if (eventTriggerCriteriaBuilder_ == null) {
            if (!other.eventTriggerCriteria_.isEmpty()) {
              if (eventTriggerCriteria_.isEmpty()) {
                eventTriggerCriteria_ = other.eventTriggerCriteria_;
                bitField0_ = (bitField0_ & ~0x00000004);
              } else {
                ensureEventTriggerCriteriaIsMutable();
                eventTriggerCriteria_.addAll(other.eventTriggerCriteria_);
              }
              onChanged();
            }
          } else {
            if (!other.eventTriggerCriteria_.isEmpty()) {
              if (eventTriggerCriteriaBuilder_.isEmpty()) {
                eventTriggerCriteriaBuilder_.dispose();
                eventTriggerCriteriaBuilder_ = null;
                eventTriggerCriteria_ = other.eventTriggerCriteria_;
                bitField0_ = (bitField0_ & ~0x00000004);
                eventTriggerCriteriaBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getEventTriggerCriteriaFieldBuilder() : null;
              } else {
                eventTriggerCriteriaBuilder_.addAllMessages(other.eventTriggerCriteria_);
              }
            }
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int numPreTriggerSamples_ ;
        /**
         * <pre>
         *&#47; indicates the number of samples to buffer for the window prior to the trigger event.
         * </pre>
         *
         * <code>int32 numPreTriggerSamples = 1;</code>
         */
        public int getNumPreTriggerSamples() {
          return numPreTriggerSamples_;
        }
        /**
         * <pre>
         *&#47; indicates the number of samples to buffer for the window prior to the trigger event.
         * </pre>
         *
         * <code>int32 numPreTriggerSamples = 1;</code>
         */
        public Builder setNumPreTriggerSamples(int value) {
          
          numPreTriggerSamples_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; indicates the number of samples to buffer for the window prior to the trigger event.
         * </pre>
         *
         * <code>int32 numPreTriggerSamples = 1;</code>
         */
        public Builder clearNumPreTriggerSamples() {
          
          numPreTriggerSamples_ = 0;
          onChanged();
          return this;
        }

        private int numPostTriggerSamples_ ;
        /**
         * <pre>
         *&#47; indicates the number of samples to buffer for the window after the trigger event.  
         * </pre>
         *
         * <code>int32 numPostTriggerSamples = 2;</code>
         */
        public int getNumPostTriggerSamples() {
          return numPostTriggerSamples_;
        }
        /**
         * <pre>
         *&#47; indicates the number of samples to buffer for the window after the trigger event.  
         * </pre>
         *
         * <code>int32 numPostTriggerSamples = 2;</code>
         */
        public Builder setNumPostTriggerSamples(int value) {
          
          numPostTriggerSamples_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; indicates the number of samples to buffer for the window after the trigger event.  
         * </pre>
         *
         * <code>int32 numPostTriggerSamples = 2;</code>
         */
        public Builder clearNumPostTriggerSamples() {
          
          numPostTriggerSamples_ = 0;
          onChanged();
          return this;
        }

        private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria> eventTriggerCriteria_ =
          java.util.Collections.emptyList();
        private void ensureEventTriggerCriteriaIsMutable() {
          if (!((bitField0_ & 0x00000004) == 0x00000004)) {
            eventTriggerCriteria_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria>(eventTriggerCriteria_);
            bitField0_ |= 0x00000004;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteriaOrBuilder> eventTriggerCriteriaBuilder_;

        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria> getEventTriggerCriteriaList() {
          if (eventTriggerCriteriaBuilder_ == null) {
            return java.util.Collections.unmodifiableList(eventTriggerCriteria_);
          } else {
            return eventTriggerCriteriaBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public int getEventTriggerCriteriaCount() {
          if (eventTriggerCriteriaBuilder_ == null) {
            return eventTriggerCriteria_.size();
          } else {
            return eventTriggerCriteriaBuilder_.getCount();
          }
        }
        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria getEventTriggerCriteria(int index) {
          if (eventTriggerCriteriaBuilder_ == null) {
            return eventTriggerCriteria_.get(index);
          } else {
            return eventTriggerCriteriaBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public Builder setEventTriggerCriteria(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria value) {
          if (eventTriggerCriteriaBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureEventTriggerCriteriaIsMutable();
            eventTriggerCriteria_.set(index, value);
            onChanged();
          } else {
            eventTriggerCriteriaBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public Builder setEventTriggerCriteria(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder builderForValue) {
          if (eventTriggerCriteriaBuilder_ == null) {
            ensureEventTriggerCriteriaIsMutable();
            eventTriggerCriteria_.set(index, builderForValue.build());
            onChanged();
          } else {
            eventTriggerCriteriaBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public Builder addEventTriggerCriteria(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria value) {
          if (eventTriggerCriteriaBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureEventTriggerCriteriaIsMutable();
            eventTriggerCriteria_.add(value);
            onChanged();
          } else {
            eventTriggerCriteriaBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public Builder addEventTriggerCriteria(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria value) {
          if (eventTriggerCriteriaBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureEventTriggerCriteriaIsMutable();
            eventTriggerCriteria_.add(index, value);
            onChanged();
          } else {
            eventTriggerCriteriaBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public Builder addEventTriggerCriteria(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder builderForValue) {
          if (eventTriggerCriteriaBuilder_ == null) {
            ensureEventTriggerCriteriaIsMutable();
            eventTriggerCriteria_.add(builderForValue.build());
            onChanged();
          } else {
            eventTriggerCriteriaBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public Builder addEventTriggerCriteria(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder builderForValue) {
          if (eventTriggerCriteriaBuilder_ == null) {
            ensureEventTriggerCriteriaIsMutable();
            eventTriggerCriteria_.add(index, builderForValue.build());
            onChanged();
          } else {
            eventTriggerCriteriaBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public Builder addAllEventTriggerCriteria(
            java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria> values) {
          if (eventTriggerCriteriaBuilder_ == null) {
            ensureEventTriggerCriteriaIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, eventTriggerCriteria_);
            onChanged();
          } else {
            eventTriggerCriteriaBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public Builder clearEventTriggerCriteria() {
          if (eventTriggerCriteriaBuilder_ == null) {
            eventTriggerCriteria_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
            onChanged();
          } else {
            eventTriggerCriteriaBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public Builder removeEventTriggerCriteria(int index) {
          if (eventTriggerCriteriaBuilder_ == null) {
            ensureEventTriggerCriteriaIsMutable();
            eventTriggerCriteria_.remove(index);
            onChanged();
          } else {
            eventTriggerCriteriaBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder getEventTriggerCriteriaBuilder(
            int index) {
          return getEventTriggerCriteriaFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteriaOrBuilder getEventTriggerCriteriaOrBuilder(
            int index) {
          if (eventTriggerCriteriaBuilder_ == null) {
            return eventTriggerCriteria_.get(index);  } else {
            return eventTriggerCriteriaBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteriaOrBuilder> 
             getEventTriggerCriteriaOrBuilderList() {
          if (eventTriggerCriteriaBuilder_ != null) {
            return eventTriggerCriteriaBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(eventTriggerCriteria_);
          }
        }
        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder addEventTriggerCriteriaBuilder() {
          return getEventTriggerCriteriaFieldBuilder().addBuilder(
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder addEventTriggerCriteriaBuilder(
            int index) {
          return getEventTriggerCriteriaFieldBuilder().addBuilder(
              index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; contains a list of trigger criteria.  This essentially ORs multiple trigger criteria together.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria eventTriggerCriteria = 3;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder> 
             getEventTriggerCriteriaBuilderList() {
          return getEventTriggerCriteriaFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteriaOrBuilder> 
            getEventTriggerCriteriaFieldBuilder() {
          if (eventTriggerCriteriaBuilder_ == null) {
            eventTriggerCriteriaBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteriaOrBuilder>(
                    eventTriggerCriteria_,
                    ((bitField0_ & 0x00000004) == 0x00000004),
                    getParentForChildren(),
                    isClean());
            eventTriggerCriteria_ = null;
          }
          return eventTriggerCriteriaBuilder_;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface DataSetSubscriptionOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47; deprecated
       * </pre>
       *
       * <code>int32 period = 1;</code>
       */
      int getPeriod();

      /**
       * <pre>
       *&#47; data collection frequency
       * </pre>
       *
       * <code>int32 frequency = 10;</code>
       */
      int getFrequency();

      /**
       * <pre>
       *&#47; list of signals to be collected
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
       */
      java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal> 
          getDataSetSignalList();
      /**
       * <pre>
       *&#47; list of signals to be collected
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal getDataSetSignal(int index);
      /**
       * <pre>
       *&#47; list of signals to be collected
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
       */
      int getDataSetSignalCount();
      /**
       * <pre>
       *&#47; list of signals to be collected
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
       */
      java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignalOrBuilder> 
          getDataSetSignalOrBuilderList();
      /**
       * <pre>
       *&#47; list of signals to be collected
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignalOrBuilder getDataSetSignalOrBuilder(
          int index);

      /**
       * <pre>
       *&#47; unique identifier for this data set, needed for the receiver to decode the list of signals
       * </pre>
       *
       * <code>int64 dataSetId = 3;</code>
       */
      long getDataSetId();

      /**
       * <pre>
       *&#47; criteria to determine how data should be queued and sent
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy queuePolicy = 4;</code>
       */
      boolean hasQueuePolicy();
      /**
       * <pre>
       *&#47; criteria to determine how data should be queued and sent
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy queuePolicy = 4;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy getQueuePolicy();
      /**
       * <pre>
       *&#47; criteria to determine how data should be queued and sent
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy queuePolicy = 4;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicyOrBuilder getQueuePolicyOrBuilder();

      /**
       * <pre>
       *&#47; criteria to determine whether data should be sent or not sent
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
       */
      java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria> 
          getFilterExpressionList();
      /**
       * <pre>
       *&#47; criteria to determine whether data should be sent or not sent
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria getFilterExpression(int index);
      /**
       * <pre>
       *&#47; criteria to determine whether data should be sent or not sent
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
       */
      int getFilterExpressionCount();
      /**
       * <pre>
       *&#47; criteria to determine whether data should be sent or not sent
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
       */
      java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder> 
          getFilterExpressionOrBuilderList();
      /**
       * <pre>
       *&#47; criteria to determine whether data should be sent or not sent
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder getFilterExpressionOrBuilder(
          int index);

      /**
       * <pre>
       *&#47; how differential timestamps shall be encoded in multiple row datasets 
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum differentialTSEncodingType = 6;</code>
       */
      int getDifferentialTSEncodingTypeValue();
      /**
       * <pre>
       *&#47; how differential timestamps shall be encoded in multiple row datasets 
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum differentialTSEncodingType = 6;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum getDifferentialTSEncodingType();

      /**
       * <pre>
       *&#47; defines criteria for creating a capture window to record data pre and post event.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy captureWindowPolicy = 7;</code>
       */
      boolean hasCaptureWindowPolicy();
      /**
       * <pre>
       *&#47; defines criteria for creating a capture window to record data pre and post event.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy captureWindowPolicy = 7;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy getCaptureWindowPolicy();
      /**
       * <pre>
       *&#47; defines criteria for creating a capture window to record data pre and post event.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy captureWindowPolicy = 7;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicyOrBuilder getCaptureWindowPolicyOrBuilder();

      /**
       * <pre>
       *&#47; Indicates if the included list of signals is to be monitored for changes at the period defined in this DataSet.  If true, then the captureWindowPolicy shall be ignored.  The OnChange and CaptureWindow policies are incompatible and should not be defined in the same DataSetSubscription.  
       * </pre>
       *
       * <code>bool isOnChangeDataSet = 8;</code>
       */
      boolean getIsOnChangeDataSet();

      /**
       * <pre>
       *&#47; Indicate the use of the signalId value in the dataSetSignal list.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum signalIdType = 9;</code>
       */
      int getSignalIdTypeValue();
      /**
       * <pre>
       *&#47; Indicate the use of the signalId value in the dataSetSignal list.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum signalIdType = 9;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum getSignalIdType();
    }
    /**
     * <pre>
     **
     * Criteria for what data elements should be collected and at what rate, and how collected data should be queued and transmitted to the SDP.
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription}
     */
    public  static final class DataSetSubscription extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription)
        DataSetSubscriptionOrBuilder {
      // Use DataSetSubscription.newBuilder() to construct.
      private DataSetSubscription(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private DataSetSubscription() {
        period_ = 0;
        frequency_ = 0;
        dataSetSignal_ = java.util.Collections.emptyList();
        dataSetId_ = 0L;
        filterExpression_ = java.util.Collections.emptyList();
        differentialTSEncodingType_ = 0;
        isOnChangeDataSet_ = false;
        signalIdType_ = 0;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private DataSetSubscription(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 8: {

                period_ = input.readInt32();
                break;
              }
              case 18: {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  dataSetSignal_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal>();
                  mutable_bitField0_ |= 0x00000004;
                }
                dataSetSignal_.add(
                    input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.parser(), extensionRegistry));
                break;
              }
              case 24: {

                dataSetId_ = input.readInt64();
                break;
              }
              case 34: {
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.Builder subBuilder = null;
                if (queuePolicy_ != null) {
                  subBuilder = queuePolicy_.toBuilder();
                }
                queuePolicy_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(queuePolicy_);
                  queuePolicy_ = subBuilder.buildPartial();
                }

                break;
              }
              case 42: {
                if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                  filterExpression_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria>();
                  mutable_bitField0_ |= 0x00000020;
                }
                filterExpression_.add(
                    input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.parser(), extensionRegistry));
                break;
              }
              case 48: {
                int rawValue = input.readEnum();

                differentialTSEncodingType_ = rawValue;
                break;
              }
              case 58: {
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.Builder subBuilder = null;
                if (captureWindowPolicy_ != null) {
                  subBuilder = captureWindowPolicy_.toBuilder();
                }
                captureWindowPolicy_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(captureWindowPolicy_);
                  captureWindowPolicy_ = subBuilder.buildPartial();
                }

                break;
              }
              case 64: {

                isOnChangeDataSet_ = input.readBool();
                break;
              }
              case 72: {
                int rawValue = input.readEnum();

                signalIdType_ = rawValue;
                break;
              }
              case 80: {

                frequency_ = input.readInt32();
                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_ & 0x00000004) == 0x00000004)) {
            dataSetSignal_ = java.util.Collections.unmodifiableList(dataSetSignal_);
          }
          if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
            filterExpression_ = java.util.Collections.unmodifiableList(filterExpression_);
          }
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSubscription_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSubscription_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.Builder.class);
      }

      private int bitField0_;
      public static final int PERIOD_FIELD_NUMBER = 1;
      private int period_;
      /**
       * <pre>
       *&#47; deprecated
       * </pre>
       *
       * <code>int32 period = 1;</code>
       */
      public int getPeriod() {
        return period_;
      }

      public static final int FREQUENCY_FIELD_NUMBER = 10;
      private int frequency_;
      /**
       * <pre>
       *&#47; data collection frequency
       * </pre>
       *
       * <code>int32 frequency = 10;</code>
       */
      public int getFrequency() {
        return frequency_;
      }

      public static final int DATASETSIGNAL_FIELD_NUMBER = 2;
      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal> dataSetSignal_;
      /**
       * <pre>
       *&#47; list of signals to be collected
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal> getDataSetSignalList() {
        return dataSetSignal_;
      }
      /**
       * <pre>
       *&#47; list of signals to be collected
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignalOrBuilder> 
          getDataSetSignalOrBuilderList() {
        return dataSetSignal_;
      }
      /**
       * <pre>
       *&#47; list of signals to be collected
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
       */
      public int getDataSetSignalCount() {
        return dataSetSignal_.size();
      }
      /**
       * <pre>
       *&#47; list of signals to be collected
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal getDataSetSignal(int index) {
        return dataSetSignal_.get(index);
      }
      /**
       * <pre>
       *&#47; list of signals to be collected
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignalOrBuilder getDataSetSignalOrBuilder(
          int index) {
        return dataSetSignal_.get(index);
      }

      public static final int DATASETID_FIELD_NUMBER = 3;
      private long dataSetId_;
      /**
       * <pre>
       *&#47; unique identifier for this data set, needed for the receiver to decode the list of signals
       * </pre>
       *
       * <code>int64 dataSetId = 3;</code>
       */
      public long getDataSetId() {
        return dataSetId_;
      }

      public static final int QUEUEPOLICY_FIELD_NUMBER = 4;
      private com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy queuePolicy_;
      /**
       * <pre>
       *&#47; criteria to determine how data should be queued and sent
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy queuePolicy = 4;</code>
       */
      public boolean hasQueuePolicy() {
        return queuePolicy_ != null;
      }
      /**
       * <pre>
       *&#47; criteria to determine how data should be queued and sent
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy queuePolicy = 4;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy getQueuePolicy() {
        return queuePolicy_ == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.getDefaultInstance() : queuePolicy_;
      }
      /**
       * <pre>
       *&#47; criteria to determine how data should be queued and sent
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy queuePolicy = 4;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicyOrBuilder getQueuePolicyOrBuilder() {
        return getQueuePolicy();
      }

      public static final int FILTEREXPRESSION_FIELD_NUMBER = 5;
      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria> filterExpression_;
      /**
       * <pre>
       *&#47; criteria to determine whether data should be sent or not sent
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria> getFilterExpressionList() {
        return filterExpression_;
      }
      /**
       * <pre>
       *&#47; criteria to determine whether data should be sent or not sent
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder> 
          getFilterExpressionOrBuilderList() {
        return filterExpression_;
      }
      /**
       * <pre>
       *&#47; criteria to determine whether data should be sent or not sent
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
       */
      public int getFilterExpressionCount() {
        return filterExpression_.size();
      }
      /**
       * <pre>
       *&#47; criteria to determine whether data should be sent or not sent
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria getFilterExpression(int index) {
        return filterExpression_.get(index);
      }
      /**
       * <pre>
       *&#47; criteria to determine whether data should be sent or not sent
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder getFilterExpressionOrBuilder(
          int index) {
        return filterExpression_.get(index);
      }

      public static final int DIFFERENTIALTSENCODINGTYPE_FIELD_NUMBER = 6;
      private int differentialTSEncodingType_;
      /**
       * <pre>
       *&#47; how differential timestamps shall be encoded in multiple row datasets 
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum differentialTSEncodingType = 6;</code>
       */
      public int getDifferentialTSEncodingTypeValue() {
        return differentialTSEncodingType_;
      }
      /**
       * <pre>
       *&#47; how differential timestamps shall be encoded in multiple row datasets 
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum differentialTSEncodingType = 6;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum getDifferentialTSEncodingType() {
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum result = com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum.valueOf(differentialTSEncodingType_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum.UNRECOGNIZED : result;
      }

      public static final int CAPTUREWINDOWPOLICY_FIELD_NUMBER = 7;
      private com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy captureWindowPolicy_;
      /**
       * <pre>
       *&#47; defines criteria for creating a capture window to record data pre and post event.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy captureWindowPolicy = 7;</code>
       */
      public boolean hasCaptureWindowPolicy() {
        return captureWindowPolicy_ != null;
      }
      /**
       * <pre>
       *&#47; defines criteria for creating a capture window to record data pre and post event.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy captureWindowPolicy = 7;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy getCaptureWindowPolicy() {
        return captureWindowPolicy_ == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.getDefaultInstance() : captureWindowPolicy_;
      }
      /**
       * <pre>
       *&#47; defines criteria for creating a capture window to record data pre and post event.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy captureWindowPolicy = 7;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicyOrBuilder getCaptureWindowPolicyOrBuilder() {
        return getCaptureWindowPolicy();
      }

      public static final int ISONCHANGEDATASET_FIELD_NUMBER = 8;
      private boolean isOnChangeDataSet_;
      /**
       * <pre>
       *&#47; Indicates if the included list of signals is to be monitored for changes at the period defined in this DataSet.  If true, then the captureWindowPolicy shall be ignored.  The OnChange and CaptureWindow policies are incompatible and should not be defined in the same DataSetSubscription.  
       * </pre>
       *
       * <code>bool isOnChangeDataSet = 8;</code>
       */
      public boolean getIsOnChangeDataSet() {
        return isOnChangeDataSet_;
      }

      public static final int SIGNALIDTYPE_FIELD_NUMBER = 9;
      private int signalIdType_;
      /**
       * <pre>
       *&#47; Indicate the use of the signalId value in the dataSetSignal list.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum signalIdType = 9;</code>
       */
      public int getSignalIdTypeValue() {
        return signalIdType_;
      }
      /**
       * <pre>
       *&#47; Indicate the use of the signalId value in the dataSetSignal list.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum signalIdType = 9;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum getSignalIdType() {
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum result = com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum.valueOf(signalIdType_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum.UNRECOGNIZED : 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 (period_ != 0) {
          output.writeInt32(1, period_);
        }
        for (int i = 0; i < dataSetSignal_.size(); i++) {
          output.writeMessage(2, dataSetSignal_.get(i));
        }
        if (dataSetId_ != 0L) {
          output.writeInt64(3, dataSetId_);
        }
        if (queuePolicy_ != null) {
          output.writeMessage(4, getQueuePolicy());
        }
        for (int i = 0; i < filterExpression_.size(); i++) {
          output.writeMessage(5, filterExpression_.get(i));
        }
        if (differentialTSEncodingType_ != com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum.NONE.getNumber()) {
          output.writeEnum(6, differentialTSEncodingType_);
        }
        if (captureWindowPolicy_ != null) {
          output.writeMessage(7, getCaptureWindowPolicy());
        }
        if (isOnChangeDataSet_ != false) {
          output.writeBool(8, isOnChangeDataSet_);
        }
        if (signalIdType_ != com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum.INDEX_DATASETSIGNALS.getNumber()) {
          output.writeEnum(9, signalIdType_);
        }
        if (frequency_ != 0) {
          output.writeInt32(10, frequency_);
        }
      }

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

        size = 0;
        if (period_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, period_);
        }
        for (int i = 0; i < dataSetSignal_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, dataSetSignal_.get(i));
        }
        if (dataSetId_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(3, dataSetId_);
        }
        if (queuePolicy_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, getQueuePolicy());
        }
        for (int i = 0; i < filterExpression_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, filterExpression_.get(i));
        }
        if (differentialTSEncodingType_ != com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum.NONE.getNumber()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(6, differentialTSEncodingType_);
        }
        if (captureWindowPolicy_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(7, getCaptureWindowPolicy());
        }
        if (isOnChangeDataSet_ != false) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(8, isOnChangeDataSet_);
        }
        if (signalIdType_ != com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum.INDEX_DATASETSIGNALS.getNumber()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(9, signalIdType_);
        }
        if (frequency_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(10, frequency_);
        }
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription) obj;

        boolean result = true;
        result = result && (getPeriod()
            == other.getPeriod());
        result = result && (getFrequency()
            == other.getFrequency());
        result = result && getDataSetSignalList()
            .equals(other.getDataSetSignalList());
        result = result && (getDataSetId()
            == other.getDataSetId());
        result = result && (hasQueuePolicy() == other.hasQueuePolicy());
        if (hasQueuePolicy()) {
          result = result && getQueuePolicy()
              .equals(other.getQueuePolicy());
        }
        result = result && getFilterExpressionList()
            .equals(other.getFilterExpressionList());
        result = result && differentialTSEncodingType_ == other.differentialTSEncodingType_;
        result = result && (hasCaptureWindowPolicy() == other.hasCaptureWindowPolicy());
        if (hasCaptureWindowPolicy()) {
          result = result && getCaptureWindowPolicy()
              .equals(other.getCaptureWindowPolicy());
        }
        result = result && (getIsOnChangeDataSet()
            == other.getIsOnChangeDataSet());
        result = result && signalIdType_ == other.signalIdType_;
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + PERIOD_FIELD_NUMBER;
        hash = (53 * hash) + getPeriod();
        hash = (37 * hash) + FREQUENCY_FIELD_NUMBER;
        hash = (53 * hash) + getFrequency();
        if (getDataSetSignalCount() > 0) {
          hash = (37 * hash) + DATASETSIGNAL_FIELD_NUMBER;
          hash = (53 * hash) + getDataSetSignalList().hashCode();
        }
        hash = (37 * hash) + DATASETID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getDataSetId());
        if (hasQueuePolicy()) {
          hash = (37 * hash) + QUEUEPOLICY_FIELD_NUMBER;
          hash = (53 * hash) + getQueuePolicy().hashCode();
        }
        if (getFilterExpressionCount() > 0) {
          hash = (37 * hash) + FILTEREXPRESSION_FIELD_NUMBER;
          hash = (53 * hash) + getFilterExpressionList().hashCode();
        }
        hash = (37 * hash) + DIFFERENTIALTSENCODINGTYPE_FIELD_NUMBER;
        hash = (53 * hash) + differentialTSEncodingType_;
        if (hasCaptureWindowPolicy()) {
          hash = (37 * hash) + CAPTUREWINDOWPOLICY_FIELD_NUMBER;
          hash = (53 * hash) + getCaptureWindowPolicy().hashCode();
        }
        hash = (37 * hash) + ISONCHANGEDATASET_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsOnChangeDataSet());
        hash = (37 * hash) + SIGNALIDTYPE_FIELD_NUMBER;
        hash = (53 * hash) + signalIdType_;
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription 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>
       **
       * Criteria for what data elements should be collected and at what rate, and how collected data should be queued and transmitted to the SDP.
       * </pre>
       *
       * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription)
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscriptionOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSubscription_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSubscription_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getDataSetSignalFieldBuilder();
            getFilterExpressionFieldBuilder();
          }
        }
        public Builder clear() {
          super.clear();
          period_ = 0;

          frequency_ = 0;

          if (dataSetSignalBuilder_ == null) {
            dataSetSignal_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            dataSetSignalBuilder_.clear();
          }
          dataSetId_ = 0L;

          if (queuePolicyBuilder_ == null) {
            queuePolicy_ = null;
          } else {
            queuePolicy_ = null;
            queuePolicyBuilder_ = null;
          }
          if (filterExpressionBuilder_ == null) {
            filterExpression_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000020);
          } else {
            filterExpressionBuilder_.clear();
          }
          differentialTSEncodingType_ = 0;

          if (captureWindowPolicyBuilder_ == null) {
            captureWindowPolicy_ = null;
          } else {
            captureWindowPolicy_ = null;
            captureWindowPolicyBuilder_ = null;
          }
          isOnChangeDataSet_ = false;

          signalIdType_ = 0;

          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          result.period_ = period_;
          result.frequency_ = frequency_;
          if (dataSetSignalBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004)) {
              dataSetSignal_ = java.util.Collections.unmodifiableList(dataSetSignal_);
              bitField0_ = (bitField0_ & ~0x00000004);
            }
            result.dataSetSignal_ = dataSetSignal_;
          } else {
            result.dataSetSignal_ = dataSetSignalBuilder_.build();
          }
          result.dataSetId_ = dataSetId_;
          if (queuePolicyBuilder_ == null) {
            result.queuePolicy_ = queuePolicy_;
          } else {
            result.queuePolicy_ = queuePolicyBuilder_.build();
          }
          if (filterExpressionBuilder_ == null) {
            if (((bitField0_ & 0x00000020) == 0x00000020)) {
              filterExpression_ = java.util.Collections.unmodifiableList(filterExpression_);
              bitField0_ = (bitField0_ & ~0x00000020);
            }
            result.filterExpression_ = filterExpression_;
          } else {
            result.filterExpression_ = filterExpressionBuilder_.build();
          }
          result.differentialTSEncodingType_ = differentialTSEncodingType_;
          if (captureWindowPolicyBuilder_ == null) {
            result.captureWindowPolicy_ = captureWindowPolicy_;
          } else {
            result.captureWindowPolicy_ = captureWindowPolicyBuilder_.build();
          }
          result.isOnChangeDataSet_ = isOnChangeDataSet_;
          result.signalIdType_ = signalIdType_;
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.getDefaultInstance()) return this;
          if (other.getPeriod() != 0) {
            setPeriod(other.getPeriod());
          }
          if (other.getFrequency() != 0) {
            setFrequency(other.getFrequency());
          }
          if (dataSetSignalBuilder_ == null) {
            if (!other.dataSetSignal_.isEmpty()) {
              if (dataSetSignal_.isEmpty()) {
                dataSetSignal_ = other.dataSetSignal_;
                bitField0_ = (bitField0_ & ~0x00000004);
              } else {
                ensureDataSetSignalIsMutable();
                dataSetSignal_.addAll(other.dataSetSignal_);
              }
              onChanged();
            }
          } else {
            if (!other.dataSetSignal_.isEmpty()) {
              if (dataSetSignalBuilder_.isEmpty()) {
                dataSetSignalBuilder_.dispose();
                dataSetSignalBuilder_ = null;
                dataSetSignal_ = other.dataSetSignal_;
                bitField0_ = (bitField0_ & ~0x00000004);
                dataSetSignalBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getDataSetSignalFieldBuilder() : null;
              } else {
                dataSetSignalBuilder_.addAllMessages(other.dataSetSignal_);
              }
            }
          }
          if (other.getDataSetId() != 0L) {
            setDataSetId(other.getDataSetId());
          }
          if (other.hasQueuePolicy()) {
            mergeQueuePolicy(other.getQueuePolicy());
          }
          if (filterExpressionBuilder_ == null) {
            if (!other.filterExpression_.isEmpty()) {
              if (filterExpression_.isEmpty()) {
                filterExpression_ = other.filterExpression_;
                bitField0_ = (bitField0_ & ~0x00000020);
              } else {
                ensureFilterExpressionIsMutable();
                filterExpression_.addAll(other.filterExpression_);
              }
              onChanged();
            }
          } else {
            if (!other.filterExpression_.isEmpty()) {
              if (filterExpressionBuilder_.isEmpty()) {
                filterExpressionBuilder_.dispose();
                filterExpressionBuilder_ = null;
                filterExpression_ = other.filterExpression_;
                bitField0_ = (bitField0_ & ~0x00000020);
                filterExpressionBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getFilterExpressionFieldBuilder() : null;
              } else {
                filterExpressionBuilder_.addAllMessages(other.filterExpression_);
              }
            }
          }
          if (other.differentialTSEncodingType_ != 0) {
            setDifferentialTSEncodingTypeValue(other.getDifferentialTSEncodingTypeValue());
          }
          if (other.hasCaptureWindowPolicy()) {
            mergeCaptureWindowPolicy(other.getCaptureWindowPolicy());
          }
          if (other.getIsOnChangeDataSet() != false) {
            setIsOnChangeDataSet(other.getIsOnChangeDataSet());
          }
          if (other.signalIdType_ != 0) {
            setSignalIdTypeValue(other.getSignalIdTypeValue());
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int period_ ;
        /**
         * <pre>
         *&#47; deprecated
         * </pre>
         *
         * <code>int32 period = 1;</code>
         */
        public int getPeriod() {
          return period_;
        }
        /**
         * <pre>
         *&#47; deprecated
         * </pre>
         *
         * <code>int32 period = 1;</code>
         */
        public Builder setPeriod(int value) {
          
          period_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; deprecated
         * </pre>
         *
         * <code>int32 period = 1;</code>
         */
        public Builder clearPeriod() {
          
          period_ = 0;
          onChanged();
          return this;
        }

        private int frequency_ ;
        /**
         * <pre>
         *&#47; data collection frequency
         * </pre>
         *
         * <code>int32 frequency = 10;</code>
         */
        public int getFrequency() {
          return frequency_;
        }
        /**
         * <pre>
         *&#47; data collection frequency
         * </pre>
         *
         * <code>int32 frequency = 10;</code>
         */
        public Builder setFrequency(int value) {
          
          frequency_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; data collection frequency
         * </pre>
         *
         * <code>int32 frequency = 10;</code>
         */
        public Builder clearFrequency() {
          
          frequency_ = 0;
          onChanged();
          return this;
        }

        private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal> dataSetSignal_ =
          java.util.Collections.emptyList();
        private void ensureDataSetSignalIsMutable() {
          if (!((bitField0_ & 0x00000004) == 0x00000004)) {
            dataSetSignal_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal>(dataSetSignal_);
            bitField0_ |= 0x00000004;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignalOrBuilder> dataSetSignalBuilder_;

        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal> getDataSetSignalList() {
          if (dataSetSignalBuilder_ == null) {
            return java.util.Collections.unmodifiableList(dataSetSignal_);
          } else {
            return dataSetSignalBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public int getDataSetSignalCount() {
          if (dataSetSignalBuilder_ == null) {
            return dataSetSignal_.size();
          } else {
            return dataSetSignalBuilder_.getCount();
          }
        }
        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal getDataSetSignal(int index) {
          if (dataSetSignalBuilder_ == null) {
            return dataSetSignal_.get(index);
          } else {
            return dataSetSignalBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public Builder setDataSetSignal(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal value) {
          if (dataSetSignalBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureDataSetSignalIsMutable();
            dataSetSignal_.set(index, value);
            onChanged();
          } else {
            dataSetSignalBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public Builder setDataSetSignal(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.Builder builderForValue) {
          if (dataSetSignalBuilder_ == null) {
            ensureDataSetSignalIsMutable();
            dataSetSignal_.set(index, builderForValue.build());
            onChanged();
          } else {
            dataSetSignalBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public Builder addDataSetSignal(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal value) {
          if (dataSetSignalBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureDataSetSignalIsMutable();
            dataSetSignal_.add(value);
            onChanged();
          } else {
            dataSetSignalBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public Builder addDataSetSignal(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal value) {
          if (dataSetSignalBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureDataSetSignalIsMutable();
            dataSetSignal_.add(index, value);
            onChanged();
          } else {
            dataSetSignalBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public Builder addDataSetSignal(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.Builder builderForValue) {
          if (dataSetSignalBuilder_ == null) {
            ensureDataSetSignalIsMutable();
            dataSetSignal_.add(builderForValue.build());
            onChanged();
          } else {
            dataSetSignalBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public Builder addDataSetSignal(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.Builder builderForValue) {
          if (dataSetSignalBuilder_ == null) {
            ensureDataSetSignalIsMutable();
            dataSetSignal_.add(index, builderForValue.build());
            onChanged();
          } else {
            dataSetSignalBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public Builder addAllDataSetSignal(
            java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal> values) {
          if (dataSetSignalBuilder_ == null) {
            ensureDataSetSignalIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, dataSetSignal_);
            onChanged();
          } else {
            dataSetSignalBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public Builder clearDataSetSignal() {
          if (dataSetSignalBuilder_ == null) {
            dataSetSignal_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
            onChanged();
          } else {
            dataSetSignalBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public Builder removeDataSetSignal(int index) {
          if (dataSetSignalBuilder_ == null) {
            ensureDataSetSignalIsMutable();
            dataSetSignal_.remove(index);
            onChanged();
          } else {
            dataSetSignalBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.Builder getDataSetSignalBuilder(
            int index) {
          return getDataSetSignalFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignalOrBuilder getDataSetSignalOrBuilder(
            int index) {
          if (dataSetSignalBuilder_ == null) {
            return dataSetSignal_.get(index);  } else {
            return dataSetSignalBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignalOrBuilder> 
             getDataSetSignalOrBuilderList() {
          if (dataSetSignalBuilder_ != null) {
            return dataSetSignalBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(dataSetSignal_);
          }
        }
        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.Builder addDataSetSignalBuilder() {
          return getDataSetSignalFieldBuilder().addBuilder(
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.Builder addDataSetSignalBuilder(
            int index) {
          return getDataSetSignalFieldBuilder().addBuilder(
              index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; list of signals to be collected
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSignal dataSetSignal = 2;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.Builder> 
             getDataSetSignalBuilderList() {
          return getDataSetSignalFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignalOrBuilder> 
            getDataSetSignalFieldBuilder() {
          if (dataSetSignalBuilder_ == null) {
            dataSetSignalBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignal.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSignalOrBuilder>(
                    dataSetSignal_,
                    ((bitField0_ & 0x00000004) == 0x00000004),
                    getParentForChildren(),
                    isClean());
            dataSetSignal_ = null;
          }
          return dataSetSignalBuilder_;
        }

        private long dataSetId_ ;
        /**
         * <pre>
         *&#47; unique identifier for this data set, needed for the receiver to decode the list of signals
         * </pre>
         *
         * <code>int64 dataSetId = 3;</code>
         */
        public long getDataSetId() {
          return dataSetId_;
        }
        /**
         * <pre>
         *&#47; unique identifier for this data set, needed for the receiver to decode the list of signals
         * </pre>
         *
         * <code>int64 dataSetId = 3;</code>
         */
        public Builder setDataSetId(long value) {
          
          dataSetId_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; unique identifier for this data set, needed for the receiver to decode the list of signals
         * </pre>
         *
         * <code>int64 dataSetId = 3;</code>
         */
        public Builder clearDataSetId() {
          
          dataSetId_ = 0L;
          onChanged();
          return this;
        }

        private com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy queuePolicy_ = null;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicyOrBuilder> queuePolicyBuilder_;
        /**
         * <pre>
         *&#47; criteria to determine how data should be queued and sent
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy queuePolicy = 4;</code>
         */
        public boolean hasQueuePolicy() {
          return queuePolicyBuilder_ != null || queuePolicy_ != null;
        }
        /**
         * <pre>
         *&#47; criteria to determine how data should be queued and sent
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy queuePolicy = 4;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy getQueuePolicy() {
          if (queuePolicyBuilder_ == null) {
            return queuePolicy_ == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.getDefaultInstance() : queuePolicy_;
          } else {
            return queuePolicyBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         *&#47; criteria to determine how data should be queued and sent
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy queuePolicy = 4;</code>
         */
        public Builder setQueuePolicy(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy value) {
          if (queuePolicyBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            queuePolicy_ = value;
            onChanged();
          } else {
            queuePolicyBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine how data should be queued and sent
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy queuePolicy = 4;</code>
         */
        public Builder setQueuePolicy(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.Builder builderForValue) {
          if (queuePolicyBuilder_ == null) {
            queuePolicy_ = builderForValue.build();
            onChanged();
          } else {
            queuePolicyBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine how data should be queued and sent
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy queuePolicy = 4;</code>
         */
        public Builder mergeQueuePolicy(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy value) {
          if (queuePolicyBuilder_ == null) {
            if (queuePolicy_ != null) {
              queuePolicy_ =
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.newBuilder(queuePolicy_).mergeFrom(value).buildPartial();
            } else {
              queuePolicy_ = value;
            }
            onChanged();
          } else {
            queuePolicyBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine how data should be queued and sent
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy queuePolicy = 4;</code>
         */
        public Builder clearQueuePolicy() {
          if (queuePolicyBuilder_ == null) {
            queuePolicy_ = null;
            onChanged();
          } else {
            queuePolicy_ = null;
            queuePolicyBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine how data should be queued and sent
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy queuePolicy = 4;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.Builder getQueuePolicyBuilder() {
          
          onChanged();
          return getQueuePolicyFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         *&#47; criteria to determine how data should be queued and sent
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy queuePolicy = 4;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicyOrBuilder getQueuePolicyOrBuilder() {
          if (queuePolicyBuilder_ != null) {
            return queuePolicyBuilder_.getMessageOrBuilder();
          } else {
            return queuePolicy_ == null ?
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.getDefaultInstance() : queuePolicy_;
          }
        }
        /**
         * <pre>
         *&#47; criteria to determine how data should be queued and sent
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.QueuePolicy queuePolicy = 4;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicyOrBuilder> 
            getQueuePolicyFieldBuilder() {
          if (queuePolicyBuilder_ == null) {
            queuePolicyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicy.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.QueuePolicyOrBuilder>(
                    getQueuePolicy(),
                    getParentForChildren(),
                    isClean());
            queuePolicy_ = null;
          }
          return queuePolicyBuilder_;
        }

        private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria> filterExpression_ =
          java.util.Collections.emptyList();
        private void ensureFilterExpressionIsMutable() {
          if (!((bitField0_ & 0x00000020) == 0x00000020)) {
            filterExpression_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria>(filterExpression_);
            bitField0_ |= 0x00000020;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder> filterExpressionBuilder_;

        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria> getFilterExpressionList() {
          if (filterExpressionBuilder_ == null) {
            return java.util.Collections.unmodifiableList(filterExpression_);
          } else {
            return filterExpressionBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public int getFilterExpressionCount() {
          if (filterExpressionBuilder_ == null) {
            return filterExpression_.size();
          } else {
            return filterExpressionBuilder_.getCount();
          }
        }
        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria getFilterExpression(int index) {
          if (filterExpressionBuilder_ == null) {
            return filterExpression_.get(index);
          } else {
            return filterExpressionBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public Builder setFilterExpression(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria value) {
          if (filterExpressionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureFilterExpressionIsMutable();
            filterExpression_.set(index, value);
            onChanged();
          } else {
            filterExpressionBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public Builder setFilterExpression(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder builderForValue) {
          if (filterExpressionBuilder_ == null) {
            ensureFilterExpressionIsMutable();
            filterExpression_.set(index, builderForValue.build());
            onChanged();
          } else {
            filterExpressionBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public Builder addFilterExpression(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria value) {
          if (filterExpressionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureFilterExpressionIsMutable();
            filterExpression_.add(value);
            onChanged();
          } else {
            filterExpressionBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public Builder addFilterExpression(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria value) {
          if (filterExpressionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureFilterExpressionIsMutable();
            filterExpression_.add(index, value);
            onChanged();
          } else {
            filterExpressionBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public Builder addFilterExpression(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder builderForValue) {
          if (filterExpressionBuilder_ == null) {
            ensureFilterExpressionIsMutable();
            filterExpression_.add(builderForValue.build());
            onChanged();
          } else {
            filterExpressionBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public Builder addFilterExpression(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder builderForValue) {
          if (filterExpressionBuilder_ == null) {
            ensureFilterExpressionIsMutable();
            filterExpression_.add(index, builderForValue.build());
            onChanged();
          } else {
            filterExpressionBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public Builder addAllFilterExpression(
            java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria> values) {
          if (filterExpressionBuilder_ == null) {
            ensureFilterExpressionIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, filterExpression_);
            onChanged();
          } else {
            filterExpressionBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public Builder clearFilterExpression() {
          if (filterExpressionBuilder_ == null) {
            filterExpression_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000020);
            onChanged();
          } else {
            filterExpressionBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public Builder removeFilterExpression(int index) {
          if (filterExpressionBuilder_ == null) {
            ensureFilterExpressionIsMutable();
            filterExpression_.remove(index);
            onChanged();
          } else {
            filterExpressionBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder getFilterExpressionBuilder(
            int index) {
          return getFilterExpressionFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder getFilterExpressionOrBuilder(
            int index) {
          if (filterExpressionBuilder_ == null) {
            return filterExpression_.get(index);  } else {
            return filterExpressionBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder> 
             getFilterExpressionOrBuilderList() {
          if (filterExpressionBuilder_ != null) {
            return filterExpressionBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(filterExpression_);
          }
        }
        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder addFilterExpressionBuilder() {
          return getFilterExpressionFieldBuilder().addBuilder(
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder addFilterExpressionBuilder(
            int index) {
          return getFilterExpressionFieldBuilder().addBuilder(
              index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; criteria to determine whether data should be sent or not sent
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.FilterCriteria filterExpression = 5;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder> 
             getFilterExpressionBuilderList() {
          return getFilterExpressionFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder> 
            getFilterExpressionFieldBuilder() {
          if (filterExpressionBuilder_ == null) {
            filterExpressionBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteria.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.FilterCriteriaOrBuilder>(
                    filterExpression_,
                    ((bitField0_ & 0x00000020) == 0x00000020),
                    getParentForChildren(),
                    isClean());
            filterExpression_ = null;
          }
          return filterExpressionBuilder_;
        }

        private int differentialTSEncodingType_ = 0;
        /**
         * <pre>
         *&#47; how differential timestamps shall be encoded in multiple row datasets 
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum differentialTSEncodingType = 6;</code>
         */
        public int getDifferentialTSEncodingTypeValue() {
          return differentialTSEncodingType_;
        }
        /**
         * <pre>
         *&#47; how differential timestamps shall be encoded in multiple row datasets 
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum differentialTSEncodingType = 6;</code>
         */
        public Builder setDifferentialTSEncodingTypeValue(int value) {
          differentialTSEncodingType_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; how differential timestamps shall be encoded in multiple row datasets 
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum differentialTSEncodingType = 6;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum getDifferentialTSEncodingType() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum result = com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum.valueOf(differentialTSEncodingType_);
          return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum.UNRECOGNIZED : result;
        }
        /**
         * <pre>
         *&#47; how differential timestamps shall be encoded in multiple row datasets 
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum differentialTSEncodingType = 6;</code>
         */
        public Builder setDifferentialTSEncodingType(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum value) {
          if (value == null) {
            throw new NullPointerException();
          }
          
          differentialTSEncodingType_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; how differential timestamps shall be encoded in multiple row datasets 
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum differentialTSEncodingType = 6;</code>
         */
        public Builder clearDifferentialTSEncodingType() {
          
          differentialTSEncodingType_ = 0;
          onChanged();
          return this;
        }

        private com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy captureWindowPolicy_ = null;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicyOrBuilder> captureWindowPolicyBuilder_;
        /**
         * <pre>
         *&#47; defines criteria for creating a capture window to record data pre and post event.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy captureWindowPolicy = 7;</code>
         */
        public boolean hasCaptureWindowPolicy() {
          return captureWindowPolicyBuilder_ != null || captureWindowPolicy_ != null;
        }
        /**
         * <pre>
         *&#47; defines criteria for creating a capture window to record data pre and post event.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy captureWindowPolicy = 7;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy getCaptureWindowPolicy() {
          if (captureWindowPolicyBuilder_ == null) {
            return captureWindowPolicy_ == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.getDefaultInstance() : captureWindowPolicy_;
          } else {
            return captureWindowPolicyBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         *&#47; defines criteria for creating a capture window to record data pre and post event.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy captureWindowPolicy = 7;</code>
         */
        public Builder setCaptureWindowPolicy(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy value) {
          if (captureWindowPolicyBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            captureWindowPolicy_ = value;
            onChanged();
          } else {
            captureWindowPolicyBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         *&#47; defines criteria for creating a capture window to record data pre and post event.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy captureWindowPolicy = 7;</code>
         */
        public Builder setCaptureWindowPolicy(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.Builder builderForValue) {
          if (captureWindowPolicyBuilder_ == null) {
            captureWindowPolicy_ = builderForValue.build();
            onChanged();
          } else {
            captureWindowPolicyBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         *&#47; defines criteria for creating a capture window to record data pre and post event.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy captureWindowPolicy = 7;</code>
         */
        public Builder mergeCaptureWindowPolicy(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy value) {
          if (captureWindowPolicyBuilder_ == null) {
            if (captureWindowPolicy_ != null) {
              captureWindowPolicy_ =
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.newBuilder(captureWindowPolicy_).mergeFrom(value).buildPartial();
            } else {
              captureWindowPolicy_ = value;
            }
            onChanged();
          } else {
            captureWindowPolicyBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         *&#47; defines criteria for creating a capture window to record data pre and post event.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy captureWindowPolicy = 7;</code>
         */
        public Builder clearCaptureWindowPolicy() {
          if (captureWindowPolicyBuilder_ == null) {
            captureWindowPolicy_ = null;
            onChanged();
          } else {
            captureWindowPolicy_ = null;
            captureWindowPolicyBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         *&#47; defines criteria for creating a capture window to record data pre and post event.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy captureWindowPolicy = 7;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.Builder getCaptureWindowPolicyBuilder() {
          
          onChanged();
          return getCaptureWindowPolicyFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         *&#47; defines criteria for creating a capture window to record data pre and post event.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy captureWindowPolicy = 7;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicyOrBuilder getCaptureWindowPolicyOrBuilder() {
          if (captureWindowPolicyBuilder_ != null) {
            return captureWindowPolicyBuilder_.getMessageOrBuilder();
          } else {
            return captureWindowPolicy_ == null ?
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.getDefaultInstance() : captureWindowPolicy_;
          }
        }
        /**
         * <pre>
         *&#47; defines criteria for creating a capture window to record data pre and post event.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy captureWindowPolicy = 7;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicyOrBuilder> 
            getCaptureWindowPolicyFieldBuilder() {
          if (captureWindowPolicyBuilder_ == null) {
            captureWindowPolicyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicyOrBuilder>(
                    getCaptureWindowPolicy(),
                    getParentForChildren(),
                    isClean());
            captureWindowPolicy_ = null;
          }
          return captureWindowPolicyBuilder_;
        }

        private boolean isOnChangeDataSet_ ;
        /**
         * <pre>
         *&#47; Indicates if the included list of signals is to be monitored for changes at the period defined in this DataSet.  If true, then the captureWindowPolicy shall be ignored.  The OnChange and CaptureWindow policies are incompatible and should not be defined in the same DataSetSubscription.  
         * </pre>
         *
         * <code>bool isOnChangeDataSet = 8;</code>
         */
        public boolean getIsOnChangeDataSet() {
          return isOnChangeDataSet_;
        }
        /**
         * <pre>
         *&#47; Indicates if the included list of signals is to be monitored for changes at the period defined in this DataSet.  If true, then the captureWindowPolicy shall be ignored.  The OnChange and CaptureWindow policies are incompatible and should not be defined in the same DataSetSubscription.  
         * </pre>
         *
         * <code>bool isOnChangeDataSet = 8;</code>
         */
        public Builder setIsOnChangeDataSet(boolean value) {
          
          isOnChangeDataSet_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Indicates if the included list of signals is to be monitored for changes at the period defined in this DataSet.  If true, then the captureWindowPolicy shall be ignored.  The OnChange and CaptureWindow policies are incompatible and should not be defined in the same DataSetSubscription.  
         * </pre>
         *
         * <code>bool isOnChangeDataSet = 8;</code>
         */
        public Builder clearIsOnChangeDataSet() {
          
          isOnChangeDataSet_ = false;
          onChanged();
          return this;
        }

        private int signalIdType_ = 0;
        /**
         * <pre>
         *&#47; Indicate the use of the signalId value in the dataSetSignal list.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum signalIdType = 9;</code>
         */
        public int getSignalIdTypeValue() {
          return signalIdType_;
        }
        /**
         * <pre>
         *&#47; Indicate the use of the signalId value in the dataSetSignal list.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum signalIdType = 9;</code>
         */
        public Builder setSignalIdTypeValue(int value) {
          signalIdType_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Indicate the use of the signalId value in the dataSetSignal list.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum signalIdType = 9;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum getSignalIdType() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum result = com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum.valueOf(signalIdType_);
          return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum.UNRECOGNIZED : result;
        }
        /**
         * <pre>
         *&#47; Indicate the use of the signalId value in the dataSetSignal list.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum signalIdType = 9;</code>
         */
        public Builder setSignalIdType(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum value) {
          if (value == null) {
            throw new NullPointerException();
          }
          
          signalIdType_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Indicate the use of the signalId value in the dataSetSignal list.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum signalIdType = 9;</code>
         */
        public Builder clearSignalIdType() {
          
          signalIdType_ = 0;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface PolicyApplicationOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47; contain any arbitrary sequence of bytes for this Application
       * </pre>
       *
       * <code>bytes applicationId = 1;</code>
       */
      com.google.protobuf.ByteString getApplicationId();

      /**
       * <pre>
       *&#47; Name of this application
       * </pre>
       *
       * <code>string applicationName = 3;</code>
       */
      java.lang.String getApplicationName();
      /**
       * <pre>
       *&#47; Name of this application
       * </pre>
       *
       * <code>string applicationName = 3;</code>
       */
      com.google.protobuf.ByteString
          getApplicationNameBytes();
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication}
     */
    public  static final class PolicyApplication extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication)
        PolicyApplicationOrBuilder {
      // Use PolicyApplication.newBuilder() to construct.
      private PolicyApplication(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PolicyApplication() {
        applicationId_ = com.google.protobuf.ByteString.EMPTY;
        applicationName_ = "";
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private PolicyApplication(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 10: {

                applicationId_ = input.readBytes();
                break;
              }
              case 26: {
                java.lang.String s = input.readStringRequireUtf8();

                applicationName_ = s;
                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 {
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicyApplication_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicyApplication_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.Builder.class);
      }

      public static final int APPLICATIONID_FIELD_NUMBER = 1;
      private com.google.protobuf.ByteString applicationId_;
      /**
       * <pre>
       *&#47; contain any arbitrary sequence of bytes for this Application
       * </pre>
       *
       * <code>bytes applicationId = 1;</code>
       */
      public com.google.protobuf.ByteString getApplicationId() {
        return applicationId_;
      }

      public static final int APPLICATIONNAME_FIELD_NUMBER = 3;
      private volatile java.lang.Object applicationName_;
      /**
       * <pre>
       *&#47; Name of this application
       * </pre>
       *
       * <code>string applicationName = 3;</code>
       */
      public java.lang.String getApplicationName() {
        java.lang.Object ref = applicationName_;
        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();
          applicationName_ = s;
          return s;
        }
      }
      /**
       * <pre>
       *&#47; Name of this application
       * </pre>
       *
       * <code>string applicationName = 3;</code>
       */
      public com.google.protobuf.ByteString
          getApplicationNameBytes() {
        java.lang.Object ref = applicationName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          applicationName_ = 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 (!applicationId_.isEmpty()) {
          output.writeBytes(1, applicationId_);
        }
        if (!getApplicationNameBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, applicationName_);
        }
      }

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

        size = 0;
        if (!applicationId_.isEmpty()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(1, applicationId_);
        }
        if (!getApplicationNameBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, applicationName_);
        }
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication) obj;

        boolean result = true;
        result = result && getApplicationId()
            .equals(other.getApplicationId());
        result = result && getApplicationName()
            .equals(other.getApplicationName());
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + APPLICATIONID_FIELD_NUMBER;
        hash = (53 * hash) + getApplicationId().hashCode();
        hash = (37 * hash) + APPLICATIONNAME_FIELD_NUMBER;
        hash = (53 * hash) + getApplicationName().hashCode();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication 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.VehicleDataAcquisitionPolicyPublish.PolicyApplication}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication)
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplicationOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicyApplication_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicyApplication_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.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();
          applicationId_ = com.google.protobuf.ByteString.EMPTY;

          applicationName_ = "";

          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication(this);
          result.applicationId_ = applicationId_;
          result.applicationName_ = applicationName_;
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.getDefaultInstance()) return this;
          if (other.getApplicationId() != com.google.protobuf.ByteString.EMPTY) {
            setApplicationId(other.getApplicationId());
          }
          if (!other.getApplicationName().isEmpty()) {
            applicationName_ = other.applicationName_;
            onChanged();
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private com.google.protobuf.ByteString applicationId_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <pre>
         *&#47; contain any arbitrary sequence of bytes for this Application
         * </pre>
         *
         * <code>bytes applicationId = 1;</code>
         */
        public com.google.protobuf.ByteString getApplicationId() {
          return applicationId_;
        }
        /**
         * <pre>
         *&#47; contain any arbitrary sequence of bytes for this Application
         * </pre>
         *
         * <code>bytes applicationId = 1;</code>
         */
        public Builder setApplicationId(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          applicationId_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; contain any arbitrary sequence of bytes for this Application
         * </pre>
         *
         * <code>bytes applicationId = 1;</code>
         */
        public Builder clearApplicationId() {
          
          applicationId_ = getDefaultInstance().getApplicationId();
          onChanged();
          return this;
        }

        private java.lang.Object applicationName_ = "";
        /**
         * <pre>
         *&#47; Name of this application
         * </pre>
         *
         * <code>string applicationName = 3;</code>
         */
        public java.lang.String getApplicationName() {
          java.lang.Object ref = applicationName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            applicationName_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         *&#47; Name of this application
         * </pre>
         *
         * <code>string applicationName = 3;</code>
         */
        public com.google.protobuf.ByteString
            getApplicationNameBytes() {
          java.lang.Object ref = applicationName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            applicationName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         *&#47; Name of this application
         * </pre>
         *
         * <code>string applicationName = 3;</code>
         */
        public Builder setApplicationName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          applicationName_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Name of this application
         * </pre>
         *
         * <code>string applicationName = 3;</code>
         */
        public Builder clearApplicationName() {
          
          applicationName_ = getDefaultInstance().getApplicationName();
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Name of this application
         * </pre>
         *
         * <code>string applicationName = 3;</code>
         */
        public Builder setApplicationNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          applicationName_ = value;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface HistogramOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47; The name of the virtual signal which will return the accumulated histogram value for occurences where the filterCriteria evalulates to true. 
       * </pre>
       *
       * <code>string histogramSignalName = 1;</code>
       */
      java.lang.String getHistogramSignalName();
      /**
       * <pre>
       *&#47; The name of the virtual signal which will return the accumulated histogram value for occurences where the filterCriteria evalulates to true. 
       * </pre>
       *
       * <code>string histogramSignalName = 1;</code>
       */
      com.google.protobuf.ByteString
          getHistogramSignalNameBytes();

      /**
       * <pre>
       *&#47; The is a counter to track the number of concurrent samples where the histogram filterCriteria evaluates to true.  Once the criteria evaluates to false, then the counter (histogramCCntSignalName) will reset to 0. 
       * </pre>
       *
       * <code>string histogramCCntSignalName = 2;</code>
       */
      java.lang.String getHistogramCCntSignalName();
      /**
       * <pre>
       *&#47; The is a counter to track the number of concurrent samples where the histogram filterCriteria evaluates to true.  Once the criteria evaluates to false, then the counter (histogramCCntSignalName) will reset to 0. 
       * </pre>
       *
       * <code>string histogramCCntSignalName = 2;</code>
       */
      com.google.protobuf.ByteString
          getHistogramCCntSignalNameBytes();

      /**
       * <pre>
       *&#47; The criteria to determine to accumulate the occurrence value for this histogram bucket.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria filterCriteria = 3;</code>
       */
      boolean hasFilterCriteria();
      /**
       * <pre>
       *&#47; The criteria to determine to accumulate the occurrence value for this histogram bucket.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria filterCriteria = 3;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria getFilterCriteria();
      /**
       * <pre>
       *&#47; The criteria to determine to accumulate the occurrence value for this histogram bucket.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria filterCriteria = 3;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteriaOrBuilder getFilterCriteriaOrBuilder();

      /**
       * <pre>
       *&#47; Collection period for histogram (deprecated)
       * </pre>
       *
       * <code>int32 period = 4;</code>
       */
      int getPeriod();

      /**
       * <pre>
       *&#47; collection frequency for histogram
       * </pre>
       *
       * <code>int32 frequency = 5;</code>
       */
      int getFrequency();
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram}
     */
    public  static final class Histogram extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram)
        HistogramOrBuilder {
      // Use Histogram.newBuilder() to construct.
      private Histogram(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Histogram() {
        histogramSignalName_ = "";
        histogramCCntSignalName_ = "";
        period_ = 0;
        frequency_ = 0;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private Histogram(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();

                histogramSignalName_ = s;
                break;
              }
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();

                histogramCCntSignalName_ = s;
                break;
              }
              case 26: {
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder subBuilder = null;
                if (filterCriteria_ != null) {
                  subBuilder = filterCriteria_.toBuilder();
                }
                filterCriteria_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(filterCriteria_);
                  filterCriteria_ = subBuilder.buildPartial();
                }

                break;
              }
              case 32: {

                period_ = input.readInt32();
                break;
              }
              case 40: {

                frequency_ = input.readInt32();
                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 {
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_Histogram_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_Histogram_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.Builder.class);
      }

      public static final int HISTOGRAMSIGNALNAME_FIELD_NUMBER = 1;
      private volatile java.lang.Object histogramSignalName_;
      /**
       * <pre>
       *&#47; The name of the virtual signal which will return the accumulated histogram value for occurences where the filterCriteria evalulates to true. 
       * </pre>
       *
       * <code>string histogramSignalName = 1;</code>
       */
      public java.lang.String getHistogramSignalName() {
        java.lang.Object ref = histogramSignalName_;
        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();
          histogramSignalName_ = s;
          return s;
        }
      }
      /**
       * <pre>
       *&#47; The name of the virtual signal which will return the accumulated histogram value for occurences where the filterCriteria evalulates to true. 
       * </pre>
       *
       * <code>string histogramSignalName = 1;</code>
       */
      public com.google.protobuf.ByteString
          getHistogramSignalNameBytes() {
        java.lang.Object ref = histogramSignalName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          histogramSignalName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int HISTOGRAMCCNTSIGNALNAME_FIELD_NUMBER = 2;
      private volatile java.lang.Object histogramCCntSignalName_;
      /**
       * <pre>
       *&#47; The is a counter to track the number of concurrent samples where the histogram filterCriteria evaluates to true.  Once the criteria evaluates to false, then the counter (histogramCCntSignalName) will reset to 0. 
       * </pre>
       *
       * <code>string histogramCCntSignalName = 2;</code>
       */
      public java.lang.String getHistogramCCntSignalName() {
        java.lang.Object ref = histogramCCntSignalName_;
        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();
          histogramCCntSignalName_ = s;
          return s;
        }
      }
      /**
       * <pre>
       *&#47; The is a counter to track the number of concurrent samples where the histogram filterCriteria evaluates to true.  Once the criteria evaluates to false, then the counter (histogramCCntSignalName) will reset to 0. 
       * </pre>
       *
       * <code>string histogramCCntSignalName = 2;</code>
       */
      public com.google.protobuf.ByteString
          getHistogramCCntSignalNameBytes() {
        java.lang.Object ref = histogramCCntSignalName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          histogramCCntSignalName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int FILTERCRITERIA_FIELD_NUMBER = 3;
      private com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria filterCriteria_;
      /**
       * <pre>
       *&#47; The criteria to determine to accumulate the occurrence value for this histogram bucket.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria filterCriteria = 3;</code>
       */
      public boolean hasFilterCriteria() {
        return filterCriteria_ != null;
      }
      /**
       * <pre>
       *&#47; The criteria to determine to accumulate the occurrence value for this histogram bucket.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria filterCriteria = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria getFilterCriteria() {
        return filterCriteria_ == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.getDefaultInstance() : filterCriteria_;
      }
      /**
       * <pre>
       *&#47; The criteria to determine to accumulate the occurrence value for this histogram bucket.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria filterCriteria = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteriaOrBuilder getFilterCriteriaOrBuilder() {
        return getFilterCriteria();
      }

      public static final int PERIOD_FIELD_NUMBER = 4;
      private int period_;
      /**
       * <pre>
       *&#47; Collection period for histogram (deprecated)
       * </pre>
       *
       * <code>int32 period = 4;</code>
       */
      public int getPeriod() {
        return period_;
      }

      public static final int FREQUENCY_FIELD_NUMBER = 5;
      private int frequency_;
      /**
       * <pre>
       *&#47; collection frequency for histogram
       * </pre>
       *
       * <code>int32 frequency = 5;</code>
       */
      public int getFrequency() {
        return frequency_;
      }

      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 (!getHistogramSignalNameBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, histogramSignalName_);
        }
        if (!getHistogramCCntSignalNameBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, histogramCCntSignalName_);
        }
        if (filterCriteria_ != null) {
          output.writeMessage(3, getFilterCriteria());
        }
        if (period_ != 0) {
          output.writeInt32(4, period_);
        }
        if (frequency_ != 0) {
          output.writeInt32(5, frequency_);
        }
      }

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

        size = 0;
        if (!getHistogramSignalNameBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, histogramSignalName_);
        }
        if (!getHistogramCCntSignalNameBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, histogramCCntSignalName_);
        }
        if (filterCriteria_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getFilterCriteria());
        }
        if (period_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(4, period_);
        }
        if (frequency_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(5, frequency_);
        }
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram) obj;

        boolean result = true;
        result = result && getHistogramSignalName()
            .equals(other.getHistogramSignalName());
        result = result && getHistogramCCntSignalName()
            .equals(other.getHistogramCCntSignalName());
        result = result && (hasFilterCriteria() == other.hasFilterCriteria());
        if (hasFilterCriteria()) {
          result = result && getFilterCriteria()
              .equals(other.getFilterCriteria());
        }
        result = result && (getPeriod()
            == other.getPeriod());
        result = result && (getFrequency()
            == other.getFrequency());
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + HISTOGRAMSIGNALNAME_FIELD_NUMBER;
        hash = (53 * hash) + getHistogramSignalName().hashCode();
        hash = (37 * hash) + HISTOGRAMCCNTSIGNALNAME_FIELD_NUMBER;
        hash = (53 * hash) + getHistogramCCntSignalName().hashCode();
        if (hasFilterCriteria()) {
          hash = (37 * hash) + FILTERCRITERIA_FIELD_NUMBER;
          hash = (53 * hash) + getFilterCriteria().hashCode();
        }
        hash = (37 * hash) + PERIOD_FIELD_NUMBER;
        hash = (53 * hash) + getPeriod();
        hash = (37 * hash) + FREQUENCY_FIELD_NUMBER;
        hash = (53 * hash) + getFrequency();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram 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.VehicleDataAcquisitionPolicyPublish.Histogram}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram)
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_Histogram_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_Histogram_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.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();
          histogramSignalName_ = "";

          histogramCCntSignalName_ = "";

          if (filterCriteriaBuilder_ == null) {
            filterCriteria_ = null;
          } else {
            filterCriteria_ = null;
            filterCriteriaBuilder_ = null;
          }
          period_ = 0;

          frequency_ = 0;

          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram(this);
          result.histogramSignalName_ = histogramSignalName_;
          result.histogramCCntSignalName_ = histogramCCntSignalName_;
          if (filterCriteriaBuilder_ == null) {
            result.filterCriteria_ = filterCriteria_;
          } else {
            result.filterCriteria_ = filterCriteriaBuilder_.build();
          }
          result.period_ = period_;
          result.frequency_ = frequency_;
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.getDefaultInstance()) return this;
          if (!other.getHistogramSignalName().isEmpty()) {
            histogramSignalName_ = other.histogramSignalName_;
            onChanged();
          }
          if (!other.getHistogramCCntSignalName().isEmpty()) {
            histogramCCntSignalName_ = other.histogramCCntSignalName_;
            onChanged();
          }
          if (other.hasFilterCriteria()) {
            mergeFilterCriteria(other.getFilterCriteria());
          }
          if (other.getPeriod() != 0) {
            setPeriod(other.getPeriod());
          }
          if (other.getFrequency() != 0) {
            setFrequency(other.getFrequency());
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private java.lang.Object histogramSignalName_ = "";
        /**
         * <pre>
         *&#47; The name of the virtual signal which will return the accumulated histogram value for occurences where the filterCriteria evalulates to true. 
         * </pre>
         *
         * <code>string histogramSignalName = 1;</code>
         */
        public java.lang.String getHistogramSignalName() {
          java.lang.Object ref = histogramSignalName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            histogramSignalName_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         *&#47; The name of the virtual signal which will return the accumulated histogram value for occurences where the filterCriteria evalulates to true. 
         * </pre>
         *
         * <code>string histogramSignalName = 1;</code>
         */
        public com.google.protobuf.ByteString
            getHistogramSignalNameBytes() {
          java.lang.Object ref = histogramSignalName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            histogramSignalName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         *&#47; The name of the virtual signal which will return the accumulated histogram value for occurences where the filterCriteria evalulates to true. 
         * </pre>
         *
         * <code>string histogramSignalName = 1;</code>
         */
        public Builder setHistogramSignalName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          histogramSignalName_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; The name of the virtual signal which will return the accumulated histogram value for occurences where the filterCriteria evalulates to true. 
         * </pre>
         *
         * <code>string histogramSignalName = 1;</code>
         */
        public Builder clearHistogramSignalName() {
          
          histogramSignalName_ = getDefaultInstance().getHistogramSignalName();
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; The name of the virtual signal which will return the accumulated histogram value for occurences where the filterCriteria evalulates to true. 
         * </pre>
         *
         * <code>string histogramSignalName = 1;</code>
         */
        public Builder setHistogramSignalNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          histogramSignalName_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object histogramCCntSignalName_ = "";
        /**
         * <pre>
         *&#47; The is a counter to track the number of concurrent samples where the histogram filterCriteria evaluates to true.  Once the criteria evaluates to false, then the counter (histogramCCntSignalName) will reset to 0. 
         * </pre>
         *
         * <code>string histogramCCntSignalName = 2;</code>
         */
        public java.lang.String getHistogramCCntSignalName() {
          java.lang.Object ref = histogramCCntSignalName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            histogramCCntSignalName_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         *&#47; The is a counter to track the number of concurrent samples where the histogram filterCriteria evaluates to true.  Once the criteria evaluates to false, then the counter (histogramCCntSignalName) will reset to 0. 
         * </pre>
         *
         * <code>string histogramCCntSignalName = 2;</code>
         */
        public com.google.protobuf.ByteString
            getHistogramCCntSignalNameBytes() {
          java.lang.Object ref = histogramCCntSignalName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            histogramCCntSignalName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         *&#47; The is a counter to track the number of concurrent samples where the histogram filterCriteria evaluates to true.  Once the criteria evaluates to false, then the counter (histogramCCntSignalName) will reset to 0. 
         * </pre>
         *
         * <code>string histogramCCntSignalName = 2;</code>
         */
        public Builder setHistogramCCntSignalName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          histogramCCntSignalName_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; The is a counter to track the number of concurrent samples where the histogram filterCriteria evaluates to true.  Once the criteria evaluates to false, then the counter (histogramCCntSignalName) will reset to 0. 
         * </pre>
         *
         * <code>string histogramCCntSignalName = 2;</code>
         */
        public Builder clearHistogramCCntSignalName() {
          
          histogramCCntSignalName_ = getDefaultInstance().getHistogramCCntSignalName();
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; The is a counter to track the number of concurrent samples where the histogram filterCriteria evaluates to true.  Once the criteria evaluates to false, then the counter (histogramCCntSignalName) will reset to 0. 
         * </pre>
         *
         * <code>string histogramCCntSignalName = 2;</code>
         */
        public Builder setHistogramCCntSignalNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          histogramCCntSignalName_ = value;
          onChanged();
          return this;
        }

        private com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria filterCriteria_ = null;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteriaOrBuilder> filterCriteriaBuilder_;
        /**
         * <pre>
         *&#47; The criteria to determine to accumulate the occurrence value for this histogram bucket.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria filterCriteria = 3;</code>
         */
        public boolean hasFilterCriteria() {
          return filterCriteriaBuilder_ != null || filterCriteria_ != null;
        }
        /**
         * <pre>
         *&#47; The criteria to determine to accumulate the occurrence value for this histogram bucket.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria filterCriteria = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria getFilterCriteria() {
          if (filterCriteriaBuilder_ == null) {
            return filterCriteria_ == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.getDefaultInstance() : filterCriteria_;
          } else {
            return filterCriteriaBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         *&#47; The criteria to determine to accumulate the occurrence value for this histogram bucket.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria filterCriteria = 3;</code>
         */
        public Builder setFilterCriteria(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria value) {
          if (filterCriteriaBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            filterCriteria_ = value;
            onChanged();
          } else {
            filterCriteriaBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         *&#47; The criteria to determine to accumulate the occurrence value for this histogram bucket.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria filterCriteria = 3;</code>
         */
        public Builder setFilterCriteria(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder builderForValue) {
          if (filterCriteriaBuilder_ == null) {
            filterCriteria_ = builderForValue.build();
            onChanged();
          } else {
            filterCriteriaBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         *&#47; The criteria to determine to accumulate the occurrence value for this histogram bucket.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria filterCriteria = 3;</code>
         */
        public Builder mergeFilterCriteria(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria value) {
          if (filterCriteriaBuilder_ == null) {
            if (filterCriteria_ != null) {
              filterCriteria_ =
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.newBuilder(filterCriteria_).mergeFrom(value).buildPartial();
            } else {
              filterCriteria_ = value;
            }
            onChanged();
          } else {
            filterCriteriaBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         *&#47; The criteria to determine to accumulate the occurrence value for this histogram bucket.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria filterCriteria = 3;</code>
         */
        public Builder clearFilterCriteria() {
          if (filterCriteriaBuilder_ == null) {
            filterCriteria_ = null;
            onChanged();
          } else {
            filterCriteria_ = null;
            filterCriteriaBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         *&#47; The criteria to determine to accumulate the occurrence value for this histogram bucket.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria filterCriteria = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder getFilterCriteriaBuilder() {
          
          onChanged();
          return getFilterCriteriaFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         *&#47; The criteria to determine to accumulate the occurrence value for this histogram bucket.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria filterCriteria = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteriaOrBuilder getFilterCriteriaOrBuilder() {
          if (filterCriteriaBuilder_ != null) {
            return filterCriteriaBuilder_.getMessageOrBuilder();
          } else {
            return filterCriteria_ == null ?
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.getDefaultInstance() : filterCriteria_;
          }
        }
        /**
         * <pre>
         *&#47; The criteria to determine to accumulate the occurrence value for this histogram bucket.
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria filterCriteria = 3;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteriaOrBuilder> 
            getFilterCriteriaFieldBuilder() {
          if (filterCriteriaBuilder_ == null) {
            filterCriteriaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.EventTriggerCriteriaOrBuilder>(
                    getFilterCriteria(),
                    getParentForChildren(),
                    isClean());
            filterCriteria_ = null;
          }
          return filterCriteriaBuilder_;
        }

        private int period_ ;
        /**
         * <pre>
         *&#47; Collection period for histogram (deprecated)
         * </pre>
         *
         * <code>int32 period = 4;</code>
         */
        public int getPeriod() {
          return period_;
        }
        /**
         * <pre>
         *&#47; Collection period for histogram (deprecated)
         * </pre>
         *
         * <code>int32 period = 4;</code>
         */
        public Builder setPeriod(int value) {
          
          period_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Collection period for histogram (deprecated)
         * </pre>
         *
         * <code>int32 period = 4;</code>
         */
        public Builder clearPeriod() {
          
          period_ = 0;
          onChanged();
          return this;
        }

        private int frequency_ ;
        /**
         * <pre>
         *&#47; collection frequency for histogram
         * </pre>
         *
         * <code>int32 frequency = 5;</code>
         */
        public int getFrequency() {
          return frequency_;
        }
        /**
         * <pre>
         *&#47; collection frequency for histogram
         * </pre>
         *
         * <code>int32 frequency = 5;</code>
         */
        public Builder setFrequency(int value) {
          
          frequency_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; collection frequency for histogram
         * </pre>
         *
         * <code>int32 frequency = 5;</code>
         */
        public Builder clearFrequency() {
          
          frequency_ = 0;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface HistogramDataSetOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47; A list of Histograms for particular signals 
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
       */
      java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram> 
          getHistogramList();
      /**
       * <pre>
       *&#47; A list of Histograms for particular signals 
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram getHistogram(int index);
      /**
       * <pre>
       *&#47; A list of Histograms for particular signals 
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
       */
      int getHistogramCount();
      /**
       * <pre>
       *&#47; A list of Histograms for particular signals 
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
       */
      java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramOrBuilder> 
          getHistogramOrBuilderList();
      /**
       * <pre>
       *&#47; A list of Histograms for particular signals 
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramOrBuilder getHistogramOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet}
     */
    public  static final class HistogramDataSet extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet)
        HistogramDataSetOrBuilder {
      // Use HistogramDataSet.newBuilder() to construct.
      private HistogramDataSet(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private HistogramDataSet() {
        histogram_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private HistogramDataSet(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  histogram_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram>();
                  mutable_bitField0_ |= 0x00000001;
                }
                histogram_.add(
                    input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.parser(), extensionRegistry));
                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_ & 0x00000001) == 0x00000001)) {
            histogram_ = java.util.Collections.unmodifiableList(histogram_);
          }
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_HistogramDataSet_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_HistogramDataSet_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.Builder.class);
      }

      public static final int HISTOGRAM_FIELD_NUMBER = 1;
      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram> histogram_;
      /**
       * <pre>
       *&#47; A list of Histograms for particular signals 
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram> getHistogramList() {
        return histogram_;
      }
      /**
       * <pre>
       *&#47; A list of Histograms for particular signals 
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramOrBuilder> 
          getHistogramOrBuilderList() {
        return histogram_;
      }
      /**
       * <pre>
       *&#47; A list of Histograms for particular signals 
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
       */
      public int getHistogramCount() {
        return histogram_.size();
      }
      /**
       * <pre>
       *&#47; A list of Histograms for particular signals 
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram getHistogram(int index) {
        return histogram_.get(index);
      }
      /**
       * <pre>
       *&#47; A list of Histograms for particular signals 
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramOrBuilder getHistogramOrBuilder(
          int index) {
        return histogram_.get(index);
      }

      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 {
        for (int i = 0; i < histogram_.size(); i++) {
          output.writeMessage(1, histogram_.get(i));
        }
      }

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

        size = 0;
        for (int i = 0; i < histogram_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, histogram_.get(i));
        }
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet) obj;

        boolean result = true;
        result = result && getHistogramList()
            .equals(other.getHistogramList());
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getHistogramCount() > 0) {
          hash = (37 * hash) + HISTOGRAM_FIELD_NUMBER;
          hash = (53 * hash) + getHistogramList().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet 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.VehicleDataAcquisitionPolicyPublish.HistogramDataSet}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet)
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSetOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_HistogramDataSet_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_HistogramDataSet_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getHistogramFieldBuilder();
          }
        }
        public Builder clear() {
          super.clear();
          if (histogramBuilder_ == null) {
            histogram_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            histogramBuilder_.clear();
          }
          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet(this);
          int from_bitField0_ = bitField0_;
          if (histogramBuilder_ == null) {
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
              histogram_ = java.util.Collections.unmodifiableList(histogram_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.histogram_ = histogram_;
          } else {
            result.histogram_ = histogramBuilder_.build();
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.getDefaultInstance()) return this;
          if (histogramBuilder_ == null) {
            if (!other.histogram_.isEmpty()) {
              if (histogram_.isEmpty()) {
                histogram_ = other.histogram_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureHistogramIsMutable();
                histogram_.addAll(other.histogram_);
              }
              onChanged();
            }
          } else {
            if (!other.histogram_.isEmpty()) {
              if (histogramBuilder_.isEmpty()) {
                histogramBuilder_.dispose();
                histogramBuilder_ = null;
                histogram_ = other.histogram_;
                bitField0_ = (bitField0_ & ~0x00000001);
                histogramBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getHistogramFieldBuilder() : null;
              } else {
                histogramBuilder_.addAllMessages(other.histogram_);
              }
            }
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram> histogram_ =
          java.util.Collections.emptyList();
        private void ensureHistogramIsMutable() {
          if (!((bitField0_ & 0x00000001) == 0x00000001)) {
            histogram_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram>(histogram_);
            bitField0_ |= 0x00000001;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramOrBuilder> histogramBuilder_;

        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram> getHistogramList() {
          if (histogramBuilder_ == null) {
            return java.util.Collections.unmodifiableList(histogram_);
          } else {
            return histogramBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public int getHistogramCount() {
          if (histogramBuilder_ == null) {
            return histogram_.size();
          } else {
            return histogramBuilder_.getCount();
          }
        }
        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram getHistogram(int index) {
          if (histogramBuilder_ == null) {
            return histogram_.get(index);
          } else {
            return histogramBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public Builder setHistogram(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram value) {
          if (histogramBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureHistogramIsMutable();
            histogram_.set(index, value);
            onChanged();
          } else {
            histogramBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public Builder setHistogram(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.Builder builderForValue) {
          if (histogramBuilder_ == null) {
            ensureHistogramIsMutable();
            histogram_.set(index, builderForValue.build());
            onChanged();
          } else {
            histogramBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public Builder addHistogram(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram value) {
          if (histogramBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureHistogramIsMutable();
            histogram_.add(value);
            onChanged();
          } else {
            histogramBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public Builder addHistogram(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram value) {
          if (histogramBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureHistogramIsMutable();
            histogram_.add(index, value);
            onChanged();
          } else {
            histogramBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public Builder addHistogram(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.Builder builderForValue) {
          if (histogramBuilder_ == null) {
            ensureHistogramIsMutable();
            histogram_.add(builderForValue.build());
            onChanged();
          } else {
            histogramBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public Builder addHistogram(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.Builder builderForValue) {
          if (histogramBuilder_ == null) {
            ensureHistogramIsMutable();
            histogram_.add(index, builderForValue.build());
            onChanged();
          } else {
            histogramBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public Builder addAllHistogram(
            java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram> values) {
          if (histogramBuilder_ == null) {
            ensureHistogramIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, histogram_);
            onChanged();
          } else {
            histogramBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public Builder clearHistogram() {
          if (histogramBuilder_ == null) {
            histogram_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            histogramBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public Builder removeHistogram(int index) {
          if (histogramBuilder_ == null) {
            ensureHistogramIsMutable();
            histogram_.remove(index);
            onChanged();
          } else {
            histogramBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.Builder getHistogramBuilder(
            int index) {
          return getHistogramFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramOrBuilder getHistogramOrBuilder(
            int index) {
          if (histogramBuilder_ == null) {
            return histogram_.get(index);  } else {
            return histogramBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramOrBuilder> 
             getHistogramOrBuilderList() {
          if (histogramBuilder_ != null) {
            return histogramBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(histogram_);
          }
        }
        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.Builder addHistogramBuilder() {
          return getHistogramFieldBuilder().addBuilder(
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.Builder addHistogramBuilder(
            int index) {
          return getHistogramFieldBuilder().addBuilder(
              index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; A list of Histograms for particular signals 
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.Histogram histogram = 1;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.Builder> 
             getHistogramBuilderList() {
          return getHistogramFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramOrBuilder> 
            getHistogramFieldBuilder() {
          if (histogramBuilder_ == null) {
            histogramBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Histogram.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramOrBuilder>(
                    histogram_,
                    ((bitField0_ & 0x00000001) == 0x00000001),
                    getParentForChildren(),
                    isClean());
            histogram_ = null;
          }
          return histogramBuilder_;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface PolicySubscriptionOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47;A version number is assigned every time there is a change in policy
       * </pre>
       *
       * <code>int32 version = 7;</code>
       */
      int getVersion();

      /**
       * <pre>
       *&#47; contain any arbitrary sequence of bytes for this PolicySubscription
       * </pre>
       *
       * <code>bytes policySubscriptionId = 1;</code>
       */
      com.google.protobuf.ByteString getPolicySubscriptionId();

      /**
       * <pre>
       * Start Date for Policy to become active in the application.
       * </pre>
       *
       * <code>int64 startDate = 6;</code>
       */
      long getStartDate();

      /**
       * <pre>
       *&#47;contains expiration date for the current policy subscription,  in milliseconds elapsed since 1 January 1970 00:00:00 UTC.
       * </pre>
       *
       * <code>int64 expirationDate = 2;</code>
       */
      long getExpirationDate();

      /**
       * <pre>
       *&#47; zero or more DataSetsSubscriptions to be collected.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
       */
      java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription> 
          getDataSetSubscriptionList();
      /**
       * <pre>
       *&#47; zero or more DataSetsSubscriptions to be collected.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription getDataSetSubscription(int index);
      /**
       * <pre>
       *&#47; zero or more DataSetsSubscriptions to be collected.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
       */
      int getDataSetSubscriptionCount();
      /**
       * <pre>
       *&#47; zero or more DataSetsSubscriptions to be collected.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
       */
      java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscriptionOrBuilder> 
          getDataSetSubscriptionOrBuilderList();
      /**
       * <pre>
       *&#47; zero or more DataSetsSubscriptions to be collected.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscriptionOrBuilder getDataSetSubscriptionOrBuilder(
          int index);

      /**
       * <pre>
       *&#47; The application to which this policy applies. Applications may query their currently active PolicySubscriptions
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication application = 4;</code>
       */
      boolean hasApplication();
      /**
       * <pre>
       *&#47; The application to which this policy applies. Applications may query their currently active PolicySubscriptions
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication application = 4;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication getApplication();
      /**
       * <pre>
       *&#47; The application to which this policy applies. Applications may query their currently active PolicySubscriptions
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication application = 4;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplicationOrBuilder getApplicationOrBuilder();

      /**
       * <pre>
       *&#47; contains the configuration for the histogram data set
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet histogramDataSet = 5;</code>
       */
      boolean hasHistogramDataSet();
      /**
       * <pre>
       *&#47; contains the configuration for the histogram data set
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet histogramDataSet = 5;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet getHistogramDataSet();
      /**
       * <pre>
       *&#47; contains the configuration for the histogram data set
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet histogramDataSet = 5;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSetOrBuilder getHistogramDataSetOrBuilder();
    }
    /**
     * <pre>
     **
     * A PolicySubscription is a set of DataSetSubscription subscriptions and the time period for data collection. 
     * A PolicySubscription with zero DataSetSubscriptions may be used to activate custom TU logic for a period of time.
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription}
     */
    public  static final class PolicySubscription extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription)
        PolicySubscriptionOrBuilder {
      // Use PolicySubscription.newBuilder() to construct.
      private PolicySubscription(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PolicySubscription() {
        version_ = 0;
        policySubscriptionId_ = com.google.protobuf.ByteString.EMPTY;
        startDate_ = 0L;
        expirationDate_ = 0L;
        dataSetSubscription_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private PolicySubscription(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 10: {

                policySubscriptionId_ = input.readBytes();
                break;
              }
              case 16: {

                expirationDate_ = input.readInt64();
                break;
              }
              case 26: {
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                  dataSetSubscription_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription>();
                  mutable_bitField0_ |= 0x00000010;
                }
                dataSetSubscription_.add(
                    input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.parser(), extensionRegistry));
                break;
              }
              case 34: {
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.Builder subBuilder = null;
                if (application_ != null) {
                  subBuilder = application_.toBuilder();
                }
                application_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(application_);
                  application_ = subBuilder.buildPartial();
                }

                break;
              }
              case 42: {
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.Builder subBuilder = null;
                if (histogramDataSet_ != null) {
                  subBuilder = histogramDataSet_.toBuilder();
                }
                histogramDataSet_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(histogramDataSet_);
                  histogramDataSet_ = subBuilder.buildPartial();
                }

                break;
              }
              case 48: {

                startDate_ = input.readInt64();
                break;
              }
              case 56: {

                version_ = input.readInt32();
                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)) {
            dataSetSubscription_ = java.util.Collections.unmodifiableList(dataSetSubscription_);
          }
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicySubscription_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicySubscription_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder.class);
      }

      private int bitField0_;
      public static final int VERSION_FIELD_NUMBER = 7;
      private int version_;
      /**
       * <pre>
       *&#47;A version number is assigned every time there is a change in policy
       * </pre>
       *
       * <code>int32 version = 7;</code>
       */
      public int getVersion() {
        return version_;
      }

      public static final int POLICYSUBSCRIPTIONID_FIELD_NUMBER = 1;
      private com.google.protobuf.ByteString policySubscriptionId_;
      /**
       * <pre>
       *&#47; contain any arbitrary sequence of bytes for this PolicySubscription
       * </pre>
       *
       * <code>bytes policySubscriptionId = 1;</code>
       */
      public com.google.protobuf.ByteString getPolicySubscriptionId() {
        return policySubscriptionId_;
      }

      public static final int STARTDATE_FIELD_NUMBER = 6;
      private long startDate_;
      /**
       * <pre>
       * Start Date for Policy to become active in the application.
       * </pre>
       *
       * <code>int64 startDate = 6;</code>
       */
      public long getStartDate() {
        return startDate_;
      }

      public static final int EXPIRATIONDATE_FIELD_NUMBER = 2;
      private long expirationDate_;
      /**
       * <pre>
       *&#47;contains expiration date for the current policy subscription,  in milliseconds elapsed since 1 January 1970 00:00:00 UTC.
       * </pre>
       *
       * <code>int64 expirationDate = 2;</code>
       */
      public long getExpirationDate() {
        return expirationDate_;
      }

      public static final int DATASETSUBSCRIPTION_FIELD_NUMBER = 3;
      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription> dataSetSubscription_;
      /**
       * <pre>
       *&#47; zero or more DataSetsSubscriptions to be collected.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription> getDataSetSubscriptionList() {
        return dataSetSubscription_;
      }
      /**
       * <pre>
       *&#47; zero or more DataSetsSubscriptions to be collected.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscriptionOrBuilder> 
          getDataSetSubscriptionOrBuilderList() {
        return dataSetSubscription_;
      }
      /**
       * <pre>
       *&#47; zero or more DataSetsSubscriptions to be collected.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
       */
      public int getDataSetSubscriptionCount() {
        return dataSetSubscription_.size();
      }
      /**
       * <pre>
       *&#47; zero or more DataSetsSubscriptions to be collected.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription getDataSetSubscription(int index) {
        return dataSetSubscription_.get(index);
      }
      /**
       * <pre>
       *&#47; zero or more DataSetsSubscriptions to be collected.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscriptionOrBuilder getDataSetSubscriptionOrBuilder(
          int index) {
        return dataSetSubscription_.get(index);
      }

      public static final int APPLICATION_FIELD_NUMBER = 4;
      private com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication application_;
      /**
       * <pre>
       *&#47; The application to which this policy applies. Applications may query their currently active PolicySubscriptions
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication application = 4;</code>
       */
      public boolean hasApplication() {
        return application_ != null;
      }
      /**
       * <pre>
       *&#47; The application to which this policy applies. Applications may query their currently active PolicySubscriptions
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication application = 4;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication getApplication() {
        return application_ == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.getDefaultInstance() : application_;
      }
      /**
       * <pre>
       *&#47; The application to which this policy applies. Applications may query their currently active PolicySubscriptions
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication application = 4;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplicationOrBuilder getApplicationOrBuilder() {
        return getApplication();
      }

      public static final int HISTOGRAMDATASET_FIELD_NUMBER = 5;
      private com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet histogramDataSet_;
      /**
       * <pre>
       *&#47; contains the configuration for the histogram data set
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet histogramDataSet = 5;</code>
       */
      public boolean hasHistogramDataSet() {
        return histogramDataSet_ != null;
      }
      /**
       * <pre>
       *&#47; contains the configuration for the histogram data set
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet histogramDataSet = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet getHistogramDataSet() {
        return histogramDataSet_ == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.getDefaultInstance() : histogramDataSet_;
      }
      /**
       * <pre>
       *&#47; contains the configuration for the histogram data set
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet histogramDataSet = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSetOrBuilder getHistogramDataSetOrBuilder() {
        return getHistogramDataSet();
      }

      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 (!policySubscriptionId_.isEmpty()) {
          output.writeBytes(1, policySubscriptionId_);
        }
        if (expirationDate_ != 0L) {
          output.writeInt64(2, expirationDate_);
        }
        for (int i = 0; i < dataSetSubscription_.size(); i++) {
          output.writeMessage(3, dataSetSubscription_.get(i));
        }
        if (application_ != null) {
          output.writeMessage(4, getApplication());
        }
        if (histogramDataSet_ != null) {
          output.writeMessage(5, getHistogramDataSet());
        }
        if (startDate_ != 0L) {
          output.writeInt64(6, startDate_);
        }
        if (version_ != 0) {
          output.writeInt32(7, version_);
        }
      }

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

        size = 0;
        if (!policySubscriptionId_.isEmpty()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(1, policySubscriptionId_);
        }
        if (expirationDate_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, expirationDate_);
        }
        for (int i = 0; i < dataSetSubscription_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, dataSetSubscription_.get(i));
        }
        if (application_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, getApplication());
        }
        if (histogramDataSet_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, getHistogramDataSet());
        }
        if (startDate_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(6, startDate_);
        }
        if (version_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(7, version_);
        }
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription) obj;

        boolean result = true;
        result = result && (getVersion()
            == other.getVersion());
        result = result && getPolicySubscriptionId()
            .equals(other.getPolicySubscriptionId());
        result = result && (getStartDate()
            == other.getStartDate());
        result = result && (getExpirationDate()
            == other.getExpirationDate());
        result = result && getDataSetSubscriptionList()
            .equals(other.getDataSetSubscriptionList());
        result = result && (hasApplication() == other.hasApplication());
        if (hasApplication()) {
          result = result && getApplication()
              .equals(other.getApplication());
        }
        result = result && (hasHistogramDataSet() == other.hasHistogramDataSet());
        if (hasHistogramDataSet()) {
          result = result && getHistogramDataSet()
              .equals(other.getHistogramDataSet());
        }
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getVersion();
        hash = (37 * hash) + POLICYSUBSCRIPTIONID_FIELD_NUMBER;
        hash = (53 * hash) + getPolicySubscriptionId().hashCode();
        hash = (37 * hash) + STARTDATE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getStartDate());
        hash = (37 * hash) + EXPIRATIONDATE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getExpirationDate());
        if (getDataSetSubscriptionCount() > 0) {
          hash = (37 * hash) + DATASETSUBSCRIPTION_FIELD_NUMBER;
          hash = (53 * hash) + getDataSetSubscriptionList().hashCode();
        }
        if (hasApplication()) {
          hash = (37 * hash) + APPLICATION_FIELD_NUMBER;
          hash = (53 * hash) + getApplication().hashCode();
        }
        if (hasHistogramDataSet()) {
          hash = (37 * hash) + HISTOGRAMDATASET_FIELD_NUMBER;
          hash = (53 * hash) + getHistogramDataSet().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription 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>
       **
       * A PolicySubscription is a set of DataSetSubscription subscriptions and the time period for data collection. 
       * A PolicySubscription with zero DataSetSubscriptions may be used to activate custom TU logic for a period of time.
       * </pre>
       *
       * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription)
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscriptionOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicySubscription_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicySubscription_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getDataSetSubscriptionFieldBuilder();
          }
        }
        public Builder clear() {
          super.clear();
          version_ = 0;

          policySubscriptionId_ = com.google.protobuf.ByteString.EMPTY;

          startDate_ = 0L;

          expirationDate_ = 0L;

          if (dataSetSubscriptionBuilder_ == null) {
            dataSetSubscription_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            dataSetSubscriptionBuilder_.clear();
          }
          if (applicationBuilder_ == null) {
            application_ = null;
          } else {
            application_ = null;
            applicationBuilder_ = null;
          }
          if (histogramDataSetBuilder_ == null) {
            histogramDataSet_ = null;
          } else {
            histogramDataSet_ = null;
            histogramDataSetBuilder_ = null;
          }
          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          result.version_ = version_;
          result.policySubscriptionId_ = policySubscriptionId_;
          result.startDate_ = startDate_;
          result.expirationDate_ = expirationDate_;
          if (dataSetSubscriptionBuilder_ == null) {
            if (((bitField0_ & 0x00000010) == 0x00000010)) {
              dataSetSubscription_ = java.util.Collections.unmodifiableList(dataSetSubscription_);
              bitField0_ = (bitField0_ & ~0x00000010);
            }
            result.dataSetSubscription_ = dataSetSubscription_;
          } else {
            result.dataSetSubscription_ = dataSetSubscriptionBuilder_.build();
          }
          if (applicationBuilder_ == null) {
            result.application_ = application_;
          } else {
            result.application_ = applicationBuilder_.build();
          }
          if (histogramDataSetBuilder_ == null) {
            result.histogramDataSet_ = histogramDataSet_;
          } else {
            result.histogramDataSet_ = histogramDataSetBuilder_.build();
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.getDefaultInstance()) return this;
          if (other.getVersion() != 0) {
            setVersion(other.getVersion());
          }
          if (other.getPolicySubscriptionId() != com.google.protobuf.ByteString.EMPTY) {
            setPolicySubscriptionId(other.getPolicySubscriptionId());
          }
          if (other.getStartDate() != 0L) {
            setStartDate(other.getStartDate());
          }
          if (other.getExpirationDate() != 0L) {
            setExpirationDate(other.getExpirationDate());
          }
          if (dataSetSubscriptionBuilder_ == null) {
            if (!other.dataSetSubscription_.isEmpty()) {
              if (dataSetSubscription_.isEmpty()) {
                dataSetSubscription_ = other.dataSetSubscription_;
                bitField0_ = (bitField0_ & ~0x00000010);
              } else {
                ensureDataSetSubscriptionIsMutable();
                dataSetSubscription_.addAll(other.dataSetSubscription_);
              }
              onChanged();
            }
          } else {
            if (!other.dataSetSubscription_.isEmpty()) {
              if (dataSetSubscriptionBuilder_.isEmpty()) {
                dataSetSubscriptionBuilder_.dispose();
                dataSetSubscriptionBuilder_ = null;
                dataSetSubscription_ = other.dataSetSubscription_;
                bitField0_ = (bitField0_ & ~0x00000010);
                dataSetSubscriptionBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getDataSetSubscriptionFieldBuilder() : null;
              } else {
                dataSetSubscriptionBuilder_.addAllMessages(other.dataSetSubscription_);
              }
            }
          }
          if (other.hasApplication()) {
            mergeApplication(other.getApplication());
          }
          if (other.hasHistogramDataSet()) {
            mergeHistogramDataSet(other.getHistogramDataSet());
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int version_ ;
        /**
         * <pre>
         *&#47;A version number is assigned every time there is a change in policy
         * </pre>
         *
         * <code>int32 version = 7;</code>
         */
        public int getVersion() {
          return version_;
        }
        /**
         * <pre>
         *&#47;A version number is assigned every time there is a change in policy
         * </pre>
         *
         * <code>int32 version = 7;</code>
         */
        public Builder setVersion(int value) {
          
          version_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47;A version number is assigned every time there is a change in policy
         * </pre>
         *
         * <code>int32 version = 7;</code>
         */
        public Builder clearVersion() {
          
          version_ = 0;
          onChanged();
          return this;
        }

        private com.google.protobuf.ByteString policySubscriptionId_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <pre>
         *&#47; contain any arbitrary sequence of bytes for this PolicySubscription
         * </pre>
         *
         * <code>bytes policySubscriptionId = 1;</code>
         */
        public com.google.protobuf.ByteString getPolicySubscriptionId() {
          return policySubscriptionId_;
        }
        /**
         * <pre>
         *&#47; contain any arbitrary sequence of bytes for this PolicySubscription
         * </pre>
         *
         * <code>bytes policySubscriptionId = 1;</code>
         */
        public Builder setPolicySubscriptionId(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          policySubscriptionId_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; contain any arbitrary sequence of bytes for this PolicySubscription
         * </pre>
         *
         * <code>bytes policySubscriptionId = 1;</code>
         */
        public Builder clearPolicySubscriptionId() {
          
          policySubscriptionId_ = getDefaultInstance().getPolicySubscriptionId();
          onChanged();
          return this;
        }

        private long startDate_ ;
        /**
         * <pre>
         * Start Date for Policy to become active in the application.
         * </pre>
         *
         * <code>int64 startDate = 6;</code>
         */
        public long getStartDate() {
          return startDate_;
        }
        /**
         * <pre>
         * Start Date for Policy to become active in the application.
         * </pre>
         *
         * <code>int64 startDate = 6;</code>
         */
        public Builder setStartDate(long value) {
          
          startDate_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Start Date for Policy to become active in the application.
         * </pre>
         *
         * <code>int64 startDate = 6;</code>
         */
        public Builder clearStartDate() {
          
          startDate_ = 0L;
          onChanged();
          return this;
        }

        private long expirationDate_ ;
        /**
         * <pre>
         *&#47;contains expiration date for the current policy subscription,  in milliseconds elapsed since 1 January 1970 00:00:00 UTC.
         * </pre>
         *
         * <code>int64 expirationDate = 2;</code>
         */
        public long getExpirationDate() {
          return expirationDate_;
        }
        /**
         * <pre>
         *&#47;contains expiration date for the current policy subscription,  in milliseconds elapsed since 1 January 1970 00:00:00 UTC.
         * </pre>
         *
         * <code>int64 expirationDate = 2;</code>
         */
        public Builder setExpirationDate(long value) {
          
          expirationDate_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47;contains expiration date for the current policy subscription,  in milliseconds elapsed since 1 January 1970 00:00:00 UTC.
         * </pre>
         *
         * <code>int64 expirationDate = 2;</code>
         */
        public Builder clearExpirationDate() {
          
          expirationDate_ = 0L;
          onChanged();
          return this;
        }

        private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription> dataSetSubscription_ =
          java.util.Collections.emptyList();
        private void ensureDataSetSubscriptionIsMutable() {
          if (!((bitField0_ & 0x00000010) == 0x00000010)) {
            dataSetSubscription_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription>(dataSetSubscription_);
            bitField0_ |= 0x00000010;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscriptionOrBuilder> dataSetSubscriptionBuilder_;

        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription> getDataSetSubscriptionList() {
          if (dataSetSubscriptionBuilder_ == null) {
            return java.util.Collections.unmodifiableList(dataSetSubscription_);
          } else {
            return dataSetSubscriptionBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public int getDataSetSubscriptionCount() {
          if (dataSetSubscriptionBuilder_ == null) {
            return dataSetSubscription_.size();
          } else {
            return dataSetSubscriptionBuilder_.getCount();
          }
        }
        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription getDataSetSubscription(int index) {
          if (dataSetSubscriptionBuilder_ == null) {
            return dataSetSubscription_.get(index);
          } else {
            return dataSetSubscriptionBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public Builder setDataSetSubscription(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription value) {
          if (dataSetSubscriptionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureDataSetSubscriptionIsMutable();
            dataSetSubscription_.set(index, value);
            onChanged();
          } else {
            dataSetSubscriptionBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public Builder setDataSetSubscription(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.Builder builderForValue) {
          if (dataSetSubscriptionBuilder_ == null) {
            ensureDataSetSubscriptionIsMutable();
            dataSetSubscription_.set(index, builderForValue.build());
            onChanged();
          } else {
            dataSetSubscriptionBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public Builder addDataSetSubscription(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription value) {
          if (dataSetSubscriptionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureDataSetSubscriptionIsMutable();
            dataSetSubscription_.add(value);
            onChanged();
          } else {
            dataSetSubscriptionBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public Builder addDataSetSubscription(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription value) {
          if (dataSetSubscriptionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureDataSetSubscriptionIsMutable();
            dataSetSubscription_.add(index, value);
            onChanged();
          } else {
            dataSetSubscriptionBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public Builder addDataSetSubscription(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.Builder builderForValue) {
          if (dataSetSubscriptionBuilder_ == null) {
            ensureDataSetSubscriptionIsMutable();
            dataSetSubscription_.add(builderForValue.build());
            onChanged();
          } else {
            dataSetSubscriptionBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public Builder addDataSetSubscription(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.Builder builderForValue) {
          if (dataSetSubscriptionBuilder_ == null) {
            ensureDataSetSubscriptionIsMutable();
            dataSetSubscription_.add(index, builderForValue.build());
            onChanged();
          } else {
            dataSetSubscriptionBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public Builder addAllDataSetSubscription(
            java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription> values) {
          if (dataSetSubscriptionBuilder_ == null) {
            ensureDataSetSubscriptionIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, dataSetSubscription_);
            onChanged();
          } else {
            dataSetSubscriptionBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public Builder clearDataSetSubscription() {
          if (dataSetSubscriptionBuilder_ == null) {
            dataSetSubscription_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000010);
            onChanged();
          } else {
            dataSetSubscriptionBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public Builder removeDataSetSubscription(int index) {
          if (dataSetSubscriptionBuilder_ == null) {
            ensureDataSetSubscriptionIsMutable();
            dataSetSubscription_.remove(index);
            onChanged();
          } else {
            dataSetSubscriptionBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.Builder getDataSetSubscriptionBuilder(
            int index) {
          return getDataSetSubscriptionFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscriptionOrBuilder getDataSetSubscriptionOrBuilder(
            int index) {
          if (dataSetSubscriptionBuilder_ == null) {
            return dataSetSubscription_.get(index);  } else {
            return dataSetSubscriptionBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscriptionOrBuilder> 
             getDataSetSubscriptionOrBuilderList() {
          if (dataSetSubscriptionBuilder_ != null) {
            return dataSetSubscriptionBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(dataSetSubscription_);
          }
        }
        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.Builder addDataSetSubscriptionBuilder() {
          return getDataSetSubscriptionFieldBuilder().addBuilder(
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.Builder addDataSetSubscriptionBuilder(
            int index) {
          return getDataSetSubscriptionFieldBuilder().addBuilder(
              index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; zero or more DataSetsSubscriptions to be collected.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.DataSetSubscription dataSetSubscription = 3;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.Builder> 
             getDataSetSubscriptionBuilderList() {
          return getDataSetSubscriptionFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscriptionOrBuilder> 
            getDataSetSubscriptionFieldBuilder() {
          if (dataSetSubscriptionBuilder_ == null) {
            dataSetSubscriptionBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscription.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.DataSetSubscriptionOrBuilder>(
                    dataSetSubscription_,
                    ((bitField0_ & 0x00000010) == 0x00000010),
                    getParentForChildren(),
                    isClean());
            dataSetSubscription_ = null;
          }
          return dataSetSubscriptionBuilder_;
        }

        private com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication application_ = null;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplicationOrBuilder> applicationBuilder_;
        /**
         * <pre>
         *&#47; The application to which this policy applies. Applications may query their currently active PolicySubscriptions
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication application = 4;</code>
         */
        public boolean hasApplication() {
          return applicationBuilder_ != null || application_ != null;
        }
        /**
         * <pre>
         *&#47; The application to which this policy applies. Applications may query their currently active PolicySubscriptions
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication application = 4;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication getApplication() {
          if (applicationBuilder_ == null) {
            return application_ == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.getDefaultInstance() : application_;
          } else {
            return applicationBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         *&#47; The application to which this policy applies. Applications may query their currently active PolicySubscriptions
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication application = 4;</code>
         */
        public Builder setApplication(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication value) {
          if (applicationBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            application_ = value;
            onChanged();
          } else {
            applicationBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         *&#47; The application to which this policy applies. Applications may query their currently active PolicySubscriptions
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication application = 4;</code>
         */
        public Builder setApplication(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.Builder builderForValue) {
          if (applicationBuilder_ == null) {
            application_ = builderForValue.build();
            onChanged();
          } else {
            applicationBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         *&#47; The application to which this policy applies. Applications may query their currently active PolicySubscriptions
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication application = 4;</code>
         */
        public Builder mergeApplication(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication value) {
          if (applicationBuilder_ == null) {
            if (application_ != null) {
              application_ =
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.newBuilder(application_).mergeFrom(value).buildPartial();
            } else {
              application_ = value;
            }
            onChanged();
          } else {
            applicationBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         *&#47; The application to which this policy applies. Applications may query their currently active PolicySubscriptions
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication application = 4;</code>
         */
        public Builder clearApplication() {
          if (applicationBuilder_ == null) {
            application_ = null;
            onChanged();
          } else {
            application_ = null;
            applicationBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         *&#47; The application to which this policy applies. Applications may query their currently active PolicySubscriptions
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication application = 4;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.Builder getApplicationBuilder() {
          
          onChanged();
          return getApplicationFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         *&#47; The application to which this policy applies. Applications may query their currently active PolicySubscriptions
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication application = 4;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplicationOrBuilder getApplicationOrBuilder() {
          if (applicationBuilder_ != null) {
            return applicationBuilder_.getMessageOrBuilder();
          } else {
            return application_ == null ?
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.getDefaultInstance() : application_;
          }
        }
        /**
         * <pre>
         *&#47; The application to which this policy applies. Applications may query their currently active PolicySubscriptions
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicyApplication application = 4;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplicationOrBuilder> 
            getApplicationFieldBuilder() {
          if (applicationBuilder_ == null) {
            applicationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplication.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicyApplicationOrBuilder>(
                    getApplication(),
                    getParentForChildren(),
                    isClean());
            application_ = null;
          }
          return applicationBuilder_;
        }

        private com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet histogramDataSet_ = null;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSetOrBuilder> histogramDataSetBuilder_;
        /**
         * <pre>
         *&#47; contains the configuration for the histogram data set
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet histogramDataSet = 5;</code>
         */
        public boolean hasHistogramDataSet() {
          return histogramDataSetBuilder_ != null || histogramDataSet_ != null;
        }
        /**
         * <pre>
         *&#47; contains the configuration for the histogram data set
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet histogramDataSet = 5;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet getHistogramDataSet() {
          if (histogramDataSetBuilder_ == null) {
            return histogramDataSet_ == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.getDefaultInstance() : histogramDataSet_;
          } else {
            return histogramDataSetBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         *&#47; contains the configuration for the histogram data set
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet histogramDataSet = 5;</code>
         */
        public Builder setHistogramDataSet(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet value) {
          if (histogramDataSetBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            histogramDataSet_ = value;
            onChanged();
          } else {
            histogramDataSetBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         *&#47; contains the configuration for the histogram data set
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet histogramDataSet = 5;</code>
         */
        public Builder setHistogramDataSet(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.Builder builderForValue) {
          if (histogramDataSetBuilder_ == null) {
            histogramDataSet_ = builderForValue.build();
            onChanged();
          } else {
            histogramDataSetBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         *&#47; contains the configuration for the histogram data set
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet histogramDataSet = 5;</code>
         */
        public Builder mergeHistogramDataSet(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet value) {
          if (histogramDataSetBuilder_ == null) {
            if (histogramDataSet_ != null) {
              histogramDataSet_ =
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.newBuilder(histogramDataSet_).mergeFrom(value).buildPartial();
            } else {
              histogramDataSet_ = value;
            }
            onChanged();
          } else {
            histogramDataSetBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         *&#47; contains the configuration for the histogram data set
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet histogramDataSet = 5;</code>
         */
        public Builder clearHistogramDataSet() {
          if (histogramDataSetBuilder_ == null) {
            histogramDataSet_ = null;
            onChanged();
          } else {
            histogramDataSet_ = null;
            histogramDataSetBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         *&#47; contains the configuration for the histogram data set
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet histogramDataSet = 5;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.Builder getHistogramDataSetBuilder() {
          
          onChanged();
          return getHistogramDataSetFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         *&#47; contains the configuration for the histogram data set
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet histogramDataSet = 5;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSetOrBuilder getHistogramDataSetOrBuilder() {
          if (histogramDataSetBuilder_ != null) {
            return histogramDataSetBuilder_.getMessageOrBuilder();
          } else {
            return histogramDataSet_ == null ?
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.getDefaultInstance() : histogramDataSet_;
          }
        }
        /**
         * <pre>
         *&#47; contains the configuration for the histogram data set
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.HistogramDataSet histogramDataSet = 5;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSetOrBuilder> 
            getHistogramDataSetFieldBuilder() {
          if (histogramDataSetBuilder_ == null) {
            histogramDataSetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSet.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.HistogramDataSetOrBuilder>(
                    getHistogramDataSet(),
                    getParentForChildren(),
                    isClean());
            histogramDataSet_ = null;
          }
          return histogramDataSetBuilder_;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int VERSION_FIELD_NUMBER = 1;
    private int version_;
    /**
     * <pre>
     *&#47; This will be deprecated, it makes more sense to have on a per subscriptionId basis
     * </pre>
     *
     * <code>int32 version = 1;</code>
     */
    public int getVersion() {
      return version_;
    }

    public static final int POLICYSUBSCRIPTION_FIELD_NUMBER = 2;
    private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription> policySubscription_;
    /**
     * <pre>
     *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
     */
    public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription> getPolicySubscriptionList() {
      return policySubscription_;
    }
    /**
     * <pre>
     *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
     */
    public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscriptionOrBuilder> 
        getPolicySubscriptionOrBuilderList() {
      return policySubscription_;
    }
    /**
     * <pre>
     *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
     */
    public int getPolicySubscriptionCount() {
      return policySubscription_.size();
    }
    /**
     * <pre>
     *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription getPolicySubscription(int index) {
      return policySubscription_.get(index);
    }
    /**
     * <pre>
     *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscriptionOrBuilder getPolicySubscriptionOrBuilder(
        int index) {
      return policySubscription_.get(index);
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 3;
    private long timestamp_;
    /**
     * <pre>
     *&#47;Added for signature correlation to message
     * </pre>
     *
     * <code>int64 timestamp = 3;</code>
     */
    public long getTimestamp() {
      return timestamp_;
    }

    public static final int MESSAGEID_FIELD_NUMBER = 4;
    private int messageId_;
    /**
     * <pre>
     *&#47;Added for signature correlation to message
     * </pre>
     *
     * <code>int32 messageId = 4;</code>
     */
    public int getMessageId() {
      return messageId_;
    }

    public static final int SIGNATUREID_FIELD_NUMBER = 5;
    private int signatureId_;
    /**
     * <pre>
     *&#47;Added for signature correlation to message
     * </pre>
     *
     * <code>int32 signatureId = 5;</code>
     */
    public int getSignatureId() {
      return signatureId_;
    }

    public static final int RAWPAYLOAD_FIELD_NUMBER = 6;
    private com.google.protobuf.ByteString rawPayload_;
    /**
     * <pre>
     *&#47;  approach to support raw content in the Policy message.
     * </pre>
     *
     * <code>bytes rawPayload = 6;</code>
     */
    public com.google.protobuf.ByteString getRawPayload() {
      return rawPayload_;
    }

    public static final int RAWCONTENTTYPE_FIELD_NUMBER = 7;
    private volatile java.lang.Object rawContentType_;
    /**
     * <pre>
     *&#47; Content type of the raw content being uploaded
     * </pre>
     *
     * <code>string rawContentType = 7;</code>
     */
    public java.lang.String getRawContentType() {
      java.lang.Object ref = rawContentType_;
      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();
        rawContentType_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Content type of the raw content being uploaded
     * </pre>
     *
     * <code>string rawContentType = 7;</code>
     */
    public com.google.protobuf.ByteString
        getRawContentTypeBytes() {
      java.lang.Object ref = rawContentType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        rawContentType_ = 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 (version_ != 0) {
        output.writeInt32(1, version_);
      }
      for (int i = 0; i < policySubscription_.size(); i++) {
        output.writeMessage(2, policySubscription_.get(i));
      }
      if (timestamp_ != 0L) {
        output.writeInt64(3, timestamp_);
      }
      if (messageId_ != 0) {
        output.writeInt32(4, messageId_);
      }
      if (signatureId_ != 0) {
        output.writeInt32(5, signatureId_);
      }
      if (!rawPayload_.isEmpty()) {
        output.writeBytes(6, rawPayload_);
      }
      if (!getRawContentTypeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, rawContentType_);
      }
    }

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

      size = 0;
      if (version_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, version_);
      }
      for (int i = 0; i < policySubscription_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, policySubscription_.get(i));
      }
      if (timestamp_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, timestamp_);
      }
      if (messageId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, messageId_);
      }
      if (signatureId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, signatureId_);
      }
      if (!rawPayload_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(6, rawPayload_);
      }
      if (!getRawContentTypeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, rawContentType_);
      }
      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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish) obj;

      boolean result = true;
      result = result && (getVersion()
          == other.getVersion());
      result = result && getPolicySubscriptionList()
          .equals(other.getPolicySubscriptionList());
      result = result && (getTimestamp()
          == other.getTimestamp());
      result = result && (getMessageId()
          == other.getMessageId());
      result = result && (getSignatureId()
          == other.getSignatureId());
      result = result && getRawPayload()
          .equals(other.getRawPayload());
      result = result && getRawContentType()
          .equals(other.getRawContentType());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getVersion();
      if (getPolicySubscriptionCount() > 0) {
        hash = (37 * hash) + POLICYSUBSCRIPTION_FIELD_NUMBER;
        hash = (53 * hash) + getPolicySubscriptionList().hashCode();
      }
      hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTimestamp());
      hash = (37 * hash) + MESSAGEID_FIELD_NUMBER;
      hash = (53 * hash) + getMessageId();
      hash = (37 * hash) + SIGNATUREID_FIELD_NUMBER;
      hash = (53 * hash) + getSignatureId();
      hash = (37 * hash) + RAWPAYLOAD_FIELD_NUMBER;
      hash = (53 * hash) + getRawPayload().hashCode();
      hash = (37 * hash) + RAWCONTENTTYPE_FIELD_NUMBER;
      hash = (53 * hash) + getRawContentType().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish 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.VehicleDataAcquisitionPolicyPublish}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish)
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublishOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getPolicySubscriptionFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        version_ = 0;

        if (policySubscriptionBuilder_ == null) {
          policySubscription_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          policySubscriptionBuilder_.clear();
        }
        timestamp_ = 0L;

        messageId_ = 0;

        signatureId_ = 0;

        rawPayload_ = com.google.protobuf.ByteString.EMPTY;

        rawContentType_ = "";

        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.version_ = version_;
        if (policySubscriptionBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            policySubscription_ = java.util.Collections.unmodifiableList(policySubscription_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.policySubscription_ = policySubscription_;
        } else {
          result.policySubscription_ = policySubscriptionBuilder_.build();
        }
        result.timestamp_ = timestamp_;
        result.messageId_ = messageId_;
        result.signatureId_ = signatureId_;
        result.rawPayload_ = rawPayload_;
        result.rawContentType_ = rawContentType_;
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.getDefaultInstance()) return this;
        if (other.getVersion() != 0) {
          setVersion(other.getVersion());
        }
        if (policySubscriptionBuilder_ == null) {
          if (!other.policySubscription_.isEmpty()) {
            if (policySubscription_.isEmpty()) {
              policySubscription_ = other.policySubscription_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensurePolicySubscriptionIsMutable();
              policySubscription_.addAll(other.policySubscription_);
            }
            onChanged();
          }
        } else {
          if (!other.policySubscription_.isEmpty()) {
            if (policySubscriptionBuilder_.isEmpty()) {
              policySubscriptionBuilder_.dispose();
              policySubscriptionBuilder_ = null;
              policySubscription_ = other.policySubscription_;
              bitField0_ = (bitField0_ & ~0x00000002);
              policySubscriptionBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getPolicySubscriptionFieldBuilder() : null;
            } else {
              policySubscriptionBuilder_.addAllMessages(other.policySubscription_);
            }
          }
        }
        if (other.getTimestamp() != 0L) {
          setTimestamp(other.getTimestamp());
        }
        if (other.getMessageId() != 0) {
          setMessageId(other.getMessageId());
        }
        if (other.getSignatureId() != 0) {
          setSignatureId(other.getSignatureId());
        }
        if (other.getRawPayload() != com.google.protobuf.ByteString.EMPTY) {
          setRawPayload(other.getRawPayload());
        }
        if (!other.getRawContentType().isEmpty()) {
          rawContentType_ = other.rawContentType_;
          onChanged();
        }
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int version_ ;
      /**
       * <pre>
       *&#47; This will be deprecated, it makes more sense to have on a per subscriptionId basis
       * </pre>
       *
       * <code>int32 version = 1;</code>
       */
      public int getVersion() {
        return version_;
      }
      /**
       * <pre>
       *&#47; This will be deprecated, it makes more sense to have on a per subscriptionId basis
       * </pre>
       *
       * <code>int32 version = 1;</code>
       */
      public Builder setVersion(int value) {
        
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; This will be deprecated, it makes more sense to have on a per subscriptionId basis
       * </pre>
       *
       * <code>int32 version = 1;</code>
       */
      public Builder clearVersion() {
        
        version_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription> policySubscription_ =
        java.util.Collections.emptyList();
      private void ensurePolicySubscriptionIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          policySubscription_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription>(policySubscription_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscriptionOrBuilder> policySubscriptionBuilder_;

      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription> getPolicySubscriptionList() {
        if (policySubscriptionBuilder_ == null) {
          return java.util.Collections.unmodifiableList(policySubscription_);
        } else {
          return policySubscriptionBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public int getPolicySubscriptionCount() {
        if (policySubscriptionBuilder_ == null) {
          return policySubscription_.size();
        } else {
          return policySubscriptionBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription getPolicySubscription(int index) {
        if (policySubscriptionBuilder_ == null) {
          return policySubscription_.get(index);
        } else {
          return policySubscriptionBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public Builder setPolicySubscription(
          int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription value) {
        if (policySubscriptionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePolicySubscriptionIsMutable();
          policySubscription_.set(index, value);
          onChanged();
        } else {
          policySubscriptionBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public Builder setPolicySubscription(
          int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder builderForValue) {
        if (policySubscriptionBuilder_ == null) {
          ensurePolicySubscriptionIsMutable();
          policySubscription_.set(index, builderForValue.build());
          onChanged();
        } else {
          policySubscriptionBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public Builder addPolicySubscription(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription value) {
        if (policySubscriptionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePolicySubscriptionIsMutable();
          policySubscription_.add(value);
          onChanged();
        } else {
          policySubscriptionBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public Builder addPolicySubscription(
          int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription value) {
        if (policySubscriptionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePolicySubscriptionIsMutable();
          policySubscription_.add(index, value);
          onChanged();
        } else {
          policySubscriptionBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public Builder addPolicySubscription(
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder builderForValue) {
        if (policySubscriptionBuilder_ == null) {
          ensurePolicySubscriptionIsMutable();
          policySubscription_.add(builderForValue.build());
          onChanged();
        } else {
          policySubscriptionBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public Builder addPolicySubscription(
          int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder builderForValue) {
        if (policySubscriptionBuilder_ == null) {
          ensurePolicySubscriptionIsMutable();
          policySubscription_.add(index, builderForValue.build());
          onChanged();
        } else {
          policySubscriptionBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public Builder addAllPolicySubscription(
          java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription> values) {
        if (policySubscriptionBuilder_ == null) {
          ensurePolicySubscriptionIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, policySubscription_);
          onChanged();
        } else {
          policySubscriptionBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public Builder clearPolicySubscription() {
        if (policySubscriptionBuilder_ == null) {
          policySubscription_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          policySubscriptionBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public Builder removePolicySubscription(int index) {
        if (policySubscriptionBuilder_ == null) {
          ensurePolicySubscriptionIsMutable();
          policySubscription_.remove(index);
          onChanged();
        } else {
          policySubscriptionBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder getPolicySubscriptionBuilder(
          int index) {
        return getPolicySubscriptionFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscriptionOrBuilder getPolicySubscriptionOrBuilder(
          int index) {
        if (policySubscriptionBuilder_ == null) {
          return policySubscription_.get(index);  } else {
          return policySubscriptionBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscriptionOrBuilder> 
           getPolicySubscriptionOrBuilderList() {
        if (policySubscriptionBuilder_ != null) {
          return policySubscriptionBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(policySubscription_);
        }
      }
      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder addPolicySubscriptionBuilder() {
        return getPolicySubscriptionFieldBuilder().addBuilder(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.getDefaultInstance());
      }
      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder addPolicySubscriptionBuilder(
          int index) {
        return getPolicySubscriptionFieldBuilder().addBuilder(
            index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.getDefaultInstance());
      }
      /**
       * <pre>
       *&#47; This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder> 
           getPolicySubscriptionBuilderList() {
        return getPolicySubscriptionFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscriptionOrBuilder> 
          getPolicySubscriptionFieldBuilder() {
        if (policySubscriptionBuilder_ == null) {
          policySubscriptionBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscriptionOrBuilder>(
                  policySubscription_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          policySubscription_ = null;
        }
        return policySubscriptionBuilder_;
      }

      private long timestamp_ ;
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int64 timestamp = 3;</code>
       */
      public long getTimestamp() {
        return timestamp_;
      }
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int64 timestamp = 3;</code>
       */
      public Builder setTimestamp(long value) {
        
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int64 timestamp = 3;</code>
       */
      public Builder clearTimestamp() {
        
        timestamp_ = 0L;
        onChanged();
        return this;
      }

      private int messageId_ ;
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int32 messageId = 4;</code>
       */
      public int getMessageId() {
        return messageId_;
      }
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int32 messageId = 4;</code>
       */
      public Builder setMessageId(int value) {
        
        messageId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int32 messageId = 4;</code>
       */
      public Builder clearMessageId() {
        
        messageId_ = 0;
        onChanged();
        return this;
      }

      private int signatureId_ ;
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int32 signatureId = 5;</code>
       */
      public int getSignatureId() {
        return signatureId_;
      }
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int32 signatureId = 5;</code>
       */
      public Builder setSignatureId(int value) {
        
        signatureId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;Added for signature correlation to message
       * </pre>
       *
       * <code>int32 signatureId = 5;</code>
       */
      public Builder clearSignatureId() {
        
        signatureId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString rawPayload_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       *&#47;  approach to support raw content in the Policy message.
       * </pre>
       *
       * <code>bytes rawPayload = 6;</code>
       */
      public com.google.protobuf.ByteString getRawPayload() {
        return rawPayload_;
      }
      /**
       * <pre>
       *&#47;  approach to support raw content in the Policy message.
       * </pre>
       *
       * <code>bytes rawPayload = 6;</code>
       */
      public Builder setRawPayload(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        rawPayload_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;  approach to support raw content in the Policy message.
       * </pre>
       *
       * <code>bytes rawPayload = 6;</code>
       */
      public Builder clearRawPayload() {
        
        rawPayload_ = getDefaultInstance().getRawPayload();
        onChanged();
        return this;
      }

      private java.lang.Object rawContentType_ = "";
      /**
       * <pre>
       *&#47; Content type of the raw content being uploaded
       * </pre>
       *
       * <code>string rawContentType = 7;</code>
       */
      public java.lang.String getRawContentType() {
        java.lang.Object ref = rawContentType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          rawContentType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Content type of the raw content being uploaded
       * </pre>
       *
       * <code>string rawContentType = 7;</code>
       */
      public com.google.protobuf.ByteString
          getRawContentTypeBytes() {
        java.lang.Object ref = rawContentType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          rawContentType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Content type of the raw content being uploaded
       * </pre>
       *
       * <code>string rawContentType = 7;</code>
       */
      public Builder setRawContentType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        rawContentType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Content type of the raw content being uploaded
       * </pre>
       *
       * <code>string rawContentType = 7;</code>
       */
      public Builder clearRawContentType() {
        
        rawContentType_ = getDefaultInstance().getRawContentType();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Content type of the raw content being uploaded
       * </pre>
       *
       * <code>string rawContentType = 7;</code>
       */
      public Builder setRawContentTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        rawContentType_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


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

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

    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
     */
    java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription> 
        getDataSubscriptionList();
    /**
     * <pre>
     *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription getDataSubscription(int index);
    /**
     * <pre>
     *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
     */
    int getDataSubscriptionCount();
    /**
     * <pre>
     *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
     */
    java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscriptionOrBuilder> 
        getDataSubscriptionOrBuilderList();
    /**
     * <pre>
     *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscriptionOrBuilder getDataSubscriptionOrBuilder(
        int index);

    /**
     * <pre>
     *&#47; Provide vehicle identifier when the session on the secure channel cannot be used to identify the client.
     * </pre>
     *
     * <code>string vehicleId = 2;</code>
     */
    java.lang.String getVehicleId();
    /**
     * <pre>
     *&#47; Provide vehicle identifier when the session on the secure channel cannot be used to identify the client.
     * </pre>
     *
     * <code>string vehicleId = 2;</code>
     */
    com.google.protobuf.ByteString
        getVehicleIdBytes();

    /**
     * <pre>
     *&#47;  approach to upload raw content in the VehicleDataAcquisitionPublish message.
     * </pre>
     *
     * <code>bytes rawPayload = 3;</code>
     */
    com.google.protobuf.ByteString getRawPayload();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPublish}
   */
  public  static final class VehicleDataAcquisitionPublish extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleDataAcquisitionPublish)
      VehicleDataAcquisitionPublishOrBuilder {
    // Use VehicleDataAcquisitionPublish.newBuilder() to construct.
    private VehicleDataAcquisitionPublish(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VehicleDataAcquisitionPublish() {
      dataSubscription_ = java.util.Collections.emptyList();
      vehicleId_ = "";
      rawPayload_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private VehicleDataAcquisitionPublish(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                dataSubscription_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription>();
                mutable_bitField0_ |= 0x00000001;
              }
              dataSubscription_.add(
                  input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.parser(), extensionRegistry));
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              vehicleId_ = s;
              break;
            }
            case 26: {

              rawPayload_ = input.readBytes();
              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_ & 0x00000001) == 0x00000001)) {
          dataSubscription_ = java.util.Collections.unmodifiableList(dataSubscription_);
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.Builder.class);
    }

    public interface SignalValueOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47; Signal ID associated with the signal
       * </pre>
       *
       * <code>int32 signalId = 12;</code>
       */
      int getSignalId();

      /**
       * <pre>
       *&#47;May contain an arbitrary sequence of bytes.
       * </pre>
       *
       * <code>bytes bytesValue = 1;</code>
       */
      com.google.protobuf.ByteString getBytesValue();

      /**
       * <pre>
       *&#47;Uses variable-length encoding. Inefficient for encoding negative numbers â if your field is likely to have negative values, use sint32 instead.
       * </pre>
       *
       * <code>int32 int32Value = 2;</code>
       */
      int getInt32Value();

      /**
       * <pre>
       *&#47;Uses variable-length encoding. Inefficient for encoding negative numbers â if your field is likely to have negative values, use sint64 instead.
       * </pre>
       *
       * <code>int64 int64Value = 3;</code>
       */
      long getInt64Value();

      /**
       * <pre>
       *&#47; uses boolean variable, i.e. true or false.
       * </pre>
       *
       * <code>bool booleanValue = 4;</code>
       */
      boolean getBooleanValue();

      /**
       * <pre>
       *&#47; IEE754 32bit float value.
       * </pre>
       *
       * <code>float floatValue = 5;</code>
       */
      float getFloatValue();

      /**
       * <pre>
       *&#47; IEE754 double value.
       * </pre>
       *
       * <code>double doubleValue = 6;</code>
       */
      double getDoubleValue();

      /**
       * <pre>
       *&#47; Variable length string that contains UTF-8 encoded characters.
       * </pre>
       *
       * <code>string stringValue = 7;</code>
       */
      java.lang.String getStringValue();
      /**
       * <pre>
       *&#47; Variable length string that contains UTF-8 encoded characters.
       * </pre>
       *
       * <code>string stringValue = 7;</code>
       */
      com.google.protobuf.ByteString
          getStringValueBytes();

      /**
       * <pre>
       *&#47; Efficient for negative as well as positive numbers. Size increases with absolute value
       * </pre>
       *
       * <code>sint32 sint32Value = 8;</code>
       */
      int getSint32Value();

      /**
       * <pre>
       *&#47; Efficient for negative as well as positive numbers. Size increases with absolute value
       * </pre>
       *
       * <code>sint64 sint64Value = 9;</code>
       */
      long getSint64Value();

      /**
       * <pre>
       *&#47; always 4 bytes, use if the field has a broad range of values
       * </pre>
       *
       * <code>sfixed32 sfixed32Value = 10;</code>
       */
      int getSfixed32Value();

      /**
       * <pre>
       *&#47; always 8 bytes, use if the field has a broad range of values
       * </pre>
       *
       * <code>sfixed64 sfixed64Value = 11;</code>
       */
      long getSfixed64Value();

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.ValueCase getValueCase();
    }
    /**
     * <pre>
     **
     * An actual data value collected. int32/sint32/sfixed32 all have the same range, as do int64/sint64/sfixed64. The sender should select as appropriate for the expected pattern of data. 
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue}
     */
    public  static final class SignalValue extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue)
        SignalValueOrBuilder {
      // Use SignalValue.newBuilder() to construct.
      private SignalValue(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private SignalValue() {
        signalId_ = 0;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private SignalValue(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                valueCase_ = 1;
                value_ = input.readBytes();
                break;
              }
              case 16: {
                valueCase_ = 2;
                value_ = input.readInt32();
                break;
              }
              case 24: {
                valueCase_ = 3;
                value_ = input.readInt64();
                break;
              }
              case 32: {
                valueCase_ = 4;
                value_ = input.readBool();
                break;
              }
              case 45: {
                valueCase_ = 5;
                value_ = input.readFloat();
                break;
              }
              case 49: {
                valueCase_ = 6;
                value_ = input.readDouble();
                break;
              }
              case 58: {
                java.lang.String s = input.readStringRequireUtf8();
                valueCase_ = 7;
                value_ = s;
                break;
              }
              case 64: {
                valueCase_ = 8;
                value_ = input.readSInt32();
                break;
              }
              case 72: {
                valueCase_ = 9;
                value_ = input.readSInt64();
                break;
              }
              case 85: {
                valueCase_ = 10;
                value_ = input.readSFixed32();
                break;
              }
              case 89: {
                valueCase_ = 11;
                value_ = input.readSFixed64();
                break;
              }
              case 96: {

                signalId_ = input.readInt32();
                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 {
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_SignalValue_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_SignalValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder.class);
      }

      private int valueCase_ = 0;
      private java.lang.Object value_;
      public enum ValueCase
          implements com.google.protobuf.Internal.EnumLite {
        BYTESVALUE(1),
        INT32VALUE(2),
        INT64VALUE(3),
        BOOLEANVALUE(4),
        FLOATVALUE(5),
        DOUBLEVALUE(6),
        STRINGVALUE(7),
        SINT32VALUE(8),
        SINT64VALUE(9),
        SFIXED32VALUE(10),
        SFIXED64VALUE(11),
        VALUE_NOT_SET(0);
        private final int value;
        private ValueCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ValueCase valueOf(int value) {
          return forNumber(value);
        }

        public static ValueCase forNumber(int value) {
          switch (value) {
            case 1: return BYTESVALUE;
            case 2: return INT32VALUE;
            case 3: return INT64VALUE;
            case 4: return BOOLEANVALUE;
            case 5: return FLOATVALUE;
            case 6: return DOUBLEVALUE;
            case 7: return STRINGVALUE;
            case 8: return SINT32VALUE;
            case 9: return SINT64VALUE;
            case 10: return SFIXED32VALUE;
            case 11: return SFIXED64VALUE;
            case 0: return VALUE_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };

      public ValueCase
      getValueCase() {
        return ValueCase.forNumber(
            valueCase_);
      }

      public static final int SIGNALID_FIELD_NUMBER = 12;
      private int signalId_;
      /**
       * <pre>
       *&#47; Signal ID associated with the signal
       * </pre>
       *
       * <code>int32 signalId = 12;</code>
       */
      public int getSignalId() {
        return signalId_;
      }

      public static final int BYTESVALUE_FIELD_NUMBER = 1;
      /**
       * <pre>
       *&#47;May contain an arbitrary sequence of bytes.
       * </pre>
       *
       * <code>bytes bytesValue = 1;</code>
       */
      public com.google.protobuf.ByteString getBytesValue() {
        if (valueCase_ == 1) {
          return (com.google.protobuf.ByteString) value_;
        }
        return com.google.protobuf.ByteString.EMPTY;
      }

      public static final int INT32VALUE_FIELD_NUMBER = 2;
      /**
       * <pre>
       *&#47;Uses variable-length encoding. Inefficient for encoding negative numbers â if your field is likely to have negative values, use sint32 instead.
       * </pre>
       *
       * <code>int32 int32Value = 2;</code>
       */
      public int getInt32Value() {
        if (valueCase_ == 2) {
          return (java.lang.Integer) value_;
        }
        return 0;
      }

      public static final int INT64VALUE_FIELD_NUMBER = 3;
      /**
       * <pre>
       *&#47;Uses variable-length encoding. Inefficient for encoding negative numbers â if your field is likely to have negative values, use sint64 instead.
       * </pre>
       *
       * <code>int64 int64Value = 3;</code>
       */
      public long getInt64Value() {
        if (valueCase_ == 3) {
          return (java.lang.Long) value_;
        }
        return 0L;
      }

      public static final int BOOLEANVALUE_FIELD_NUMBER = 4;
      /**
       * <pre>
       *&#47; uses boolean variable, i.e. true or false.
       * </pre>
       *
       * <code>bool booleanValue = 4;</code>
       */
      public boolean getBooleanValue() {
        if (valueCase_ == 4) {
          return (java.lang.Boolean) value_;
        }
        return false;
      }

      public static final int FLOATVALUE_FIELD_NUMBER = 5;
      /**
       * <pre>
       *&#47; IEE754 32bit float value.
       * </pre>
       *
       * <code>float floatValue = 5;</code>
       */
      public float getFloatValue() {
        if (valueCase_ == 5) {
          return (java.lang.Float) value_;
        }
        return 0F;
      }

      public static final int DOUBLEVALUE_FIELD_NUMBER = 6;
      /**
       * <pre>
       *&#47; IEE754 double value.
       * </pre>
       *
       * <code>double doubleValue = 6;</code>
       */
      public double getDoubleValue() {
        if (valueCase_ == 6) {
          return (java.lang.Double) value_;
        }
        return 0D;
      }

      public static final int STRINGVALUE_FIELD_NUMBER = 7;
      /**
       * <pre>
       *&#47; Variable length string that contains UTF-8 encoded characters.
       * </pre>
       *
       * <code>string stringValue = 7;</code>
       */
      public java.lang.String getStringValue() {
        java.lang.Object ref = "";
        if (valueCase_ == 7) {
          ref = value_;
        }
        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 (valueCase_ == 7) {
            value_ = s;
          }
          return s;
        }
      }
      /**
       * <pre>
       *&#47; Variable length string that contains UTF-8 encoded characters.
       * </pre>
       *
       * <code>string stringValue = 7;</code>
       */
      public com.google.protobuf.ByteString
          getStringValueBytes() {
        java.lang.Object ref = "";
        if (valueCase_ == 7) {
          ref = value_;
        }
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (valueCase_ == 7) {
            value_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int SINT32VALUE_FIELD_NUMBER = 8;
      /**
       * <pre>
       *&#47; Efficient for negative as well as positive numbers. Size increases with absolute value
       * </pre>
       *
       * <code>sint32 sint32Value = 8;</code>
       */
      public int getSint32Value() {
        if (valueCase_ == 8) {
          return (java.lang.Integer) value_;
        }
        return 0;
      }

      public static final int SINT64VALUE_FIELD_NUMBER = 9;
      /**
       * <pre>
       *&#47; Efficient for negative as well as positive numbers. Size increases with absolute value
       * </pre>
       *
       * <code>sint64 sint64Value = 9;</code>
       */
      public long getSint64Value() {
        if (valueCase_ == 9) {
          return (java.lang.Long) value_;
        }
        return 0L;
      }

      public static final int SFIXED32VALUE_FIELD_NUMBER = 10;
      /**
       * <pre>
       *&#47; always 4 bytes, use if the field has a broad range of values
       * </pre>
       *
       * <code>sfixed32 sfixed32Value = 10;</code>
       */
      public int getSfixed32Value() {
        if (valueCase_ == 10) {
          return (java.lang.Integer) value_;
        }
        return 0;
      }

      public static final int SFIXED64VALUE_FIELD_NUMBER = 11;
      /**
       * <pre>
       *&#47; always 8 bytes, use if the field has a broad range of values
       * </pre>
       *
       * <code>sfixed64 sfixed64Value = 11;</code>
       */
      public long getSfixed64Value() {
        if (valueCase_ == 11) {
          return (java.lang.Long) value_;
        }
        return 0L;
      }

      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 (valueCase_ == 1) {
          output.writeBytes(
              1, (com.google.protobuf.ByteString) value_);
        }
        if (valueCase_ == 2) {
          output.writeInt32(
              2, (int)((java.lang.Integer) value_));
        }
        if (valueCase_ == 3) {
          output.writeInt64(
              3, (long)((java.lang.Long) value_));
        }
        if (valueCase_ == 4) {
          output.writeBool(
              4, (boolean)((java.lang.Boolean) value_));
        }
        if (valueCase_ == 5) {
          output.writeFloat(
              5, (float)((java.lang.Float) value_));
        }
        if (valueCase_ == 6) {
          output.writeDouble(
              6, (double)((java.lang.Double) value_));
        }
        if (valueCase_ == 7) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 7, value_);
        }
        if (valueCase_ == 8) {
          output.writeSInt32(
              8, (int)((java.lang.Integer) value_));
        }
        if (valueCase_ == 9) {
          output.writeSInt64(
              9, (long)((java.lang.Long) value_));
        }
        if (valueCase_ == 10) {
          output.writeSFixed32(
              10, (int)((java.lang.Integer) value_));
        }
        if (valueCase_ == 11) {
          output.writeSFixed64(
              11, (long)((java.lang.Long) value_));
        }
        if (signalId_ != 0) {
          output.writeInt32(12, signalId_);
        }
      }

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

        size = 0;
        if (valueCase_ == 1) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(
                1, (com.google.protobuf.ByteString) value_);
        }
        if (valueCase_ == 2) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(
                2, (int)((java.lang.Integer) value_));
        }
        if (valueCase_ == 3) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(
                3, (long)((java.lang.Long) value_));
        }
        if (valueCase_ == 4) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(
                4, (boolean)((java.lang.Boolean) value_));
        }
        if (valueCase_ == 5) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(
                5, (float)((java.lang.Float) value_));
        }
        if (valueCase_ == 6) {
          size += com.google.protobuf.CodedOutputStream
            .computeDoubleSize(
                6, (double)((java.lang.Double) value_));
        }
        if (valueCase_ == 7) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, value_);
        }
        if (valueCase_ == 8) {
          size += com.google.protobuf.CodedOutputStream
            .computeSInt32Size(
                8, (int)((java.lang.Integer) value_));
        }
        if (valueCase_ == 9) {
          size += com.google.protobuf.CodedOutputStream
            .computeSInt64Size(
                9, (long)((java.lang.Long) value_));
        }
        if (valueCase_ == 10) {
          size += com.google.protobuf.CodedOutputStream
            .computeSFixed32Size(
                10, (int)((java.lang.Integer) value_));
        }
        if (valueCase_ == 11) {
          size += com.google.protobuf.CodedOutputStream
            .computeSFixed64Size(
                11, (long)((java.lang.Long) value_));
        }
        if (signalId_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(12, signalId_);
        }
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue) obj;

        boolean result = true;
        result = result && (getSignalId()
            == other.getSignalId());
        result = result && getValueCase().equals(
            other.getValueCase());
        if (!result) return false;
        switch (valueCase_) {
          case 1:
            result = result && getBytesValue()
                .equals(other.getBytesValue());
            break;
          case 2:
            result = result && (getInt32Value()
                == other.getInt32Value());
            break;
          case 3:
            result = result && (getInt64Value()
                == other.getInt64Value());
            break;
          case 4:
            result = result && (getBooleanValue()
                == other.getBooleanValue());
            break;
          case 5:
            result = result && (
                java.lang.Float.floatToIntBits(getFloatValue())
                == java.lang.Float.floatToIntBits(
                    other.getFloatValue()));
            break;
          case 6:
            result = result && (
                java.lang.Double.doubleToLongBits(getDoubleValue())
                == java.lang.Double.doubleToLongBits(
                    other.getDoubleValue()));
            break;
          case 7:
            result = result && getStringValue()
                .equals(other.getStringValue());
            break;
          case 8:
            result = result && (getSint32Value()
                == other.getSint32Value());
            break;
          case 9:
            result = result && (getSint64Value()
                == other.getSint64Value());
            break;
          case 10:
            result = result && (getSfixed32Value()
                == other.getSfixed32Value());
            break;
          case 11:
            result = result && (getSfixed64Value()
                == other.getSfixed64Value());
            break;
          case 0:
          default:
        }
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + SIGNALID_FIELD_NUMBER;
        hash = (53 * hash) + getSignalId();
        switch (valueCase_) {
          case 1:
            hash = (37 * hash) + BYTESVALUE_FIELD_NUMBER;
            hash = (53 * hash) + getBytesValue().hashCode();
            break;
          case 2:
            hash = (37 * hash) + INT32VALUE_FIELD_NUMBER;
            hash = (53 * hash) + getInt32Value();
            break;
          case 3:
            hash = (37 * hash) + INT64VALUE_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                getInt64Value());
            break;
          case 4:
            hash = (37 * hash) + BOOLEANVALUE_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
                getBooleanValue());
            break;
          case 5:
            hash = (37 * hash) + FLOATVALUE_FIELD_NUMBER;
            hash = (53 * hash) + java.lang.Float.floatToIntBits(
                getFloatValue());
            break;
          case 6:
            hash = (37 * hash) + DOUBLEVALUE_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                java.lang.Double.doubleToLongBits(getDoubleValue()));
            break;
          case 7:
            hash = (37 * hash) + STRINGVALUE_FIELD_NUMBER;
            hash = (53 * hash) + getStringValue().hashCode();
            break;
          case 8:
            hash = (37 * hash) + SINT32VALUE_FIELD_NUMBER;
            hash = (53 * hash) + getSint32Value();
            break;
          case 9:
            hash = (37 * hash) + SINT64VALUE_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                getSint64Value());
            break;
          case 10:
            hash = (37 * hash) + SFIXED32VALUE_FIELD_NUMBER;
            hash = (53 * hash) + getSfixed32Value();
            break;
          case 11:
            hash = (37 * hash) + SFIXED64VALUE_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                getSfixed64Value());
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue 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>
       **
       * An actual data value collected. int32/sint32/sfixed32 all have the same range, as do int64/sint64/sfixed64. The sender should select as appropriate for the expected pattern of data. 
       * </pre>
       *
       * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue)
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValueOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_SignalValue_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_SignalValue_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.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();
          signalId_ = 0;

          valueCase_ = 0;
          value_ = null;
          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue(this);
          result.signalId_ = signalId_;
          if (valueCase_ == 1) {
            result.value_ = value_;
          }
          if (valueCase_ == 2) {
            result.value_ = value_;
          }
          if (valueCase_ == 3) {
            result.value_ = value_;
          }
          if (valueCase_ == 4) {
            result.value_ = value_;
          }
          if (valueCase_ == 5) {
            result.value_ = value_;
          }
          if (valueCase_ == 6) {
            result.value_ = value_;
          }
          if (valueCase_ == 7) {
            result.value_ = value_;
          }
          if (valueCase_ == 8) {
            result.value_ = value_;
          }
          if (valueCase_ == 9) {
            result.value_ = value_;
          }
          if (valueCase_ == 10) {
            result.value_ = value_;
          }
          if (valueCase_ == 11) {
            result.value_ = value_;
          }
          result.valueCase_ = valueCase_;
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.getDefaultInstance()) return this;
          if (other.getSignalId() != 0) {
            setSignalId(other.getSignalId());
          }
          switch (other.getValueCase()) {
            case BYTESVALUE: {
              setBytesValue(other.getBytesValue());
              break;
            }
            case INT32VALUE: {
              setInt32Value(other.getInt32Value());
              break;
            }
            case INT64VALUE: {
              setInt64Value(other.getInt64Value());
              break;
            }
            case BOOLEANVALUE: {
              setBooleanValue(other.getBooleanValue());
              break;
            }
            case FLOATVALUE: {
              setFloatValue(other.getFloatValue());
              break;
            }
            case DOUBLEVALUE: {
              setDoubleValue(other.getDoubleValue());
              break;
            }
            case STRINGVALUE: {
              valueCase_ = 7;
              value_ = other.value_;
              onChanged();
              break;
            }
            case SINT32VALUE: {
              setSint32Value(other.getSint32Value());
              break;
            }
            case SINT64VALUE: {
              setSint64Value(other.getSint64Value());
              break;
            }
            case SFIXED32VALUE: {
              setSfixed32Value(other.getSfixed32Value());
              break;
            }
            case SFIXED64VALUE: {
              setSfixed64Value(other.getSfixed64Value());
              break;
            }
            case VALUE_NOT_SET: {
              break;
            }
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int valueCase_ = 0;
        private java.lang.Object value_;
        public ValueCase
            getValueCase() {
          return ValueCase.forNumber(
              valueCase_);
        }

        public Builder clearValue() {
          valueCase_ = 0;
          value_ = null;
          onChanged();
          return this;
        }


        private int signalId_ ;
        /**
         * <pre>
         *&#47; Signal ID associated with the signal
         * </pre>
         *
         * <code>int32 signalId = 12;</code>
         */
        public int getSignalId() {
          return signalId_;
        }
        /**
         * <pre>
         *&#47; Signal ID associated with the signal
         * </pre>
         *
         * <code>int32 signalId = 12;</code>
         */
        public Builder setSignalId(int value) {
          
          signalId_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Signal ID associated with the signal
         * </pre>
         *
         * <code>int32 signalId = 12;</code>
         */
        public Builder clearSignalId() {
          
          signalId_ = 0;
          onChanged();
          return this;
        }

        /**
         * <pre>
         *&#47;May contain an arbitrary sequence of bytes.
         * </pre>
         *
         * <code>bytes bytesValue = 1;</code>
         */
        public com.google.protobuf.ByteString getBytesValue() {
          if (valueCase_ == 1) {
            return (com.google.protobuf.ByteString) value_;
          }
          return com.google.protobuf.ByteString.EMPTY;
        }
        /**
         * <pre>
         *&#47;May contain an arbitrary sequence of bytes.
         * </pre>
         *
         * <code>bytes bytesValue = 1;</code>
         */
        public Builder setBytesValue(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  valueCase_ = 1;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47;May contain an arbitrary sequence of bytes.
         * </pre>
         *
         * <code>bytes bytesValue = 1;</code>
         */
        public Builder clearBytesValue() {
          if (valueCase_ == 1) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * <pre>
         *&#47;Uses variable-length encoding. Inefficient for encoding negative numbers â if your field is likely to have negative values, use sint32 instead.
         * </pre>
         *
         * <code>int32 int32Value = 2;</code>
         */
        public int getInt32Value() {
          if (valueCase_ == 2) {
            return (java.lang.Integer) value_;
          }
          return 0;
        }
        /**
         * <pre>
         *&#47;Uses variable-length encoding. Inefficient for encoding negative numbers â if your field is likely to have negative values, use sint32 instead.
         * </pre>
         *
         * <code>int32 int32Value = 2;</code>
         */
        public Builder setInt32Value(int value) {
          valueCase_ = 2;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47;Uses variable-length encoding. Inefficient for encoding negative numbers â if your field is likely to have negative values, use sint32 instead.
         * </pre>
         *
         * <code>int32 int32Value = 2;</code>
         */
        public Builder clearInt32Value() {
          if (valueCase_ == 2) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * <pre>
         *&#47;Uses variable-length encoding. Inefficient for encoding negative numbers â if your field is likely to have negative values, use sint64 instead.
         * </pre>
         *
         * <code>int64 int64Value = 3;</code>
         */
        public long getInt64Value() {
          if (valueCase_ == 3) {
            return (java.lang.Long) value_;
          }
          return 0L;
        }
        /**
         * <pre>
         *&#47;Uses variable-length encoding. Inefficient for encoding negative numbers â if your field is likely to have negative values, use sint64 instead.
         * </pre>
         *
         * <code>int64 int64Value = 3;</code>
         */
        public Builder setInt64Value(long value) {
          valueCase_ = 3;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47;Uses variable-length encoding. Inefficient for encoding negative numbers â if your field is likely to have negative values, use sint64 instead.
         * </pre>
         *
         * <code>int64 int64Value = 3;</code>
         */
        public Builder clearInt64Value() {
          if (valueCase_ == 3) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * <pre>
         *&#47; uses boolean variable, i.e. true or false.
         * </pre>
         *
         * <code>bool booleanValue = 4;</code>
         */
        public boolean getBooleanValue() {
          if (valueCase_ == 4) {
            return (java.lang.Boolean) value_;
          }
          return false;
        }
        /**
         * <pre>
         *&#47; uses boolean variable, i.e. true or false.
         * </pre>
         *
         * <code>bool booleanValue = 4;</code>
         */
        public Builder setBooleanValue(boolean value) {
          valueCase_ = 4;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; uses boolean variable, i.e. true or false.
         * </pre>
         *
         * <code>bool booleanValue = 4;</code>
         */
        public Builder clearBooleanValue() {
          if (valueCase_ == 4) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * <pre>
         *&#47; IEE754 32bit float value.
         * </pre>
         *
         * <code>float floatValue = 5;</code>
         */
        public float getFloatValue() {
          if (valueCase_ == 5) {
            return (java.lang.Float) value_;
          }
          return 0F;
        }
        /**
         * <pre>
         *&#47; IEE754 32bit float value.
         * </pre>
         *
         * <code>float floatValue = 5;</code>
         */
        public Builder setFloatValue(float value) {
          valueCase_ = 5;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; IEE754 32bit float value.
         * </pre>
         *
         * <code>float floatValue = 5;</code>
         */
        public Builder clearFloatValue() {
          if (valueCase_ == 5) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * <pre>
         *&#47; IEE754 double value.
         * </pre>
         *
         * <code>double doubleValue = 6;</code>
         */
        public double getDoubleValue() {
          if (valueCase_ == 6) {
            return (java.lang.Double) value_;
          }
          return 0D;
        }
        /**
         * <pre>
         *&#47; IEE754 double value.
         * </pre>
         *
         * <code>double doubleValue = 6;</code>
         */
        public Builder setDoubleValue(double value) {
          valueCase_ = 6;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; IEE754 double value.
         * </pre>
         *
         * <code>double doubleValue = 6;</code>
         */
        public Builder clearDoubleValue() {
          if (valueCase_ == 6) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * <pre>
         *&#47; Variable length string that contains UTF-8 encoded characters.
         * </pre>
         *
         * <code>string stringValue = 7;</code>
         */
        public java.lang.String getStringValue() {
          java.lang.Object ref = "";
          if (valueCase_ == 7) {
            ref = value_;
          }
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (valueCase_ == 7) {
              value_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         *&#47; Variable length string that contains UTF-8 encoded characters.
         * </pre>
         *
         * <code>string stringValue = 7;</code>
         */
        public com.google.protobuf.ByteString
            getStringValueBytes() {
          java.lang.Object ref = "";
          if (valueCase_ == 7) {
            ref = value_;
          }
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            if (valueCase_ == 7) {
              value_ = b;
            }
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         *&#47; Variable length string that contains UTF-8 encoded characters.
         * </pre>
         *
         * <code>string stringValue = 7;</code>
         */
        public Builder setStringValue(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  valueCase_ = 7;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Variable length string that contains UTF-8 encoded characters.
         * </pre>
         *
         * <code>string stringValue = 7;</code>
         */
        public Builder clearStringValue() {
          if (valueCase_ == 7) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }
        /**
         * <pre>
         *&#47; Variable length string that contains UTF-8 encoded characters.
         * </pre>
         *
         * <code>string stringValue = 7;</code>
         */
        public Builder setStringValueBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          valueCase_ = 7;
          value_ = value;
          onChanged();
          return this;
        }

        /**
         * <pre>
         *&#47; Efficient for negative as well as positive numbers. Size increases with absolute value
         * </pre>
         *
         * <code>sint32 sint32Value = 8;</code>
         */
        public int getSint32Value() {
          if (valueCase_ == 8) {
            return (java.lang.Integer) value_;
          }
          return 0;
        }
        /**
         * <pre>
         *&#47; Efficient for negative as well as positive numbers. Size increases with absolute value
         * </pre>
         *
         * <code>sint32 sint32Value = 8;</code>
         */
        public Builder setSint32Value(int value) {
          valueCase_ = 8;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Efficient for negative as well as positive numbers. Size increases with absolute value
         * </pre>
         *
         * <code>sint32 sint32Value = 8;</code>
         */
        public Builder clearSint32Value() {
          if (valueCase_ == 8) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * <pre>
         *&#47; Efficient for negative as well as positive numbers. Size increases with absolute value
         * </pre>
         *
         * <code>sint64 sint64Value = 9;</code>
         */
        public long getSint64Value() {
          if (valueCase_ == 9) {
            return (java.lang.Long) value_;
          }
          return 0L;
        }
        /**
         * <pre>
         *&#47; Efficient for negative as well as positive numbers. Size increases with absolute value
         * </pre>
         *
         * <code>sint64 sint64Value = 9;</code>
         */
        public Builder setSint64Value(long value) {
          valueCase_ = 9;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Efficient for negative as well as positive numbers. Size increases with absolute value
         * </pre>
         *
         * <code>sint64 sint64Value = 9;</code>
         */
        public Builder clearSint64Value() {
          if (valueCase_ == 9) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * <pre>
         *&#47; always 4 bytes, use if the field has a broad range of values
         * </pre>
         *
         * <code>sfixed32 sfixed32Value = 10;</code>
         */
        public int getSfixed32Value() {
          if (valueCase_ == 10) {
            return (java.lang.Integer) value_;
          }
          return 0;
        }
        /**
         * <pre>
         *&#47; always 4 bytes, use if the field has a broad range of values
         * </pre>
         *
         * <code>sfixed32 sfixed32Value = 10;</code>
         */
        public Builder setSfixed32Value(int value) {
          valueCase_ = 10;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; always 4 bytes, use if the field has a broad range of values
         * </pre>
         *
         * <code>sfixed32 sfixed32Value = 10;</code>
         */
        public Builder clearSfixed32Value() {
          if (valueCase_ == 10) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * <pre>
         *&#47; always 8 bytes, use if the field has a broad range of values
         * </pre>
         *
         * <code>sfixed64 sfixed64Value = 11;</code>
         */
        public long getSfixed64Value() {
          if (valueCase_ == 11) {
            return (java.lang.Long) value_;
          }
          return 0L;
        }
        /**
         * <pre>
         *&#47; always 8 bytes, use if the field has a broad range of values
         * </pre>
         *
         * <code>sfixed64 sfixed64Value = 11;</code>
         */
        public Builder setSfixed64Value(long value) {
          valueCase_ = 11;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; always 8 bytes, use if the field has a broad range of values
         * </pre>
         *
         * <code>sfixed64 sfixed64Value = 11;</code>
         */
        public Builder clearSfixed64Value() {
          if (valueCase_ == 11) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface DataRowOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47; Timestamp for when this data row was collected. Timestamps will typically increment per the DataSetSubscription's periodic rate, but many sources of timing jitter may affect this. If differental encoding is in use, timestamp may be sent as an absolute value in the first row, with subsequent rows having either a delta (DIFFERENTIAL_DELTA_TIME) or no timestamp value (DIFFERENATIAL_IMPLIED_PERIOD) at all.
       * </pre>
       *
       * <code>int64 timestamp = 1;</code>
       */
      long getTimestamp();

      /**
       * <pre>
       *&#47;Contains information for signal value which can be any data type per SignalValue
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
       */
      java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue> 
          getSignalValueList();
      /**
       * <pre>
       *&#47;Contains information for signal value which can be any data type per SignalValue
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue getSignalValue(int index);
      /**
       * <pre>
       *&#47;Contains information for signal value which can be any data type per SignalValue
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
       */
      int getSignalValueCount();
      /**
       * <pre>
       *&#47;Contains information for signal value which can be any data type per SignalValue
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
       */
      java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValueOrBuilder> 
          getSignalValueOrBuilderList();
      /**
       * <pre>
       *&#47;Contains information for signal value which can be any data type per SignalValue
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValueOrBuilder getSignalValueOrBuilder(
          int index);
    }
    /**
     * <pre>
     **
     * Each iteration of data collection for a DataSet will generate one data row. To fully decode and understand a data row the original DataSetSubscription list of signal names must be avaliable because the signal name is not present in this message.
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow}
     */
    public  static final class DataRow extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow)
        DataRowOrBuilder {
      // Use DataRow.newBuilder() to construct.
      private DataRow(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private DataRow() {
        timestamp_ = 0L;
        signalValue_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private DataRow(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 8: {

                timestamp_ = input.readInt64();
                break;
              }
              case 18: {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  signalValue_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue>();
                  mutable_bitField0_ |= 0x00000002;
                }
                signalValue_.add(
                    input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.parser(), extensionRegistry));
                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_ & 0x00000002) == 0x00000002)) {
            signalValue_ = java.util.Collections.unmodifiableList(signalValue_);
          }
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataRow_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataRow_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.Builder.class);
      }

      private int bitField0_;
      public static final int TIMESTAMP_FIELD_NUMBER = 1;
      private long timestamp_;
      /**
       * <pre>
       *&#47; Timestamp for when this data row was collected. Timestamps will typically increment per the DataSetSubscription's periodic rate, but many sources of timing jitter may affect this. If differental encoding is in use, timestamp may be sent as an absolute value in the first row, with subsequent rows having either a delta (DIFFERENTIAL_DELTA_TIME) or no timestamp value (DIFFERENATIAL_IMPLIED_PERIOD) at all.
       * </pre>
       *
       * <code>int64 timestamp = 1;</code>
       */
      public long getTimestamp() {
        return timestamp_;
      }

      public static final int SIGNALVALUE_FIELD_NUMBER = 2;
      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue> signalValue_;
      /**
       * <pre>
       *&#47;Contains information for signal value which can be any data type per SignalValue
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue> getSignalValueList() {
        return signalValue_;
      }
      /**
       * <pre>
       *&#47;Contains information for signal value which can be any data type per SignalValue
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValueOrBuilder> 
          getSignalValueOrBuilderList() {
        return signalValue_;
      }
      /**
       * <pre>
       *&#47;Contains information for signal value which can be any data type per SignalValue
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
       */
      public int getSignalValueCount() {
        return signalValue_.size();
      }
      /**
       * <pre>
       *&#47;Contains information for signal value which can be any data type per SignalValue
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue getSignalValue(int index) {
        return signalValue_.get(index);
      }
      /**
       * <pre>
       *&#47;Contains information for signal value which can be any data type per SignalValue
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValueOrBuilder getSignalValueOrBuilder(
          int index) {
        return signalValue_.get(index);
      }

      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 (timestamp_ != 0L) {
          output.writeInt64(1, timestamp_);
        }
        for (int i = 0; i < signalValue_.size(); i++) {
          output.writeMessage(2, signalValue_.get(i));
        }
      }

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

        size = 0;
        if (timestamp_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, timestamp_);
        }
        for (int i = 0; i < signalValue_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, signalValue_.get(i));
        }
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow) obj;

        boolean result = true;
        result = result && (getTimestamp()
            == other.getTimestamp());
        result = result && getSignalValueList()
            .equals(other.getSignalValueList());
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTimestamp());
        if (getSignalValueCount() > 0) {
          hash = (37 * hash) + SIGNALVALUE_FIELD_NUMBER;
          hash = (53 * hash) + getSignalValueList().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow 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>
       **
       * Each iteration of data collection for a DataSet will generate one data row. To fully decode and understand a data row the original DataSetSubscription list of signal names must be avaliable because the signal name is not present in this message.
       * </pre>
       *
       * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow)
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRowOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataRow_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataRow_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getSignalValueFieldBuilder();
          }
        }
        public Builder clear() {
          super.clear();
          timestamp_ = 0L;

          if (signalValueBuilder_ == null) {
            signalValue_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            signalValueBuilder_.clear();
          }
          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          result.timestamp_ = timestamp_;
          if (signalValueBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              signalValue_ = java.util.Collections.unmodifiableList(signalValue_);
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.signalValue_ = signalValue_;
          } else {
            result.signalValue_ = signalValueBuilder_.build();
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.getDefaultInstance()) return this;
          if (other.getTimestamp() != 0L) {
            setTimestamp(other.getTimestamp());
          }
          if (signalValueBuilder_ == null) {
            if (!other.signalValue_.isEmpty()) {
              if (signalValue_.isEmpty()) {
                signalValue_ = other.signalValue_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureSignalValueIsMutable();
                signalValue_.addAll(other.signalValue_);
              }
              onChanged();
            }
          } else {
            if (!other.signalValue_.isEmpty()) {
              if (signalValueBuilder_.isEmpty()) {
                signalValueBuilder_.dispose();
                signalValueBuilder_ = null;
                signalValue_ = other.signalValue_;
                bitField0_ = (bitField0_ & ~0x00000002);
                signalValueBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getSignalValueFieldBuilder() : null;
              } else {
                signalValueBuilder_.addAllMessages(other.signalValue_);
              }
            }
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private long timestamp_ ;
        /**
         * <pre>
         *&#47; Timestamp for when this data row was collected. Timestamps will typically increment per the DataSetSubscription's periodic rate, but many sources of timing jitter may affect this. If differental encoding is in use, timestamp may be sent as an absolute value in the first row, with subsequent rows having either a delta (DIFFERENTIAL_DELTA_TIME) or no timestamp value (DIFFERENATIAL_IMPLIED_PERIOD) at all.
         * </pre>
         *
         * <code>int64 timestamp = 1;</code>
         */
        public long getTimestamp() {
          return timestamp_;
        }
        /**
         * <pre>
         *&#47; Timestamp for when this data row was collected. Timestamps will typically increment per the DataSetSubscription's periodic rate, but many sources of timing jitter may affect this. If differental encoding is in use, timestamp may be sent as an absolute value in the first row, with subsequent rows having either a delta (DIFFERENTIAL_DELTA_TIME) or no timestamp value (DIFFERENATIAL_IMPLIED_PERIOD) at all.
         * </pre>
         *
         * <code>int64 timestamp = 1;</code>
         */
        public Builder setTimestamp(long value) {
          
          timestamp_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Timestamp for when this data row was collected. Timestamps will typically increment per the DataSetSubscription's periodic rate, but many sources of timing jitter may affect this. If differental encoding is in use, timestamp may be sent as an absolute value in the first row, with subsequent rows having either a delta (DIFFERENTIAL_DELTA_TIME) or no timestamp value (DIFFERENATIAL_IMPLIED_PERIOD) at all.
         * </pre>
         *
         * <code>int64 timestamp = 1;</code>
         */
        public Builder clearTimestamp() {
          
          timestamp_ = 0L;
          onChanged();
          return this;
        }

        private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue> signalValue_ =
          java.util.Collections.emptyList();
        private void ensureSignalValueIsMutable() {
          if (!((bitField0_ & 0x00000002) == 0x00000002)) {
            signalValue_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue>(signalValue_);
            bitField0_ |= 0x00000002;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValueOrBuilder> signalValueBuilder_;

        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue> getSignalValueList() {
          if (signalValueBuilder_ == null) {
            return java.util.Collections.unmodifiableList(signalValue_);
          } else {
            return signalValueBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public int getSignalValueCount() {
          if (signalValueBuilder_ == null) {
            return signalValue_.size();
          } else {
            return signalValueBuilder_.getCount();
          }
        }
        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue getSignalValue(int index) {
          if (signalValueBuilder_ == null) {
            return signalValue_.get(index);
          } else {
            return signalValueBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public Builder setSignalValue(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue value) {
          if (signalValueBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSignalValueIsMutable();
            signalValue_.set(index, value);
            onChanged();
          } else {
            signalValueBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public Builder setSignalValue(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder builderForValue) {
          if (signalValueBuilder_ == null) {
            ensureSignalValueIsMutable();
            signalValue_.set(index, builderForValue.build());
            onChanged();
          } else {
            signalValueBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public Builder addSignalValue(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue value) {
          if (signalValueBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSignalValueIsMutable();
            signalValue_.add(value);
            onChanged();
          } else {
            signalValueBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public Builder addSignalValue(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue value) {
          if (signalValueBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSignalValueIsMutable();
            signalValue_.add(index, value);
            onChanged();
          } else {
            signalValueBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public Builder addSignalValue(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder builderForValue) {
          if (signalValueBuilder_ == null) {
            ensureSignalValueIsMutable();
            signalValue_.add(builderForValue.build());
            onChanged();
          } else {
            signalValueBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public Builder addSignalValue(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder builderForValue) {
          if (signalValueBuilder_ == null) {
            ensureSignalValueIsMutable();
            signalValue_.add(index, builderForValue.build());
            onChanged();
          } else {
            signalValueBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public Builder addAllSignalValue(
            java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue> values) {
          if (signalValueBuilder_ == null) {
            ensureSignalValueIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, signalValue_);
            onChanged();
          } else {
            signalValueBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public Builder clearSignalValue() {
          if (signalValueBuilder_ == null) {
            signalValue_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
          } else {
            signalValueBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public Builder removeSignalValue(int index) {
          if (signalValueBuilder_ == null) {
            ensureSignalValueIsMutable();
            signalValue_.remove(index);
            onChanged();
          } else {
            signalValueBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder getSignalValueBuilder(
            int index) {
          return getSignalValueFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValueOrBuilder getSignalValueOrBuilder(
            int index) {
          if (signalValueBuilder_ == null) {
            return signalValue_.get(index);  } else {
            return signalValueBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValueOrBuilder> 
             getSignalValueOrBuilderList() {
          if (signalValueBuilder_ != null) {
            return signalValueBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(signalValue_);
          }
        }
        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder addSignalValueBuilder() {
          return getSignalValueFieldBuilder().addBuilder(
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder addSignalValueBuilder(
            int index) {
          return getSignalValueFieldBuilder().addBuilder(
              index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47;Contains information for signal value which can be any data type per SignalValue
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 2;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder> 
             getSignalValueBuilderList() {
          return getSignalValueFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValueOrBuilder> 
            getSignalValueFieldBuilder() {
          if (signalValueBuilder_ == null) {
            signalValueBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValueOrBuilder>(
                    signalValue_,
                    ((bitField0_ & 0x00000002) == 0x00000002),
                    getParentForChildren(),
                    isClean());
            signalValue_ = null;
          }
          return signalValueBuilder_;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface DataSetOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47;unique identifier for this data set, needed for the receiver to decode the list of signals.
       * </pre>
       *
       * <code>int64 dataSetId = 1;</code>
       */
      long getDataSetId();

      /**
       * <pre>
       *&#47;this represents signal Value that is collected and its timestamp.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
       */
      java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow> 
          getDataRowList();
      /**
       * <pre>
       *&#47;this represents signal Value that is collected and its timestamp.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow getDataRow(int index);
      /**
       * <pre>
       *&#47;this represents signal Value that is collected and its timestamp.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
       */
      int getDataRowCount();
      /**
       * <pre>
       *&#47;this represents signal Value that is collected and its timestamp.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
       */
      java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRowOrBuilder> 
          getDataRowOrBuilderList();
      /**
       * <pre>
       *&#47;this represents signal Value that is collected and its timestamp.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRowOrBuilder getDataRowOrBuilder(
          int index);
    }
    /**
     * <pre>
     **
     * Multiple iterations of data collection will be gathered on the TU, queued and sent as a DataSet
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet}
     */
    public  static final class DataSet extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet)
        DataSetOrBuilder {
      // Use DataSet.newBuilder() to construct.
      private DataSet(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private DataSet() {
        dataSetId_ = 0L;
        dataRow_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private DataSet(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 8: {

                dataSetId_ = input.readInt64();
                break;
              }
              case 18: {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  dataRow_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow>();
                  mutable_bitField0_ |= 0x00000002;
                }
                dataRow_.add(
                    input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.parser(), extensionRegistry));
                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_ & 0x00000002) == 0x00000002)) {
            dataRow_ = java.util.Collections.unmodifiableList(dataRow_);
          }
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSet_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSet_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.Builder.class);
      }

      private int bitField0_;
      public static final int DATASETID_FIELD_NUMBER = 1;
      private long dataSetId_;
      /**
       * <pre>
       *&#47;unique identifier for this data set, needed for the receiver to decode the list of signals.
       * </pre>
       *
       * <code>int64 dataSetId = 1;</code>
       */
      public long getDataSetId() {
        return dataSetId_;
      }

      public static final int DATAROW_FIELD_NUMBER = 2;
      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow> dataRow_;
      /**
       * <pre>
       *&#47;this represents signal Value that is collected and its timestamp.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow> getDataRowList() {
        return dataRow_;
      }
      /**
       * <pre>
       *&#47;this represents signal Value that is collected and its timestamp.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRowOrBuilder> 
          getDataRowOrBuilderList() {
        return dataRow_;
      }
      /**
       * <pre>
       *&#47;this represents signal Value that is collected and its timestamp.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
       */
      public int getDataRowCount() {
        return dataRow_.size();
      }
      /**
       * <pre>
       *&#47;this represents signal Value that is collected and its timestamp.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow getDataRow(int index) {
        return dataRow_.get(index);
      }
      /**
       * <pre>
       *&#47;this represents signal Value that is collected and its timestamp.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRowOrBuilder getDataRowOrBuilder(
          int index) {
        return dataRow_.get(index);
      }

      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 (dataSetId_ != 0L) {
          output.writeInt64(1, dataSetId_);
        }
        for (int i = 0; i < dataRow_.size(); i++) {
          output.writeMessage(2, dataRow_.get(i));
        }
      }

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

        size = 0;
        if (dataSetId_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, dataSetId_);
        }
        for (int i = 0; i < dataRow_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, dataRow_.get(i));
        }
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet) obj;

        boolean result = true;
        result = result && (getDataSetId()
            == other.getDataSetId());
        result = result && getDataRowList()
            .equals(other.getDataRowList());
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + DATASETID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getDataSetId());
        if (getDataRowCount() > 0) {
          hash = (37 * hash) + DATAROW_FIELD_NUMBER;
          hash = (53 * hash) + getDataRowList().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet 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>
       **
       * Multiple iterations of data collection will be gathered on the TU, queued and sent as a DataSet
       * </pre>
       *
       * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet)
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSetOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSet_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSet_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getDataRowFieldBuilder();
          }
        }
        public Builder clear() {
          super.clear();
          dataSetId_ = 0L;

          if (dataRowBuilder_ == null) {
            dataRow_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            dataRowBuilder_.clear();
          }
          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          result.dataSetId_ = dataSetId_;
          if (dataRowBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              dataRow_ = java.util.Collections.unmodifiableList(dataRow_);
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.dataRow_ = dataRow_;
          } else {
            result.dataRow_ = dataRowBuilder_.build();
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.getDefaultInstance()) return this;
          if (other.getDataSetId() != 0L) {
            setDataSetId(other.getDataSetId());
          }
          if (dataRowBuilder_ == null) {
            if (!other.dataRow_.isEmpty()) {
              if (dataRow_.isEmpty()) {
                dataRow_ = other.dataRow_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureDataRowIsMutable();
                dataRow_.addAll(other.dataRow_);
              }
              onChanged();
            }
          } else {
            if (!other.dataRow_.isEmpty()) {
              if (dataRowBuilder_.isEmpty()) {
                dataRowBuilder_.dispose();
                dataRowBuilder_ = null;
                dataRow_ = other.dataRow_;
                bitField0_ = (bitField0_ & ~0x00000002);
                dataRowBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getDataRowFieldBuilder() : null;
              } else {
                dataRowBuilder_.addAllMessages(other.dataRow_);
              }
            }
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private long dataSetId_ ;
        /**
         * <pre>
         *&#47;unique identifier for this data set, needed for the receiver to decode the list of signals.
         * </pre>
         *
         * <code>int64 dataSetId = 1;</code>
         */
        public long getDataSetId() {
          return dataSetId_;
        }
        /**
         * <pre>
         *&#47;unique identifier for this data set, needed for the receiver to decode the list of signals.
         * </pre>
         *
         * <code>int64 dataSetId = 1;</code>
         */
        public Builder setDataSetId(long value) {
          
          dataSetId_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47;unique identifier for this data set, needed for the receiver to decode the list of signals.
         * </pre>
         *
         * <code>int64 dataSetId = 1;</code>
         */
        public Builder clearDataSetId() {
          
          dataSetId_ = 0L;
          onChanged();
          return this;
        }

        private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow> dataRow_ =
          java.util.Collections.emptyList();
        private void ensureDataRowIsMutable() {
          if (!((bitField0_ & 0x00000002) == 0x00000002)) {
            dataRow_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow>(dataRow_);
            bitField0_ |= 0x00000002;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRowOrBuilder> dataRowBuilder_;

        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow> getDataRowList() {
          if (dataRowBuilder_ == null) {
            return java.util.Collections.unmodifiableList(dataRow_);
          } else {
            return dataRowBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public int getDataRowCount() {
          if (dataRowBuilder_ == null) {
            return dataRow_.size();
          } else {
            return dataRowBuilder_.getCount();
          }
        }
        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow getDataRow(int index) {
          if (dataRowBuilder_ == null) {
            return dataRow_.get(index);
          } else {
            return dataRowBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public Builder setDataRow(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow value) {
          if (dataRowBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureDataRowIsMutable();
            dataRow_.set(index, value);
            onChanged();
          } else {
            dataRowBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public Builder setDataRow(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.Builder builderForValue) {
          if (dataRowBuilder_ == null) {
            ensureDataRowIsMutable();
            dataRow_.set(index, builderForValue.build());
            onChanged();
          } else {
            dataRowBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public Builder addDataRow(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow value) {
          if (dataRowBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureDataRowIsMutable();
            dataRow_.add(value);
            onChanged();
          } else {
            dataRowBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public Builder addDataRow(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow value) {
          if (dataRowBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureDataRowIsMutable();
            dataRow_.add(index, value);
            onChanged();
          } else {
            dataRowBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public Builder addDataRow(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.Builder builderForValue) {
          if (dataRowBuilder_ == null) {
            ensureDataRowIsMutable();
            dataRow_.add(builderForValue.build());
            onChanged();
          } else {
            dataRowBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public Builder addDataRow(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.Builder builderForValue) {
          if (dataRowBuilder_ == null) {
            ensureDataRowIsMutable();
            dataRow_.add(index, builderForValue.build());
            onChanged();
          } else {
            dataRowBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public Builder addAllDataRow(
            java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow> values) {
          if (dataRowBuilder_ == null) {
            ensureDataRowIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, dataRow_);
            onChanged();
          } else {
            dataRowBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public Builder clearDataRow() {
          if (dataRowBuilder_ == null) {
            dataRow_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
          } else {
            dataRowBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public Builder removeDataRow(int index) {
          if (dataRowBuilder_ == null) {
            ensureDataRowIsMutable();
            dataRow_.remove(index);
            onChanged();
          } else {
            dataRowBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.Builder getDataRowBuilder(
            int index) {
          return getDataRowFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRowOrBuilder getDataRowOrBuilder(
            int index) {
          if (dataRowBuilder_ == null) {
            return dataRow_.get(index);  } else {
            return dataRowBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRowOrBuilder> 
             getDataRowOrBuilderList() {
          if (dataRowBuilder_ != null) {
            return dataRowBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(dataRow_);
          }
        }
        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.Builder addDataRowBuilder() {
          return getDataRowFieldBuilder().addBuilder(
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.Builder addDataRowBuilder(
            int index) {
          return getDataRowFieldBuilder().addBuilder(
              index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47;this represents signal Value that is collected and its timestamp.
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataRow dataRow = 2;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.Builder> 
             getDataRowBuilderList() {
          return getDataRowFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRowOrBuilder> 
            getDataRowFieldBuilder() {
          if (dataRowBuilder_ == null) {
            dataRowBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRow.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataRowOrBuilder>(
                    dataRow_,
                    ((bitField0_ & 0x00000002) == 0x00000002),
                    getParentForChildren(),
                    isClean());
            dataRow_ = null;
          }
          return dataRowBuilder_;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface OnChangeDataSetOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47; Unique identifier for this data set, needed for the receiver to identify this is an event.
       * </pre>
       *
       * <code>int64 dataSetId = 1;</code>
       */
      long getDataSetId();

      /**
       * <pre>
       *&#47; Timestamp for when the signal value was collected.
       * </pre>
       *
       * <code>int64 timestamp = 2;</code>
       */
      long getTimestamp();

      /**
       * <pre>
       *&#47; Indicates the signal identifier as either an index or unique value as defined in the DataSetSubscription.  
       * </pre>
       *
       * <code>int32 signalId = 3;</code>
       */
      int getSignalId();

      /**
       * <pre>
       *&#47; Contains information for signal value which can be any data type per SignalValue		 	
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 4;</code>
       */
      boolean hasSignalValue();
      /**
       * <pre>
       *&#47; Contains information for signal value which can be any data type per SignalValue		 	
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 4;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue getSignalValue();
      /**
       * <pre>
       *&#47; Contains information for signal value which can be any data type per SignalValue		 	
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 4;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValueOrBuilder getSignalValueOrBuilder();
    }
    /**
     * <pre>
     *&#47; The On Change Data Set delivers a single event.
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet}
     */
    public  static final class OnChangeDataSet extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet)
        OnChangeDataSetOrBuilder {
      // Use OnChangeDataSet.newBuilder() to construct.
      private OnChangeDataSet(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private OnChangeDataSet() {
        dataSetId_ = 0L;
        timestamp_ = 0L;
        signalId_ = 0;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private OnChangeDataSet(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 8: {

                dataSetId_ = input.readInt64();
                break;
              }
              case 16: {

                timestamp_ = input.readInt64();
                break;
              }
              case 24: {

                signalId_ = input.readInt32();
                break;
              }
              case 34: {
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder subBuilder = null;
                if (signalValue_ != null) {
                  subBuilder = signalValue_.toBuilder();
                }
                signalValue_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(signalValue_);
                  signalValue_ = subBuilder.buildPartial();
                }

                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 {
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_OnChangeDataSet_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_OnChangeDataSet_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.Builder.class);
      }

      public static final int DATASETID_FIELD_NUMBER = 1;
      private long dataSetId_;
      /**
       * <pre>
       *&#47; Unique identifier for this data set, needed for the receiver to identify this is an event.
       * </pre>
       *
       * <code>int64 dataSetId = 1;</code>
       */
      public long getDataSetId() {
        return dataSetId_;
      }

      public static final int TIMESTAMP_FIELD_NUMBER = 2;
      private long timestamp_;
      /**
       * <pre>
       *&#47; Timestamp for when the signal value was collected.
       * </pre>
       *
       * <code>int64 timestamp = 2;</code>
       */
      public long getTimestamp() {
        return timestamp_;
      }

      public static final int SIGNALID_FIELD_NUMBER = 3;
      private int signalId_;
      /**
       * <pre>
       *&#47; Indicates the signal identifier as either an index or unique value as defined in the DataSetSubscription.  
       * </pre>
       *
       * <code>int32 signalId = 3;</code>
       */
      public int getSignalId() {
        return signalId_;
      }

      public static final int SIGNALVALUE_FIELD_NUMBER = 4;
      private com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue signalValue_;
      /**
       * <pre>
       *&#47; Contains information for signal value which can be any data type per SignalValue		 	
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 4;</code>
       */
      public boolean hasSignalValue() {
        return signalValue_ != null;
      }
      /**
       * <pre>
       *&#47; Contains information for signal value which can be any data type per SignalValue		 	
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 4;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue getSignalValue() {
        return signalValue_ == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.getDefaultInstance() : signalValue_;
      }
      /**
       * <pre>
       *&#47; Contains information for signal value which can be any data type per SignalValue		 	
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 4;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValueOrBuilder getSignalValueOrBuilder() {
        return getSignalValue();
      }

      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 (dataSetId_ != 0L) {
          output.writeInt64(1, dataSetId_);
        }
        if (timestamp_ != 0L) {
          output.writeInt64(2, timestamp_);
        }
        if (signalId_ != 0) {
          output.writeInt32(3, signalId_);
        }
        if (signalValue_ != null) {
          output.writeMessage(4, getSignalValue());
        }
      }

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

        size = 0;
        if (dataSetId_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, dataSetId_);
        }
        if (timestamp_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, timestamp_);
        }
        if (signalId_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, signalId_);
        }
        if (signalValue_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, getSignalValue());
        }
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet) obj;

        boolean result = true;
        result = result && (getDataSetId()
            == other.getDataSetId());
        result = result && (getTimestamp()
            == other.getTimestamp());
        result = result && (getSignalId()
            == other.getSignalId());
        result = result && (hasSignalValue() == other.hasSignalValue());
        if (hasSignalValue()) {
          result = result && getSignalValue()
              .equals(other.getSignalValue());
        }
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + DATASETID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getDataSetId());
        hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTimestamp());
        hash = (37 * hash) + SIGNALID_FIELD_NUMBER;
        hash = (53 * hash) + getSignalId();
        if (hasSignalValue()) {
          hash = (37 * hash) + SIGNALVALUE_FIELD_NUMBER;
          hash = (53 * hash) + getSignalValue().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet 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>
       *&#47; The On Change Data Set delivers a single event.
       * </pre>
       *
       * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet)
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSetOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_OnChangeDataSet_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_OnChangeDataSet_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.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();
          dataSetId_ = 0L;

          timestamp_ = 0L;

          signalId_ = 0;

          if (signalValueBuilder_ == null) {
            signalValue_ = null;
          } else {
            signalValue_ = null;
            signalValueBuilder_ = null;
          }
          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet(this);
          result.dataSetId_ = dataSetId_;
          result.timestamp_ = timestamp_;
          result.signalId_ = signalId_;
          if (signalValueBuilder_ == null) {
            result.signalValue_ = signalValue_;
          } else {
            result.signalValue_ = signalValueBuilder_.build();
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.getDefaultInstance()) return this;
          if (other.getDataSetId() != 0L) {
            setDataSetId(other.getDataSetId());
          }
          if (other.getTimestamp() != 0L) {
            setTimestamp(other.getTimestamp());
          }
          if (other.getSignalId() != 0) {
            setSignalId(other.getSignalId());
          }
          if (other.hasSignalValue()) {
            mergeSignalValue(other.getSignalValue());
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private long dataSetId_ ;
        /**
         * <pre>
         *&#47; Unique identifier for this data set, needed for the receiver to identify this is an event.
         * </pre>
         *
         * <code>int64 dataSetId = 1;</code>
         */
        public long getDataSetId() {
          return dataSetId_;
        }
        /**
         * <pre>
         *&#47; Unique identifier for this data set, needed for the receiver to identify this is an event.
         * </pre>
         *
         * <code>int64 dataSetId = 1;</code>
         */
        public Builder setDataSetId(long value) {
          
          dataSetId_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Unique identifier for this data set, needed for the receiver to identify this is an event.
         * </pre>
         *
         * <code>int64 dataSetId = 1;</code>
         */
        public Builder clearDataSetId() {
          
          dataSetId_ = 0L;
          onChanged();
          return this;
        }

        private long timestamp_ ;
        /**
         * <pre>
         *&#47; Timestamp for when the signal value was collected.
         * </pre>
         *
         * <code>int64 timestamp = 2;</code>
         */
        public long getTimestamp() {
          return timestamp_;
        }
        /**
         * <pre>
         *&#47; Timestamp for when the signal value was collected.
         * </pre>
         *
         * <code>int64 timestamp = 2;</code>
         */
        public Builder setTimestamp(long value) {
          
          timestamp_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Timestamp for when the signal value was collected.
         * </pre>
         *
         * <code>int64 timestamp = 2;</code>
         */
        public Builder clearTimestamp() {
          
          timestamp_ = 0L;
          onChanged();
          return this;
        }

        private int signalId_ ;
        /**
         * <pre>
         *&#47; Indicates the signal identifier as either an index or unique value as defined in the DataSetSubscription.  
         * </pre>
         *
         * <code>int32 signalId = 3;</code>
         */
        public int getSignalId() {
          return signalId_;
        }
        /**
         * <pre>
         *&#47; Indicates the signal identifier as either an index or unique value as defined in the DataSetSubscription.  
         * </pre>
         *
         * <code>int32 signalId = 3;</code>
         */
        public Builder setSignalId(int value) {
          
          signalId_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; Indicates the signal identifier as either an index or unique value as defined in the DataSetSubscription.  
         * </pre>
         *
         * <code>int32 signalId = 3;</code>
         */
        public Builder clearSignalId() {
          
          signalId_ = 0;
          onChanged();
          return this;
        }

        private com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue signalValue_ = null;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValueOrBuilder> signalValueBuilder_;
        /**
         * <pre>
         *&#47; Contains information for signal value which can be any data type per SignalValue		 	
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 4;</code>
         */
        public boolean hasSignalValue() {
          return signalValueBuilder_ != null || signalValue_ != null;
        }
        /**
         * <pre>
         *&#47; Contains information for signal value which can be any data type per SignalValue		 	
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 4;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue getSignalValue() {
          if (signalValueBuilder_ == null) {
            return signalValue_ == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.getDefaultInstance() : signalValue_;
          } else {
            return signalValueBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         *&#47; Contains information for signal value which can be any data type per SignalValue		 	
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 4;</code>
         */
        public Builder setSignalValue(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue value) {
          if (signalValueBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            signalValue_ = value;
            onChanged();
          } else {
            signalValueBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <pre>
         *&#47; Contains information for signal value which can be any data type per SignalValue		 	
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 4;</code>
         */
        public Builder setSignalValue(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder builderForValue) {
          if (signalValueBuilder_ == null) {
            signalValue_ = builderForValue.build();
            onChanged();
          } else {
            signalValueBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <pre>
         *&#47; Contains information for signal value which can be any data type per SignalValue		 	
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 4;</code>
         */
        public Builder mergeSignalValue(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue value) {
          if (signalValueBuilder_ == null) {
            if (signalValue_ != null) {
              signalValue_ =
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.newBuilder(signalValue_).mergeFrom(value).buildPartial();
            } else {
              signalValue_ = value;
            }
            onChanged();
          } else {
            signalValueBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <pre>
         *&#47; Contains information for signal value which can be any data type per SignalValue		 	
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 4;</code>
         */
        public Builder clearSignalValue() {
          if (signalValueBuilder_ == null) {
            signalValue_ = null;
            onChanged();
          } else {
            signalValue_ = null;
            signalValueBuilder_ = null;
          }

          return this;
        }
        /**
         * <pre>
         *&#47; Contains information for signal value which can be any data type per SignalValue		 	
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 4;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder getSignalValueBuilder() {
          
          onChanged();
          return getSignalValueFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         *&#47; Contains information for signal value which can be any data type per SignalValue		 	
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 4;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValueOrBuilder getSignalValueOrBuilder() {
          if (signalValueBuilder_ != null) {
            return signalValueBuilder_.getMessageOrBuilder();
          } else {
            return signalValue_ == null ?
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.getDefaultInstance() : signalValue_;
          }
        }
        /**
         * <pre>
         *&#47; Contains information for signal value which can be any data type per SignalValue		 	
         * </pre>
         *
         * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPublish.SignalValue signalValue = 4;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValueOrBuilder> 
            getSignalValueFieldBuilder() {
          if (signalValueBuilder_ == null) {
            signalValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValue.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.SignalValueOrBuilder>(
                    getSignalValue(),
                    getParentForChildren(),
                    isClean());
            signalValue_ = null;
          }
          return signalValueBuilder_;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface DataSubscriptionOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47;contain any arbitrary sequence of bytes for the Policy subscription id.
       * </pre>
       *
       * <code>bytes policySubscriptionId = 1;</code>
       */
      com.google.protobuf.ByteString getPolicySubscriptionId();

      /**
       * <pre>
       *&#47; DataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
       */
      java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet> 
          getDataSetList();
      /**
       * <pre>
       *&#47; DataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet getDataSet(int index);
      /**
       * <pre>
       *&#47; DataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
       */
      int getDataSetCount();
      /**
       * <pre>
       *&#47; DataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
       */
      java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSetOrBuilder> 
          getDataSetOrBuilderList();
      /**
       * <pre>
       *&#47; DataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSetOrBuilder getDataSetOrBuilder(
          int index);

      /**
       * <pre>
       *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
       */
      java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet> 
          getOnChangeDataSetList();
      /**
       * <pre>
       *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet getOnChangeDataSet(int index);
      /**
       * <pre>
       *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
       */
      int getOnChangeDataSetCount();
      /**
       * <pre>
       *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
       */
      java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSetOrBuilder> 
          getOnChangeDataSetOrBuilderList();
      /**
       * <pre>
       *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSetOrBuilder getOnChangeDataSetOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription}
     */
    public  static final class DataSubscription extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription)
        DataSubscriptionOrBuilder {
      // Use DataSubscription.newBuilder() to construct.
      private DataSubscription(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private DataSubscription() {
        policySubscriptionId_ = com.google.protobuf.ByteString.EMPTY;
        dataSet_ = java.util.Collections.emptyList();
        onChangeDataSet_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private DataSubscription(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 10: {

                policySubscriptionId_ = input.readBytes();
                break;
              }
              case 18: {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  dataSet_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet>();
                  mutable_bitField0_ |= 0x00000002;
                }
                dataSet_.add(
                    input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.parser(), extensionRegistry));
                break;
              }
              case 26: {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  onChangeDataSet_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet>();
                  mutable_bitField0_ |= 0x00000004;
                }
                onChangeDataSet_.add(
                    input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.parser(), extensionRegistry));
                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_ & 0x00000002) == 0x00000002)) {
            dataSet_ = java.util.Collections.unmodifiableList(dataSet_);
          }
          if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
            onChangeDataSet_ = java.util.Collections.unmodifiableList(onChangeDataSet_);
          }
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSubscription_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSubscription_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.Builder.class);
      }

      private int bitField0_;
      public static final int POLICYSUBSCRIPTIONID_FIELD_NUMBER = 1;
      private com.google.protobuf.ByteString policySubscriptionId_;
      /**
       * <pre>
       *&#47;contain any arbitrary sequence of bytes for the Policy subscription id.
       * </pre>
       *
       * <code>bytes policySubscriptionId = 1;</code>
       */
      public com.google.protobuf.ByteString getPolicySubscriptionId() {
        return policySubscriptionId_;
      }

      public static final int DATASET_FIELD_NUMBER = 2;
      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet> dataSet_;
      /**
       * <pre>
       *&#47; DataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet> getDataSetList() {
        return dataSet_;
      }
      /**
       * <pre>
       *&#47; DataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSetOrBuilder> 
          getDataSetOrBuilderList() {
        return dataSet_;
      }
      /**
       * <pre>
       *&#47; DataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
       */
      public int getDataSetCount() {
        return dataSet_.size();
      }
      /**
       * <pre>
       *&#47; DataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet getDataSet(int index) {
        return dataSet_.get(index);
      }
      /**
       * <pre>
       *&#47; DataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSetOrBuilder getDataSetOrBuilder(
          int index) {
        return dataSet_.get(index);
      }

      public static final int ONCHANGEDATASET_FIELD_NUMBER = 3;
      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet> onChangeDataSet_;
      /**
       * <pre>
       *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet> getOnChangeDataSetList() {
        return onChangeDataSet_;
      }
      /**
       * <pre>
       *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSetOrBuilder> 
          getOnChangeDataSetOrBuilderList() {
        return onChangeDataSet_;
      }
      /**
       * <pre>
       *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
       */
      public int getOnChangeDataSetCount() {
        return onChangeDataSet_.size();
      }
      /**
       * <pre>
       *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet getOnChangeDataSet(int index) {
        return onChangeDataSet_.get(index);
      }
      /**
       * <pre>
       *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSetOrBuilder getOnChangeDataSetOrBuilder(
          int index) {
        return onChangeDataSet_.get(index);
      }

      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 (!policySubscriptionId_.isEmpty()) {
          output.writeBytes(1, policySubscriptionId_);
        }
        for (int i = 0; i < dataSet_.size(); i++) {
          output.writeMessage(2, dataSet_.get(i));
        }
        for (int i = 0; i < onChangeDataSet_.size(); i++) {
          output.writeMessage(3, onChangeDataSet_.get(i));
        }
      }

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

        size = 0;
        if (!policySubscriptionId_.isEmpty()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(1, policySubscriptionId_);
        }
        for (int i = 0; i < dataSet_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, dataSet_.get(i));
        }
        for (int i = 0; i < onChangeDataSet_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, onChangeDataSet_.get(i));
        }
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription) obj;

        boolean result = true;
        result = result && getPolicySubscriptionId()
            .equals(other.getPolicySubscriptionId());
        result = result && getDataSetList()
            .equals(other.getDataSetList());
        result = result && getOnChangeDataSetList()
            .equals(other.getOnChangeDataSetList());
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + POLICYSUBSCRIPTIONID_FIELD_NUMBER;
        hash = (53 * hash) + getPolicySubscriptionId().hashCode();
        if (getDataSetCount() > 0) {
          hash = (37 * hash) + DATASET_FIELD_NUMBER;
          hash = (53 * hash) + getDataSetList().hashCode();
        }
        if (getOnChangeDataSetCount() > 0) {
          hash = (37 * hash) + ONCHANGEDATASET_FIELD_NUMBER;
          hash = (53 * hash) + getOnChangeDataSetList().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription 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.VehicleDataAcquisitionPublish.DataSubscription}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription)
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscriptionOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSubscription_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSubscription_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getDataSetFieldBuilder();
            getOnChangeDataSetFieldBuilder();
          }
        }
        public Builder clear() {
          super.clear();
          policySubscriptionId_ = com.google.protobuf.ByteString.EMPTY;

          if (dataSetBuilder_ == null) {
            dataSet_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            dataSetBuilder_.clear();
          }
          if (onChangeDataSetBuilder_ == null) {
            onChangeDataSet_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            onChangeDataSetBuilder_.clear();
          }
          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          result.policySubscriptionId_ = policySubscriptionId_;
          if (dataSetBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              dataSet_ = java.util.Collections.unmodifiableList(dataSet_);
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.dataSet_ = dataSet_;
          } else {
            result.dataSet_ = dataSetBuilder_.build();
          }
          if (onChangeDataSetBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004)) {
              onChangeDataSet_ = java.util.Collections.unmodifiableList(onChangeDataSet_);
              bitField0_ = (bitField0_ & ~0x00000004);
            }
            result.onChangeDataSet_ = onChangeDataSet_;
          } else {
            result.onChangeDataSet_ = onChangeDataSetBuilder_.build();
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.getDefaultInstance()) return this;
          if (other.getPolicySubscriptionId() != com.google.protobuf.ByteString.EMPTY) {
            setPolicySubscriptionId(other.getPolicySubscriptionId());
          }
          if (dataSetBuilder_ == null) {
            if (!other.dataSet_.isEmpty()) {
              if (dataSet_.isEmpty()) {
                dataSet_ = other.dataSet_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureDataSetIsMutable();
                dataSet_.addAll(other.dataSet_);
              }
              onChanged();
            }
          } else {
            if (!other.dataSet_.isEmpty()) {
              if (dataSetBuilder_.isEmpty()) {
                dataSetBuilder_.dispose();
                dataSetBuilder_ = null;
                dataSet_ = other.dataSet_;
                bitField0_ = (bitField0_ & ~0x00000002);
                dataSetBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getDataSetFieldBuilder() : null;
              } else {
                dataSetBuilder_.addAllMessages(other.dataSet_);
              }
            }
          }
          if (onChangeDataSetBuilder_ == null) {
            if (!other.onChangeDataSet_.isEmpty()) {
              if (onChangeDataSet_.isEmpty()) {
                onChangeDataSet_ = other.onChangeDataSet_;
                bitField0_ = (bitField0_ & ~0x00000004);
              } else {
                ensureOnChangeDataSetIsMutable();
                onChangeDataSet_.addAll(other.onChangeDataSet_);
              }
              onChanged();
            }
          } else {
            if (!other.onChangeDataSet_.isEmpty()) {
              if (onChangeDataSetBuilder_.isEmpty()) {
                onChangeDataSetBuilder_.dispose();
                onChangeDataSetBuilder_ = null;
                onChangeDataSet_ = other.onChangeDataSet_;
                bitField0_ = (bitField0_ & ~0x00000004);
                onChangeDataSetBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getOnChangeDataSetFieldBuilder() : null;
              } else {
                onChangeDataSetBuilder_.addAllMessages(other.onChangeDataSet_);
              }
            }
          }
          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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private com.google.protobuf.ByteString policySubscriptionId_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <pre>
         *&#47;contain any arbitrary sequence of bytes for the Policy subscription id.
         * </pre>
         *
         * <code>bytes policySubscriptionId = 1;</code>
         */
        public com.google.protobuf.ByteString getPolicySubscriptionId() {
          return policySubscriptionId_;
        }
        /**
         * <pre>
         *&#47;contain any arbitrary sequence of bytes for the Policy subscription id.
         * </pre>
         *
         * <code>bytes policySubscriptionId = 1;</code>
         */
        public Builder setPolicySubscriptionId(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          policySubscriptionId_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47;contain any arbitrary sequence of bytes for the Policy subscription id.
         * </pre>
         *
         * <code>bytes policySubscriptionId = 1;</code>
         */
        public Builder clearPolicySubscriptionId() {
          
          policySubscriptionId_ = getDefaultInstance().getPolicySubscriptionId();
          onChanged();
          return this;
        }

        private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet> dataSet_ =
          java.util.Collections.emptyList();
        private void ensureDataSetIsMutable() {
          if (!((bitField0_ & 0x00000002) == 0x00000002)) {
            dataSet_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet>(dataSet_);
            bitField0_ |= 0x00000002;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSetOrBuilder> dataSetBuilder_;

        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet> getDataSetList() {
          if (dataSetBuilder_ == null) {
            return java.util.Collections.unmodifiableList(dataSet_);
          } else {
            return dataSetBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public int getDataSetCount() {
          if (dataSetBuilder_ == null) {
            return dataSet_.size();
          } else {
            return dataSetBuilder_.getCount();
          }
        }
        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet getDataSet(int index) {
          if (dataSetBuilder_ == null) {
            return dataSet_.get(index);
          } else {
            return dataSetBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public Builder setDataSet(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet value) {
          if (dataSetBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureDataSetIsMutable();
            dataSet_.set(index, value);
            onChanged();
          } else {
            dataSetBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public Builder setDataSet(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.Builder builderForValue) {
          if (dataSetBuilder_ == null) {
            ensureDataSetIsMutable();
            dataSet_.set(index, builderForValue.build());
            onChanged();
          } else {
            dataSetBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public Builder addDataSet(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet value) {
          if (dataSetBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureDataSetIsMutable();
            dataSet_.add(value);
            onChanged();
          } else {
            dataSetBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public Builder addDataSet(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet value) {
          if (dataSetBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureDataSetIsMutable();
            dataSet_.add(index, value);
            onChanged();
          } else {
            dataSetBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public Builder addDataSet(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.Builder builderForValue) {
          if (dataSetBuilder_ == null) {
            ensureDataSetIsMutable();
            dataSet_.add(builderForValue.build());
            onChanged();
          } else {
            dataSetBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public Builder addDataSet(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.Builder builderForValue) {
          if (dataSetBuilder_ == null) {
            ensureDataSetIsMutable();
            dataSet_.add(index, builderForValue.build());
            onChanged();
          } else {
            dataSetBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public Builder addAllDataSet(
            java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet> values) {
          if (dataSetBuilder_ == null) {
            ensureDataSetIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, dataSet_);
            onChanged();
          } else {
            dataSetBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public Builder clearDataSet() {
          if (dataSetBuilder_ == null) {
            dataSet_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
          } else {
            dataSetBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public Builder removeDataSet(int index) {
          if (dataSetBuilder_ == null) {
            ensureDataSetIsMutable();
            dataSet_.remove(index);
            onChanged();
          } else {
            dataSetBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.Builder getDataSetBuilder(
            int index) {
          return getDataSetFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSetOrBuilder getDataSetOrBuilder(
            int index) {
          if (dataSetBuilder_ == null) {
            return dataSet_.get(index);  } else {
            return dataSetBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSetOrBuilder> 
             getDataSetOrBuilderList() {
          if (dataSetBuilder_ != null) {
            return dataSetBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(dataSet_);
          }
        }
        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.Builder addDataSetBuilder() {
          return getDataSetFieldBuilder().addBuilder(
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.Builder addDataSetBuilder(
            int index) {
          return getDataSetFieldBuilder().addBuilder(
              index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; DataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSet dataSet = 2;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.Builder> 
             getDataSetBuilderList() {
          return getDataSetFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSetOrBuilder> 
            getDataSetFieldBuilder() {
          if (dataSetBuilder_ == null) {
            dataSetBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSet.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSetOrBuilder>(
                    dataSet_,
                    ((bitField0_ & 0x00000002) == 0x00000002),
                    getParentForChildren(),
                    isClean());
            dataSet_ = null;
          }
          return dataSetBuilder_;
        }

        private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet> onChangeDataSet_ =
          java.util.Collections.emptyList();
        private void ensureOnChangeDataSetIsMutable() {
          if (!((bitField0_ & 0x00000004) == 0x00000004)) {
            onChangeDataSet_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet>(onChangeDataSet_);
            bitField0_ |= 0x00000004;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSetOrBuilder> onChangeDataSetBuilder_;

        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet> getOnChangeDataSetList() {
          if (onChangeDataSetBuilder_ == null) {
            return java.util.Collections.unmodifiableList(onChangeDataSet_);
          } else {
            return onChangeDataSetBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public int getOnChangeDataSetCount() {
          if (onChangeDataSetBuilder_ == null) {
            return onChangeDataSet_.size();
          } else {
            return onChangeDataSetBuilder_.getCount();
          }
        }
        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet getOnChangeDataSet(int index) {
          if (onChangeDataSetBuilder_ == null) {
            return onChangeDataSet_.get(index);
          } else {
            return onChangeDataSetBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public Builder setOnChangeDataSet(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet value) {
          if (onChangeDataSetBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureOnChangeDataSetIsMutable();
            onChangeDataSet_.set(index, value);
            onChanged();
          } else {
            onChangeDataSetBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public Builder setOnChangeDataSet(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.Builder builderForValue) {
          if (onChangeDataSetBuilder_ == null) {
            ensureOnChangeDataSetIsMutable();
            onChangeDataSet_.set(index, builderForValue.build());
            onChanged();
          } else {
            onChangeDataSetBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public Builder addOnChangeDataSet(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet value) {
          if (onChangeDataSetBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureOnChangeDataSetIsMutable();
            onChangeDataSet_.add(value);
            onChanged();
          } else {
            onChangeDataSetBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public Builder addOnChangeDataSet(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet value) {
          if (onChangeDataSetBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureOnChangeDataSetIsMutable();
            onChangeDataSet_.add(index, value);
            onChanged();
          } else {
            onChangeDataSetBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public Builder addOnChangeDataSet(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.Builder builderForValue) {
          if (onChangeDataSetBuilder_ == null) {
            ensureOnChangeDataSetIsMutable();
            onChangeDataSet_.add(builderForValue.build());
            onChanged();
          } else {
            onChangeDataSetBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public Builder addOnChangeDataSet(
            int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.Builder builderForValue) {
          if (onChangeDataSetBuilder_ == null) {
            ensureOnChangeDataSetIsMutable();
            onChangeDataSet_.add(index, builderForValue.build());
            onChanged();
          } else {
            onChangeDataSetBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public Builder addAllOnChangeDataSet(
            java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet> values) {
          if (onChangeDataSetBuilder_ == null) {
            ensureOnChangeDataSetIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, onChangeDataSet_);
            onChanged();
          } else {
            onChangeDataSetBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public Builder clearOnChangeDataSet() {
          if (onChangeDataSetBuilder_ == null) {
            onChangeDataSet_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
            onChanged();
          } else {
            onChangeDataSetBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public Builder removeOnChangeDataSet(int index) {
          if (onChangeDataSetBuilder_ == null) {
            ensureOnChangeDataSetIsMutable();
            onChangeDataSet_.remove(index);
            onChanged();
          } else {
            onChangeDataSetBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.Builder getOnChangeDataSetBuilder(
            int index) {
          return getOnChangeDataSetFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSetOrBuilder getOnChangeDataSetOrBuilder(
            int index) {
          if (onChangeDataSetBuilder_ == null) {
            return onChangeDataSet_.get(index);  } else {
            return onChangeDataSetBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSetOrBuilder> 
             getOnChangeDataSetOrBuilderList() {
          if (onChangeDataSetBuilder_ != null) {
            return onChangeDataSetBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(onChangeDataSet_);
          }
        }
        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.Builder addOnChangeDataSetBuilder() {
          return getOnChangeDataSetFieldBuilder().addBuilder(
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.Builder addOnChangeDataSetBuilder(
            int index) {
          return getOnChangeDataSetFieldBuilder().addBuilder(
              index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; OnChangeDataSets collected and queued on the TU per the QueuePolicy
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.OnChangeDataSet onChangeDataSet = 3;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.Builder> 
             getOnChangeDataSetBuilderList() {
          return getOnChangeDataSetFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSetOrBuilder> 
            getOnChangeDataSetFieldBuilder() {
          if (onChangeDataSetBuilder_ == null) {
            onChangeDataSetBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSet.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.OnChangeDataSetOrBuilder>(
                    onChangeDataSet_,
                    ((bitField0_ & 0x00000004) == 0x00000004),
                    getParentForChildren(),
                    isClean());
            onChangeDataSet_ = null;
          }
          return onChangeDataSetBuilder_;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int DATASUBSCRIPTION_FIELD_NUMBER = 1;
    private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription> dataSubscription_;
    /**
     * <pre>
     *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
     */
    public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription> getDataSubscriptionList() {
      return dataSubscription_;
    }
    /**
     * <pre>
     *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
     */
    public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscriptionOrBuilder> 
        getDataSubscriptionOrBuilderList() {
      return dataSubscription_;
    }
    /**
     * <pre>
     *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
     */
    public int getDataSubscriptionCount() {
      return dataSubscription_.size();
    }
    /**
     * <pre>
     *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription getDataSubscription(int index) {
      return dataSubscription_.get(index);
    }
    /**
     * <pre>
     *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscriptionOrBuilder getDataSubscriptionOrBuilder(
        int index) {
      return dataSubscription_.get(index);
    }

    public static final int VEHICLEID_FIELD_NUMBER = 2;
    private volatile java.lang.Object vehicleId_;
    /**
     * <pre>
     *&#47; Provide vehicle identifier when the session on the secure channel cannot be used to identify the client.
     * </pre>
     *
     * <code>string vehicleId = 2;</code>
     */
    public java.lang.String getVehicleId() {
      java.lang.Object ref = vehicleId_;
      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();
        vehicleId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Provide vehicle identifier when the session on the secure channel cannot be used to identify the client.
     * </pre>
     *
     * <code>string vehicleId = 2;</code>
     */
    public com.google.protobuf.ByteString
        getVehicleIdBytes() {
      java.lang.Object ref = vehicleId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        vehicleId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RAWPAYLOAD_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString rawPayload_;
    /**
     * <pre>
     *&#47;  approach to upload raw content in the VehicleDataAcquisitionPublish message.
     * </pre>
     *
     * <code>bytes rawPayload = 3;</code>
     */
    public com.google.protobuf.ByteString getRawPayload() {
      return rawPayload_;
    }

    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 {
      for (int i = 0; i < dataSubscription_.size(); i++) {
        output.writeMessage(1, dataSubscription_.get(i));
      }
      if (!getVehicleIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, vehicleId_);
      }
      if (!rawPayload_.isEmpty()) {
        output.writeBytes(3, rawPayload_);
      }
    }

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

      size = 0;
      for (int i = 0; i < dataSubscription_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, dataSubscription_.get(i));
      }
      if (!getVehicleIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, vehicleId_);
      }
      if (!rawPayload_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, rawPayload_);
      }
      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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish) obj;

      boolean result = true;
      result = result && getDataSubscriptionList()
          .equals(other.getDataSubscriptionList());
      result = result && getVehicleId()
          .equals(other.getVehicleId());
      result = result && getRawPayload()
          .equals(other.getRawPayload());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getDataSubscriptionCount() > 0) {
        hash = (37 * hash) + DATASUBSCRIPTION_FIELD_NUMBER;
        hash = (53 * hash) + getDataSubscriptionList().hashCode();
      }
      hash = (37 * hash) + VEHICLEID_FIELD_NUMBER;
      hash = (53 * hash) + getVehicleId().hashCode();
      hash = (37 * hash) + RAWPAYLOAD_FIELD_NUMBER;
      hash = (53 * hash) + getRawPayload().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish 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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish 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.VehicleDataAcquisitionPublish}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehicleDataAcquisitionPublish)
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublishOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getDataSubscriptionFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (dataSubscriptionBuilder_ == null) {
          dataSubscription_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          dataSubscriptionBuilder_.clear();
        }
        vehicleId_ = "";

        rawPayload_ = com.google.protobuf.ByteString.EMPTY;

        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (dataSubscriptionBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            dataSubscription_ = java.util.Collections.unmodifiableList(dataSubscription_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.dataSubscription_ = dataSubscription_;
        } else {
          result.dataSubscription_ = dataSubscriptionBuilder_.build();
        }
        result.vehicleId_ = vehicleId_;
        result.rawPayload_ = rawPayload_;
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.getDefaultInstance()) return this;
        if (dataSubscriptionBuilder_ == null) {
          if (!other.dataSubscription_.isEmpty()) {
            if (dataSubscription_.isEmpty()) {
              dataSubscription_ = other.dataSubscription_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureDataSubscriptionIsMutable();
              dataSubscription_.addAll(other.dataSubscription_);
            }
            onChanged();
          }
        } else {
          if (!other.dataSubscription_.isEmpty()) {
            if (dataSubscriptionBuilder_.isEmpty()) {
              dataSubscriptionBuilder_.dispose();
              dataSubscriptionBuilder_ = null;
              dataSubscription_ = other.dataSubscription_;
              bitField0_ = (bitField0_ & ~0x00000001);
              dataSubscriptionBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getDataSubscriptionFieldBuilder() : null;
            } else {
              dataSubscriptionBuilder_.addAllMessages(other.dataSubscription_);
            }
          }
        }
        if (!other.getVehicleId().isEmpty()) {
          vehicleId_ = other.vehicleId_;
          onChanged();
        }
        if (other.getRawPayload() != com.google.protobuf.ByteString.EMPTY) {
          setRawPayload(other.getRawPayload());
        }
        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.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription> dataSubscription_ =
        java.util.Collections.emptyList();
      private void ensureDataSubscriptionIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          dataSubscription_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription>(dataSubscription_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscriptionOrBuilder> dataSubscriptionBuilder_;

      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription> getDataSubscriptionList() {
        if (dataSubscriptionBuilder_ == null) {
          return java.util.Collections.unmodifiableList(dataSubscription_);
        } else {
          return dataSubscriptionBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public int getDataSubscriptionCount() {
        if (dataSubscriptionBuilder_ == null) {
          return dataSubscription_.size();
        } else {
          return dataSubscriptionBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription getDataSubscription(int index) {
        if (dataSubscriptionBuilder_ == null) {
          return dataSubscription_.get(index);
        } else {
          return dataSubscriptionBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public Builder setDataSubscription(
          int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription value) {
        if (dataSubscriptionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataSubscriptionIsMutable();
          dataSubscription_.set(index, value);
          onChanged();
        } else {
          dataSubscriptionBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public Builder setDataSubscription(
          int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.Builder builderForValue) {
        if (dataSubscriptionBuilder_ == null) {
          ensureDataSubscriptionIsMutable();
          dataSubscription_.set(index, builderForValue.build());
          onChanged();
        } else {
          dataSubscriptionBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public Builder addDataSubscription(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription value) {
        if (dataSubscriptionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataSubscriptionIsMutable();
          dataSubscription_.add(value);
          onChanged();
        } else {
          dataSubscriptionBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public Builder addDataSubscription(
          int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription value) {
        if (dataSubscriptionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataSubscriptionIsMutable();
          dataSubscription_.add(index, value);
          onChanged();
        } else {
          dataSubscriptionBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public Builder addDataSubscription(
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.Builder builderForValue) {
        if (dataSubscriptionBuilder_ == null) {
          ensureDataSubscriptionIsMutable();
          dataSubscription_.add(builderForValue.build());
          onChanged();
        } else {
          dataSubscriptionBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public Builder addDataSubscription(
          int index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.Builder builderForValue) {
        if (dataSubscriptionBuilder_ == null) {
          ensureDataSubscriptionIsMutable();
          dataSubscription_.add(index, builderForValue.build());
          onChanged();
        } else {
          dataSubscriptionBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public Builder addAllDataSubscription(
          java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription> values) {
        if (dataSubscriptionBuilder_ == null) {
          ensureDataSubscriptionIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, dataSubscription_);
          onChanged();
        } else {
          dataSubscriptionBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public Builder clearDataSubscription() {
        if (dataSubscriptionBuilder_ == null) {
          dataSubscription_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          dataSubscriptionBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public Builder removeDataSubscription(int index) {
        if (dataSubscriptionBuilder_ == null) {
          ensureDataSubscriptionIsMutable();
          dataSubscription_.remove(index);
          onChanged();
        } else {
          dataSubscriptionBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.Builder getDataSubscriptionBuilder(
          int index) {
        return getDataSubscriptionFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscriptionOrBuilder getDataSubscriptionOrBuilder(
          int index) {
        if (dataSubscriptionBuilder_ == null) {
          return dataSubscription_.get(index);  } else {
          return dataSubscriptionBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscriptionOrBuilder> 
           getDataSubscriptionOrBuilderList() {
        if (dataSubscriptionBuilder_ != null) {
          return dataSubscriptionBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(dataSubscription_);
        }
      }
      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.Builder addDataSubscriptionBuilder() {
        return getDataSubscriptionFieldBuilder().addBuilder(
            com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.getDefaultInstance());
      }
      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.Builder addDataSubscriptionBuilder(
          int index) {
        return getDataSubscriptionFieldBuilder().addBuilder(
            index, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.getDefaultInstance());
      }
      /**
       * <pre>
       *&#47; Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.VehicleDataAcquisitionPublish.DataSubscription dataSubscription = 1;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.Builder> 
           getDataSubscriptionBuilderList() {
        return getDataSubscriptionFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscriptionOrBuilder> 
          getDataSubscriptionFieldBuilder() {
        if (dataSubscriptionBuilder_ == null) {
          dataSubscriptionBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscription.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish.DataSubscriptionOrBuilder>(
                  dataSubscription_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          dataSubscription_ = null;
        }
        return dataSubscriptionBuilder_;
      }

      private java.lang.Object vehicleId_ = "";
      /**
       * <pre>
       *&#47; Provide vehicle identifier when the session on the secure channel cannot be used to identify the client.
       * </pre>
       *
       * <code>string vehicleId = 2;</code>
       */
      public java.lang.String getVehicleId() {
        java.lang.Object ref = vehicleId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          vehicleId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Provide vehicle identifier when the session on the secure channel cannot be used to identify the client.
       * </pre>
       *
       * <code>string vehicleId = 2;</code>
       */
      public com.google.protobuf.ByteString
          getVehicleIdBytes() {
        java.lang.Object ref = vehicleId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          vehicleId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Provide vehicle identifier when the session on the secure channel cannot be used to identify the client.
       * </pre>
       *
       * <code>string vehicleId = 2;</code>
       */
      public Builder setVehicleId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        vehicleId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Provide vehicle identifier when the session on the secure channel cannot be used to identify the client.
       * </pre>
       *
       * <code>string vehicleId = 2;</code>
       */
      public Builder clearVehicleId() {
        
        vehicleId_ = getDefaultInstance().getVehicleId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Provide vehicle identifier when the session on the secure channel cannot be used to identify the client.
       * </pre>
       *
       * <code>string vehicleId = 2;</code>
       */
      public Builder setVehicleIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        vehicleId_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString rawPayload_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       *&#47;  approach to upload raw content in the VehicleDataAcquisitionPublish message.
       * </pre>
       *
       * <code>bytes rawPayload = 3;</code>
       */
      public com.google.protobuf.ByteString getRawPayload() {
        return rawPayload_;
      }
      /**
       * <pre>
       *&#47;  approach to upload raw content in the VehicleDataAcquisitionPublish message.
       * </pre>
       *
       * <code>bytes rawPayload = 3;</code>
       */
      public Builder setRawPayload(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        rawPayload_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;  approach to upload raw content in the VehicleDataAcquisitionPublish message.
       * </pre>
       *
       * <code>bytes rawPayload = 3;</code>
       */
      public Builder clearRawPayload() {
        
        rawPayload_ = getDefaultInstance().getRawPayload();
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


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

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

    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPublish getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *&#47; Unique Vehicle Identifier
     * </pre>
     *
     * <code>string vehicleId = 1;</code>
     */
    java.lang.String getVehicleId();
    /**
     * <pre>
     *&#47; Unique Vehicle Identifier
     * </pre>
     *
     * <code>string vehicleId = 1;</code>
     */
    com.google.protobuf.ByteString
        getVehicleIdBytes();

    /**
     * <pre>
     *&#47; Policy Details, requires at least PolicyID
     * </pre>
     *
     * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
     */
    boolean hasPolicySubscription();
    /**
     * <pre>
     *&#47; Policy Details, requires at least PolicyID
     * </pre>
     *
     * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription getPolicySubscription();
    /**
     * <pre>
     *&#47; Policy Details, requires at least PolicyID
     * </pre>
     *
     * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscriptionOrBuilder getPolicySubscriptionOrBuilder();

    /**
     * <pre>
     *&#47; Version number of the policy.
     * </pre>
     *
     * <code>string policyVersion = 3;</code>
     */
    java.lang.String getPolicyVersion();
    /**
     * <pre>
     *&#47; Version number of the policy.
     * </pre>
     *
     * <code>string policyVersion = 3;</code>
     */
    com.google.protobuf.ByteString
        getPolicyVersionBytes();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.VehiclePolicyUpdateRequest}
   */
  public  static final class VehiclePolicyUpdateRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehiclePolicyUpdateRequest)
      VehiclePolicyUpdateRequestOrBuilder {
    // Use VehiclePolicyUpdateRequest.newBuilder() to construct.
    private VehiclePolicyUpdateRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VehiclePolicyUpdateRequest() {
      vehicleId_ = "";
      policyVersion_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private VehiclePolicyUpdateRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              vehicleId_ = s;
              break;
            }
            case 18: {
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder subBuilder = null;
              if (policySubscription_ != null) {
                subBuilder = policySubscription_.toBuilder();
              }
              policySubscription_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(policySubscription_);
                policySubscription_ = subBuilder.buildPartial();
              }

              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              policyVersion_ = s;
              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 {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehiclePolicyUpdateRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehiclePolicyUpdateRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest.Builder.class);
    }

    public static final int VEHICLEID_FIELD_NUMBER = 1;
    private volatile java.lang.Object vehicleId_;
    /**
     * <pre>
     *&#47; Unique Vehicle Identifier
     * </pre>
     *
     * <code>string vehicleId = 1;</code>
     */
    public java.lang.String getVehicleId() {
      java.lang.Object ref = vehicleId_;
      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();
        vehicleId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Unique Vehicle Identifier
     * </pre>
     *
     * <code>string vehicleId = 1;</code>
     */
    public com.google.protobuf.ByteString
        getVehicleIdBytes() {
      java.lang.Object ref = vehicleId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        vehicleId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int POLICYSUBSCRIPTION_FIELD_NUMBER = 2;
    private com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription_;
    /**
     * <pre>
     *&#47; Policy Details, requires at least PolicyID
     * </pre>
     *
     * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
     */
    public boolean hasPolicySubscription() {
      return policySubscription_ != null;
    }
    /**
     * <pre>
     *&#47; Policy Details, requires at least PolicyID
     * </pre>
     *
     * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription getPolicySubscription() {
      return policySubscription_ == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.getDefaultInstance() : policySubscription_;
    }
    /**
     * <pre>
     *&#47; Policy Details, requires at least PolicyID
     * </pre>
     *
     * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscriptionOrBuilder getPolicySubscriptionOrBuilder() {
      return getPolicySubscription();
    }

    public static final int POLICYVERSION_FIELD_NUMBER = 3;
    private volatile java.lang.Object policyVersion_;
    /**
     * <pre>
     *&#47; Version number of the policy.
     * </pre>
     *
     * <code>string policyVersion = 3;</code>
     */
    public java.lang.String getPolicyVersion() {
      java.lang.Object ref = policyVersion_;
      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();
        policyVersion_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Version number of the policy.
     * </pre>
     *
     * <code>string policyVersion = 3;</code>
     */
    public com.google.protobuf.ByteString
        getPolicyVersionBytes() {
      java.lang.Object ref = policyVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        policyVersion_ = 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 (!getVehicleIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, vehicleId_);
      }
      if (policySubscription_ != null) {
        output.writeMessage(2, getPolicySubscription());
      }
      if (!getPolicyVersionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, policyVersion_);
      }
    }

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

      size = 0;
      if (!getVehicleIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, vehicleId_);
      }
      if (policySubscription_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getPolicySubscription());
      }
      if (!getPolicyVersionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, policyVersion_);
      }
      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.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest other = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest) obj;

      boolean result = true;
      result = result && getVehicleId()
          .equals(other.getVehicleId());
      result = result && (hasPolicySubscription() == other.hasPolicySubscription());
      if (hasPolicySubscription()) {
        result = result && getPolicySubscription()
            .equals(other.getPolicySubscription());
      }
      result = result && getPolicyVersion()
          .equals(other.getPolicyVersion());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + VEHICLEID_FIELD_NUMBER;
      hash = (53 * hash) + getVehicleId().hashCode();
      if (hasPolicySubscription()) {
        hash = (37 * hash) + POLICYSUBSCRIPTION_FIELD_NUMBER;
        hash = (53 * hash) + getPolicySubscription().hashCode();
      }
      hash = (37 * hash) + POLICYVERSION_FIELD_NUMBER;
      hash = (53 * hash) + getPolicyVersion().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest 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.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest 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.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest 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.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest 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.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest 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.VehiclePolicyUpdateRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehiclePolicyUpdateRequest)
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehiclePolicyUpdateRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.internal_static_com_fca_uconnect_global_VehiclePolicyUpdateRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest.class, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest.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();
        vehicleId_ = "";

        if (policySubscriptionBuilder_ == null) {
          policySubscription_ = null;
        } else {
          policySubscription_ = null;
          policySubscriptionBuilder_ = null;
        }
        policyVersion_ = "";

        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest result = new com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest(this);
        result.vehicleId_ = vehicleId_;
        if (policySubscriptionBuilder_ == null) {
          result.policySubscription_ = policySubscription_;
        } else {
          result.policySubscription_ = policySubscriptionBuilder_.build();
        }
        result.policyVersion_ = policyVersion_;
        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.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest.getDefaultInstance()) return this;
        if (!other.getVehicleId().isEmpty()) {
          vehicleId_ = other.vehicleId_;
          onChanged();
        }
        if (other.hasPolicySubscription()) {
          mergePolicySubscription(other.getPolicySubscription());
        }
        if (!other.getPolicyVersion().isEmpty()) {
          policyVersion_ = other.policyVersion_;
          onChanged();
        }
        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.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object vehicleId_ = "";
      /**
       * <pre>
       *&#47; Unique Vehicle Identifier
       * </pre>
       *
       * <code>string vehicleId = 1;</code>
       */
      public java.lang.String getVehicleId() {
        java.lang.Object ref = vehicleId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          vehicleId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Unique Vehicle Identifier
       * </pre>
       *
       * <code>string vehicleId = 1;</code>
       */
      public com.google.protobuf.ByteString
          getVehicleIdBytes() {
        java.lang.Object ref = vehicleId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          vehicleId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Unique Vehicle Identifier
       * </pre>
       *
       * <code>string vehicleId = 1;</code>
       */
      public Builder setVehicleId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        vehicleId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Unique Vehicle Identifier
       * </pre>
       *
       * <code>string vehicleId = 1;</code>
       */
      public Builder clearVehicleId() {
        
        vehicleId_ = getDefaultInstance().getVehicleId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Unique Vehicle Identifier
       * </pre>
       *
       * <code>string vehicleId = 1;</code>
       */
      public Builder setVehicleIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        vehicleId_ = value;
        onChanged();
        return this;
      }

      private com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscriptionOrBuilder> policySubscriptionBuilder_;
      /**
       * <pre>
       *&#47; Policy Details, requires at least PolicyID
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public boolean hasPolicySubscription() {
        return policySubscriptionBuilder_ != null || policySubscription_ != null;
      }
      /**
       * <pre>
       *&#47; Policy Details, requires at least PolicyID
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription getPolicySubscription() {
        if (policySubscriptionBuilder_ == null) {
          return policySubscription_ == null ? com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.getDefaultInstance() : policySubscription_;
        } else {
          return policySubscriptionBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *&#47; Policy Details, requires at least PolicyID
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public Builder setPolicySubscription(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription value) {
        if (policySubscriptionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          policySubscription_ = value;
          onChanged();
        } else {
          policySubscriptionBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       *&#47; Policy Details, requires at least PolicyID
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public Builder setPolicySubscription(
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder builderForValue) {
        if (policySubscriptionBuilder_ == null) {
          policySubscription_ = builderForValue.build();
          onChanged();
        } else {
          policySubscriptionBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       *&#47; Policy Details, requires at least PolicyID
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public Builder mergePolicySubscription(com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription value) {
        if (policySubscriptionBuilder_ == null) {
          if (policySubscription_ != null) {
            policySubscription_ =
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.newBuilder(policySubscription_).mergeFrom(value).buildPartial();
          } else {
            policySubscription_ = value;
          }
          onChanged();
        } else {
          policySubscriptionBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       *&#47; Policy Details, requires at least PolicyID
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public Builder clearPolicySubscription() {
        if (policySubscriptionBuilder_ == null) {
          policySubscription_ = null;
          onChanged();
        } else {
          policySubscription_ = null;
          policySubscriptionBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       *&#47; Policy Details, requires at least PolicyID
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder getPolicySubscriptionBuilder() {
        
        onChanged();
        return getPolicySubscriptionFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47; Policy Details, requires at least PolicyID
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscriptionOrBuilder getPolicySubscriptionOrBuilder() {
        if (policySubscriptionBuilder_ != null) {
          return policySubscriptionBuilder_.getMessageOrBuilder();
        } else {
          return policySubscription_ == null ?
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.getDefaultInstance() : policySubscription_;
        }
      }
      /**
       * <pre>
       *&#47; Policy Details, requires at least PolicyID
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehicleDataAcquisitionPolicyPublish.PolicySubscription policySubscription = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscriptionOrBuilder> 
          getPolicySubscriptionFieldBuilder() {
        if (policySubscriptionBuilder_ == null) {
          policySubscriptionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscription.Builder, com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehicleDataAcquisitionPolicyPublish.PolicySubscriptionOrBuilder>(
                  getPolicySubscription(),
                  getParentForChildren(),
                  isClean());
          policySubscription_ = null;
        }
        return policySubscriptionBuilder_;
      }

      private java.lang.Object policyVersion_ = "";
      /**
       * <pre>
       *&#47; Version number of the policy.
       * </pre>
       *
       * <code>string policyVersion = 3;</code>
       */
      public java.lang.String getPolicyVersion() {
        java.lang.Object ref = policyVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          policyVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Version number of the policy.
       * </pre>
       *
       * <code>string policyVersion = 3;</code>
       */
      public com.google.protobuf.ByteString
          getPolicyVersionBytes() {
        java.lang.Object ref = policyVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          policyVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Version number of the policy.
       * </pre>
       *
       * <code>string policyVersion = 3;</code>
       */
      public Builder setPolicyVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        policyVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Version number of the policy.
       * </pre>
       *
       * <code>string policyVersion = 3;</code>
       */
      public Builder clearPolicyVersion() {
        
        policyVersion_ = getDefaultInstance().getPolicyVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Version number of the policy.
       * </pre>
       *
       * <code>string policyVersion = 3;</code>
       */
      public Builder setPolicyVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        policyVersion_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


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

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

    public static com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtVehDataAcquisition.VehiclePolicyUpdateRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_QueuePolicy_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_QueuePolicy_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSignal_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSignal_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_FilterCriteria_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_FilterCriteria_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_EventTriggerCriteria_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_EventTriggerCriteria_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_CaptureWindowPolicy_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_CaptureWindowPolicy_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSubscription_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSubscription_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicyApplication_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicyApplication_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_Histogram_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_Histogram_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_HistogramDataSet_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_HistogramDataSet_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicySubscription_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicySubscription_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_SignalValue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_SignalValue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataRow_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataRow_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSet_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSet_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_OnChangeDataSet_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_OnChangeDataSet_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSubscription_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSubscription_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehiclePolicyUpdateRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehiclePolicyUpdateRequest_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_VehDataAcquisition" +
      ".proto\022\027com.fca.uconnect.global\"\221\"\n#Vehi" +
      "cleDataAcquisitionPolicyPublish\022\017\n\007versi" +
      "on\030\001 \001(\005\022k\n\022policySubscription\030\002 \003(\0132O.c" +
      "om.fca.uconnect.global.VehicleDataAcquis" +
      "itionPolicyPublish.PolicySubscription\022\021\n" +
      "\ttimestamp\030\003 \001(\003\022\021\n\tmessageId\030\004 \001(\005\022\023\n\013s" +
      "ignatureId\030\005 \001(\005\022\022\n\nrawPayload\030\006 \001(\014\022\026\n\016" +
      "rawContentType\030\007 \001(\t\032E\n\013QueuePolicy\022\021\n\tf" +
      "lushRate\030\001 \001(\005\022\022\n\nuploadRate\030\002 \001(\005\022\017\n\007ma",
      "xSize\030\003 \001(\005\032\356\001\n\rDataSetSignal\022\022\n\nsignalN" +
      "ame\030\001 \001(\t\022Y\n\004type\030\002 \001(\0162K.com.fca.uconne" +
      "ct.global.VehicleDataAcquisitionPolicyPu" +
      "blish.SignalTypeEnum\022\020\n\010signalId\030\003 \001(\005\022\\" +
      "\n\003uom\030\004 \001(\0162O.com.fca.uconnect.global.Ve" +
      "hicleDataAcquisitionPolicyPublish.Signal" +
      "ValueUOMEnum\032\272\002\n\016FilterCriteria\022\020\n\010signa" +
      "lId\030\n \001(\t\022\022\n\nsignalName\030\001 \001(\t\022\025\n\013doubleV" +
      "alue\030\002 \001(\001H\000\022\024\n\nfloatValue\030\003 \001(\002H\000\022\024\n\nin" +
      "t32Value\030\004 \001(\005H\000\022\024\n\nint64Value\030\005 \001(\003H\000\022\025",
      "\n\013stringValue\030\006 \001(\tH\000\022_\n\010operator\030\007 \001(\0162" +
      "K.com.fca.uconnect.global.VehicleDataAcq" +
      "uisitionPolicyPublish.FilterOperatorH\000\022\020" +
      "\n\006branch\030\010 \001(\005H\000\022\023\n\tbranch_if\030\t \001(\005H\000B\n\n" +
      "\010criteria\032}\n\024EventTriggerCriteria\022e\n\020fil" +
      "terExpression\030\001 \003(\0132K.com.fca.uconnect.g" +
      "lobal.VehicleDataAcquisitionPolicyPublis" +
      "h.FilterCriteria\032\303\001\n\023CaptureWindowPolicy" +
      "\022\034\n\024numPreTriggerSamples\030\001 \001(\005\022\035\n\025numPos" +
      "tTriggerSamples\030\002 \001(\005\022o\n\024eventTriggerCri",
      "teria\030\003 \003(\0132Q.com.fca.uconnect.global.Ve" +
      "hicleDataAcquisitionPolicyPublish.EventT" +
      "riggerCriteria\032\341\005\n\023DataSetSubscription\022\016" +
      "\n\006period\030\001 \001(\005\022\021\n\tfrequency\030\n \001(\005\022a\n\rdat" +
      "aSetSignal\030\002 \003(\0132J.com.fca.uconnect.glob" +
      "al.VehicleDataAcquisitionPolicyPublish.D" +
      "ataSetSignal\022\021\n\tdataSetId\030\003 \001(\003\022]\n\013queue" +
      "Policy\030\004 \001(\0132H.com.fca.uconnect.global.V" +
      "ehicleDataAcquisitionPolicyPublish.Queue" +
      "Policy\022e\n\020filterExpression\030\005 \003(\0132K.com.f",
      "ca.uconnect.global.VehicleDataAcquisitio" +
      "nPolicyPublish.FilterCriteria\022|\n\032differe" +
      "ntialTSEncodingType\030\006 \001(\0162X.com.fca.ucon" +
      "nect.global.VehicleDataAcquisitionPolicy" +
      "Publish.DifferenceTimeStampTypeEnum\022m\n\023c" +
      "aptureWindowPolicy\030\007 \001(\0132P.com.fca.uconn" +
      "ect.global.VehicleDataAcquisitionPolicyP" +
      "ublish.CaptureWindowPolicy\022\031\n\021isOnChange" +
      "DataSet\030\010 \001(\010\022c\n\014signalIdType\030\t \001(\0162M.co" +
      "m.fca.uconnect.global.VehicleDataAcquisi",
      "tionPolicyPublish.SignalIdTypeEnum\032C\n\021Po" +
      "licyApplication\022\025\n\rapplicationId\030\001 \001(\014\022\027" +
      "\n\017applicationName\030\003 \001(\t\032\327\001\n\tHistogram\022\033\n" +
      "\023histogramSignalName\030\001 \001(\t\022\037\n\027histogramC" +
      "CntSignalName\030\002 \001(\t\022i\n\016filterCriteria\030\003 " +
      "\001(\0132Q.com.fca.uconnect.global.VehicleDat" +
      "aAcquisitionPolicyPublish.EventTriggerCr" +
      "iteria\022\016\n\006period\030\004 \001(\005\022\021\n\tfrequency\030\005 \001(" +
      "\005\032m\n\020HistogramDataSet\022Y\n\thistogram\030\001 \003(\013" +
      "2F.com.fca.uconnect.global.VehicleDataAc",
      "quisitionPolicyPublish.Histogram\032\253\003\n\022Pol" +
      "icySubscription\022\017\n\007version\030\007 \001(\005\022\034\n\024poli" +
      "cySubscriptionId\030\001 \001(\014\022\021\n\tstartDate\030\006 \001(" +
      "\003\022\026\n\016expirationDate\030\002 \001(\003\022m\n\023dataSetSubs" +
      "cription\030\003 \003(\0132P.com.fca.uconnect.global" +
      ".VehicleDataAcquisitionPolicyPublish.Dat" +
      "aSetSubscription\022c\n\013application\030\004 \001(\0132N." +
      "com.fca.uconnect.global.VehicleDataAcqui" +
      "sitionPolicyPublish.PolicyApplication\022g\n" +
      "\020histogramDataSet\030\005 \001(\0132M.com.fca.uconne",
      "ct.global.VehicleDataAcquisitionPolicyPu" +
      "blish.HistogramDataSet\"\217\001\n\016SignalTypeEnu" +
      "m\022\007\n\003RAW\020\000\022\025\n\021ENGINEERING_UNITS\020\001\022\r\n\tENC" +
      "RYPTED\020\002\022\022\n\016DIFFERENCE_RAW\020\003\022 \n\034DIFFEREN" +
      "CE_ENGINEERING_UNITS\020\004\022\030\n\024DIFFERENCE_ENC" +
      "RYPTED\020\005\"\225\007\n\022SignalValueUOMEnum\022\006\n\002NA\020\000\022" +
      "\016\n\nCENTIMETER\020\001\022\t\n\005METER\020\002\022\r\n\tKILOMETER\020" +
      "\003\022\010\n\004INCH\020\004\022\010\n\004FOOT\020\005\022\010\n\004MILE\020\006\022\016\n\nMILLI" +
      "LITER\020\007\022\t\n\005LITER\020\010\022\010\n\004PINT\020\t\022\t\n\005QUART\020\n\022" +
      "\n\n\006GALLON\020\013\022\n\n\006RADIAN\020\014\022\n\n\006DEGREE\020\r\022\n\n\006S",
      "ECOND\020\016\022\n\n\006MINUTE\020\017\022\010\n\004HOUR\020\020\022\007\n\003DAY\020\021\022\010" +
      "\n\004YEAR\020\022\022\t\n\005HERTZ\020\023\022\026\n\022RADIANS_PER_SECON" +
      "D\020\024\022\026\n\022DEGREES_PER_SECOND\020\025\022\013\n\007DECIBEL\020\026" +
      "\022\025\n\021METERS_PER_SECOND\020\027\022\027\n\023KILOMETERS_PE" +
      "R_HOUR\020\030\022\023\n\017FEET_PER_SECOND\020\031\022\022\n\016MILES_P" +
      "ER_HOUR\020\032\022\010\n\004GRAM\020\033\022\014\n\010KILOGRAM\020\034\022\t\n\005OUN" +
      "CE\020\035\022\t\n\005POUND\020\036\022\007\n\003TON\020\037\022\n\n\006NEWTON\020 \022\020\n\014" +
      "NEWTON_METER\020!\022\016\n\nFOOT_POUND\020\"\022\t\n\005JOULE\020" +
      "#\022\010\n\004WATT\020$\022\014\n\010KILOWATT\020%\022\016\n\nHORSEPOWER\020" +
      "&\022\032\n\026POUNDS_PER_SQUARE_INCH\020\'\022\n\n\006KELVIN\020",
      "(\022\016\n\nCENTIGRADE\020)\022\016\n\nFAHRENHEIT\020*\022\t\n\005LUM" +
      "EN\020+\022\n\n\006AMPERE\020,\022\010\n\004VOLT\020-\022\007\n\003OHM\020.\022\t\n\005K" +
      "OHMS\020/\022\013\n\007PERCENT\0200\022\010\n\004BARS\0201\022\017\n\013PSI_PER" +
      "_BIT\0202\022\t\n\005PULSE\0203\022\030\n\024KILOMETERS_PER_LITE" +
      "R\0204\022\024\n\020MILES_PER_GALLON\0205\022\023\n\017LITRES_PER_" +
      "HOUR\0206\022\034\n\030METERS_PER_SECOND_SECOND\0207\022\023\n\017" +
      "MILLIARCSECONDS\0208\022\016\n\nMILLIMETER\0209\022\032\n\026FEE" +
      "T_PER_SECOND_SECOND\020:\022\031\n\025REVOLUTION_PER_" +
      "MINUTE\020;\"_\n\033DifferenceTimeStampTypeEnum\022" +
      "\010\n\004NONE\020\000\022\030\n\024EXPLICIT_DIFFERENCES\020\001\022\034\n\030F",
      "IXED_PERIOD_DIFFERENCES\020\002\"\333\002\n\016FilterOper" +
      "ator\022\007\n\003NOT\020\000\022\010\n\004LESS\020\001\022\021\n\rLESS_OR_EQUAL" +
      "\020\002\022\t\n\005EQUAL\020\003\022\024\n\020GREATER_OR_EQUAL\020\004\022\013\n\007G" +
      "REATER\020\005\022\r\n\tNOT_EQUAL\020\006\022\007\n\003AND\020\007\022\006\n\002OR\020\010" +
      "\022\007\n\003ADD\020\t\022\014\n\010SUBTRACT\020\n\022\014\n\010MUTLIPLY\020\013\022\n\n" +
      "\006DIVIDE\020\014\022\007\n\003MOD\020\r\022\n\n\006LSHIFT\020\016\022\n\n\006RSHIFT" +
      "\020\017\022\n\n\006BITAND\020\020\022\t\n\005BITOR\020\021\022\n\n\006BITNOT\020\022\022\n\n" +
      "\006BITXOR\020\023\022\n\n\006NEGATE\020\024\022\016\n\nNOT_NEGATE\020\025\022\023\n" +
      "\017VARIABLE_ASSIGN\020\030\022\020\n\014VARIABLE_REF\020\031\022\021\n\r" +
      "FUNCTION_CALL\020\032\"B\n\020SignalIdTypeEnum\022\030\n\024I",
      "NDEX_DATASETSIGNALS\020\000\022\024\n\020UNIQUE_SIGNAL_I" +
      "D\020\001\"\302\010\n\035VehicleDataAcquisitionPublish\022a\n" +
      "\020dataSubscription\030\001 \003(\0132G.com.fca.uconne" +
      "ct.global.VehicleDataAcquisitionPublish." +
      "DataSubscription\022\021\n\tvehicleId\030\002 \001(\t\022\022\n\nr" +
      "awPayload\030\003 \001(\014\032\246\002\n\013SignalValue\022\020\n\010signa" +
      "lId\030\014 \001(\005\022\024\n\nbytesValue\030\001 \001(\014H\000\022\024\n\nint32" +
      "Value\030\002 \001(\005H\000\022\024\n\nint64Value\030\003 \001(\003H\000\022\026\n\014b" +
      "ooleanValue\030\004 \001(\010H\000\022\024\n\nfloatValue\030\005 \001(\002H" +
      "\000\022\025\n\013doubleValue\030\006 \001(\001H\000\022\025\n\013stringValue\030",
      "\007 \001(\tH\000\022\025\n\013sint32Value\030\010 \001(\021H\000\022\025\n\013sint64" +
      "Value\030\t \001(\022H\000\022\027\n\rsfixed32Value\030\n \001(\017H\000\022\027" +
      "\n\rsfixed64Value\030\013 \001(\020H\000B\007\n\005value\032u\n\007Data" +
      "Row\022\021\n\ttimestamp\030\001 \001(\003\022W\n\013signalValue\030\002 " +
      "\003(\0132B.com.fca.uconnect.global.VehicleDat" +
      "aAcquisitionPublish.SignalValue\032m\n\007DataS" +
      "et\022\021\n\tdataSetId\030\001 \001(\003\022O\n\007dataRow\030\002 \003(\0132>" +
      ".com.fca.uconnect.global.VehicleDataAcqu" +
      "isitionPublish.DataRow\032\242\001\n\017OnChangeDataS" +
      "et\022\021\n\tdataSetId\030\001 \001(\003\022\021\n\ttimestamp\030\002 \001(\003",
      "\022\020\n\010signalId\030\003 \001(\005\022W\n\013signalValue\030\004 \001(\0132" +
      "B.com.fca.uconnect.global.VehicleDataAcq" +
      "uisitionPublish.SignalValue\032\342\001\n\020DataSubs" +
      "cription\022\034\n\024policySubscriptionId\030\001 \001(\014\022O" +
      "\n\007dataSet\030\002 \003(\0132>.com.fca.uconnect.globa" +
      "l.VehicleDataAcquisitionPublish.DataSet\022" +
      "_\n\017onChangeDataSet\030\003 \003(\0132F.com.fca.uconn" +
      "ect.global.VehicleDataAcquisitionPublish" +
      ".OnChangeDataSet\"\263\001\n\032VehiclePolicyUpdate" +
      "Request\022\021\n\tvehicleId\030\001 \001(\t\022k\n\022policySubs",
      "cription\030\002 \001(\0132O.com.fca.uconnect.global" +
      ".VehicleDataAcquisitionPolicyPublish.Pol" +
      "icySubscription\022\025\n\rpolicyVersion\030\003 \001(\tb\006" +
      "proto3"
    };
    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[] {
        }, assigner);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_descriptor,
        new java.lang.String[] { "Version", "PolicySubscription", "Timestamp", "MessageId", "SignatureId", "RawPayload", "RawContentType", });
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_QueuePolicy_descriptor =
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_descriptor.getNestedTypes().get(0);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_QueuePolicy_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_QueuePolicy_descriptor,
        new java.lang.String[] { "FlushRate", "UploadRate", "MaxSize", });
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSignal_descriptor =
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_descriptor.getNestedTypes().get(1);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSignal_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSignal_descriptor,
        new java.lang.String[] { "SignalName", "Type", "SignalId", "Uom", });
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_FilterCriteria_descriptor =
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_descriptor.getNestedTypes().get(2);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_FilterCriteria_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_FilterCriteria_descriptor,
        new java.lang.String[] { "SignalId", "SignalName", "DoubleValue", "FloatValue", "Int32Value", "Int64Value", "StringValue", "Operator", "Branch", "BranchIf", "Criteria", });
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_EventTriggerCriteria_descriptor =
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_descriptor.getNestedTypes().get(3);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_EventTriggerCriteria_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_EventTriggerCriteria_descriptor,
        new java.lang.String[] { "FilterExpression", });
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_CaptureWindowPolicy_descriptor =
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_descriptor.getNestedTypes().get(4);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_CaptureWindowPolicy_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_CaptureWindowPolicy_descriptor,
        new java.lang.String[] { "NumPreTriggerSamples", "NumPostTriggerSamples", "EventTriggerCriteria", });
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSubscription_descriptor =
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_descriptor.getNestedTypes().get(5);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSubscription_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_DataSetSubscription_descriptor,
        new java.lang.String[] { "Period", "Frequency", "DataSetSignal", "DataSetId", "QueuePolicy", "FilterExpression", "DifferentialTSEncodingType", "CaptureWindowPolicy", "IsOnChangeDataSet", "SignalIdType", });
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicyApplication_descriptor =
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_descriptor.getNestedTypes().get(6);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicyApplication_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicyApplication_descriptor,
        new java.lang.String[] { "ApplicationId", "ApplicationName", });
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_Histogram_descriptor =
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_descriptor.getNestedTypes().get(7);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_Histogram_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_Histogram_descriptor,
        new java.lang.String[] { "HistogramSignalName", "HistogramCCntSignalName", "FilterCriteria", "Period", "Frequency", });
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_HistogramDataSet_descriptor =
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_descriptor.getNestedTypes().get(8);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_HistogramDataSet_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_HistogramDataSet_descriptor,
        new java.lang.String[] { "Histogram", });
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicySubscription_descriptor =
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_descriptor.getNestedTypes().get(9);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicySubscription_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPolicyPublish_PolicySubscription_descriptor,
        new java.lang.String[] { "Version", "PolicySubscriptionId", "StartDate", "ExpirationDate", "DataSetSubscription", "Application", "HistogramDataSet", });
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_descriptor,
        new java.lang.String[] { "DataSubscription", "VehicleId", "RawPayload", });
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_SignalValue_descriptor =
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_descriptor.getNestedTypes().get(0);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_SignalValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_SignalValue_descriptor,
        new java.lang.String[] { "SignalId", "BytesValue", "Int32Value", "Int64Value", "BooleanValue", "FloatValue", "DoubleValue", "StringValue", "Sint32Value", "Sint64Value", "Sfixed32Value", "Sfixed64Value", "Value", });
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataRow_descriptor =
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_descriptor.getNestedTypes().get(1);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataRow_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataRow_descriptor,
        new java.lang.String[] { "Timestamp", "SignalValue", });
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSet_descriptor =
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_descriptor.getNestedTypes().get(2);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSet_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSet_descriptor,
        new java.lang.String[] { "DataSetId", "DataRow", });
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_OnChangeDataSet_descriptor =
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_descriptor.getNestedTypes().get(3);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_OnChangeDataSet_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_OnChangeDataSet_descriptor,
        new java.lang.String[] { "DataSetId", "Timestamp", "SignalId", "SignalValue", });
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSubscription_descriptor =
      internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_descriptor.getNestedTypes().get(4);
    internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSubscription_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehicleDataAcquisitionPublish_DataSubscription_descriptor,
        new java.lang.String[] { "PolicySubscriptionId", "DataSet", "OnChangeDataSet", });
    internal_static_com_fca_uconnect_global_VehiclePolicyUpdateRequest_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_com_fca_uconnect_global_VehiclePolicyUpdateRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehiclePolicyUpdateRequest_descriptor,
        new java.lang.String[] { "VehicleId", "PolicySubscription", "PolicyVersion", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
