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

package com.fca.uconnect.global;

public final class GlobalUconnectExtCommCheck {
  private GlobalUconnectExtCommCheck() {}
  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 CommCheckRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.CommCheckRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *&#47; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
     * </pre>
     *
     * <code>string vehicleId = 1;</code>
     */
    java.lang.String getVehicleId();
    /**
     * <pre>
     *&#47; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
     * </pre>
     *
     * <code>string vehicleId = 1;</code>
     */
    com.google.protobuf.ByteString
        getVehicleIdBytes();

    /**
     * <code>.com.fca.uconnect.global.Device device1 = 2;</code>
     */
    boolean hasDevice1();
    /**
     * <code>.com.fca.uconnect.global.Device device1 = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectDevice.Device getDevice1();
    /**
     * <code>.com.fca.uconnect.global.Device device1 = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectDevice.DeviceOrBuilder getDevice1OrBuilder();

    /**
     * <pre>
     *&#47; Hash of the DRM from the Signature
     * </pre>
     *
     * <code>bytes drmHash = 5;</code>
     */
    com.google.protobuf.ByteString getDrmHash();

    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters identified in the TC Client Specification
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */
    int getAdditionalModemParamsCount();
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters identified in the TC Client Specification
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */
    boolean containsAdditionalModemParams(
        java.lang.String key);
    /**
     * Use {@link #getAdditionalModemParamsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getAdditionalModemParams();
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters identified in the TC Client Specification
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getAdditionalModemParamsMap();
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters identified in the TC Client Specification
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */

    java.lang.String getAdditionalModemParamsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters identified in the TC Client Specification
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */

    java.lang.String getAdditionalModemParamsOrThrow(
        java.lang.String key);

