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

package com.fca.uconnect.global;

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

    /**
     * <pre>
     *&#47; Vehicle Identification Number
     * </pre>
     *
     * <code>string vin = 1;</code>
     */
    java.lang.String getVin();
    /**
     * <pre>
     *&#47; Vehicle Identification Number
     * </pre>
     *
     * <code>string vin = 1;</code>
     */
    com.google.protobuf.ByteString
        getVinBytes();

    /**
     * <pre>
     *&#47; requires the deviceType, IMIE, MSISDN,ICCID, IMSI, and TBM or HU Serial and Software Version
     * </pre>
     *
     * <code>.com.fca.uconnect.global.Device device = 2;</code>
     */
    boolean hasDevice();
    /**
     * <pre>
     *&#47; requires the deviceType, IMIE, MSISDN,ICCID, IMSI, and TBM or HU Serial and Software Version
     * </pre>
     *
     * <code>.com.fca.uconnect.global.Device device = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectDevice.Device getDevice();
    /**
     * <pre>
     *&#47; requires the deviceType, IMIE, MSISDN,ICCID, IMSI, and TBM or HU Serial and Software Version
     * </pre>
     *
     * <code>.com.fca.uconnect.global.Device device = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectDevice.DeviceOrBuilder getDeviceOrBuilder();

    /**
     * <pre>
     *&#47; Hash token of client challenge fields.  Temporary Session Key (concatenated string of Client and Server Challenge Keys)
     * </pre>
     *
     * <code>bytes authToken = 3;</code>
     */
    com.google.protobuf.ByteString getAuthToken();

    /**
     * <pre>
     *&#47; Nonce for protecting against replay
     * </pre>
     *
     * <code>bytes nonce = 4;</code>
     */
    com.google.protobuf.ByteString getNonce();

    /**
     * <pre>
     *&#47; Indicate the initial or second auth request.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.VehAuthRequest.RequestTypeEnum type = 5;</code>
     */
    int getTypeValue();
    /**
     * <pre>
     *&#47; Indicate the initial or second auth request.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.VehAuthRequest.RequestTypeEnum type = 5;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.RequestTypeEnum getType();
  }
  /**
   * <pre>
   **
   * This is for SecondVehicleAuthorizationRequest.
   *&lt;div class=exmsg-main&gt;
   *  &lt;h4&gt;FirstVehicleAuthorization Request Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   * 		timestamp: 1488868820053
   * 		messageId: 1
   * 		messages
   * 		{
   * 		 [com.fca.uconnect.global.FirstAuthorizationResponse]
   * 		 {
   * 			“vin”: “AEEUDHS4857382038”,
   * 			“tuProfile”: {
   * 				“nadimei”: “323232323232”,
   * 				“simMsisdn”: “12123123123”,
   * 				“simIccid”: “12123123123”,
   * 				“imsi”: “12123123123”,
   * 				“tbmSerial”: “JK1212ASD233”,
   * 				“tbmSoftwareVersion”: “17.03.03”
   * 				},
   * 			“tempAuthKey”: “12ABc345”,
   * 			“correlationId”: “12abCd1”
   * 			}
   * 		 }
   * 		}
   *	&lt;/code&gt;
   *   &lt;/div&gt;&lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.VehAuthRequest}
   */
  public  static final class VehAuthRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehAuthRequest)
      VehAuthRequestOrBuilder {
    // Use VehAuthRequest.newBuilder() to construct.
    private VehAuthRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VehAuthRequest() {
      vin_ = "";
      authToken_ = com.google.protobuf.ByteString.EMPTY;
      nonce_ = com.google.protobuf.ByteString.EMPTY;
      type_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private VehAuthRequest(
        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();

              vin_ = s;
              break;
            }
            case 18: {
              com.fca.uconnect.global.GlobalUconnectDevice.Device.Builder subBuilder = null;
              if (device_ != null) {
                subBuilder = device_.toBuilder();
              }
              device_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectDevice.Device.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(device_);
                device_ = subBuilder.buildPartial();
              }

              break;
            }
            case 26: {

              authToken_ = input.readBytes();
              break;
            }
            case 34: {

              nonce_ = input.readBytes();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();

              type_ = 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.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_VehAuthRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_VehAuthRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.class, com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.VehAuthRequest.RequestTypeEnum}
     */
    public enum RequestTypeEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47;
       * </pre>
       *
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <pre>
       *&#47; Initial provisioning request for a temporary session.
       * </pre>
       *
       * <code>INITIAL = 1;</code>
       */
      INITIAL(1),
      /**
       * <pre>
       *&#47; Secondary request to receive valid session token.
       * </pre>
       *
       * <code>SECOND = 2;</code>
       */
      SECOND(2),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47;
       * </pre>
       *
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <pre>
       *&#47; Initial provisioning request for a temporary session.
       * </pre>
       *
       * <code>INITIAL = 1;</code>
       */
      public static final int INITIAL_VALUE = 1;
      /**
       * <pre>
       *&#47; Secondary request to receive valid session token.
       * </pre>
       *
       * <code>SECOND = 2;</code>
       */
      public static final int SECOND_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 RequestTypeEnum valueOf(int value) {
        return forNumber(value);
      }

      public static RequestTypeEnum forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 1: return INITIAL;
          case 2: return SECOND;
          default: return null;
        }
      }

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

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

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.VehAuthRequest.RequestTypeEnum)
    }

    public static final int VIN_FIELD_NUMBER = 1;
    private volatile java.lang.Object vin_;
    /**
     * <pre>
     *&#47; Vehicle Identification Number
     * </pre>
     *
     * <code>string vin = 1;</code>
     */
    public java.lang.String getVin() {
      java.lang.Object ref = vin_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        vin_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Vehicle Identification Number
     * </pre>
     *
     * <code>string vin = 1;</code>
     */
    public com.google.protobuf.ByteString
        getVinBytes() {
      java.lang.Object ref = vin_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        vin_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICE_FIELD_NUMBER = 2;
    private com.fca.uconnect.global.GlobalUconnectDevice.Device device_;
    /**
     * <pre>
     *&#47; requires the deviceType, IMIE, MSISDN,ICCID, IMSI, and TBM or HU Serial and Software Version
     * </pre>
     *
     * <code>.com.fca.uconnect.global.Device device = 2;</code>
     */
    public boolean hasDevice() {
      return device_ != null;
    }
    /**
     * <pre>
     *&#47; requires the deviceType, IMIE, MSISDN,ICCID, IMSI, and TBM or HU Serial and Software Version
     * </pre>
     *
     * <code>.com.fca.uconnect.global.Device device = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectDevice.Device getDevice() {
      return device_ == null ? com.fca.uconnect.global.GlobalUconnectDevice.Device.getDefaultInstance() : device_;
    }
    /**
     * <pre>
     *&#47; requires the deviceType, IMIE, MSISDN,ICCID, IMSI, and TBM or HU Serial and Software Version
     * </pre>
     *
     * <code>.com.fca.uconnect.global.Device device = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectDevice.DeviceOrBuilder getDeviceOrBuilder() {
      return getDevice();
    }

    public static final int AUTHTOKEN_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString authToken_;
    /**
     * <pre>
     *&#47; Hash token of client challenge fields.  Temporary Session Key (concatenated string of Client and Server Challenge Keys)
     * </pre>
     *
     * <code>bytes authToken = 3;</code>
     */
    public com.google.protobuf.ByteString getAuthToken() {
      return authToken_;
    }

    public static final int NONCE_FIELD_NUMBER = 4;
    private com.google.protobuf.ByteString nonce_;
    /**
     * <pre>
     *&#47; Nonce for protecting against replay
     * </pre>
     *
     * <code>bytes nonce = 4;</code>
     */
    public com.google.protobuf.ByteString getNonce() {
      return nonce_;
    }

    public static final int TYPE_FIELD_NUMBER = 5;
    private int type_;
    /**
     * <pre>
     *&#47; Indicate the initial or second auth request.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.VehAuthRequest.RequestTypeEnum type = 5;</code>
     */
    public int getTypeValue() {
      return type_;
    }
    /**
     * <pre>
     *&#47; Indicate the initial or second auth request.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.VehAuthRequest.RequestTypeEnum type = 5;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.RequestTypeEnum getType() {
      com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.RequestTypeEnum result = com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.RequestTypeEnum.valueOf(type_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.RequestTypeEnum.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 (!getVinBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, vin_);
      }
      if (device_ != null) {
        output.writeMessage(2, getDevice());
      }
      if (!authToken_.isEmpty()) {
        output.writeBytes(3, authToken_);
      }
      if (!nonce_.isEmpty()) {
        output.writeBytes(4, nonce_);
      }
      if (type_ != com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.RequestTypeEnum.UNKNOWN.getNumber()) {
        output.writeEnum(5, type_);
      }
    }

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

      size = 0;
      if (!getVinBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, vin_);
      }
      if (device_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getDevice());
      }
      if (!authToken_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, authToken_);
      }
      if (!nonce_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, nonce_);
      }
      if (type_ != com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.RequestTypeEnum.UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, type_);
      }
      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.GlobalUconnectExtVehAuth.VehAuthRequest)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest other = (com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest) obj;

      boolean result = true;
      result = result && getVin()
          .equals(other.getVin());
      result = result && (hasDevice() == other.hasDevice());
      if (hasDevice()) {
        result = result && getDevice()
            .equals(other.getDevice());
      }
      result = result && getAuthToken()
          .equals(other.getAuthToken());
      result = result && getNonce()
          .equals(other.getNonce());
      result = result && type_ == other.type_;
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + VIN_FIELD_NUMBER;
      hash = (53 * hash) + getVin().hashCode();
      if (hasDevice()) {
        hash = (37 * hash) + DEVICE_FIELD_NUMBER;
        hash = (53 * hash) + getDevice().hashCode();
      }
      hash = (37 * hash) + AUTHTOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getAuthToken().hashCode();
      hash = (37 * hash) + NONCE_FIELD_NUMBER;
      hash = (53 * hash) + getNonce().hashCode();
      hash = (37 * hash) + TYPE_FIELD_NUMBER;
      hash = (53 * hash) + type_;
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest 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.GlobalUconnectExtVehAuth.VehAuthRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest 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.GlobalUconnectExtVehAuth.VehAuthRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest 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.GlobalUconnectExtVehAuth.VehAuthRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest 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.GlobalUconnectExtVehAuth.VehAuthRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest 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.GlobalUconnectExtVehAuth.VehAuthRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * This is for SecondVehicleAuthorizationRequest.
     *&lt;div class=exmsg-main&gt;
     *  &lt;h4&gt;FirstVehicleAuthorization Request Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     * 		timestamp: 1488868820053
     * 		messageId: 1
     * 		messages
     * 		{
     * 		 [com.fca.uconnect.global.FirstAuthorizationResponse]
     * 		 {
     * 			“vin”: “AEEUDHS4857382038”,
     * 			“tuProfile”: {
     * 				“nadimei”: “323232323232”,
     * 				“simMsisdn”: “12123123123”,
     * 				“simIccid”: “12123123123”,
     * 				“imsi”: “12123123123”,
     * 				“tbmSerial”: “JK1212ASD233”,
     * 				“tbmSoftwareVersion”: “17.03.03”
     * 				},
     * 			“tempAuthKey”: “12ABc345”,
     * 			“correlationId”: “12abCd1”
     * 			}
     * 		 }
     * 		}
     *	&lt;/code&gt;
     *   &lt;/div&gt;&lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.VehAuthRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.VehAuthRequest)
        com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_VehAuthRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_VehAuthRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.class, com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.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();
        vin_ = "";

        if (deviceBuilder_ == null) {
          device_ = null;
        } else {
          device_ = null;
          deviceBuilder_ = null;
        }
        authToken_ = com.google.protobuf.ByteString.EMPTY;

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

        type_ = 0;

        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest result = new com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest(this);
        result.vin_ = vin_;
        if (deviceBuilder_ == null) {
          result.device_ = device_;
        } else {
          result.device_ = deviceBuilder_.build();
        }
        result.authToken_ = authToken_;
        result.nonce_ = nonce_;
        result.type_ = type_;
        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.GlobalUconnectExtVehAuth.VehAuthRequest) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.getDefaultInstance()) return this;
        if (!other.getVin().isEmpty()) {
          vin_ = other.vin_;
          onChanged();
        }
        if (other.hasDevice()) {
          mergeDevice(other.getDevice());
        }
        if (other.getAuthToken() != com.google.protobuf.ByteString.EMPTY) {
          setAuthToken(other.getAuthToken());
        }
        if (other.getNonce() != com.google.protobuf.ByteString.EMPTY) {
          setNonce(other.getNonce());
        }
        if (other.type_ != 0) {
          setTypeValue(other.getTypeValue());
        }
        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.GlobalUconnectExtVehAuth.VehAuthRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object vin_ = "";
      /**
       * <pre>
       *&#47; Vehicle Identification Number
       * </pre>
       *
       * <code>string vin = 1;</code>
       */
      public java.lang.String getVin() {
        java.lang.Object ref = vin_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          vin_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Vehicle Identification Number
       * </pre>
       *
       * <code>string vin = 1;</code>
       */
      public com.google.protobuf.ByteString
          getVinBytes() {
        java.lang.Object ref = vin_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          vin_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Vehicle Identification Number
       * </pre>
       *
       * <code>string vin = 1;</code>
       */
      public Builder setVin(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        vin_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Vehicle Identification Number
       * </pre>
       *
       * <code>string vin = 1;</code>
       */
      public Builder clearVin() {
        
        vin_ = getDefaultInstance().getVin();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Vehicle Identification Number
       * </pre>
       *
       * <code>string vin = 1;</code>
       */
      public Builder setVinBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        vin_ = value;
        onChanged();
        return this;
      }

      private com.fca.uconnect.global.GlobalUconnectDevice.Device device_ = 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> deviceBuilder_;
      /**
       * <pre>
       *&#47; requires the deviceType, IMIE, MSISDN,ICCID, IMSI, and TBM or HU Serial and Software Version
       * </pre>
       *
       * <code>.com.fca.uconnect.global.Device device = 2;</code>
       */
      public boolean hasDevice() {
        return deviceBuilder_ != null || device_ != null;
      }
      /**
       * <pre>
       *&#47; requires the deviceType, IMIE, MSISDN,ICCID, IMSI, and TBM or HU Serial and Software Version
       * </pre>
       *
       * <code>.com.fca.uconnect.global.Device device = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectDevice.Device getDevice() {
        if (deviceBuilder_ == null) {
          return device_ == null ? com.fca.uconnect.global.GlobalUconnectDevice.Device.getDefaultInstance() : device_;
        } else {
          return deviceBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *&#47; requires the deviceType, IMIE, MSISDN,ICCID, IMSI, and TBM or HU Serial and Software Version
       * </pre>
       *
       * <code>.com.fca.uconnect.global.Device device = 2;</code>
       */
      public Builder setDevice(com.fca.uconnect.global.GlobalUconnectDevice.Device value) {
        if (deviceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          device_ = value;
          onChanged();
        } else {
          deviceBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       *&#47; requires the deviceType, IMIE, MSISDN,ICCID, IMSI, and TBM or HU Serial and Software Version
       * </pre>
       *
       * <code>.com.fca.uconnect.global.Device device = 2;</code>
       */
      public Builder setDevice(
          com.fca.uconnect.global.GlobalUconnectDevice.Device.Builder builderForValue) {
        if (deviceBuilder_ == null) {
          device_ = builderForValue.build();
          onChanged();
        } else {
          deviceBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       *&#47; requires the deviceType, IMIE, MSISDN,ICCID, IMSI, and TBM or HU Serial and Software Version
       * </pre>
       *
       * <code>.com.fca.uconnect.global.Device device = 2;</code>
       */
      public Builder mergeDevice(com.fca.uconnect.global.GlobalUconnectDevice.Device value) {
        if (deviceBuilder_ == null) {
          if (device_ != null) {
            device_ =
              com.fca.uconnect.global.GlobalUconnectDevice.Device.newBuilder(device_).mergeFrom(value).buildPartial();
          } else {
            device_ = value;
          }
          onChanged();
        } else {
          deviceBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       *&#47; requires the deviceType, IMIE, MSISDN,ICCID, IMSI, and TBM or HU Serial and Software Version
       * </pre>
       *
       * <code>.com.fca.uconnect.global.Device device = 2;</code>
       */
      public Builder clearDevice() {
        if (deviceBuilder_ == null) {
          device_ = null;
          onChanged();
        } else {
          device_ = null;
          deviceBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       *&#47; requires the deviceType, IMIE, MSISDN,ICCID, IMSI, and TBM or HU Serial and Software Version
       * </pre>
       *
       * <code>.com.fca.uconnect.global.Device device = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectDevice.Device.Builder getDeviceBuilder() {
        
        onChanged();
        return getDeviceFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47; requires the deviceType, IMIE, MSISDN,ICCID, IMSI, and TBM or HU Serial and Software Version
       * </pre>
       *
       * <code>.com.fca.uconnect.global.Device device = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectDevice.DeviceOrBuilder getDeviceOrBuilder() {
        if (deviceBuilder_ != null) {
          return deviceBuilder_.getMessageOrBuilder();
        } else {
          return device_ == null ?
              com.fca.uconnect.global.GlobalUconnectDevice.Device.getDefaultInstance() : device_;
        }
      }
      /**
       * <pre>
       *&#47; requires the deviceType, IMIE, MSISDN,ICCID, IMSI, and TBM or HU Serial and Software Version
       * </pre>
       *
       * <code>.com.fca.uconnect.global.Device device = 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> 
          getDeviceFieldBuilder() {
        if (deviceBuilder_ == null) {
          deviceBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectDevice.Device, com.fca.uconnect.global.GlobalUconnectDevice.Device.Builder, com.fca.uconnect.global.GlobalUconnectDevice.DeviceOrBuilder>(
                  getDevice(),
                  getParentForChildren(),
                  isClean());
          device_ = null;
        }
        return deviceBuilder_;
      }

      private com.google.protobuf.ByteString authToken_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       *&#47; Hash token of client challenge fields.  Temporary Session Key (concatenated string of Client and Server Challenge Keys)
       * </pre>
       *
       * <code>bytes authToken = 3;</code>
       */
      public com.google.protobuf.ByteString getAuthToken() {
        return authToken_;
      }
      /**
       * <pre>
       *&#47; Hash token of client challenge fields.  Temporary Session Key (concatenated string of Client and Server Challenge Keys)
       * </pre>
       *
       * <code>bytes authToken = 3;</code>
       */
      public Builder setAuthToken(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        authToken_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Hash token of client challenge fields.  Temporary Session Key (concatenated string of Client and Server Challenge Keys)
       * </pre>
       *
       * <code>bytes authToken = 3;</code>
       */
      public Builder clearAuthToken() {
        
        authToken_ = getDefaultInstance().getAuthToken();
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString nonce_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       *&#47; Nonce for protecting against replay
       * </pre>
       *
       * <code>bytes nonce = 4;</code>
       */
      public com.google.protobuf.ByteString getNonce() {
        return nonce_;
      }
      /**
       * <pre>
       *&#47; Nonce for protecting against replay
       * </pre>
       *
       * <code>bytes nonce = 4;</code>
       */
      public Builder setNonce(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        nonce_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Nonce for protecting against replay
       * </pre>
       *
       * <code>bytes nonce = 4;</code>
       */
      public Builder clearNonce() {
        
        nonce_ = getDefaultInstance().getNonce();
        onChanged();
        return this;
      }

      private int type_ = 0;
      /**
       * <pre>
       *&#47; Indicate the initial or second auth request.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehAuthRequest.RequestTypeEnum type = 5;</code>
       */
      public int getTypeValue() {
        return type_;
      }
      /**
       * <pre>
       *&#47; Indicate the initial or second auth request.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehAuthRequest.RequestTypeEnum type = 5;</code>
       */
      public Builder setTypeValue(int value) {
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Indicate the initial or second auth request.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehAuthRequest.RequestTypeEnum type = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.RequestTypeEnum getType() {
        com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.RequestTypeEnum result = com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.RequestTypeEnum.valueOf(type_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.RequestTypeEnum.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       *&#47; Indicate the initial or second auth request.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehAuthRequest.RequestTypeEnum type = 5;</code>
       */
      public Builder setType(com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest.RequestTypeEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        type_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Indicate the initial or second auth request.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehAuthRequest.RequestTypeEnum type = 5;</code>
       */
      public Builder clearType() {
        
        type_ = 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.VehAuthRequest)
    }

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

    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *&#47; Permanent Session Key provided by Server, should be used in MQTT Header for future operations
     * </pre>
     *
     * <code>bytes sessionToken = 1;</code>
     */
    com.google.protobuf.ByteString getSessionToken();

    /**
     * <pre>
     *&#47; CR or Correlation ID
     * </pre>
     *
     * <code>bytes nonce = 2;</code>
     */
    com.google.protobuf.ByteString getNonce();

    /**
     * <pre>
     *&#47; Indicate the type of session token returned to the client.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.VehAuthResponse.TokenTypeEnum type = 3;</code>
     */
    int getTypeValue();
    /**
     * <pre>
     *&#47; Indicate the type of session token returned to the client.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.VehAuthResponse.TokenTypeEnum type = 3;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.TokenTypeEnum getType();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.VehAuthResponse}
   */
  public  static final class VehAuthResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.VehAuthResponse)
      VehAuthResponseOrBuilder {
    // Use VehAuthResponse.newBuilder() to construct.
    private VehAuthResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VehAuthResponse() {
      sessionToken_ = com.google.protobuf.ByteString.EMPTY;
      nonce_ = com.google.protobuf.ByteString.EMPTY;
      type_ = 0;
    }

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

              sessionToken_ = input.readBytes();
              break;
            }
            case 18: {

              nonce_ = input.readBytes();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();

              type_ = 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.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_VehAuthResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_VehAuthResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.class, com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.VehAuthResponse.TokenTypeEnum}
     */
    public enum TokenTypeEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47;
       * </pre>
       *
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <pre>
       *&#47; Initial temporary session token.
       * </pre>
       *
       * <code>TEMP = 1;</code>
       */
      TEMP(1),
      /**
       * <pre>
       *&#47; Valid session token.
       * </pre>
       *
       * <code>VALID = 2;</code>
       */
      VALID(2),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47;
       * </pre>
       *
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <pre>
       *&#47; Initial temporary session token.
       * </pre>
       *
       * <code>TEMP = 1;</code>
       */
      public static final int TEMP_VALUE = 1;
      /**
       * <pre>
       *&#47; Valid session token.
       * </pre>
       *
       * <code>VALID = 2;</code>
       */
      public static final int VALID_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 TokenTypeEnum valueOf(int value) {
        return forNumber(value);
      }

      public static TokenTypeEnum forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 1: return TEMP;
          case 2: return VALID;
          default: return null;
        }
      }

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

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

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.VehAuthResponse.TokenTypeEnum)
    }

    public static final int SESSIONTOKEN_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString sessionToken_;
    /**
     * <pre>
     *&#47; Permanent Session Key provided by Server, should be used in MQTT Header for future operations
     * </pre>
     *
     * <code>bytes sessionToken = 1;</code>
     */
    public com.google.protobuf.ByteString getSessionToken() {
      return sessionToken_;
    }

    public static final int NONCE_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString nonce_;
    /**
     * <pre>
     *&#47; CR or Correlation ID
     * </pre>
     *
     * <code>bytes nonce = 2;</code>
     */
    public com.google.protobuf.ByteString getNonce() {
      return nonce_;
    }

    public static final int TYPE_FIELD_NUMBER = 3;
    private int type_;
    /**
     * <pre>
     *&#47; Indicate the type of session token returned to the client.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.VehAuthResponse.TokenTypeEnum type = 3;</code>
     */
    public int getTypeValue() {
      return type_;
    }
    /**
     * <pre>
     *&#47; Indicate the type of session token returned to the client.
     * </pre>
     *
     * <code>.com.fca.uconnect.global.VehAuthResponse.TokenTypeEnum type = 3;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.TokenTypeEnum getType() {
      com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.TokenTypeEnum result = com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.TokenTypeEnum.valueOf(type_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.TokenTypeEnum.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 (!sessionToken_.isEmpty()) {
        output.writeBytes(1, sessionToken_);
      }
      if (!nonce_.isEmpty()) {
        output.writeBytes(2, nonce_);
      }
      if (type_ != com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.TokenTypeEnum.UNKNOWN.getNumber()) {
        output.writeEnum(3, type_);
      }
    }

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

      size = 0;
      if (!sessionToken_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, sessionToken_);
      }
      if (!nonce_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, nonce_);
      }
      if (type_ != com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.TokenTypeEnum.UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, type_);
      }
      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.GlobalUconnectExtVehAuth.VehAuthResponse)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse other = (com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse) obj;

      boolean result = true;
      result = result && getSessionToken()
          .equals(other.getSessionToken());
      result = result && getNonce()
          .equals(other.getNonce());
      result = result && type_ == other.type_;
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SESSIONTOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getSessionToken().hashCode();
      hash = (37 * hash) + NONCE_FIELD_NUMBER;
      hash = (53 * hash) + getNonce().hashCode();
      hash = (37 * hash) + TYPE_FIELD_NUMBER;
      hash = (53 * hash) + type_;
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_VehAuthResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.class, com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.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();
        sessionToken_ = com.google.protobuf.ByteString.EMPTY;

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

        type_ = 0;

        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse result = new com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse(this);
        result.sessionToken_ = sessionToken_;
        result.nonce_ = nonce_;
        result.type_ = type_;
        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.GlobalUconnectExtVehAuth.VehAuthResponse) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.getDefaultInstance()) return this;
        if (other.getSessionToken() != com.google.protobuf.ByteString.EMPTY) {
          setSessionToken(other.getSessionToken());
        }
        if (other.getNonce() != com.google.protobuf.ByteString.EMPTY) {
          setNonce(other.getNonce());
        }
        if (other.type_ != 0) {
          setTypeValue(other.getTypeValue());
        }
        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.GlobalUconnectExtVehAuth.VehAuthResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.google.protobuf.ByteString sessionToken_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       *&#47; Permanent Session Key provided by Server, should be used in MQTT Header for future operations
       * </pre>
       *
       * <code>bytes sessionToken = 1;</code>
       */
      public com.google.protobuf.ByteString getSessionToken() {
        return sessionToken_;
      }
      /**
       * <pre>
       *&#47; Permanent Session Key provided by Server, should be used in MQTT Header for future operations
       * </pre>
       *
       * <code>bytes sessionToken = 1;</code>
       */
      public Builder setSessionToken(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        sessionToken_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Permanent Session Key provided by Server, should be used in MQTT Header for future operations
       * </pre>
       *
       * <code>bytes sessionToken = 1;</code>
       */
      public Builder clearSessionToken() {
        
        sessionToken_ = getDefaultInstance().getSessionToken();
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString nonce_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       *&#47; CR or Correlation ID
       * </pre>
       *
       * <code>bytes nonce = 2;</code>
       */
      public com.google.protobuf.ByteString getNonce() {
        return nonce_;
      }
      /**
       * <pre>
       *&#47; CR or Correlation ID
       * </pre>
       *
       * <code>bytes nonce = 2;</code>
       */
      public Builder setNonce(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        nonce_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; CR or Correlation ID
       * </pre>
       *
       * <code>bytes nonce = 2;</code>
       */
      public Builder clearNonce() {
        
        nonce_ = getDefaultInstance().getNonce();
        onChanged();
        return this;
      }

      private int type_ = 0;
      /**
       * <pre>
       *&#47; Indicate the type of session token returned to the client.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehAuthResponse.TokenTypeEnum type = 3;</code>
       */
      public int getTypeValue() {
        return type_;
      }
      /**
       * <pre>
       *&#47; Indicate the type of session token returned to the client.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehAuthResponse.TokenTypeEnum type = 3;</code>
       */
      public Builder setTypeValue(int value) {
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Indicate the type of session token returned to the client.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehAuthResponse.TokenTypeEnum type = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.TokenTypeEnum getType() {
        com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.TokenTypeEnum result = com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.TokenTypeEnum.valueOf(type_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.TokenTypeEnum.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       *&#47; Indicate the type of session token returned to the client.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehAuthResponse.TokenTypeEnum type = 3;</code>
       */
      public Builder setType(com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse.TokenTypeEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        type_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Indicate the type of session token returned to the client.
       * </pre>
       *
       * <code>.com.fca.uconnect.global.VehAuthResponse.TokenTypeEnum type = 3;</code>
       */
      public Builder clearType() {
        
        type_ = 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.VehAuthResponse)
    }

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

    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtVehAuth.VehAuthResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *&#47; Type of challenge response, use "password" for basic auth
     * </pre>
     *
     * <code>string grant_type = 1;</code>
     */
    java.lang.String getGrantType();
    /**
     * <pre>
     *&#47; Type of challenge response, use "password" for basic auth
     * </pre>
     *
     * <code>string grant_type = 1;</code>
     */
    com.google.protobuf.ByteString
        getGrantTypeBytes();

    /**
     * <pre>
     *&#47; IMEI of TU Profile for the vehicle
     * </pre>
     *
     * <code>string deviceId = 2;</code>
     */
    java.lang.String getDeviceId();
    /**
     * <pre>
     *&#47; IMEI of TU Profile for the vehicle
     * </pre>
     *
     * <code>string deviceId = 2;</code>
     */
    com.google.protobuf.ByteString
        getDeviceIdBytes();

    /**
     * <pre>
     *&#47; In case of TU communication bootstrap, it will be Permanent Session Key returned by the server
     * </pre>
     *
     * <code>string permKey = 3;</code>
     */
    java.lang.String getPermKey();
    /**
     * <pre>
     *&#47; In case of TU communication bootstrap, it will be Permanent Session Key returned by the server
     * </pre>
     *
     * <code>string permKey = 3;</code>
     */
    com.google.protobuf.ByteString
        getPermKeyBytes();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.CreateTokenRequest}
   */
  public  static final class CreateTokenRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.CreateTokenRequest)
      CreateTokenRequestOrBuilder {
    // Use CreateTokenRequest.newBuilder() to construct.
    private CreateTokenRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CreateTokenRequest() {
      grantType_ = "";
      deviceId_ = "";
      permKey_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private CreateTokenRequest(
        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();

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

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

              permKey_ = s;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_CreateTokenRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_CreateTokenRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenRequest.class, com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenRequest.Builder.class);
    }

    public static final int GRANT_TYPE_FIELD_NUMBER = 1;
    private volatile java.lang.Object grantType_;
    /**
     * <pre>
     *&#47; Type of challenge response, use "password" for basic auth
     * </pre>
     *
     * <code>string grant_type = 1;</code>
     */
    public java.lang.String getGrantType() {
      java.lang.Object ref = grantType_;
      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();
        grantType_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Type of challenge response, use "password" for basic auth
     * </pre>
     *
     * <code>string grant_type = 1;</code>
     */
    public com.google.protobuf.ByteString
        getGrantTypeBytes() {
      java.lang.Object ref = grantType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        grantType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICEID_FIELD_NUMBER = 2;
    private volatile java.lang.Object deviceId_;
    /**
     * <pre>
     *&#47; IMEI of TU Profile for the vehicle
     * </pre>
     *
     * <code>string deviceId = 2;</code>
     */
    public java.lang.String getDeviceId() {
      java.lang.Object ref = deviceId_;
      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();
        deviceId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; IMEI of TU Profile for the vehicle
     * </pre>
     *
     * <code>string deviceId = 2;</code>
     */
    public com.google.protobuf.ByteString
        getDeviceIdBytes() {
      java.lang.Object ref = deviceId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deviceId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PERMKEY_FIELD_NUMBER = 3;
    private volatile java.lang.Object permKey_;
    /**
     * <pre>
     *&#47; In case of TU communication bootstrap, it will be Permanent Session Key returned by the server
     * </pre>
     *
     * <code>string permKey = 3;</code>
     */
    public java.lang.String getPermKey() {
      java.lang.Object ref = permKey_;
      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();
        permKey_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; In case of TU communication bootstrap, it will be Permanent Session Key returned by the server
     * </pre>
     *
     * <code>string permKey = 3;</code>
     */
    public com.google.protobuf.ByteString
        getPermKeyBytes() {
      java.lang.Object ref = permKey_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        permKey_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getGrantTypeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, grantType_);
      }
      if (!getDeviceIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, deviceId_);
      }
      if (!getPermKeyBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, permKey_);
      }
    }

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

      size = 0;
      if (!getGrantTypeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, grantType_);
      }
      if (!getDeviceIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, deviceId_);
      }
      if (!getPermKeyBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, permKey_);
      }
      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.GlobalUconnectExtVehAuth.CreateTokenRequest)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenRequest other = (com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenRequest) obj;

      boolean result = true;
      result = result && getGrantType()
          .equals(other.getGrantType());
      result = result && getDeviceId()
          .equals(other.getDeviceId());
      result = result && getPermKey()
          .equals(other.getPermKey());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + GRANT_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getGrantType().hashCode();
      hash = (37 * hash) + DEVICEID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId().hashCode();
      hash = (37 * hash) + PERMKEY_FIELD_NUMBER;
      hash = (53 * hash) + getPermKey().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_CreateTokenRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenRequest.class, com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenRequest.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenRequest.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();
        grantType_ = "";

        deviceId_ = "";

        permKey_ = "";

        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenRequest getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenRequest.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenRequest buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenRequest result = new com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenRequest(this);
        result.grantType_ = grantType_;
        result.deviceId_ = deviceId_;
        result.permKey_ = permKey_;
        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.GlobalUconnectExtVehAuth.CreateTokenRequest) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenRequest other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenRequest.getDefaultInstance()) return this;
        if (!other.getGrantType().isEmpty()) {
          grantType_ = other.grantType_;
          onChanged();
        }
        if (!other.getDeviceId().isEmpty()) {
          deviceId_ = other.deviceId_;
          onChanged();
        }
        if (!other.getPermKey().isEmpty()) {
          permKey_ = other.permKey_;
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.lang.Object grantType_ = "";
      /**
       * <pre>
       *&#47; Type of challenge response, use "password" for basic auth
       * </pre>
       *
       * <code>string grant_type = 1;</code>
       */
      public java.lang.String getGrantType() {
        java.lang.Object ref = grantType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          grantType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Type of challenge response, use "password" for basic auth
       * </pre>
       *
       * <code>string grant_type = 1;</code>
       */
      public com.google.protobuf.ByteString
          getGrantTypeBytes() {
        java.lang.Object ref = grantType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          grantType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Type of challenge response, use "password" for basic auth
       * </pre>
       *
       * <code>string grant_type = 1;</code>
       */
      public Builder setGrantType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        grantType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Type of challenge response, use "password" for basic auth
       * </pre>
       *
       * <code>string grant_type = 1;</code>
       */
      public Builder clearGrantType() {
        
        grantType_ = getDefaultInstance().getGrantType();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Type of challenge response, use "password" for basic auth
       * </pre>
       *
       * <code>string grant_type = 1;</code>
       */
      public Builder setGrantTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        grantType_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object deviceId_ = "";
      /**
       * <pre>
       *&#47; IMEI of TU Profile for the vehicle
       * </pre>
       *
       * <code>string deviceId = 2;</code>
       */
      public java.lang.String getDeviceId() {
        java.lang.Object ref = deviceId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          deviceId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; IMEI of TU Profile for the vehicle
       * </pre>
       *
       * <code>string deviceId = 2;</code>
       */
      public com.google.protobuf.ByteString
          getDeviceIdBytes() {
        java.lang.Object ref = deviceId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deviceId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; IMEI of TU Profile for the vehicle
       * </pre>
       *
       * <code>string deviceId = 2;</code>
       */
      public Builder setDeviceId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        deviceId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; IMEI of TU Profile for the vehicle
       * </pre>
       *
       * <code>string deviceId = 2;</code>
       */
      public Builder clearDeviceId() {
        
        deviceId_ = getDefaultInstance().getDeviceId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; IMEI of TU Profile for the vehicle
       * </pre>
       *
       * <code>string deviceId = 2;</code>
       */
      public Builder setDeviceIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        deviceId_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object permKey_ = "";
      /**
       * <pre>
       *&#47; In case of TU communication bootstrap, it will be Permanent Session Key returned by the server
       * </pre>
       *
       * <code>string permKey = 3;</code>
       */
      public java.lang.String getPermKey() {
        java.lang.Object ref = permKey_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          permKey_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; In case of TU communication bootstrap, it will be Permanent Session Key returned by the server
       * </pre>
       *
       * <code>string permKey = 3;</code>
       */
      public com.google.protobuf.ByteString
          getPermKeyBytes() {
        java.lang.Object ref = permKey_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          permKey_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; In case of TU communication bootstrap, it will be Permanent Session Key returned by the server
       * </pre>
       *
       * <code>string permKey = 3;</code>
       */
      public Builder setPermKey(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        permKey_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; In case of TU communication bootstrap, it will be Permanent Session Key returned by the server
       * </pre>
       *
       * <code>string permKey = 3;</code>
       */
      public Builder clearPermKey() {
        
        permKey_ = getDefaultInstance().getPermKey();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; In case of TU communication bootstrap, it will be Permanent Session Key returned by the server
       * </pre>
       *
       * <code>string permKey = 3;</code>
       */
      public Builder setPermKeyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        permKey_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


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

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

    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *&#47; Access Token
     * </pre>
     *
     * <code>string accessToken = 1;</code>
     */
    java.lang.String getAccessToken();
    /**
     * <pre>
     *&#47; Access Token
     * </pre>
     *
     * <code>string accessToken = 1;</code>
     */
    com.google.protobuf.ByteString
        getAccessTokenBytes();

    /**
     * <pre>
     *&#47;Authorization Token / Null on TU's
     * </pre>
     *
     * <code>string authorizationToken = 2;</code>
     */
    java.lang.String getAuthorizationToken();
    /**
     * <pre>
     *&#47;Authorization Token / Null on TU's
     * </pre>
     *
     * <code>string authorizationToken = 2;</code>
     */
    com.google.protobuf.ByteString
        getAuthorizationTokenBytes();

    /**
     * <pre>
     *&#47; The lifetime of the access token in seconds.
     * </pre>
     *
     * <code>int32 expiresIn = 3;</code>
     */
    int getExpiresIn();

    /**
     * <pre>
     *&#47; Refresh token to be used to retrieve new tokens when they are expired
     * </pre>
     *
     * <code>string refreshToken = 4;</code>
     */
    java.lang.String getRefreshToken();
    /**
     * <pre>
     *&#47; Refresh token to be used to retrieve new tokens when they are expired
     * </pre>
     *
     * <code>string refreshToken = 4;</code>
     */
    com.google.protobuf.ByteString
        getRefreshTokenBytes();

    /**
     * <pre>
     *&#47; use only bearer
     * </pre>
     *
     * <code>string token_type = 5;</code>
     */
    java.lang.String getTokenType();
    /**
     * <pre>
     *&#47; use only bearer
     * </pre>
     *
     * <code>string token_type = 5;</code>
     */
    com.google.protobuf.ByteString
        getTokenTypeBytes();

    /**
     * <pre>
     *&#47; Account DNm unique account name
     * </pre>
     *
     * <code>string accountDN = 6;</code>
     */
    java.lang.String getAccountDN();
    /**
     * <pre>
     *&#47; Account DNm unique account name
     * </pre>
     *
     * <code>string accountDN = 6;</code>
     */
    com.google.protobuf.ByteString
        getAccountDNBytes();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.CreateTokenResponse}
   */
  public  static final class CreateTokenResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.CreateTokenResponse)
      CreateTokenResponseOrBuilder {
    // Use CreateTokenResponse.newBuilder() to construct.
    private CreateTokenResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CreateTokenResponse() {
      accessToken_ = "";
      authorizationToken_ = "";
      expiresIn_ = 0;
      refreshToken_ = "";
      tokenType_ = "";
      accountDN_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private CreateTokenResponse(
        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();

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

              authorizationToken_ = s;
              break;
            }
            case 24: {

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

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

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

              accountDN_ = s;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_CreateTokenResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_CreateTokenResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenResponse.class, com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenResponse.Builder.class);
    }

    public static final int ACCESSTOKEN_FIELD_NUMBER = 1;
    private volatile java.lang.Object accessToken_;
    /**
     * <pre>
     *&#47; Access Token
     * </pre>
     *
     * <code>string accessToken = 1;</code>
     */
    public java.lang.String getAccessToken() {
      java.lang.Object ref = accessToken_;
      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();
        accessToken_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Access Token
     * </pre>
     *
     * <code>string accessToken = 1;</code>
     */
    public com.google.protobuf.ByteString
        getAccessTokenBytes() {
      java.lang.Object ref = accessToken_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        accessToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int AUTHORIZATIONTOKEN_FIELD_NUMBER = 2;
    private volatile java.lang.Object authorizationToken_;
    /**
     * <pre>
     *&#47;Authorization Token / Null on TU's
     * </pre>
     *
     * <code>string authorizationToken = 2;</code>
     */
    public java.lang.String getAuthorizationToken() {
      java.lang.Object ref = authorizationToken_;
      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();
        authorizationToken_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47;Authorization Token / Null on TU's
     * </pre>
     *
     * <code>string authorizationToken = 2;</code>
     */
    public com.google.protobuf.ByteString
        getAuthorizationTokenBytes() {
      java.lang.Object ref = authorizationToken_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        authorizationToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXPIRESIN_FIELD_NUMBER = 3;
    private int expiresIn_;
    /**
     * <pre>
     *&#47; The lifetime of the access token in seconds.
     * </pre>
     *
     * <code>int32 expiresIn = 3;</code>
     */
    public int getExpiresIn() {
      return expiresIn_;
    }

    public static final int REFRESHTOKEN_FIELD_NUMBER = 4;
    private volatile java.lang.Object refreshToken_;
    /**
     * <pre>
     *&#47; Refresh token to be used to retrieve new tokens when they are expired
     * </pre>
     *
     * <code>string refreshToken = 4;</code>
     */
    public java.lang.String getRefreshToken() {
      java.lang.Object ref = refreshToken_;
      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();
        refreshToken_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Refresh token to be used to retrieve new tokens when they are expired
     * </pre>
     *
     * <code>string refreshToken = 4;</code>
     */
    public com.google.protobuf.ByteString
        getRefreshTokenBytes() {
      java.lang.Object ref = refreshToken_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        refreshToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TOKEN_TYPE_FIELD_NUMBER = 5;
    private volatile java.lang.Object tokenType_;
    /**
     * <pre>
     *&#47; use only bearer
     * </pre>
     *
     * <code>string token_type = 5;</code>
     */
    public java.lang.String getTokenType() {
      java.lang.Object ref = tokenType_;
      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();
        tokenType_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; use only bearer
     * </pre>
     *
     * <code>string token_type = 5;</code>
     */
    public com.google.protobuf.ByteString
        getTokenTypeBytes() {
      java.lang.Object ref = tokenType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tokenType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ACCOUNTDN_FIELD_NUMBER = 6;
    private volatile java.lang.Object accountDN_;
    /**
     * <pre>
     *&#47; Account DNm unique account name
     * </pre>
     *
     * <code>string accountDN = 6;</code>
     */
    public java.lang.String getAccountDN() {
      java.lang.Object ref = accountDN_;
      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();
        accountDN_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Account DNm unique account name
     * </pre>
     *
     * <code>string accountDN = 6;</code>
     */
    public com.google.protobuf.ByteString
        getAccountDNBytes() {
      java.lang.Object ref = accountDN_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        accountDN_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getAccessTokenBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, accessToken_);
      }
      if (!getAuthorizationTokenBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, authorizationToken_);
      }
      if (expiresIn_ != 0) {
        output.writeInt32(3, expiresIn_);
      }
      if (!getRefreshTokenBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, refreshToken_);
      }
      if (!getTokenTypeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, tokenType_);
      }
      if (!getAccountDNBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, accountDN_);
      }
    }

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

      size = 0;
      if (!getAccessTokenBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, accessToken_);
      }
      if (!getAuthorizationTokenBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, authorizationToken_);
      }
      if (expiresIn_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, expiresIn_);
      }
      if (!getRefreshTokenBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, refreshToken_);
      }
      if (!getTokenTypeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, tokenType_);
      }
      if (!getAccountDNBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, accountDN_);
      }
      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.GlobalUconnectExtVehAuth.CreateTokenResponse)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenResponse other = (com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenResponse) obj;

      boolean result = true;
      result = result && getAccessToken()
          .equals(other.getAccessToken());
      result = result && getAuthorizationToken()
          .equals(other.getAuthorizationToken());
      result = result && (getExpiresIn()
          == other.getExpiresIn());
      result = result && getRefreshToken()
          .equals(other.getRefreshToken());
      result = result && getTokenType()
          .equals(other.getTokenType());
      result = result && getAccountDN()
          .equals(other.getAccountDN());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ACCESSTOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getAccessToken().hashCode();
      hash = (37 * hash) + AUTHORIZATIONTOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getAuthorizationToken().hashCode();
      hash = (37 * hash) + EXPIRESIN_FIELD_NUMBER;
      hash = (53 * hash) + getExpiresIn();
      hash = (37 * hash) + REFRESHTOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getRefreshToken().hashCode();
      hash = (37 * hash) + TOKEN_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getTokenType().hashCode();
      hash = (37 * hash) + ACCOUNTDN_FIELD_NUMBER;
      hash = (53 * hash) + getAccountDN().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_CreateTokenResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenResponse.class, com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenResponse.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenResponse.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();
        accessToken_ = "";

        authorizationToken_ = "";

        expiresIn_ = 0;

        refreshToken_ = "";

        tokenType_ = "";

        accountDN_ = "";

        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenResponse getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenResponse.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenResponse buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenResponse result = new com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenResponse(this);
        result.accessToken_ = accessToken_;
        result.authorizationToken_ = authorizationToken_;
        result.expiresIn_ = expiresIn_;
        result.refreshToken_ = refreshToken_;
        result.tokenType_ = tokenType_;
        result.accountDN_ = accountDN_;
        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.GlobalUconnectExtVehAuth.CreateTokenResponse) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenResponse other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenResponse.getDefaultInstance()) return this;
        if (!other.getAccessToken().isEmpty()) {
          accessToken_ = other.accessToken_;
          onChanged();
        }
        if (!other.getAuthorizationToken().isEmpty()) {
          authorizationToken_ = other.authorizationToken_;
          onChanged();
        }
        if (other.getExpiresIn() != 0) {
          setExpiresIn(other.getExpiresIn());
        }
        if (!other.getRefreshToken().isEmpty()) {
          refreshToken_ = other.refreshToken_;
          onChanged();
        }
        if (!other.getTokenType().isEmpty()) {
          tokenType_ = other.tokenType_;
          onChanged();
        }
        if (!other.getAccountDN().isEmpty()) {
          accountDN_ = other.accountDN_;
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.lang.Object accessToken_ = "";
      /**
       * <pre>
       *&#47; Access Token
       * </pre>
       *
       * <code>string accessToken = 1;</code>
       */
      public java.lang.String getAccessToken() {
        java.lang.Object ref = accessToken_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          accessToken_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Access Token
       * </pre>
       *
       * <code>string accessToken = 1;</code>
       */
      public com.google.protobuf.ByteString
          getAccessTokenBytes() {
        java.lang.Object ref = accessToken_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          accessToken_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Access Token
       * </pre>
       *
       * <code>string accessToken = 1;</code>
       */
      public Builder setAccessToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        accessToken_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Access Token
       * </pre>
       *
       * <code>string accessToken = 1;</code>
       */
      public Builder clearAccessToken() {
        
        accessToken_ = getDefaultInstance().getAccessToken();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Access Token
       * </pre>
       *
       * <code>string accessToken = 1;</code>
       */
      public Builder setAccessTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        accessToken_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object authorizationToken_ = "";
      /**
       * <pre>
       *&#47;Authorization Token / Null on TU's
       * </pre>
       *
       * <code>string authorizationToken = 2;</code>
       */
      public java.lang.String getAuthorizationToken() {
        java.lang.Object ref = authorizationToken_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          authorizationToken_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47;Authorization Token / Null on TU's
       * </pre>
       *
       * <code>string authorizationToken = 2;</code>
       */
      public com.google.protobuf.ByteString
          getAuthorizationTokenBytes() {
        java.lang.Object ref = authorizationToken_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          authorizationToken_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47;Authorization Token / Null on TU's
       * </pre>
       *
       * <code>string authorizationToken = 2;</code>
       */
      public Builder setAuthorizationToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        authorizationToken_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;Authorization Token / Null on TU's
       * </pre>
       *
       * <code>string authorizationToken = 2;</code>
       */
      public Builder clearAuthorizationToken() {
        
        authorizationToken_ = getDefaultInstance().getAuthorizationToken();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;Authorization Token / Null on TU's
       * </pre>
       *
       * <code>string authorizationToken = 2;</code>
       */
      public Builder setAuthorizationTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        authorizationToken_ = value;
        onChanged();
        return this;
      }

      private int expiresIn_ ;
      /**
       * <pre>
       *&#47; The lifetime of the access token in seconds.
       * </pre>
       *
       * <code>int32 expiresIn = 3;</code>
       */
      public int getExpiresIn() {
        return expiresIn_;
      }
      /**
       * <pre>
       *&#47; The lifetime of the access token in seconds.
       * </pre>
       *
       * <code>int32 expiresIn = 3;</code>
       */
      public Builder setExpiresIn(int value) {
        
        expiresIn_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; The lifetime of the access token in seconds.
       * </pre>
       *
       * <code>int32 expiresIn = 3;</code>
       */
      public Builder clearExpiresIn() {
        
        expiresIn_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object refreshToken_ = "";
      /**
       * <pre>
       *&#47; Refresh token to be used to retrieve new tokens when they are expired
       * </pre>
       *
       * <code>string refreshToken = 4;</code>
       */
      public java.lang.String getRefreshToken() {
        java.lang.Object ref = refreshToken_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          refreshToken_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Refresh token to be used to retrieve new tokens when they are expired
       * </pre>
       *
       * <code>string refreshToken = 4;</code>
       */
      public com.google.protobuf.ByteString
          getRefreshTokenBytes() {
        java.lang.Object ref = refreshToken_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          refreshToken_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Refresh token to be used to retrieve new tokens when they are expired
       * </pre>
       *
       * <code>string refreshToken = 4;</code>
       */
      public Builder setRefreshToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        refreshToken_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Refresh token to be used to retrieve new tokens when they are expired
       * </pre>
       *
       * <code>string refreshToken = 4;</code>
       */
      public Builder clearRefreshToken() {
        
        refreshToken_ = getDefaultInstance().getRefreshToken();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Refresh token to be used to retrieve new tokens when they are expired
       * </pre>
       *
       * <code>string refreshToken = 4;</code>
       */
      public Builder setRefreshTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        refreshToken_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object tokenType_ = "";
      /**
       * <pre>
       *&#47; use only bearer
       * </pre>
       *
       * <code>string token_type = 5;</code>
       */
      public java.lang.String getTokenType() {
        java.lang.Object ref = tokenType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          tokenType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; use only bearer
       * </pre>
       *
       * <code>string token_type = 5;</code>
       */
      public com.google.protobuf.ByteString
          getTokenTypeBytes() {
        java.lang.Object ref = tokenType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tokenType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; use only bearer
       * </pre>
       *
       * <code>string token_type = 5;</code>
       */
      public Builder setTokenType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        tokenType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; use only bearer
       * </pre>
       *
       * <code>string token_type = 5;</code>
       */
      public Builder clearTokenType() {
        
        tokenType_ = getDefaultInstance().getTokenType();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; use only bearer
       * </pre>
       *
       * <code>string token_type = 5;</code>
       */
      public Builder setTokenTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        tokenType_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object accountDN_ = "";
      /**
       * <pre>
       *&#47; Account DNm unique account name
       * </pre>
       *
       * <code>string accountDN = 6;</code>
       */
      public java.lang.String getAccountDN() {
        java.lang.Object ref = accountDN_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          accountDN_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Account DNm unique account name
       * </pre>
       *
       * <code>string accountDN = 6;</code>
       */
      public com.google.protobuf.ByteString
          getAccountDNBytes() {
        java.lang.Object ref = accountDN_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          accountDN_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Account DNm unique account name
       * </pre>
       *
       * <code>string accountDN = 6;</code>
       */
      public Builder setAccountDN(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        accountDN_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Account DNm unique account name
       * </pre>
       *
       * <code>string accountDN = 6;</code>
       */
      public Builder clearAccountDN() {
        
        accountDN_ = getDefaultInstance().getAccountDN();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Account DNm unique account name
       * </pre>
       *
       * <code>string accountDN = 6;</code>
       */
      public Builder setAccountDNBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        accountDN_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


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

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

    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtVehAuth.CreateTokenResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *&#47; Type of challenge response, use "refresh token" for basic auth
     * </pre>
     *
     * <code>string grant_type = 1;</code>
     */
    java.lang.String getGrantType();
    /**
     * <pre>
     *&#47; Type of challenge response, use "refresh token" for basic auth
     * </pre>
     *
     * <code>string grant_type = 1;</code>
     */
    com.google.protobuf.ByteString
        getGrantTypeBytes();

    /**
     * <pre>
     *&#47; Correlation ID, unique to the TU
     * </pre>
     *
     * <code>string deviceId = 2;</code>
     */
    java.lang.String getDeviceId();
    /**
     * <pre>
     *&#47; Correlation ID, unique to the TU
     * </pre>
     *
     * <code>string deviceId = 2;</code>
     */
    com.google.protobuf.ByteString
        getDeviceIdBytes();

    /**
     * <pre>
     *&#47; Value of refresh token that was issued previously.
     * </pre>
     *
     * <code>string refreshToken = 3;</code>
     */
    java.lang.String getRefreshToken();
    /**
     * <pre>
     *&#47; Value of refresh token that was issued previously.
     * </pre>
     *
     * <code>string refreshToken = 3;</code>
     */
    com.google.protobuf.ByteString
        getRefreshTokenBytes();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.RefreshTokenRequest}
   */
  public  static final class RefreshTokenRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.RefreshTokenRequest)
      RefreshTokenRequestOrBuilder {
    // Use RefreshTokenRequest.newBuilder() to construct.
    private RefreshTokenRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RefreshTokenRequest() {
      grantType_ = "";
      deviceId_ = "";
      refreshToken_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private RefreshTokenRequest(
        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();

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

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

              refreshToken_ = s;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_RefreshTokenRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_RefreshTokenRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenRequest.class, com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenRequest.Builder.class);
    }

    public static final int GRANT_TYPE_FIELD_NUMBER = 1;
    private volatile java.lang.Object grantType_;
    /**
     * <pre>
     *&#47; Type of challenge response, use "refresh token" for basic auth
     * </pre>
     *
     * <code>string grant_type = 1;</code>
     */
    public java.lang.String getGrantType() {
      java.lang.Object ref = grantType_;
      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();
        grantType_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Type of challenge response, use "refresh token" for basic auth
     * </pre>
     *
     * <code>string grant_type = 1;</code>
     */
    public com.google.protobuf.ByteString
        getGrantTypeBytes() {
      java.lang.Object ref = grantType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        grantType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICEID_FIELD_NUMBER = 2;
    private volatile java.lang.Object deviceId_;
    /**
     * <pre>
     *&#47; Correlation ID, unique to the TU
     * </pre>
     *
     * <code>string deviceId = 2;</code>
     */
    public java.lang.String getDeviceId() {
      java.lang.Object ref = deviceId_;
      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();
        deviceId_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Correlation ID, unique to the TU
     * </pre>
     *
     * <code>string deviceId = 2;</code>
     */
    public com.google.protobuf.ByteString
        getDeviceIdBytes() {
      java.lang.Object ref = deviceId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deviceId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int REFRESHTOKEN_FIELD_NUMBER = 3;
    private volatile java.lang.Object refreshToken_;
    /**
     * <pre>
     *&#47; Value of refresh token that was issued previously.
     * </pre>
     *
     * <code>string refreshToken = 3;</code>
     */
    public java.lang.String getRefreshToken() {
      java.lang.Object ref = refreshToken_;
      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();
        refreshToken_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Value of refresh token that was issued previously.
     * </pre>
     *
     * <code>string refreshToken = 3;</code>
     */
    public com.google.protobuf.ByteString
        getRefreshTokenBytes() {
      java.lang.Object ref = refreshToken_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        refreshToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getGrantTypeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, grantType_);
      }
      if (!getDeviceIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, deviceId_);
      }
      if (!getRefreshTokenBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, refreshToken_);
      }
    }

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

      size = 0;
      if (!getGrantTypeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, grantType_);
      }
      if (!getDeviceIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, deviceId_);
      }
      if (!getRefreshTokenBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, refreshToken_);
      }
      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.GlobalUconnectExtVehAuth.RefreshTokenRequest)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenRequest other = (com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenRequest) obj;

      boolean result = true;
      result = result && getGrantType()
          .equals(other.getGrantType());
      result = result && getDeviceId()
          .equals(other.getDeviceId());
      result = result && getRefreshToken()
          .equals(other.getRefreshToken());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + GRANT_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getGrantType().hashCode();
      hash = (37 * hash) + DEVICEID_FIELD_NUMBER;
      hash = (53 * hash) + getDeviceId().hashCode();
      hash = (37 * hash) + REFRESHTOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getRefreshToken().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_RefreshTokenRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenRequest.class, com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenRequest.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenRequest.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();
        grantType_ = "";

        deviceId_ = "";

        refreshToken_ = "";

        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenRequest getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenRequest.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenRequest buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenRequest result = new com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenRequest(this);
        result.grantType_ = grantType_;
        result.deviceId_ = deviceId_;
        result.refreshToken_ = refreshToken_;
        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.GlobalUconnectExtVehAuth.RefreshTokenRequest) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenRequest other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenRequest.getDefaultInstance()) return this;
        if (!other.getGrantType().isEmpty()) {
          grantType_ = other.grantType_;
          onChanged();
        }
        if (!other.getDeviceId().isEmpty()) {
          deviceId_ = other.deviceId_;
          onChanged();
        }
        if (!other.getRefreshToken().isEmpty()) {
          refreshToken_ = other.refreshToken_;
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.lang.Object grantType_ = "";
      /**
       * <pre>
       *&#47; Type of challenge response, use "refresh token" for basic auth
       * </pre>
       *
       * <code>string grant_type = 1;</code>
       */
      public java.lang.String getGrantType() {
        java.lang.Object ref = grantType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          grantType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Type of challenge response, use "refresh token" for basic auth
       * </pre>
       *
       * <code>string grant_type = 1;</code>
       */
      public com.google.protobuf.ByteString
          getGrantTypeBytes() {
        java.lang.Object ref = grantType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          grantType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Type of challenge response, use "refresh token" for basic auth
       * </pre>
       *
       * <code>string grant_type = 1;</code>
       */
      public Builder setGrantType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        grantType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Type of challenge response, use "refresh token" for basic auth
       * </pre>
       *
       * <code>string grant_type = 1;</code>
       */
      public Builder clearGrantType() {
        
        grantType_ = getDefaultInstance().getGrantType();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Type of challenge response, use "refresh token" for basic auth
       * </pre>
       *
       * <code>string grant_type = 1;</code>
       */
      public Builder setGrantTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        grantType_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object deviceId_ = "";
      /**
       * <pre>
       *&#47; Correlation ID, unique to the TU
       * </pre>
       *
       * <code>string deviceId = 2;</code>
       */
      public java.lang.String getDeviceId() {
        java.lang.Object ref = deviceId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          deviceId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Correlation ID, unique to the TU
       * </pre>
       *
       * <code>string deviceId = 2;</code>
       */
      public com.google.protobuf.ByteString
          getDeviceIdBytes() {
        java.lang.Object ref = deviceId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deviceId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Correlation ID, unique to the TU
       * </pre>
       *
       * <code>string deviceId = 2;</code>
       */
      public Builder setDeviceId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        deviceId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Correlation ID, unique to the TU
       * </pre>
       *
       * <code>string deviceId = 2;</code>
       */
      public Builder clearDeviceId() {
        
        deviceId_ = getDefaultInstance().getDeviceId();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Correlation ID, unique to the TU
       * </pre>
       *
       * <code>string deviceId = 2;</code>
       */
      public Builder setDeviceIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        deviceId_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object refreshToken_ = "";
      /**
       * <pre>
       *&#47; Value of refresh token that was issued previously.
       * </pre>
       *
       * <code>string refreshToken = 3;</code>
       */
      public java.lang.String getRefreshToken() {
        java.lang.Object ref = refreshToken_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          refreshToken_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Value of refresh token that was issued previously.
       * </pre>
       *
       * <code>string refreshToken = 3;</code>
       */
      public com.google.protobuf.ByteString
          getRefreshTokenBytes() {
        java.lang.Object ref = refreshToken_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          refreshToken_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Value of refresh token that was issued previously.
       * </pre>
       *
       * <code>string refreshToken = 3;</code>
       */
      public Builder setRefreshToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        refreshToken_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Value of refresh token that was issued previously.
       * </pre>
       *
       * <code>string refreshToken = 3;</code>
       */
      public Builder clearRefreshToken() {
        
        refreshToken_ = getDefaultInstance().getRefreshToken();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Value of refresh token that was issued previously.
       * </pre>
       *
       * <code>string refreshToken = 3;</code>
       */
      public Builder setRefreshTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        refreshToken_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


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

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

    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *&#47; Access Token
     * </pre>
     *
     * <code>string accessToken = 1;</code>
     */
    java.lang.String getAccessToken();
    /**
     * <pre>
     *&#47; Access Token
     * </pre>
     *
     * <code>string accessToken = 1;</code>
     */
    com.google.protobuf.ByteString
        getAccessTokenBytes();

    /**
     * <pre>
     *&#47;Authorization Token
     * </pre>
     *
     * <code>string authorizationToken = 2;</code>
     */
    java.lang.String getAuthorizationToken();
    /**
     * <pre>
     *&#47;Authorization Token
     * </pre>
     *
     * <code>string authorizationToken = 2;</code>
     */
    com.google.protobuf.ByteString
        getAuthorizationTokenBytes();

    /**
     * <pre>
     *&#47; time until the token(s) expire
     * </pre>
     *
     * <code>int32 expiresIn = 3;</code>
     */
    int getExpiresIn();

    /**
     * <pre>
     *&#47; refresh Authorization Token
     * </pre>
     *
     * <code>string refreshToken = 4;</code>
     */
    java.lang.String getRefreshToken();
    /**
     * <pre>
     *&#47; refresh Authorization Token
     * </pre>
     *
     * <code>string refreshToken = 4;</code>
     */
    com.google.protobuf.ByteString
        getRefreshTokenBytes();

    /**
     * <pre>
     *&#47; use only bearer
     * </pre>
     *
     * <code>string token_type = 5;</code>
     */
    java.lang.String getTokenType();
    /**
     * <pre>
     *&#47; use only bearer
     * </pre>
     *
     * <code>string token_type = 5;</code>
     */
    com.google.protobuf.ByteString
        getTokenTypeBytes();

    /**
     * <pre>
     *&#47; Account DN
     * </pre>
     *
     * <code>string accountDN = 6;</code>
     */
    java.lang.String getAccountDN();
    /**
     * <pre>
     *&#47; Account DN
     * </pre>
     *
     * <code>string accountDN = 6;</code>
     */
    com.google.protobuf.ByteString
        getAccountDNBytes();

    /**
     * <pre>
     *&#47; Success or Failure Response
     * </pre>
     *
     * <code>.com.fca.uconnect.global.RefreshTokenResponse.ResponseEnum responseEnum = 7;</code>
     */
    int getResponseEnumValue();
    /**
     * <pre>
     *&#47; Success or Failure Response
     * </pre>
     *
     * <code>.com.fca.uconnect.global.RefreshTokenResponse.ResponseEnum responseEnum = 7;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.ResponseEnum getResponseEnum();

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

    /**
     * <pre>
     *&#47; Specific error code. Error codes should include Invalid_Grant and Common Error Codes
     * </pre>
     *
     * <code>int32 failureReasonCode = 9;</code>
     */
    int getFailureReasonCode();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.RefreshTokenResponse}
   */
  public  static final class RefreshTokenResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.RefreshTokenResponse)
      RefreshTokenResponseOrBuilder {
    // Use RefreshTokenResponse.newBuilder() to construct.
    private RefreshTokenResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RefreshTokenResponse() {
      accessToken_ = "";
      authorizationToken_ = "";
      expiresIn_ = 0;
      refreshToken_ = "";
      tokenType_ = "";
      accountDN_ = "";
      responseEnum_ = 0;
      isTransient_ = false;
      failureReasonCode_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private RefreshTokenResponse(
        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();

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

              authorizationToken_ = s;
              break;
            }
            case 24: {

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

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

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

              accountDN_ = s;
              break;
            }
            case 56: {
              int rawValue = input.readEnum();

              responseEnum_ = rawValue;
              break;
            }
            case 64: {

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

              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.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_RefreshTokenResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_RefreshTokenResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.class, com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.Builder.class);
    }

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

      /**
       * <pre>
       *&#47; Response successful for provisioning.
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      public static final int SUCCESS_VALUE = 0;
      /**
       * <pre>
       *&#47; Response failure for provisioning.
       * </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.GlobalUconnectExtVehAuth.RefreshTokenResponse.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.RefreshTokenResponse.ResponseEnum)
    }

    public static final int ACCESSTOKEN_FIELD_NUMBER = 1;
    private volatile java.lang.Object accessToken_;
    /**
     * <pre>
     *&#47; Access Token
     * </pre>
     *
     * <code>string accessToken = 1;</code>
     */
    public java.lang.String getAccessToken() {
      java.lang.Object ref = accessToken_;
      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();
        accessToken_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Access Token
     * </pre>
     *
     * <code>string accessToken = 1;</code>
     */
    public com.google.protobuf.ByteString
        getAccessTokenBytes() {
      java.lang.Object ref = accessToken_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        accessToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int AUTHORIZATIONTOKEN_FIELD_NUMBER = 2;
    private volatile java.lang.Object authorizationToken_;
    /**
     * <pre>
     *&#47;Authorization Token
     * </pre>
     *
     * <code>string authorizationToken = 2;</code>
     */
    public java.lang.String getAuthorizationToken() {
      java.lang.Object ref = authorizationToken_;
      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();
        authorizationToken_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47;Authorization Token
     * </pre>
     *
     * <code>string authorizationToken = 2;</code>
     */
    public com.google.protobuf.ByteString
        getAuthorizationTokenBytes() {
      java.lang.Object ref = authorizationToken_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        authorizationToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXPIRESIN_FIELD_NUMBER = 3;
    private int expiresIn_;
    /**
     * <pre>
     *&#47; time until the token(s) expire
     * </pre>
     *
     * <code>int32 expiresIn = 3;</code>
     */
    public int getExpiresIn() {
      return expiresIn_;
    }

    public static final int REFRESHTOKEN_FIELD_NUMBER = 4;
    private volatile java.lang.Object refreshToken_;
    /**
     * <pre>
     *&#47; refresh Authorization Token
     * </pre>
     *
     * <code>string refreshToken = 4;</code>
     */
    public java.lang.String getRefreshToken() {
      java.lang.Object ref = refreshToken_;
      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();
        refreshToken_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; refresh Authorization Token
     * </pre>
     *
     * <code>string refreshToken = 4;</code>
     */
    public com.google.protobuf.ByteString
        getRefreshTokenBytes() {
      java.lang.Object ref = refreshToken_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        refreshToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TOKEN_TYPE_FIELD_NUMBER = 5;
    private volatile java.lang.Object tokenType_;
    /**
     * <pre>
     *&#47; use only bearer
     * </pre>
     *
     * <code>string token_type = 5;</code>
     */
    public java.lang.String getTokenType() {
      java.lang.Object ref = tokenType_;
      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();
        tokenType_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; use only bearer
     * </pre>
     *
     * <code>string token_type = 5;</code>
     */
    public com.google.protobuf.ByteString
        getTokenTypeBytes() {
      java.lang.Object ref = tokenType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tokenType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ACCOUNTDN_FIELD_NUMBER = 6;
    private volatile java.lang.Object accountDN_;
    /**
     * <pre>
     *&#47; Account DN
     * </pre>
     *
     * <code>string accountDN = 6;</code>
     */
    public java.lang.String getAccountDN() {
      java.lang.Object ref = accountDN_;
      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();
        accountDN_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Account DN
     * </pre>
     *
     * <code>string accountDN = 6;</code>
     */
    public com.google.protobuf.ByteString
        getAccountDNBytes() {
      java.lang.Object ref = accountDN_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        accountDN_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RESPONSEENUM_FIELD_NUMBER = 7;
    private int responseEnum_;
    /**
     * <pre>
     *&#47; Success or Failure Response
     * </pre>
     *
     * <code>.com.fca.uconnect.global.RefreshTokenResponse.ResponseEnum responseEnum = 7;</code>
     */
    public int getResponseEnumValue() {
      return responseEnum_;
    }
    /**
     * <pre>
     *&#47; Success or Failure Response
     * </pre>
     *
     * <code>.com.fca.uconnect.global.RefreshTokenResponse.ResponseEnum responseEnum = 7;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.ResponseEnum getResponseEnum() {
      com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.ResponseEnum.valueOf(responseEnum_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.ResponseEnum.UNRECOGNIZED : result;
    }

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

    public static final int FAILUREREASONCODE_FIELD_NUMBER = 9;
    private int failureReasonCode_;
    /**
     * <pre>
     *&#47; Specific error code. Error codes should include Invalid_Grant and Common Error Codes
     * </pre>
     *
     * <code>int32 failureReasonCode = 9;</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 (!getAccessTokenBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, accessToken_);
      }
      if (!getAuthorizationTokenBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, authorizationToken_);
      }
      if (expiresIn_ != 0) {
        output.writeInt32(3, expiresIn_);
      }
      if (!getRefreshTokenBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, refreshToken_);
      }
      if (!getTokenTypeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, tokenType_);
      }
      if (!getAccountDNBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, accountDN_);
      }
      if (responseEnum_ != com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.ResponseEnum.SUCCESS.getNumber()) {
        output.writeEnum(7, responseEnum_);
      }
      if (isTransient_ != false) {
        output.writeBool(8, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        output.writeInt32(9, failureReasonCode_);
      }
    }

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

      size = 0;
      if (!getAccessTokenBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, accessToken_);
      }
      if (!getAuthorizationTokenBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, authorizationToken_);
      }
      if (expiresIn_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, expiresIn_);
      }
      if (!getRefreshTokenBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, refreshToken_);
      }
      if (!getTokenTypeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, tokenType_);
      }
      if (!getAccountDNBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, accountDN_);
      }
      if (responseEnum_ != com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.ResponseEnum.SUCCESS.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(7, responseEnum_);
      }
      if (isTransient_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, 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.GlobalUconnectExtVehAuth.RefreshTokenResponse)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse other = (com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse) obj;

      boolean result = true;
      result = result && getAccessToken()
          .equals(other.getAccessToken());
      result = result && getAuthorizationToken()
          .equals(other.getAuthorizationToken());
      result = result && (getExpiresIn()
          == other.getExpiresIn());
      result = result && getRefreshToken()
          .equals(other.getRefreshToken());
      result = result && getTokenType()
          .equals(other.getTokenType());
      result = result && getAccountDN()
          .equals(other.getAccountDN());
      result = result && responseEnum_ == other.responseEnum_;
      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) + ACCESSTOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getAccessToken().hashCode();
      hash = (37 * hash) + AUTHORIZATIONTOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getAuthorizationToken().hashCode();
      hash = (37 * hash) + EXPIRESIN_FIELD_NUMBER;
      hash = (53 * hash) + getExpiresIn();
      hash = (37 * hash) + REFRESHTOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getRefreshToken().hashCode();
      hash = (37 * hash) + TOKEN_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getTokenType().hashCode();
      hash = (37 * hash) + ACCOUNTDN_FIELD_NUMBER;
      hash = (53 * hash) + getAccountDN().hashCode();
      hash = (37 * hash) + RESPONSEENUM_FIELD_NUMBER;
      hash = (53 * hash) + responseEnum_;
      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.GlobalUconnectExtVehAuth.RefreshTokenResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse 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.GlobalUconnectExtVehAuth.RefreshTokenResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse 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.GlobalUconnectExtVehAuth.RefreshTokenResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse 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.GlobalUconnectExtVehAuth.RefreshTokenResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse 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.GlobalUconnectExtVehAuth.RefreshTokenResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse 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.GlobalUconnectExtVehAuth.RefreshTokenResponse 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.RefreshTokenResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.RefreshTokenResponse)
        com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_RefreshTokenResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtVehAuth.internal_static_com_fca_uconnect_global_RefreshTokenResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.class, com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.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();
        accessToken_ = "";

        authorizationToken_ = "";

        expiresIn_ = 0;

        refreshToken_ = "";

        tokenType_ = "";

        accountDN_ = "";

        responseEnum_ = 0;

        isTransient_ = false;

        failureReasonCode_ = 0;

        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse result = new com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse(this);
        result.accessToken_ = accessToken_;
        result.authorizationToken_ = authorizationToken_;
        result.expiresIn_ = expiresIn_;
        result.refreshToken_ = refreshToken_;
        result.tokenType_ = tokenType_;
        result.accountDN_ = accountDN_;
        result.responseEnum_ = responseEnum_;
        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.GlobalUconnectExtVehAuth.RefreshTokenResponse) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.getDefaultInstance()) return this;
        if (!other.getAccessToken().isEmpty()) {
          accessToken_ = other.accessToken_;
          onChanged();
        }
        if (!other.getAuthorizationToken().isEmpty()) {
          authorizationToken_ = other.authorizationToken_;
          onChanged();
        }
        if (other.getExpiresIn() != 0) {
          setExpiresIn(other.getExpiresIn());
        }
        if (!other.getRefreshToken().isEmpty()) {
          refreshToken_ = other.refreshToken_;
          onChanged();
        }
        if (!other.getTokenType().isEmpty()) {
          tokenType_ = other.tokenType_;
          onChanged();
        }
        if (!other.getAccountDN().isEmpty()) {
          accountDN_ = other.accountDN_;
          onChanged();
        }
        if (other.responseEnum_ != 0) {
          setResponseEnumValue(other.getResponseEnumValue());
        }
        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.GlobalUconnectExtVehAuth.RefreshTokenResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object accessToken_ = "";
      /**
       * <pre>
       *&#47; Access Token
       * </pre>
       *
       * <code>string accessToken = 1;</code>
       */
      public java.lang.String getAccessToken() {
        java.lang.Object ref = accessToken_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          accessToken_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Access Token
       * </pre>
       *
       * <code>string accessToken = 1;</code>
       */
      public com.google.protobuf.ByteString
          getAccessTokenBytes() {
        java.lang.Object ref = accessToken_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          accessToken_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Access Token
       * </pre>
       *
       * <code>string accessToken = 1;</code>
       */
      public Builder setAccessToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        accessToken_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Access Token
       * </pre>
       *
       * <code>string accessToken = 1;</code>
       */
      public Builder clearAccessToken() {
        
        accessToken_ = getDefaultInstance().getAccessToken();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Access Token
       * </pre>
       *
       * <code>string accessToken = 1;</code>
       */
      public Builder setAccessTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        accessToken_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object authorizationToken_ = "";
      /**
       * <pre>
       *&#47;Authorization Token
       * </pre>
       *
       * <code>string authorizationToken = 2;</code>
       */
      public java.lang.String getAuthorizationToken() {
        java.lang.Object ref = authorizationToken_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          authorizationToken_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47;Authorization Token
       * </pre>
       *
       * <code>string authorizationToken = 2;</code>
       */
      public com.google.protobuf.ByteString
          getAuthorizationTokenBytes() {
        java.lang.Object ref = authorizationToken_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          authorizationToken_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47;Authorization Token
       * </pre>
       *
       * <code>string authorizationToken = 2;</code>
       */
      public Builder setAuthorizationToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        authorizationToken_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;Authorization Token
       * </pre>
       *
       * <code>string authorizationToken = 2;</code>
       */
      public Builder clearAuthorizationToken() {
        
        authorizationToken_ = getDefaultInstance().getAuthorizationToken();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;Authorization Token
       * </pre>
       *
       * <code>string authorizationToken = 2;</code>
       */
      public Builder setAuthorizationTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        authorizationToken_ = value;
        onChanged();
        return this;
      }

      private int expiresIn_ ;
      /**
       * <pre>
       *&#47; time until the token(s) expire
       * </pre>
       *
       * <code>int32 expiresIn = 3;</code>
       */
      public int getExpiresIn() {
        return expiresIn_;
      }
      /**
       * <pre>
       *&#47; time until the token(s) expire
       * </pre>
       *
       * <code>int32 expiresIn = 3;</code>
       */
      public Builder setExpiresIn(int value) {
        
        expiresIn_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; time until the token(s) expire
       * </pre>
       *
       * <code>int32 expiresIn = 3;</code>
       */
      public Builder clearExpiresIn() {
        
        expiresIn_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object refreshToken_ = "";
      /**
       * <pre>
       *&#47; refresh Authorization Token
       * </pre>
       *
       * <code>string refreshToken = 4;</code>
       */
      public java.lang.String getRefreshToken() {
        java.lang.Object ref = refreshToken_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          refreshToken_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; refresh Authorization Token
       * </pre>
       *
       * <code>string refreshToken = 4;</code>
       */
      public com.google.protobuf.ByteString
          getRefreshTokenBytes() {
        java.lang.Object ref = refreshToken_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          refreshToken_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; refresh Authorization Token
       * </pre>
       *
       * <code>string refreshToken = 4;</code>
       */
      public Builder setRefreshToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        refreshToken_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; refresh Authorization Token
       * </pre>
       *
       * <code>string refreshToken = 4;</code>
       */
      public Builder clearRefreshToken() {
        
        refreshToken_ = getDefaultInstance().getRefreshToken();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; refresh Authorization Token
       * </pre>
       *
       * <code>string refreshToken = 4;</code>
       */
      public Builder setRefreshTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        refreshToken_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object tokenType_ = "";
      /**
       * <pre>
       *&#47; use only bearer
       * </pre>
       *
       * <code>string token_type = 5;</code>
       */
      public java.lang.String getTokenType() {
        java.lang.Object ref = tokenType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          tokenType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; use only bearer
       * </pre>
       *
       * <code>string token_type = 5;</code>
       */
      public com.google.protobuf.ByteString
          getTokenTypeBytes() {
        java.lang.Object ref = tokenType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tokenType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; use only bearer
       * </pre>
       *
       * <code>string token_type = 5;</code>
       */
      public Builder setTokenType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        tokenType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; use only bearer
       * </pre>
       *
       * <code>string token_type = 5;</code>
       */
      public Builder clearTokenType() {
        
        tokenType_ = getDefaultInstance().getTokenType();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; use only bearer
       * </pre>
       *
       * <code>string token_type = 5;</code>
       */
      public Builder setTokenTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        tokenType_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object accountDN_ = "";
      /**
       * <pre>
       *&#47; Account DN
       * </pre>
       *
       * <code>string accountDN = 6;</code>
       */
      public java.lang.String getAccountDN() {
        java.lang.Object ref = accountDN_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          accountDN_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Account DN
       * </pre>
       *
       * <code>string accountDN = 6;</code>
       */
      public com.google.protobuf.ByteString
          getAccountDNBytes() {
        java.lang.Object ref = accountDN_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          accountDN_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Account DN
       * </pre>
       *
       * <code>string accountDN = 6;</code>
       */
      public Builder setAccountDN(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        accountDN_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Account DN
       * </pre>
       *
       * <code>string accountDN = 6;</code>
       */
      public Builder clearAccountDN() {
        
        accountDN_ = getDefaultInstance().getAccountDN();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Account DN
       * </pre>
       *
       * <code>string accountDN = 6;</code>
       */
      public Builder setAccountDNBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        accountDN_ = value;
        onChanged();
        return this;
      }

      private int responseEnum_ = 0;
      /**
       * <pre>
       *&#47; Success or Failure Response
       * </pre>
       *
       * <code>.com.fca.uconnect.global.RefreshTokenResponse.ResponseEnum responseEnum = 7;</code>
       */
      public int getResponseEnumValue() {
        return responseEnum_;
      }
      /**
       * <pre>
       *&#47; Success or Failure Response
       * </pre>
       *
       * <code>.com.fca.uconnect.global.RefreshTokenResponse.ResponseEnum responseEnum = 7;</code>
       */
      public Builder setResponseEnumValue(int value) {
        responseEnum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Success or Failure Response
       * </pre>
       *
       * <code>.com.fca.uconnect.global.RefreshTokenResponse.ResponseEnum responseEnum = 7;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.ResponseEnum getResponseEnum() {
        com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.ResponseEnum.valueOf(responseEnum_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.ResponseEnum.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       *&#47; Success or Failure Response
       * </pre>
       *
       * <code>.com.fca.uconnect.global.RefreshTokenResponse.ResponseEnum responseEnum = 7;</code>
       */
      public Builder setResponseEnum(com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse.ResponseEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        responseEnum_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Success or Failure Response
       * </pre>
       *
       * <code>.com.fca.uconnect.global.RefreshTokenResponse.ResponseEnum responseEnum = 7;</code>
       */
      public Builder clearResponseEnum() {
        
        responseEnum_ = 0;
        onChanged();
        return this;
      }

      private boolean isTransient_ ;
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 8;</code>
       */
      public boolean getIsTransient() {
        return isTransient_;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 8;</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 = 8;</code>
       */
      public Builder clearIsTransient() {
        
        isTransient_ = false;
        onChanged();
        return this;
      }

      private int failureReasonCode_ ;
      /**
       * <pre>
       *&#47; Specific error code. Error codes should include Invalid_Grant and Common Error Codes
       * </pre>
       *
       * <code>int32 failureReasonCode = 9;</code>
       */
      public int getFailureReasonCode() {
        return failureReasonCode_;
      }
      /**
       * <pre>
       *&#47; Specific error code. Error codes should include Invalid_Grant and Common Error Codes
       * </pre>
       *
       * <code>int32 failureReasonCode = 9;</code>
       */
      public Builder setFailureReasonCode(int value) {
        
        failureReasonCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Specific error code. Error codes should include Invalid_Grant and Common Error Codes
       * </pre>
       *
       * <code>int32 failureReasonCode = 9;</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.RefreshTokenResponse)
    }

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

    public static com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtVehAuth.RefreshTokenResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehAuthRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehAuthRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_VehAuthResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_VehAuthResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_CreateTokenRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_CreateTokenRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_CreateTokenResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_CreateTokenResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_RefreshTokenRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_RefreshTokenRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_RefreshTokenResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_RefreshTokenResponse_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_VehAuth.proto\022\027com" +
      ".fca.uconnect.global\032\034Global_Uconnect_De" +
      "vice.proto\"\360\001\n\016VehAuthRequest\022\013\n\003vin\030\001 \001" +
      "(\t\022/\n\006device\030\002 \001(\0132\037.com.fca.uconnect.gl" +
      "obal.Device\022\021\n\tauthToken\030\003 \001(\014\022\r\n\005nonce\030" +
      "\004 \001(\014\022E\n\004type\030\005 \001(\01627.com.fca.uconnect.g" +
      "lobal.VehAuthRequest.RequestTypeEnum\"7\n\017" +
      "RequestTypeEnum\022\013\n\007UNKNOWN\020\000\022\013\n\007INITIAL\020" +
      "\001\022\n\n\006SECOND\020\002\"\257\001\n\017VehAuthResponse\022\024\n\014ses" +
      "sionToken\030\001 \001(\014\022\r\n\005nonce\030\002 \001(\014\022D\n\004type\030\003",
      " \001(\01626.com.fca.uconnect.global.VehAuthRe" +
      "sponse.TokenTypeEnum\"1\n\rTokenTypeEnum\022\013\n" +
      "\007UNKNOWN\020\000\022\010\n\004TEMP\020\001\022\t\n\005VALID\020\002\"K\n\022Creat" +
      "eTokenRequest\022\022\n\ngrant_type\030\001 \001(\t\022\020\n\010dev" +
      "iceId\030\002 \001(\t\022\017\n\007permKey\030\003 \001(\t\"\226\001\n\023CreateT" +
      "okenResponse\022\023\n\013accessToken\030\001 \001(\t\022\032\n\022aut" +
      "horizationToken\030\002 \001(\t\022\021\n\texpiresIn\030\003 \001(\005" +
      "\022\024\n\014refreshToken\030\004 \001(\t\022\022\n\ntoken_type\030\005 \001" +
      "(\t\022\021\n\taccountDN\030\006 \001(\t\"Q\n\023RefreshTokenReq" +
      "uest\022\022\n\ngrant_type\030\001 \001(\t\022\020\n\010deviceId\030\002 \001",
      "(\t\022\024\n\014refreshToken\030\003 \001(\t\"\303\002\n\024RefreshToke" +
      "nResponse\022\023\n\013accessToken\030\001 \001(\t\022\032\n\022author" +
      "izationToken\030\002 \001(\t\022\021\n\texpiresIn\030\003 \001(\005\022\024\n" +
      "\014refreshToken\030\004 \001(\t\022\022\n\ntoken_type\030\005 \001(\t\022" +
      "\021\n\taccountDN\030\006 \001(\t\022P\n\014responseEnum\030\007 \001(\016" +
      "2:.com.fca.uconnect.global.RefreshTokenR" +
      "esponse.ResponseEnum\022\023\n\013isTransient\030\010 \001(" +
      "\010\022\031\n\021failureReasonCode\030\t \001(\005\"(\n\014Response" +
      "Enum\022\013\n\007SUCCESS\020\000\022\013\n\007FAILURE\020\001P\000b\006proto3"
    };
    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_VehAuthRequest_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_com_fca_uconnect_global_VehAuthRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehAuthRequest_descriptor,
        new java.lang.String[] { "Vin", "Device", "AuthToken", "Nonce", "Type", });
    internal_static_com_fca_uconnect_global_VehAuthResponse_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_com_fca_uconnect_global_VehAuthResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_VehAuthResponse_descriptor,
        new java.lang.String[] { "SessionToken", "Nonce", "Type", });
    internal_static_com_fca_uconnect_global_CreateTokenRequest_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_com_fca_uconnect_global_CreateTokenRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_CreateTokenRequest_descriptor,
        new java.lang.String[] { "GrantType", "DeviceId", "PermKey", });
    internal_static_com_fca_uconnect_global_CreateTokenResponse_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_com_fca_uconnect_global_CreateTokenResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_CreateTokenResponse_descriptor,
        new java.lang.String[] { "AccessToken", "AuthorizationToken", "ExpiresIn", "RefreshToken", "TokenType", "AccountDN", });
    internal_static_com_fca_uconnect_global_RefreshTokenRequest_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_com_fca_uconnect_global_RefreshTokenRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_RefreshTokenRequest_descriptor,
        new java.lang.String[] { "GrantType", "DeviceId", "RefreshToken", });
    internal_static_com_fca_uconnect_global_RefreshTokenResponse_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_com_fca_uconnect_global_RefreshTokenResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_RefreshTokenResponse_descriptor,
        new java.lang.String[] { "AccessToken", "AuthorizationToken", "ExpiresIn", "RefreshToken", "TokenType", "AccountDN", "ResponseEnum", "IsTransient", "FailureReasonCode", });
    com.fca.uconnect.global.GlobalUconnectDevice.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