    /**
     * <code>.com.fca.uconnect.global.CommCheckRequest.ReasonEnum reason = 4;</code>
     */
    int getReasonValue();
    /**
     * <code>.com.fca.uconnect.global.CommCheckRequest.ReasonEnum reason = 4;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest.ReasonEnum getReason();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.CommCheckRequest}
   */
  public  static final class CommCheckRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.CommCheckRequest)
      CommCheckRequestOrBuilder {
    // Use CommCheckRequest.newBuilder() to construct.
    private CommCheckRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CommCheckRequest() {
      vehicleId_ = "";
      drmHash_ = com.google.protobuf.ByteString.EMPTY;
      reason_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private CommCheckRequest(
        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.GlobalUconnectDevice.Device.Builder subBuilder = null;
              if (device1_ != null) {
                subBuilder = device1_.toBuilder();
              }
              device1_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectDevice.Device.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(device1_);
                device1_ = subBuilder.buildPartial();
              }

              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                additionalModemParams_ = com.google.protobuf.MapField.newMapField(
                    AdditionalModemParamsDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000008;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              additionalModemParams__ = input.readMessage(
                  AdditionalModemParamsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              additionalModemParams_.getMutableMap().put(
                  additionalModemParams__.getKey(), additionalModemParams__.getValue());
              break;
            }
            case 32: {
              int rawValue = input.readEnum();

              reason_ = rawValue;
              break;
            }
            case 42: {

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

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

    /**
     * Protobuf enum {@code com.fca.uconnect.global.CommCheckRequest.ReasonEnum}
     */
    public enum ReasonEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; IGNITION_CYCLE_CHECK
       * </pre>
       *
       * <code>IGNITION_CYCLE_CHECK = 0;</code>
       */
      IGNITION_CYCLE_CHECK(0),
      /**
       * <pre>
       *&#47; TBM_FLASH
       * </pre>
       *
       * <code>TBM_FLASH = 1;</code>
       */
      TBM_FLASH(1),
      /**
       * <pre>
       *&#47; HU_FLASH
       * </pre>
       *
       * <code>HU_FLASH = 2;</code>
       */
      HU_FLASH(2),
      /**
       * <pre>
       *&#47; ON_DEMAND
       * </pre>
       *
       * <code>ON_DEMAND = 3;</code>
       */
      ON_DEMAND(3),
      /**
       * <pre>
       *&#47; MISDN_MISMATCH
       * </pre>
       *
       * <code>MISDN_MISMATCH = 4;</code>
       */
      MISDN_MISMATCH(4),
      /**
       * <pre>
       *&#47; DISCREPENCY_CHECK
       * </pre>
       *
       * <code>DISCREPENCY_CHECK = 5;</code>
       */
      DISCREPENCY_CHECK(5),
      /**
       * <pre>
       *&#47; SOFTWARE_REFRESH
       * </pre>
       *
       * <code>SOFTWARE_REFRESH = 6;</code>
       */
      SOFTWARE_REFRESH(6),
      /**
       * <pre>
       *&#47; HU_SWAP
       * </pre>
       *
       * <code>HU_SWAP = 7;</code>
       */
      HU_SWAP(7),
      /**
       * <pre>
       *&#47;TBM_SWAP
       * </pre>
       *
       * <code>TBM_SWAP = 8;</code>
       */
      TBM_SWAP(8),
      /**
       * <pre>
       *&#47; ENROLLMEN
       * </pre>
       *
       * <code>ENROLLMENT = 9;</code>
       */
      ENROLLMENT(9),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47; IGNITION_CYCLE_CHECK
       * </pre>
       *
       * <code>IGNITION_CYCLE_CHECK = 0;</code>
       */
      public static final int IGNITION_CYCLE_CHECK_VALUE = 0;
      /**
       * <pre>
       *&#47; TBM_FLASH
       * </pre>
       *
       * <code>TBM_FLASH = 1;</code>
       */
      public static final int TBM_FLASH_VALUE = 1;
      /**
       * <pre>
       *&#47; HU_FLASH
       * </pre>
       *
       * <code>HU_FLASH = 2;</code>
       */
      public static final int HU_FLASH_VALUE = 2;
      /**
       * <pre>
       *&#47; ON_DEMAND
       * </pre>
       *
       * <code>ON_DEMAND = 3;</code>
       */
      public static final int ON_DEMAND_VALUE = 3;
      /**
       * <pre>
       *&#47; MISDN_MISMATCH
       * </pre>
       *
       * <code>MISDN_MISMATCH = 4;</code>
       */
      public static final int MISDN_MISMATCH_VALUE = 4;
      /**
       * <pre>
       *&#47; DISCREPENCY_CHECK
       * </pre>
       *
       * <code>DISCREPENCY_CHECK = 5;</code>
       */
      public static final int DISCREPENCY_CHECK_VALUE = 5;
      /**
       * <pre>
       *&#47; SOFTWARE_REFRESH
       * </pre>
       *
       * <code>SOFTWARE_REFRESH = 6;</code>
       */
      public static final int SOFTWARE_REFRESH_VALUE = 6;
      /**
       * <pre>
       *&#47; HU_SWAP
       * </pre>
       *
       * <code>HU_SWAP = 7;</code>
       */
      public static final int HU_SWAP_VALUE = 7;
      /**
       * <pre>
       *&#47;TBM_SWAP
       * </pre>
       *
       * <code>TBM_SWAP = 8;</code>
       */
      public static final int TBM_SWAP_VALUE = 8;
      /**
       * <pre>
       *&#47; ENROLLMEN
       * </pre>
       *
       * <code>ENROLLMENT = 9;</code>
       */
      public static final int ENROLLMENT_VALUE = 9;


      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 ReasonEnum valueOf(int value) {
        return forNumber(value);
      }

      public static ReasonEnum forNumber(int value) {
        switch (value) {
          case 0: return IGNITION_CYCLE_CHECK;
          case 1: return TBM_FLASH;
          case 2: return HU_FLASH;
          case 3: return ON_DEMAND;
          case 4: return MISDN_MISMATCH;
          case 5: return DISCREPENCY_CHECK;
          case 6: return SOFTWARE_REFRESH;
          case 7: return HU_SWAP;
          case 8: return TBM_SWAP;
          case 9: return ENROLLMENT;
          default: return null;
        }
      }

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

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

      public static ReasonEnum 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 ReasonEnum(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.CommCheckRequest.ReasonEnum)
    }

    private int bitField0_;
    public static final int VEHICLEID_FIELD_NUMBER = 1;
    private volatile java.lang.Object vehicleId_;
    /**
     * <pre>
     *&#47; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
     * </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; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
     * </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 DEVICE1_FIELD_NUMBER = 2;
    private com.fca.uconnect.global.GlobalUconnectDevice.Device device1_;
    /**
     * <code>.com.fca.uconnect.global.Device device1 = 2;</code>
     */
    public boolean hasDevice1() {
      return device1_ != null;
    }
    /**
     * <code>.com.fca.uconnect.global.Device device1 = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectDevice.Device getDevice1() {
      return device1_ == null ? com.fca.uconnect.global.GlobalUconnectDevice.Device.getDefaultInstance() : device1_;
    }
    /**
     * <code>.com.fca.uconnect.global.Device device1 = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectDevice.DeviceOrBuilder getDevice1OrBuilder() {
      return getDevice1();
    }

    public static final int DRMHASH_FIELD_NUMBER = 5;
    private com.google.protobuf.ByteString drmHash_;
    /**
     * <pre>
     *&#47; Hash of the DRM from the Signature
     * </pre>
     *
     * <code>bytes drmHash = 5;</code>
     */
    public com.google.protobuf.ByteString getDrmHash() {
      return drmHash_;
    }

    public static final int ADDITIONALMODEMPARAMS_FIELD_NUMBER = 3;
    private static final class AdditionalModemParamsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  com.fca.uconnect.global.GlobalUconnectExtCommCheck.internal_static_com_fca_uconnect_global_CommCheckRequest_AdditionalModemParamsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> additionalModemParams_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetAdditionalModemParams() {
      if (additionalModemParams_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            AdditionalModemParamsDefaultEntryHolder.defaultEntry);
      }
      return additionalModemParams_;
    }

    public int getAdditionalModemParamsCount() {
      return internalGetAdditionalModemParams().getMap().size();
    }
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters identified in the TC Client Specification
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */

    public boolean containsAdditionalModemParams(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      return internalGetAdditionalModemParams().getMap().containsKey(key);
    }
    /**
     * Use {@link #getAdditionalModemParamsMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getAdditionalModemParams() {
      return getAdditionalModemParamsMap();
    }
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters identified in the TC Client Specification
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */

    public java.util.Map<java.lang.String, java.lang.String> getAdditionalModemParamsMap() {
      return internalGetAdditionalModemParams().getMap();
    }
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters identified in the TC Client Specification
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */

    public java.lang.String getAdditionalModemParamsOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetAdditionalModemParams().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters identified in the TC Client Specification
     * </pre>
     *
     * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
     */

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

    public static final int REASON_FIELD_NUMBER = 4;
    private int reason_;
    /**
     * <code>.com.fca.uconnect.global.CommCheckRequest.ReasonEnum reason = 4;</code>
     */
    public int getReasonValue() {
      return reason_;
    }
    /**
     * <code>.com.fca.uconnect.global.CommCheckRequest.ReasonEnum reason = 4;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest.ReasonEnum getReason() {
      com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest.ReasonEnum result = com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest.ReasonEnum.valueOf(reason_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest.ReasonEnum.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 (!getVehicleIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, vehicleId_);
      }
      if (device1_ != null) {
        output.writeMessage(2, getDevice1());
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetAdditionalModemParams(),
          AdditionalModemParamsDefaultEntryHolder.defaultEntry,
          3);
      if (reason_ != com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest.ReasonEnum.IGNITION_CYCLE_CHECK.getNumber()) {
        output.writeEnum(4, reason_);
      }
      if (!drmHash_.isEmpty()) {
        output.writeBytes(5, drmHash_);
      }
    }

    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 (device1_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getDevice1());
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetAdditionalModemParams().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        additionalModemParams__ = AdditionalModemParamsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, additionalModemParams__);
      }
      if (reason_ != com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest.ReasonEnum.IGNITION_CYCLE_CHECK.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, reason_);
      }
      if (!drmHash_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, drmHash_);
      }
      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.GlobalUconnectExtCommCheck.CommCheckRequest)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest other = (com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest) obj;

      boolean result = true;
      result = result && getVehicleId()
          .equals(other.getVehicleId());
      result = result && (hasDevice1() == other.hasDevice1());
      if (hasDevice1()) {
        result = result && getDevice1()
            .equals(other.getDevice1());
      }
      result = result && getDrmHash()
          .equals(other.getDrmHash());
      result = result && internalGetAdditionalModemParams().equals(
          other.internalGetAdditionalModemParams());
      result = result && reason_ == other.reason_;
      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 (hasDevice1()) {
        hash = (37 * hash) + DEVICE1_FIELD_NUMBER;
        hash = (53 * hash) + getDevice1().hashCode();
      }
      hash = (37 * hash) + DRMHASH_FIELD_NUMBER;
      hash = (53 * hash) + getDrmHash().hashCode();
      if (!internalGetAdditionalModemParams().getMap().isEmpty()) {
        hash = (37 * hash) + ADDITIONALMODEMPARAMS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetAdditionalModemParams().hashCode();
      }
      hash = (37 * hash) + REASON_FIELD_NUMBER;
      hash = (53 * hash) + reason_;
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 3:
            return internalGetAdditionalModemParams();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 3:
            return internalGetMutableAdditionalModemParams();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtCommCheck.internal_static_com_fca_uconnect_global_CommCheckRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest.class, com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest.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 (device1Builder_ == null) {
          device1_ = null;
        } else {
          device1_ = null;
          device1Builder_ = null;
        }
        drmHash_ = com.google.protobuf.ByteString.EMPTY;

        internalGetMutableAdditionalModemParams().clear();
        reason_ = 0;

        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest result = new com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.vehicleId_ = vehicleId_;
        if (device1Builder_ == null) {
          result.device1_ = device1_;
        } else {
          result.device1_ = device1Builder_.build();
        }
        result.drmHash_ = drmHash_;
        result.additionalModemParams_ = internalGetAdditionalModemParams();
        result.additionalModemParams_.makeImmutable();
        result.reason_ = reason_;
        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.GlobalUconnectExtCommCheck.CommCheckRequest) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest.getDefaultInstance()) return this;
        if (!other.getVehicleId().isEmpty()) {
          vehicleId_ = other.vehicleId_;
          onChanged();
        }
        if (other.hasDevice1()) {
          mergeDevice1(other.getDevice1());
        }
        if (other.getDrmHash() != com.google.protobuf.ByteString.EMPTY) {
          setDrmHash(other.getDrmHash());
        }
        internalGetMutableAdditionalModemParams().mergeFrom(
            other.internalGetAdditionalModemParams());
        if (other.reason_ != 0) {
          setReasonValue(other.getReasonValue());
        }
        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.GlobalUconnectExtCommCheck.CommCheckRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object vehicleId_ = "";
      /**
       * <pre>
       *&#47; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
       * </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; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
       * </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; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
       * </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; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
       * </pre>
       *
       * <code>string vehicleId = 1;</code>
       */
      public Builder clearVehicleId() {
        
        vehicleId_ = getDefaultInstance().getVehicleId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; VIN or other unique identifier for the vehicle this Telematics Unit is installed in.
       * </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.GlobalUconnectDevice.Device device1_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectDevice.Device, com.fca.uconnect.global.GlobalUconnectDevice.Device.Builder, com.fca.uconnect.global.GlobalUconnectDevice.DeviceOrBuilder> device1Builder_;
      /**
       * <code>.com.fca.uconnect.global.Device device1 = 2;</code>
       */
      public boolean hasDevice1() {
        return device1Builder_ != null || device1_ != null;
      }
      /**
       * <code>.com.fca.uconnect.global.Device device1 = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectDevice.Device getDevice1() {
        if (device1Builder_ == null) {
          return device1_ == null ? com.fca.uconnect.global.GlobalUconnectDevice.Device.getDefaultInstance() : device1_;
        } else {
          return device1Builder_.getMessage();
        }
      }
      /**
       * <code>.com.fca.uconnect.global.Device device1 = 2;</code>
       */
      public Builder setDevice1(com.fca.uconnect.global.GlobalUconnectDevice.Device value) {
        if (device1Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          device1_ = value;
          onChanged();
        } else {
          device1Builder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.Device device1 = 2;</code>
       */
      public Builder setDevice1(
          com.fca.uconnect.global.GlobalUconnectDevice.Device.Builder builderForValue) {
        if (device1Builder_ == null) {
          device1_ = builderForValue.build();
          onChanged();
        } else {
          device1Builder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.Device device1 = 2;</code>
       */
      public Builder mergeDevice1(com.fca.uconnect.global.GlobalUconnectDevice.Device value) {
        if (device1Builder_ == null) {
          if (device1_ != null) {
            device1_ =
              com.fca.uconnect.global.GlobalUconnectDevice.Device.newBuilder(device1_).mergeFrom(value).buildPartial();
          } else {
            device1_ = value;
          }
          onChanged();
        } else {
          device1Builder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.Device device1 = 2;</code>
       */
      public Builder clearDevice1() {
        if (device1Builder_ == null) {
          device1_ = null;
          onChanged();
        } else {
          device1_ = null;
          device1Builder_ = null;
        }

        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.Device device1 = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectDevice.Device.Builder getDevice1Builder() {
        
        onChanged();
        return getDevice1FieldBuilder().getBuilder();
      }
      /**
       * <code>.com.fca.uconnect.global.Device device1 = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectDevice.DeviceOrBuilder getDevice1OrBuilder() {
        if (device1Builder_ != null) {
          return device1Builder_.getMessageOrBuilder();
        } else {
          return device1_ == null ?
              com.fca.uconnect.global.GlobalUconnectDevice.Device.getDefaultInstance() : device1_;
        }
      }
      /**
       * <code>.com.fca.uconnect.global.Device device1 = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectDevice.Device, com.fca.uconnect.global.GlobalUconnectDevice.Device.Builder, com.fca.uconnect.global.GlobalUconnectDevice.DeviceOrBuilder> 
          getDevice1FieldBuilder() {
        if (device1Builder_ == null) {
          device1Builder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectDevice.Device, com.fca.uconnect.global.GlobalUconnectDevice.Device.Builder, com.fca.uconnect.global.GlobalUconnectDevice.DeviceOrBuilder>(
                  getDevice1(),
                  getParentForChildren(),
                  isClean());
          device1_ = null;
        }
        return device1Builder_;
      }

      private com.google.protobuf.ByteString drmHash_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       *&#47; Hash of the DRM from the Signature
       * </pre>
       *
       * <code>bytes drmHash = 5;</code>
       */
      public com.google.protobuf.ByteString getDrmHash() {
        return drmHash_;
      }
      /**
       * <pre>
       *&#47; Hash of the DRM from the Signature
       * </pre>
       *
       * <code>bytes drmHash = 5;</code>
       */
      public Builder setDrmHash(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        drmHash_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Hash of the DRM from the Signature
       * </pre>
       *
       * <code>bytes drmHash = 5;</code>
       */
      public Builder clearDrmHash() {
        
        drmHash_ = getDefaultInstance().getDrmHash();
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> additionalModemParams_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetAdditionalModemParams() {
        if (additionalModemParams_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              AdditionalModemParamsDefaultEntryHolder.defaultEntry);
        }
        return additionalModemParams_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableAdditionalModemParams() {
        onChanged();;
        if (additionalModemParams_ == null) {
          additionalModemParams_ = com.google.protobuf.MapField.newMapField(
              AdditionalModemParamsDefaultEntryHolder.defaultEntry);
        }
        if (!additionalModemParams_.isMutable()) {
          additionalModemParams_ = additionalModemParams_.copy();
        }
        return additionalModemParams_;
      }

      public int getAdditionalModemParamsCount() {
        return internalGetAdditionalModemParams().getMap().size();
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters identified in the TC Client Specification
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
       */

      public boolean containsAdditionalModemParams(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        return internalGetAdditionalModemParams().getMap().containsKey(key);
      }
      /**
       * Use {@link #getAdditionalModemParamsMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getAdditionalModemParams() {
        return getAdditionalModemParamsMap();
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters identified in the TC Client Specification
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
       */

      public java.util.Map<java.lang.String, java.lang.String> getAdditionalModemParamsMap() {
        return internalGetAdditionalModemParams().getMap();
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters identified in the TC Client Specification
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
       */

      public java.lang.String getAdditionalModemParamsOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetAdditionalModemParams().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters identified in the TC Client Specification
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
       */

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

      public Builder clearAdditionalModemParams() {
        internalGetMutableAdditionalModemParams().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters identified in the TC Client Specification
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
       */

      public Builder removeAdditionalModemParams(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableAdditionalModemParams().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
      getMutableAdditionalModemParams() {
        return internalGetMutableAdditionalModemParams().getMutableMap();
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters identified in the TC Client Specification
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
       */
      public Builder putAdditionalModemParams(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        if (value == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableAdditionalModemParams().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters identified in the TC Client Specification
       * </pre>
       *
       * <code>map&lt;string, string&gt; additionalModemParams = 3;</code>
       */

      public Builder putAllAdditionalModemParams(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableAdditionalModemParams().getMutableMap()
            .putAll(values);
        return this;
      }

      private int reason_ = 0;
      /**
       * <code>.com.fca.uconnect.global.CommCheckRequest.ReasonEnum reason = 4;</code>
       */
      public int getReasonValue() {
        return reason_;
      }
      /**
       * <code>.com.fca.uconnect.global.CommCheckRequest.ReasonEnum reason = 4;</code>
       */
      public Builder setReasonValue(int value) {
        reason_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.CommCheckRequest.ReasonEnum reason = 4;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest.ReasonEnum getReason() {
        com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest.ReasonEnum result = com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest.ReasonEnum.valueOf(reason_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest.ReasonEnum.UNRECOGNIZED : result;
      }
      /**
       * <code>.com.fca.uconnect.global.CommCheckRequest.ReasonEnum reason = 4;</code>
       */
      public Builder setReason(com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest.ReasonEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        reason_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.CommCheckRequest.ReasonEnum reason = 4;</code>
       */
      public Builder clearReason() {
        
        reason_ = 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.CommCheckRequest)
    }

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

    public static com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>.com.fca.uconnect.global.CommCheckResponse.ResponseEnum response = 1;</code>
     */
    int getResponseValue();
    /**
     * <code>.com.fca.uconnect.global.CommCheckResponse.ResponseEnum response = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.ResponseEnum getResponse();

    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>bool isTransient = 2;</code>
     */
    boolean getIsTransient();

    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>int32 failureReasonCode = 3;</code>
     */
    int getFailureReasonCode();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.CommCheckResponse}
   */
  public  static final class CommCheckResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.CommCheckResponse)
      CommCheckResponseOrBuilder {
    // Use CommCheckResponse.newBuilder() to construct.
    private CommCheckResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CommCheckResponse() {
      response_ = 0;
      isTransient_ = false;
      failureReasonCode_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private CommCheckResponse(
        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: {
              int rawValue = input.readEnum();

              response_ = rawValue;
              break;
            }
            case 16: {

              isTransient_ = input.readBool();
              break;
            }
            case 24: {

              failureReasonCode_ = 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.GlobalUconnectExtCommCheck.internal_static_com_fca_uconnect_global_CommCheckResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtCommCheck.internal_static_com_fca_uconnect_global_CommCheckResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.class, com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.CommCheckResponse.ResponseEnum}
     */
    public enum ResponseEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; Comm check successful
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      SUCCESS(0),
      /**
       * <pre>
       *&#47; Comm check failed
       * </pre>
       *
       * <code>FAILURE = 1;</code>
       */
      FAILURE(1),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47; Comm check successful
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      public static final int SUCCESS_VALUE = 0;
      /**
       * <pre>
       *&#47; Comm check failed
       * </pre>
       *
       * <code>FAILURE = 1;</code>
       */
      public static final int FAILURE_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 ResponseEnum valueOf(int value) {
        return forNumber(value);
      }

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

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

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

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

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

      private final int value;

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

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

    public static final int RESPONSE_FIELD_NUMBER = 1;
    private int response_;
    /**
     * <code>.com.fca.uconnect.global.CommCheckResponse.ResponseEnum response = 1;</code>
     */
    public int getResponseValue() {
      return response_;
    }
    /**
     * <code>.com.fca.uconnect.global.CommCheckResponse.ResponseEnum response = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.ResponseEnum getResponse() {
      com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.ResponseEnum.valueOf(response_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.ResponseEnum.UNRECOGNIZED : result;
    }

    public static final int ISTRANSIENT_FIELD_NUMBER = 2;
    private boolean isTransient_;
    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>bool isTransient = 2;</code>
     */
    public boolean getIsTransient() {
      return isTransient_;
    }

    public static final int FAILUREREASONCODE_FIELD_NUMBER = 3;
    private int failureReasonCode_;
    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>int32 failureReasonCode = 3;</code>
     */
    public int getFailureReasonCode() {
      return failureReasonCode_;
    }

    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 (response_ != com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.ResponseEnum.SUCCESS.getNumber()) {
        output.writeEnum(1, response_);
      }
      if (isTransient_ != false) {
        output.writeBool(2, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        output.writeInt32(3, failureReasonCode_);
      }
    }

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

      size = 0;
      if (response_ != com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.ResponseEnum.SUCCESS.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, response_);
      }
      if (isTransient_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, failureReasonCode_);
      }
      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.GlobalUconnectExtCommCheck.CommCheckResponse)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse other = (com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse) obj;

      boolean result = true;
      result = result && response_ == other.response_;
      result = result && (getIsTransient()
          == other.getIsTransient());
      result = result && (getFailureReasonCode()
          == other.getFailureReasonCode());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + RESPONSE_FIELD_NUMBER;
      hash = (53 * hash) + response_;
      hash = (37 * hash) + ISTRANSIENT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsTransient());
      hash = (37 * hash) + FAILUREREASONCODE_FIELD_NUMBER;
      hash = (53 * hash) + getFailureReasonCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtCommCheck.internal_static_com_fca_uconnect_global_CommCheckResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.class, com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.Builder.class);
      }

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

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

        isTransient_ = false;

        failureReasonCode_ = 0;

        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse result = new com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse(this);
        result.response_ = response_;
        result.isTransient_ = isTransient_;
        result.failureReasonCode_ = failureReasonCode_;
        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.GlobalUconnectExtCommCheck.CommCheckResponse) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.getDefaultInstance()) return this;
        if (other.response_ != 0) {
          setResponseValue(other.getResponseValue());
        }
        if (other.getIsTransient() != false) {
          setIsTransient(other.getIsTransient());
        }
        if (other.getFailureReasonCode() != 0) {
          setFailureReasonCode(other.getFailureReasonCode());
        }
        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.GlobalUconnectExtCommCheck.CommCheckResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int response_ = 0;
      /**
       * <code>.com.fca.uconnect.global.CommCheckResponse.ResponseEnum response = 1;</code>
       */
      public int getResponseValue() {
        return response_;
      }
      /**
       * <code>.com.fca.uconnect.global.CommCheckResponse.ResponseEnum response = 1;</code>
       */
      public Builder setResponseValue(int value) {
        response_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.CommCheckResponse.ResponseEnum response = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.ResponseEnum getResponse() {
        com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.ResponseEnum.valueOf(response_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.ResponseEnum.UNRECOGNIZED : result;
      }
      /**
       * <code>.com.fca.uconnect.global.CommCheckResponse.ResponseEnum response = 1;</code>
       */
      public Builder setResponse(com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse.ResponseEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        response_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.CommCheckResponse.ResponseEnum response = 1;</code>
       */
      public Builder clearResponse() {
        
        response_ = 0;
        onChanged();
        return this;
      }

      private boolean isTransient_ ;
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 2;</code>
       */
      public boolean getIsTransient() {
        return isTransient_;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 2;</code>
       */
      public Builder setIsTransient(boolean value) {
        
        isTransient_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 2;</code>
       */
      public Builder clearIsTransient() {
        
        isTransient_ = false;
        onChanged();
        return this;
      }

      private int failureReasonCode_ ;
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 3;</code>
       */
      public int getFailureReasonCode() {
        return failureReasonCode_;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 3;</code>
       */
      public Builder setFailureReasonCode(int value) {
        
        failureReasonCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 3;</code>
       */
      public Builder clearFailureReasonCode() {
        
        failureReasonCode_ = 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.CommCheckResponse)
    }

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

    public static com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtCommCheck.CommCheckResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters required to trigger the comm check
     * </pre>
     *
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */
    int getParametersCount();
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters required to trigger the comm check
     * </pre>
     *
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */
    boolean containsParameters(
        java.lang.String key);
    /**
     * Use {@link #getParametersMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getParameters();
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters required to trigger the comm check
     * </pre>
     *
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getParametersMap();
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters required to trigger the comm check
     * </pre>
     *
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */

    java.lang.String getParametersOrDefault(
        java.lang.String key,
        java.lang.String defaultValue);
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters required to trigger the comm check
     * </pre>
     *
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */

    java.lang.String getParametersOrThrow(
        java.lang.String key);
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.InitiateCommCheck}
   */
  public  static final class InitiateCommCheck extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.InitiateCommCheck)
      InitiateCommCheckOrBuilder {
    // Use InitiateCommCheck.newBuilder() to construct.
    private InitiateCommCheck(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private InitiateCommCheck() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private InitiateCommCheck(
        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)) {
                parameters_ = com.google.protobuf.MapField.newMapField(
                    ParametersDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000001;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              parameters__ = input.readMessage(
                  ParametersDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              parameters_.getMutableMap().put(
                  parameters__.getKey(), parameters__.getValue());
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtCommCheck.internal_static_com_fca_uconnect_global_InitiateCommCheck_descriptor;
    }

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

    public static final int PARAMETERS_FIELD_NUMBER = 1;
    private static final class ParametersDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  com.fca.uconnect.global.GlobalUconnectExtCommCheck.internal_static_com_fca_uconnect_global_InitiateCommCheck_ParametersEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> parameters_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetParameters() {
      if (parameters_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            ParametersDefaultEntryHolder.defaultEntry);
      }
      return parameters_;
    }

    public int getParametersCount() {
      return internalGetParameters().getMap().size();
    }
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters required to trigger the comm check
     * </pre>
     *
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */

    public boolean containsParameters(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      return internalGetParameters().getMap().containsKey(key);
    }
    /**
     * Use {@link #getParametersMap()} instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getParameters() {
      return getParametersMap();
    }
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters required to trigger the comm check
     * </pre>
     *
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */

    public java.util.Map<java.lang.String, java.lang.String> getParametersMap() {
      return internalGetParameters().getMap();
    }
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters required to trigger the comm check
     * </pre>
     *
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */

    public java.lang.String getParametersOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetParameters().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters required to trigger the comm check
     * </pre>
     *
     * <code>map&lt;string, string&gt; parameters = 1;</code>
     */

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

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetParameters(),
          ParametersDefaultEntryHolder.defaultEntry,
          1);
    }

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

      size = 0;
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetParameters().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        parameters__ = ParametersDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, parameters__);
      }
      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.GlobalUconnectExtCommCheck.InitiateCommCheck)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtCommCheck.InitiateCommCheck other = (com.fca.uconnect.global.GlobalUconnectExtCommCheck.InitiateCommCheck) obj;

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (!internalGetParameters().getMap().isEmpty()) {
        hash = (37 * hash) + PARAMETERS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetParameters().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetParameters();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetMutableParameters();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtCommCheck.internal_static_com_fca_uconnect_global_InitiateCommCheck_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtCommCheck.InitiateCommCheck.class, com.fca.uconnect.global.GlobalUconnectExtCommCheck.InitiateCommCheck.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtCommCheck.InitiateCommCheck.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();
        internalGetMutableParameters().clear();
        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtCommCheck.InitiateCommCheck getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtCommCheck.InitiateCommCheck.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtCommCheck.InitiateCommCheck buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtCommCheck.InitiateCommCheck result = new com.fca.uconnect.global.GlobalUconnectExtCommCheck.InitiateCommCheck(this);
        int from_bitField0_ = bitField0_;
        result.parameters_ = internalGetParameters();
        result.parameters_.makeImmutable();
        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.GlobalUconnectExtCommCheck.InitiateCommCheck) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtCommCheck.InitiateCommCheck)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtCommCheck.InitiateCommCheck other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtCommCheck.InitiateCommCheck.getDefaultInstance()) return this;
        internalGetMutableParameters().mergeFrom(
            other.internalGetParameters());
        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.GlobalUconnectExtCommCheck.InitiateCommCheck parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtCommCheck.InitiateCommCheck) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> parameters_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetParameters() {
        if (parameters_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              ParametersDefaultEntryHolder.defaultEntry);
        }
        return parameters_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableParameters() {
        onChanged();;
        if (parameters_ == null) {
          parameters_ = com.google.protobuf.MapField.newMapField(
              ParametersDefaultEntryHolder.defaultEntry);
        }
        if (!parameters_.isMutable()) {
          parameters_ = parameters_.copy();
        }
        return parameters_;
      }

      public int getParametersCount() {
        return internalGetParameters().getMap().size();
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters required to trigger the comm check
       * </pre>
       *
       * <code>map&lt;string, string&gt; parameters = 1;</code>
       */

      public boolean containsParameters(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        return internalGetParameters().getMap().containsKey(key);
      }
      /**
       * Use {@link #getParametersMap()} instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getParameters() {
        return getParametersMap();
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters required to trigger the comm check
       * </pre>
       *
       * <code>map&lt;string, string&gt; parameters = 1;</code>
       */

      public java.util.Map<java.lang.String, java.lang.String> getParametersMap() {
        return internalGetParameters().getMap();
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters required to trigger the comm check
       * </pre>
       *
       * <code>map&lt;string, string&gt; parameters = 1;</code>
       */

      public java.lang.String getParametersOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetParameters().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters required to trigger the comm check
       * </pre>
       *
       * <code>map&lt;string, string&gt; parameters = 1;</code>
       */

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

      public Builder clearParameters() {
        internalGetMutableParameters().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters required to trigger the comm check
       * </pre>
       *
       * <code>map&lt;string, string&gt; parameters = 1;</code>
       */

      public Builder removeParameters(
          java.lang.String key) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableParameters().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
      getMutableParameters() {
        return internalGetMutableParameters().getMutableMap();
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters required to trigger the comm check
       * </pre>
       *
       * <code>map&lt;string, string&gt; parameters = 1;</code>
       */
      public Builder putParameters(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new java.lang.NullPointerException(); }
        if (value == null) { throw new java.lang.NullPointerException(); }
        internalGetMutableParameters().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <pre>
       *&#47; This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters required to trigger the comm check
       * </pre>
       *
       * <code>map&lt;string, string&gt; parameters = 1;</code>
       */

      public Builder putAllParameters(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableParameters().getMutableMap()
            .putAll(values);
        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.InitiateCommCheck)
    }

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

    public static com.fca.uconnect.global.GlobalUconnectExtCommCheck.InitiateCommCheck getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtCommCheck.InitiateCommCheck getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>string vehicleId = 1;</code>
     */
    java.lang.String getVehicleId();
    /**
     * <code>string vehicleId = 1;</code>
     */
    com.google.protobuf.ByteString
        getVehicleIdBytes();

    /**
     * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.CommCheckReasonEnum commCheckReason = 11;</code>
     */
    int getCommCheckReasonValue();
    /**
     * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.CommCheckReasonEnum commCheckReason = 11;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.CommCheckReasonEnum getCommCheckReason();

    /**
     * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.MasterECUDeviceType ecuType = 2;</code>
     */
    int getEcuTypeValue();
    /**
     * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.MasterECUDeviceType ecuType = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.MasterECUDeviceType getEcuType();

    /**
     * <code>string deviceManufacturer = 3;</code>
     */
    java.lang.String getDeviceManufacturer();
    /**
     * <code>string deviceManufacturer = 3;</code>
     */
    com.google.protobuf.ByteString
        getDeviceManufacturerBytes();

    /**
     * <code>string serialNumber = 4;</code>
     */
    java.lang.String getSerialNumber();
    /**
     * <code>string serialNumber = 4;</code>
     */
    com.google.protobuf.ByteString
        getSerialNumberBytes();

    /**
     * <code>string partNumber = 5;</code>
     */
    java.lang.String getPartNumber();
    /**
     * <code>string partNumber = 5;</code>
     */
    com.google.protobuf.ByteString
        getPartNumberBytes();

    /**
     * <code>string hardwareNumber = 6;</code>
     */
    java.lang.String getHardwareNumber();
    /**
     * <code>string hardwareNumber = 6;</code>
     */
    com.google.protobuf.ByteString
        getHardwareNumberBytes();

    /**
     * <code>string hardwareVersion = 7;</code>
     */
    java.lang.String getHardwareVersion();
    /**
     * <code>string hardwareVersion = 7;</code>
     */
    com.google.protobuf.ByteString
        getHardwareVersionBytes();

    /**
     * <code>string softwareNumber = 8;</code>
     */
    java.lang.String getSoftwareNumber();
    /**
     * <code>string softwareNumber = 8;</code>
     */
    com.google.protobuf.ByteString
        getSoftwareNumberBytes();

    /**
     * <code>string softwareVersion = 9;</code>
     */
    java.lang.String getSoftwareVersion();
    /**
     * <code>string softwareVersion = 9;</code>
     */
    com.google.protobuf.ByteString
        getSoftwareVersionBytes();

    /**
     * <code>bytes drmHash = 10;</code>
     */
    com.google.protobuf.ByteString getDrmHash();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.SmallECUCommCheckRequest}
   */
  public  static final class SmallECUCommCheckRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.SmallECUCommCheckRequest)
      SmallECUCommCheckRequestOrBuilder {
    // Use SmallECUCommCheckRequest.newBuilder() to construct.
    private SmallECUCommCheckRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SmallECUCommCheckRequest() {
      vehicleId_ = "";
      commCheckReason_ = 0;
      ecuType_ = 0;
      deviceManufacturer_ = "";
      serialNumber_ = "";
      partNumber_ = "";
      hardwareNumber_ = "";
      hardwareVersion_ = "";
      softwareNumber_ = "";
      softwareVersion_ = "";
      drmHash_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private SmallECUCommCheckRequest(
        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 16: {
              int rawValue = input.readEnum();

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

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

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

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

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

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

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

              softwareVersion_ = s;
              break;
            }
            case 82: {

              drmHash_ = input.readBytes();
              break;
            }
            case 88: {
              int rawValue = input.readEnum();

              commCheckReason_ = 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.GlobalUconnectExtCommCheck.internal_static_com_fca_uconnect_global_SmallECUCommCheckRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtCommCheck.internal_static_com_fca_uconnect_global_SmallECUCommCheckRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.class, com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.SmallECUCommCheckRequest.MasterECUDeviceType}
     */
    public enum MasterECUDeviceType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>NOT_USED = 0;</code>
       */
      NOT_USED(0),
      /**
       * <code>CADM2 = 1;</code>
       */
      CADM2(1),
      /**
       * <code>SGW = 2;</code>
       */
      SGW(2),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>NOT_USED = 0;</code>
       */
      public static final int NOT_USED_VALUE = 0;
      /**
       * <code>CADM2 = 1;</code>
       */
      public static final int CADM2_VALUE = 1;
      /**
       * <code>SGW = 2;</code>
       */
      public static final int SGW_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 MasterECUDeviceType valueOf(int value) {
        return forNumber(value);
      }

      public static MasterECUDeviceType forNumber(int value) {
        switch (value) {
          case 0: return NOT_USED;
          case 1: return CADM2;
          case 2: return SGW;
          default: return null;
        }
      }

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

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

      public static MasterECUDeviceType 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 MasterECUDeviceType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.SmallECUCommCheckRequest.MasterECUDeviceType)
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.SmallECUCommCheckRequest.CommCheckReasonEnum}
     */
    public enum CommCheckReasonEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; IGNITION_CYCLE_CHECK
       * </pre>
       *
       * <code>IGNITION_CYCLE_CHECK = 0;</code>
       */
      IGNITION_CYCLE_CHECK(0),
      /**
       * <pre>
       *&#47; ON_DEMAND
       * </pre>
       *
       * <code>ON_DEMAND = 1;</code>
       */
      ON_DEMAND(1),
      /**
       * <pre>
       *&#47; SOFTWARE_REFRESH
       * </pre>
       *
       * <code>SOFTWARE_REFRESH = 2;</code>
       */
      SOFTWARE_REFRESH(2),
      /**
       * <pre>
       *&#47; HU_SWAP
       * </pre>
       *
       * <code>ECU_SWAP = 3;</code>
       */
      ECU_SWAP(3),
      /**
       * <pre>
       *&#47;TBM_SWAP
       * </pre>
       *
       * <code>ECU_FLASH = 4;</code>
       */
      ECU_FLASH(4),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47; IGNITION_CYCLE_CHECK
       * </pre>
       *
       * <code>IGNITION_CYCLE_CHECK = 0;</code>
       */
      public static final int IGNITION_CYCLE_CHECK_VALUE = 0;
      /**
       * <pre>
       *&#47; ON_DEMAND
       * </pre>
       *
       * <code>ON_DEMAND = 1;</code>
       */
      public static final int ON_DEMAND_VALUE = 1;
      /**
       * <pre>
       *&#47; SOFTWARE_REFRESH
       * </pre>
       *
       * <code>SOFTWARE_REFRESH = 2;</code>
       */
      public static final int SOFTWARE_REFRESH_VALUE = 2;
      /**
       * <pre>
       *&#47; HU_SWAP
       * </pre>
       *
       * <code>ECU_SWAP = 3;</code>
       */
      public static final int ECU_SWAP_VALUE = 3;
      /**
       * <pre>
       *&#47;TBM_SWAP
       * </pre>
       *
       * <code>ECU_FLASH = 4;</code>
       */
      public static final int ECU_FLASH_VALUE = 4;


      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 CommCheckReasonEnum valueOf(int value) {
        return forNumber(value);
      }

      public static CommCheckReasonEnum forNumber(int value) {
        switch (value) {
          case 0: return IGNITION_CYCLE_CHECK;
          case 1: return ON_DEMAND;
          case 2: return SOFTWARE_REFRESH;
          case 3: return ECU_SWAP;
          case 4: return ECU_FLASH;
          default: return null;
        }
      }

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

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

      public static CommCheckReasonEnum 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 CommCheckReasonEnum(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.SmallECUCommCheckRequest.CommCheckReasonEnum)
    }

    public static final int VEHICLEID_FIELD_NUMBER = 1;
    private volatile java.lang.Object vehicleId_;
    /**
     * <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;
      }
    }
    /**
     * <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 COMMCHECKREASON_FIELD_NUMBER = 11;
    private int commCheckReason_;
    /**
     * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.CommCheckReasonEnum commCheckReason = 11;</code>
     */
    public int getCommCheckReasonValue() {
      return commCheckReason_;
    }
    /**
     * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.CommCheckReasonEnum commCheckReason = 11;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.CommCheckReasonEnum getCommCheckReason() {
      com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.CommCheckReasonEnum result = com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.CommCheckReasonEnum.valueOf(commCheckReason_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.CommCheckReasonEnum.UNRECOGNIZED : result;
    }

    public static final int ECUTYPE_FIELD_NUMBER = 2;
    private int ecuType_;
    /**
     * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.MasterECUDeviceType ecuType = 2;</code>
     */
    public int getEcuTypeValue() {
      return ecuType_;
    }
    /**
     * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.MasterECUDeviceType ecuType = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.MasterECUDeviceType getEcuType() {
      com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.MasterECUDeviceType result = com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.MasterECUDeviceType.valueOf(ecuType_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.MasterECUDeviceType.UNRECOGNIZED : result;
    }

    public static final int DEVICEMANUFACTURER_FIELD_NUMBER = 3;
    private volatile java.lang.Object deviceManufacturer_;
    /**
     * <code>string deviceManufacturer = 3;</code>
     */
    public java.lang.String getDeviceManufacturer() {
      java.lang.Object ref = deviceManufacturer_;
      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();
        deviceManufacturer_ = s;
        return s;
      }
    }
    /**
     * <code>string deviceManufacturer = 3;</code>
     */
    public com.google.protobuf.ByteString
        getDeviceManufacturerBytes() {
      java.lang.Object ref = deviceManufacturer_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deviceManufacturer_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SERIALNUMBER_FIELD_NUMBER = 4;
    private volatile java.lang.Object serialNumber_;
    /**
     * <code>string serialNumber = 4;</code>
     */
    public java.lang.String getSerialNumber() {
      java.lang.Object ref = serialNumber_;
      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();
        serialNumber_ = s;
        return s;
      }
    }
    /**
     * <code>string serialNumber = 4;</code>
     */
    public com.google.protobuf.ByteString
        getSerialNumberBytes() {
      java.lang.Object ref = serialNumber_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        serialNumber_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PARTNUMBER_FIELD_NUMBER = 5;
    private volatile java.lang.Object partNumber_;
    /**
     * <code>string partNumber = 5;</code>
     */
    public java.lang.String getPartNumber() {
      java.lang.Object ref = partNumber_;
      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();
        partNumber_ = s;
        return s;
      }
    }
    /**
     * <code>string partNumber = 5;</code>
     */
    public com.google.protobuf.ByteString
        getPartNumberBytes() {
      java.lang.Object ref = partNumber_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        partNumber_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HARDWARENUMBER_FIELD_NUMBER = 6;
    private volatile java.lang.Object hardwareNumber_;
    /**
     * <code>string hardwareNumber = 6;</code>
     */
    public java.lang.String getHardwareNumber() {
      java.lang.Object ref = hardwareNumber_;
      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();
        hardwareNumber_ = s;
        return s;
      }
    }
    /**
     * <code>string hardwareNumber = 6;</code>
     */
    public com.google.protobuf.ByteString
        getHardwareNumberBytes() {
      java.lang.Object ref = hardwareNumber_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hardwareNumber_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HARDWAREVERSION_FIELD_NUMBER = 7;
    private volatile java.lang.Object hardwareVersion_;
    /**
     * <code>string hardwareVersion = 7;</code>
     */
    public java.lang.String getHardwareVersion() {
      java.lang.Object ref = hardwareVersion_;
      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();
        hardwareVersion_ = s;
        return s;
      }
    }
    /**
     * <code>string hardwareVersion = 7;</code>
     */
    public com.google.protobuf.ByteString
        getHardwareVersionBytes() {
      java.lang.Object ref = hardwareVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hardwareVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SOFTWARENUMBER_FIELD_NUMBER = 8;
    private volatile java.lang.Object softwareNumber_;
    /**
     * <code>string softwareNumber = 8;</code>
     */
    public java.lang.String getSoftwareNumber() {
      java.lang.Object ref = softwareNumber_;
      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();
        softwareNumber_ = s;
        return s;
      }
    }
    /**
     * <code>string softwareNumber = 8;</code>
     */
    public com.google.protobuf.ByteString
        getSoftwareNumberBytes() {
      java.lang.Object ref = softwareNumber_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        softwareNumber_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SOFTWAREVERSION_FIELD_NUMBER = 9;
    private volatile java.lang.Object softwareVersion_;
    /**
     * <code>string softwareVersion = 9;</code>
     */
    public java.lang.String getSoftwareVersion() {
      java.lang.Object ref = softwareVersion_;
      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();
        softwareVersion_ = s;
        return s;
      }
    }
    /**
     * <code>string softwareVersion = 9;</code>
     */
    public com.google.protobuf.ByteString
        getSoftwareVersionBytes() {
      java.lang.Object ref = softwareVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        softwareVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DRMHASH_FIELD_NUMBER = 10;
    private com.google.protobuf.ByteString drmHash_;
    /**
     * <code>bytes drmHash = 10;</code>
     */
    public com.google.protobuf.ByteString getDrmHash() {
      return drmHash_;
    }

    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 (ecuType_ != com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.MasterECUDeviceType.NOT_USED.getNumber()) {
        output.writeEnum(2, ecuType_);
      }
      if (!getDeviceManufacturerBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, deviceManufacturer_);
      }
      if (!getSerialNumberBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, serialNumber_);
      }
      if (!getPartNumberBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, partNumber_);
      }
      if (!getHardwareNumberBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, hardwareNumber_);
      }
      if (!getHardwareVersionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, hardwareVersion_);
      }
      if (!getSoftwareNumberBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, softwareNumber_);
      }
      if (!getSoftwareVersionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, softwareVersion_);
      }
      if (!drmHash_.isEmpty()) {
        output.writeBytes(10, drmHash_);
      }
      if (commCheckReason_ != com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.CommCheckReasonEnum.IGNITION_CYCLE_CHECK.getNumber()) {
        output.writeEnum(11, commCheckReason_);
      }
    }

    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 (ecuType_ != com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.MasterECUDeviceType.NOT_USED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, ecuType_);
      }
      if (!getDeviceManufacturerBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, deviceManufacturer_);
      }
      if (!getSerialNumberBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, serialNumber_);
      }
      if (!getPartNumberBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, partNumber_);
      }
      if (!getHardwareNumberBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, hardwareNumber_);
      }
      if (!getHardwareVersionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, hardwareVersion_);
      }
      if (!getSoftwareNumberBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, softwareNumber_);
      }
      if (!getSoftwareVersionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, softwareVersion_);
      }
      if (!drmHash_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(10, drmHash_);
      }
      if (commCheckReason_ != com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.CommCheckReasonEnum.IGNITION_CYCLE_CHECK.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(11, commCheckReason_);
      }
      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.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest other = (com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest) obj;

      boolean result = true;
      result = result && getVehicleId()
          .equals(other.getVehicleId());
      result = result && commCheckReason_ == other.commCheckReason_;
      result = result && ecuType_ == other.ecuType_;
      result = result && getDeviceManufacturer()
          .equals(other.getDeviceManufacturer());
      result = result && getSerialNumber()
          .equals(other.getSerialNumber());
      result = result && getPartNumber()
          .equals(other.getPartNumber());
      result = result && getHardwareNumber()
          .equals(other.getHardwareNumber());
      result = result && getHardwareVersion()
          .equals(other.getHardwareVersion());
      result = result && getSoftwareNumber()
          .equals(other.getSoftwareNumber());
      result = result && getSoftwareVersion()
          .equals(other.getSoftwareVersion());
      result = result && getDrmHash()
          .equals(other.getDrmHash());
      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();
      hash = (37 * hash) + COMMCHECKREASON_FIELD_NUMBER;
      hash = (53 * hash) + commCheckReason_;
      hash = (37 * hash) + ECUTYPE_FIELD_NUMBER;
      hash = (53 * hash) + ecuType_;
      hash = (37 * hash) + DEVICEMANUFACTURER_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceManufacturer().hashCode();
      hash = (37 * hash) + SERIALNUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getSerialNumber().hashCode();
      hash = (37 * hash) + PARTNUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getPartNumber().hashCode();
      hash = (37 * hash) + HARDWARENUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getHardwareNumber().hashCode();
      hash = (37 * hash) + HARDWAREVERSION_FIELD_NUMBER;
      hash = (53 * hash) + getHardwareVersion().hashCode();
      hash = (37 * hash) + SOFTWARENUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getSoftwareNumber().hashCode();
      hash = (37 * hash) + SOFTWAREVERSION_FIELD_NUMBER;
      hash = (53 * hash) + getSoftwareVersion().hashCode();
      hash = (37 * hash) + DRMHASH_FIELD_NUMBER;
      hash = (53 * hash) + getDrmHash().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtCommCheck.internal_static_com_fca_uconnect_global_SmallECUCommCheckRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.class, com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.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_ = "";

        commCheckReason_ = 0;

        ecuType_ = 0;

        deviceManufacturer_ = "";

        serialNumber_ = "";

        partNumber_ = "";

        hardwareNumber_ = "";

        hardwareVersion_ = "";

        softwareNumber_ = "";

        softwareVersion_ = "";

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

        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest result = new com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest(this);
        result.vehicleId_ = vehicleId_;
        result.commCheckReason_ = commCheckReason_;
        result.ecuType_ = ecuType_;
        result.deviceManufacturer_ = deviceManufacturer_;
        result.serialNumber_ = serialNumber_;
        result.partNumber_ = partNumber_;
        result.hardwareNumber_ = hardwareNumber_;
        result.hardwareVersion_ = hardwareVersion_;
        result.softwareNumber_ = softwareNumber_;
        result.softwareVersion_ = softwareVersion_;
        result.drmHash_ = drmHash_;
        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.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.getDefaultInstance()) return this;
        if (!other.getVehicleId().isEmpty()) {
          vehicleId_ = other.vehicleId_;
          onChanged();
        }
        if (other.commCheckReason_ != 0) {
          setCommCheckReasonValue(other.getCommCheckReasonValue());
        }
        if (other.ecuType_ != 0) {
          setEcuTypeValue(other.getEcuTypeValue());
        }
        if (!other.getDeviceManufacturer().isEmpty()) {
          deviceManufacturer_ = other.deviceManufacturer_;
          onChanged();
        }
        if (!other.getSerialNumber().isEmpty()) {
          serialNumber_ = other.serialNumber_;
          onChanged();
        }
        if (!other.getPartNumber().isEmpty()) {
          partNumber_ = other.partNumber_;
          onChanged();
        }
        if (!other.getHardwareNumber().isEmpty()) {
          hardwareNumber_ = other.hardwareNumber_;
          onChanged();
        }
        if (!other.getHardwareVersion().isEmpty()) {
          hardwareVersion_ = other.hardwareVersion_;
          onChanged();
        }
        if (!other.getSoftwareNumber().isEmpty()) {
          softwareNumber_ = other.softwareNumber_;
          onChanged();
        }
        if (!other.getSoftwareVersion().isEmpty()) {
          softwareVersion_ = other.softwareVersion_;
          onChanged();
        }
        if (other.getDrmHash() != com.google.protobuf.ByteString.EMPTY) {
          setDrmHash(other.getDrmHash());
        }
        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.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object vehicleId_ = "";
      /**
       * <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;
        }
      }
      /**
       * <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;
        }
      }
      /**
       * <code>string vehicleId = 1;</code>
       */
      public Builder setVehicleId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        vehicleId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string vehicleId = 1;</code>
       */
      public Builder clearVehicleId() {
        
        vehicleId_ = getDefaultInstance().getVehicleId();
        onChanged();
        return this;
      }
      /**
       * <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 int commCheckReason_ = 0;
      /**
       * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.CommCheckReasonEnum commCheckReason = 11;</code>
       */
      public int getCommCheckReasonValue() {
        return commCheckReason_;
      }
      /**
       * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.CommCheckReasonEnum commCheckReason = 11;</code>
       */
      public Builder setCommCheckReasonValue(int value) {
        commCheckReason_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.CommCheckReasonEnum commCheckReason = 11;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.CommCheckReasonEnum getCommCheckReason() {
        com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.CommCheckReasonEnum result = com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.CommCheckReasonEnum.valueOf(commCheckReason_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.CommCheckReasonEnum.UNRECOGNIZED : result;
      }
      /**
       * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.CommCheckReasonEnum commCheckReason = 11;</code>
       */
      public Builder setCommCheckReason(com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.CommCheckReasonEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        commCheckReason_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.CommCheckReasonEnum commCheckReason = 11;</code>
       */
      public Builder clearCommCheckReason() {
        
        commCheckReason_ = 0;
        onChanged();
        return this;
      }

      private int ecuType_ = 0;
      /**
       * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.MasterECUDeviceType ecuType = 2;</code>
       */
      public int getEcuTypeValue() {
        return ecuType_;
      }
      /**
       * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.MasterECUDeviceType ecuType = 2;</code>
       */
      public Builder setEcuTypeValue(int value) {
        ecuType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.MasterECUDeviceType ecuType = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.MasterECUDeviceType getEcuType() {
        com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.MasterECUDeviceType result = com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.MasterECUDeviceType.valueOf(ecuType_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.MasterECUDeviceType.UNRECOGNIZED : result;
      }
      /**
       * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.MasterECUDeviceType ecuType = 2;</code>
       */
      public Builder setEcuType(com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest.MasterECUDeviceType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        ecuType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.SmallECUCommCheckRequest.MasterECUDeviceType ecuType = 2;</code>
       */
      public Builder clearEcuType() {
        
        ecuType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object deviceManufacturer_ = "";
      /**
       * <code>string deviceManufacturer = 3;</code>
       */
      public java.lang.String getDeviceManufacturer() {
        java.lang.Object ref = deviceManufacturer_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          deviceManufacturer_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string deviceManufacturer = 3;</code>
       */
      public com.google.protobuf.ByteString
          getDeviceManufacturerBytes() {
        java.lang.Object ref = deviceManufacturer_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deviceManufacturer_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string deviceManufacturer = 3;</code>
       */
      public Builder setDeviceManufacturer(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        deviceManufacturer_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string deviceManufacturer = 3;</code>
       */
      public Builder clearDeviceManufacturer() {
        
        deviceManufacturer_ = getDefaultInstance().getDeviceManufacturer();
        onChanged();
        return this;
      }
      /**
       * <code>string deviceManufacturer = 3;</code>
       */
      public Builder setDeviceManufacturerBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        deviceManufacturer_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object serialNumber_ = "";
      /**
       * <code>string serialNumber = 4;</code>
       */
      public java.lang.String getSerialNumber() {
        java.lang.Object ref = serialNumber_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          serialNumber_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string serialNumber = 4;</code>
       */
      public com.google.protobuf.ByteString
          getSerialNumberBytes() {
        java.lang.Object ref = serialNumber_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          serialNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string serialNumber = 4;</code>
       */
      public Builder setSerialNumber(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        serialNumber_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string serialNumber = 4;</code>
       */
      public Builder clearSerialNumber() {
        
        serialNumber_ = getDefaultInstance().getSerialNumber();
        onChanged();
        return this;
      }
      /**
       * <code>string serialNumber = 4;</code>
       */
      public Builder setSerialNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        serialNumber_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object partNumber_ = "";
      /**
       * <code>string partNumber = 5;</code>
       */
      public java.lang.String getPartNumber() {
        java.lang.Object ref = partNumber_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          partNumber_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string partNumber = 5;</code>
       */
      public com.google.protobuf.ByteString
          getPartNumberBytes() {
        java.lang.Object ref = partNumber_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          partNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string partNumber = 5;</code>
       */
      public Builder setPartNumber(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        partNumber_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string partNumber = 5;</code>
       */
      public Builder clearPartNumber() {
        
        partNumber_ = getDefaultInstance().getPartNumber();
        onChanged();
        return this;
      }
      /**
       * <code>string partNumber = 5;</code>
       */
      public Builder setPartNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        partNumber_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object hardwareNumber_ = "";
      /**
       * <code>string hardwareNumber = 6;</code>
       */
      public java.lang.String getHardwareNumber() {
        java.lang.Object ref = hardwareNumber_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          hardwareNumber_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string hardwareNumber = 6;</code>
       */
      public com.google.protobuf.ByteString
          getHardwareNumberBytes() {
        java.lang.Object ref = hardwareNumber_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hardwareNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string hardwareNumber = 6;</code>
       */
      public Builder setHardwareNumber(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        hardwareNumber_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string hardwareNumber = 6;</code>
       */
      public Builder clearHardwareNumber() {
        
        hardwareNumber_ = getDefaultInstance().getHardwareNumber();
        onChanged();
        return this;
      }
      /**
       * <code>string hardwareNumber = 6;</code>
       */
      public Builder setHardwareNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        hardwareNumber_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object hardwareVersion_ = "";
      /**
       * <code>string hardwareVersion = 7;</code>
       */
      public java.lang.String getHardwareVersion() {
        java.lang.Object ref = hardwareVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          hardwareVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string hardwareVersion = 7;</code>
       */
      public com.google.protobuf.ByteString
          getHardwareVersionBytes() {
        java.lang.Object ref = hardwareVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hardwareVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string hardwareVersion = 7;</code>
       */
      public Builder setHardwareVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        hardwareVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string hardwareVersion = 7;</code>
       */
      public Builder clearHardwareVersion() {
        
        hardwareVersion_ = getDefaultInstance().getHardwareVersion();
        onChanged();
        return this;
      }
      /**
       * <code>string hardwareVersion = 7;</code>
       */
      public Builder setHardwareVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        hardwareVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object softwareNumber_ = "";
      /**
       * <code>string softwareNumber = 8;</code>
       */
      public java.lang.String getSoftwareNumber() {
        java.lang.Object ref = softwareNumber_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          softwareNumber_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string softwareNumber = 8;</code>
       */
      public com.google.protobuf.ByteString
          getSoftwareNumberBytes() {
        java.lang.Object ref = softwareNumber_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          softwareNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string softwareNumber = 8;</code>
       */
      public Builder setSoftwareNumber(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        softwareNumber_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string softwareNumber = 8;</code>
       */
      public Builder clearSoftwareNumber() {
        
        softwareNumber_ = getDefaultInstance().getSoftwareNumber();
        onChanged();
        return this;
      }
      /**
       * <code>string softwareNumber = 8;</code>
       */
      public Builder setSoftwareNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        softwareNumber_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object softwareVersion_ = "";
      /**
       * <code>string softwareVersion = 9;</code>
       */
      public java.lang.String getSoftwareVersion() {
        java.lang.Object ref = softwareVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          softwareVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string softwareVersion = 9;</code>
       */
      public com.google.protobuf.ByteString
          getSoftwareVersionBytes() {
        java.lang.Object ref = softwareVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          softwareVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string softwareVersion = 9;</code>
       */
      public Builder setSoftwareVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        softwareVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string softwareVersion = 9;</code>
       */
      public Builder clearSoftwareVersion() {
        
        softwareVersion_ = getDefaultInstance().getSoftwareVersion();
        onChanged();
        return this;
      }
      /**
       * <code>string softwareVersion = 9;</code>
       */
      public Builder setSoftwareVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        softwareVersion_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString drmHash_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>bytes drmHash = 10;</code>
       */
      public com.google.protobuf.ByteString getDrmHash() {
        return drmHash_;
      }
      /**
       * <code>bytes drmHash = 10;</code>
       */
      public Builder setDrmHash(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        drmHash_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bytes drmHash = 10;</code>
       */
      public Builder clearDrmHash() {
        
        drmHash_ = getDefaultInstance().getDrmHash();
        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.SmallECUCommCheckRequest)
    }

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

    public static com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtCommCheck.SmallECUCommCheckRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_CommCheckRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_CommCheckRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_CommCheckRequest_AdditionalModemParamsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_CommCheckRequest_AdditionalModemParamsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_CommCheckResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_CommCheckResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_InitiateCommCheck_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_InitiateCommCheck_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_InitiateCommCheck_ParametersEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_InitiateCommCheck_ParametersEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_SmallECUCommCheckRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_SmallECUCommCheckRequest_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_CommCheck.proto\022\027c" +
      "om.fca.uconnect.global\032\034Global_Uconnect_" +
      "Device.proto\"\222\004\n\020CommCheckRequest\022\021\n\tveh" +
      "icleId\030\001 \001(\t\0220\n\007device1\030\002 \001(\0132\037.com.fca." +
      "uconnect.global.Device\022\017\n\007drmHash\030\005 \001(\014\022" +
      "c\n\025additionalModemParams\030\003 \003(\0132D.com.fca" +
      ".uconnect.global.CommCheckRequest.Additi" +
      "onalModemParamsEntry\022D\n\006reason\030\004 \001(\01624.c" +
      "om.fca.uconnect.global.CommCheckRequest." +
      "ReasonEnum\032<\n\032AdditionalModemParamsEntry",
      "\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\276\001\n\nRea" +
      "sonEnum\022\030\n\024IGNITION_CYCLE_CHECK\020\000\022\r\n\tTBM" +
      "_FLASH\020\001\022\014\n\010HU_FLASH\020\002\022\r\n\tON_DEMAND\020\003\022\022\n" +
      "\016MISDN_MISMATCH\020\004\022\025\n\021DISCREPENCY_CHECK\020\005" +
      "\022\024\n\020SOFTWARE_REFRESH\020\006\022\013\n\007HU_SWAP\020\007\022\014\n\010T" +
      "BM_SWAP\020\010\022\016\n\nENROLLMENT\020\t\"\270\001\n\021CommCheckR" +
      "esponse\022I\n\010response\030\001 \001(\01627.com.fca.ucon" +
      "nect.global.CommCheckResponse.ResponseEn" +
      "um\022\023\n\013isTransient\030\002 \001(\010\022\031\n\021failureReason" +
      "Code\030\003 \001(\005\"(\n\014ResponseEnum\022\013\n\007SUCCESS\020\000\022",
      "\013\n\007FAILURE\020\001\"\226\001\n\021InitiateCommCheck\022N\n\npa" +
      "rameters\030\001 \003(\0132:.com.fca.uconnect.global" +
      ".InitiateCommCheck.ParametersEntry\0321\n\017Pa" +
      "rametersEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(" +
      "\t:\0028\001\"\312\004\n\030SmallECUCommCheckRequest\022\021\n\tve" +
      "hicleId\030\001 \001(\t\022^\n\017commCheckReason\030\013 \001(\0162E" +
      ".com.fca.uconnect.global.SmallECUCommChe" +
      "ckRequest.CommCheckReasonEnum\022V\n\007ecuType" +
      "\030\002 \001(\0162E.com.fca.uconnect.global.SmallEC" +
      "UCommCheckRequest.MasterECUDeviceType\022\032\n",
      "\022deviceManufacturer\030\003 \001(\t\022\024\n\014serialNumbe" +
      "r\030\004 \001(\t\022\022\n\npartNumber\030\005 \001(\t\022\026\n\016hardwareN" +
      "umber\030\006 \001(\t\022\027\n\017hardwareVersion\030\007 \001(\t\022\026\n\016" +
      "softwareNumber\030\010 \001(\t\022\027\n\017softwareVersion\030" +
      "\t \001(\t\022\017\n\007drmHash\030\n \001(\014\"7\n\023MasterECUDevic" +
      "eType\022\014\n\010NOT_USED\020\000\022\t\n\005CADM2\020\001\022\007\n\003SGW\020\002\"" +
      "q\n\023CommCheckReasonEnum\022\030\n\024IGNITION_CYCLE" +
      "_CHECK\020\000\022\r\n\tON_DEMAND\020\001\022\024\n\020SOFTWARE_REFR" +
      "ESH\020\002\022\014\n\010ECU_SWAP\020\003\022\r\n\tECU_FLASH\020\004P\000b\006pr" +
      "oto3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.fca.uconnect.global.GlobalUconnectDevice.getDescriptor(),
        }, assigner);
    internal_static_com_fca_uconnect_global_CommCheckRequest_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_com_fca_uconnect_global_CommCheckRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_CommCheckRequest_descriptor,
        new java.lang.String[] { "VehicleId", "Device1", "DrmHash", "AdditionalModemParams", "Reason", });
    internal_static_com_fca_uconnect_global_CommCheckRequest_AdditionalModemParamsEntry_descriptor =
      internal_static_com_fca_uconnect_global_CommCheckRequest_descriptor.getNestedTypes().get(0);
    internal_static_com_fca_uconnect_global_CommCheckRequest_AdditionalModemParamsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_CommCheckRequest_AdditionalModemParamsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_com_fca_uconnect_global_CommCheckResponse_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_com_fca_uconnect_global_CommCheckResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_CommCheckResponse_descriptor,
        new java.lang.String[] { "Response", "IsTransient", "FailureReasonCode", });
    internal_static_com_fca_uconnect_global_InitiateCommCheck_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_com_fca_uconnect_global_InitiateCommCheck_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_InitiateCommCheck_descriptor,
        new java.lang.String[] { "Parameters", });
    internal_static_com_fca_uconnect_global_InitiateCommCheck_ParametersEntry_descriptor =
      internal_static_com_fca_uconnect_global_InitiateCommCheck_descriptor.getNestedTypes().get(0);
    internal_static_com_fca_uconnect_global_InitiateCommCheck_ParametersEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_InitiateCommCheck_ParametersEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_com_fca_uconnect_global_SmallECUCommCheckRequest_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_com_fca_uconnect_global_SmallECUCommCheckRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_SmallECUCommCheckRequest_descriptor,
        new java.lang.String[] { "VehicleId", "CommCheckReason", "EcuType", "DeviceManufacturer", "SerialNumber", "PartNumber", "HardwareNumber", "HardwareVersion", "SoftwareNumber", "SoftwareVersion", "DrmHash", });
    com.fca.uconnect.global.GlobalUconnectDevice.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
