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

#ifndef PROTOBUF_Global_5fUconnect_5fExt_5fProvision_2eproto__INCLUDED
#define PROTOBUF_Global_5fUconnect_5fExt_5fProvision_2eproto__INCLUDED

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 3003000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 3003000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/map.h>  // IWYU pragma: export
#include <google/protobuf/map_field_inl.h>
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
#include "Global_Uconnect_Device.pb.h"  // IWYU pragma: export
#include "Global_Uconnect_DRM.pb.h"  // IWYU pragma: export
// @@protoc_insertion_point(includes)
namespace com {
namespace fca {
namespace uconnect {
namespace global {
class BIMDPSKInfo;
class BIMDPSKInfoDefaultTypeInternal;
extern BIMDPSKInfoDefaultTypeInternal _BIMDPSKInfo_default_instance_;
class BIMDPSKInfo_BIMDPSK;
class BIMDPSKInfo_BIMDPSKDefaultTypeInternal;
extern BIMDPSKInfo_BIMDPSKDefaultTypeInternal _BIMDPSKInfo_BIMDPSK_default_instance_;
class DRM;
class DRMDefaultTypeInternal;
extern DRMDefaultTypeInternal _DRM_default_instance_;
class DRMRegistration;
class DRMRegistrationDefaultTypeInternal;
extern DRMRegistrationDefaultTypeInternal _DRMRegistration_default_instance_;
class DRMSignature;
class DRMSignatureDefaultTypeInternal;
extern DRMSignatureDefaultTypeInternal _DRMSignature_default_instance_;
class Device;
class DeviceDefaultTypeInternal;
extern DeviceDefaultTypeInternal _Device_default_instance_;
class InitiateProvisioningPush;
class InitiateProvisioningPushDefaultTypeInternal;
extern InitiateProvisioningPushDefaultTypeInternal _InitiateProvisioningPush_default_instance_;
class InitiateProvisioningPush_ParametersEntry;
class InitiateProvisioningPush_ParametersEntryDefaultTypeInternal;
extern InitiateProvisioningPush_ParametersEntryDefaultTypeInternal _InitiateProvisioningPush_ParametersEntry_default_instance_;
class ProvisioningPush;
class ProvisioningPushDefaultTypeInternal;
extern ProvisioningPushDefaultTypeInternal _ProvisioningPush_default_instance_;
class ProvisioningPushAck;
class ProvisioningPushAckDefaultTypeInternal;
extern ProvisioningPushAckDefaultTypeInternal _ProvisioningPushAck_default_instance_;
class ProvisioningRequest;
class ProvisioningRequestDefaultTypeInternal;
extern ProvisioningRequestDefaultTypeInternal _ProvisioningRequest_default_instance_;
class ProvisioningRequest_AdditionalModemParamsEntry;
class ProvisioningRequest_AdditionalModemParamsEntryDefaultTypeInternal;
extern ProvisioningRequest_AdditionalModemParamsEntryDefaultTypeInternal _ProvisioningRequest_AdditionalModemParamsEntry_default_instance_;
class ProvisioningResponse;
class ProvisioningResponseDefaultTypeInternal;
extern ProvisioningResponseDefaultTypeInternal _ProvisioningResponse_default_instance_;
class ServiceDescription;
class ServiceDescriptionDefaultTypeInternal;
extern ServiceDescriptionDefaultTypeInternal _ServiceDescription_default_instance_;
class ServiceDescription_AdditionalParametersEntry;
class ServiceDescription_AdditionalParametersEntryDefaultTypeInternal;
extern ServiceDescription_AdditionalParametersEntryDefaultTypeInternal _ServiceDescription_AdditionalParametersEntry_default_instance_;
class ServiceSubscriptionInfo;
class ServiceSubscriptionInfoDefaultTypeInternal;
extern ServiceSubscriptionInfoDefaultTypeInternal _ServiceSubscriptionInfo_default_instance_;
class X509Certificates;
class X509CertificatesDefaultTypeInternal;
extern X509CertificatesDefaultTypeInternal _X509Certificates_default_instance_;
}  // namespace global
}  // namespace uconnect
}  // namespace fca
}  // namespace com

namespace com {
namespace fca {
namespace uconnect {
namespace global {

namespace protobuf_Global_5fUconnect_5fExt_5fProvision_2eproto {
// Internal implementation detail -- do not call these.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[];
  static const ::google::protobuf::uint32 offsets[];
  static void InitDefaultsImpl();
  static void Shutdown();
};
void AddDescriptors();
void InitDefaults();
}  // namespace protobuf_Global_5fUconnect_5fExt_5fProvision_2eproto

enum ProvisioningRequest_ReasonEnum {
  ProvisioningRequest_ReasonEnum_IGNITION_CYCLE_CHECK = 0,
  ProvisioningRequest_ReasonEnum_TBM_FLASH = 1,
  ProvisioningRequest_ReasonEnum_HU_FLASH = 2,
  ProvisioningRequest_ReasonEnum_ON_DEMAND = 3,
  ProvisioningRequest_ReasonEnum_MISDN_MISMATCH = 4,
  ProvisioningRequest_ReasonEnum_DISCREPENCY_CHECK = 5,
  ProvisioningRequest_ReasonEnum_SOFTWARE_REFRESH = 6,
  ProvisioningRequest_ReasonEnum_HU_SWAP = 7,
  ProvisioningRequest_ReasonEnum_TBM_SWAP = 8,
  ProvisioningRequest_ReasonEnum_ENROLLMENT = 9,
  ProvisioningRequest_ReasonEnum_RETURN_TO_NEW = 10,
  ProvisioningRequest_ReasonEnum_ProvisioningRequest_ReasonEnum_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
  ProvisioningRequest_ReasonEnum_ProvisioningRequest_ReasonEnum_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
};
bool ProvisioningRequest_ReasonEnum_IsValid(int value);
const ProvisioningRequest_ReasonEnum ProvisioningRequest_ReasonEnum_ReasonEnum_MIN = ProvisioningRequest_ReasonEnum_IGNITION_CYCLE_CHECK;
const ProvisioningRequest_ReasonEnum ProvisioningRequest_ReasonEnum_ReasonEnum_MAX = ProvisioningRequest_ReasonEnum_RETURN_TO_NEW;
const int ProvisioningRequest_ReasonEnum_ReasonEnum_ARRAYSIZE = ProvisioningRequest_ReasonEnum_ReasonEnum_MAX + 1;

const ::google::protobuf::EnumDescriptor* ProvisioningRequest_ReasonEnum_descriptor();
inline const ::std::string& ProvisioningRequest_ReasonEnum_Name(ProvisioningRequest_ReasonEnum value) {
  return ::google::protobuf::internal::NameOfEnum(
    ProvisioningRequest_ReasonEnum_descriptor(), value);
}
inline bool ProvisioningRequest_ReasonEnum_Parse(
    const ::std::string& name, ProvisioningRequest_ReasonEnum* value) {
  return ::google::protobuf::internal::ParseNamedEnum<ProvisioningRequest_ReasonEnum>(
    ProvisioningRequest_ReasonEnum_descriptor(), name, value);
}
enum ProvisioningResponse_ResponseEnum {
  ProvisioningResponse_ResponseEnum_SUCCESS = 0,
  ProvisioningResponse_ResponseEnum_FAILURE = 1,
  ProvisioningResponse_ResponseEnum_ProvisioningResponse_ResponseEnum_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
  ProvisioningResponse_ResponseEnum_ProvisioningResponse_ResponseEnum_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
};
bool ProvisioningResponse_ResponseEnum_IsValid(int value);
const ProvisioningResponse_ResponseEnum ProvisioningResponse_ResponseEnum_ResponseEnum_MIN = ProvisioningResponse_ResponseEnum_SUCCESS;
const ProvisioningResponse_ResponseEnum ProvisioningResponse_ResponseEnum_ResponseEnum_MAX = ProvisioningResponse_ResponseEnum_FAILURE;
const int ProvisioningResponse_ResponseEnum_ResponseEnum_ARRAYSIZE = ProvisioningResponse_ResponseEnum_ResponseEnum_MAX + 1;

const ::google::protobuf::EnumDescriptor* ProvisioningResponse_ResponseEnum_descriptor();
inline const ::std::string& ProvisioningResponse_ResponseEnum_Name(ProvisioningResponse_ResponseEnum value) {
  return ::google::protobuf::internal::NameOfEnum(
    ProvisioningResponse_ResponseEnum_descriptor(), value);
}
inline bool ProvisioningResponse_ResponseEnum_Parse(
    const ::std::string& name, ProvisioningResponse_ResponseEnum* value) {
  return ::google::protobuf::internal::ParseNamedEnum<ProvisioningResponse_ResponseEnum>(
    ProvisioningResponse_ResponseEnum_descriptor(), name, value);
}
enum ProvisioningPushAck_ProvisioningPushResponseEnum {
  ProvisioningPushAck_ProvisioningPushResponseEnum_SUCCESS = 0,
  ProvisioningPushAck_ProvisioningPushResponseEnum_FAILURE = 1,
  ProvisioningPushAck_ProvisioningPushResponseEnum_ProvisioningPushAck_ProvisioningPushResponseEnum_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
  ProvisioningPushAck_ProvisioningPushResponseEnum_ProvisioningPushAck_ProvisioningPushResponseEnum_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
};
bool ProvisioningPushAck_ProvisioningPushResponseEnum_IsValid(int value);
const ProvisioningPushAck_ProvisioningPushResponseEnum ProvisioningPushAck_ProvisioningPushResponseEnum_ProvisioningPushResponseEnum_MIN = ProvisioningPushAck_ProvisioningPushResponseEnum_SUCCESS;
const ProvisioningPushAck_ProvisioningPushResponseEnum ProvisioningPushAck_ProvisioningPushResponseEnum_ProvisioningPushResponseEnum_MAX = ProvisioningPushAck_ProvisioningPushResponseEnum_FAILURE;
const int ProvisioningPushAck_ProvisioningPushResponseEnum_ProvisioningPushResponseEnum_ARRAYSIZE = ProvisioningPushAck_ProvisioningPushResponseEnum_ProvisioningPushResponseEnum_MAX + 1;

const ::google::protobuf::EnumDescriptor* ProvisioningPushAck_ProvisioningPushResponseEnum_descriptor();
inline const ::std::string& ProvisioningPushAck_ProvisioningPushResponseEnum_Name(ProvisioningPushAck_ProvisioningPushResponseEnum value) {
  return ::google::protobuf::internal::NameOfEnum(
    ProvisioningPushAck_ProvisioningPushResponseEnum_descriptor(), value);
}
inline bool ProvisioningPushAck_ProvisioningPushResponseEnum_Parse(
    const ::std::string& name, ProvisioningPushAck_ProvisioningPushResponseEnum* value) {
  return ::google::protobuf::internal::ParseNamedEnum<ProvisioningPushAck_ProvisioningPushResponseEnum>(
    ProvisioningPushAck_ProvisioningPushResponseEnum_descriptor(), name, value);
}
enum ServiceDescription_ServiceTypeEnum {
  ServiceDescription_ServiceTypeEnum_WIFIHOTSPOT = 0,
  ServiceDescription_ServiceTypeEnum_ECALL = 1,
  ServiceDescription_ServiceTypeEnum_ROADSIDEASSIST = 2,
  ServiceDescription_ServiceTypeEnum_THEFTALARMNOTIFICATION = 3,
  ServiceDescription_ServiceTypeEnum_STOLENVEHICLEASSIST = 4,
  ServiceDescription_ServiceTypeEnum_SENDDESTINATIONTOCAR = 5,
  ServiceDescription_ServiceTypeEnum_VEHICLEFINDER = 6,
  ServiceDescription_ServiceTypeEnum_REMOTEDOORCONTROL = 7,
  ServiceDescription_ServiceTypeEnum_REMOTEENGINESTART = 8,
  ServiceDescription_ServiceTypeEnum_REMOTEHORNANDFLASH = 9,
  ServiceDescription_ServiceTypeEnum_RADIOPRESETS = 10,
  ServiceDescription_ServiceTypeEnum_MUSICFAVORITES = 11,
  ServiceDescription_ServiceTypeEnum_TEMPERATURE = 12,
  ServiceDescription_ServiceTypeEnum_HEATEDCOOLEDSEATS = 13,
  ServiceDescription_ServiceTypeEnum_HEATEDSTEERINGWHEEL = 14,
  ServiceDescription_ServiceTypeEnum_CONNECTEDVEHICLE = 15,
  ServiceDescription_ServiceTypeEnum_SQDF = 16,
  ServiceDescription_ServiceTypeEnum_FTM = 17,
  ServiceDescription_ServiceTypeEnum_EVDATACHN = 18,
  ServiceDescription_ServiceTypeEnum_ServiceDescription_ServiceTypeEnum_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
  ServiceDescription_ServiceTypeEnum_ServiceDescription_ServiceTypeEnum_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
};
bool ServiceDescription_ServiceTypeEnum_IsValid(int value);
const ServiceDescription_ServiceTypeEnum ServiceDescription_ServiceTypeEnum_ServiceTypeEnum_MIN = ServiceDescription_ServiceTypeEnum_WIFIHOTSPOT;
const ServiceDescription_ServiceTypeEnum ServiceDescription_ServiceTypeEnum_ServiceTypeEnum_MAX = ServiceDescription_ServiceTypeEnum_EVDATACHN;
const int ServiceDescription_ServiceTypeEnum_ServiceTypeEnum_ARRAYSIZE = ServiceDescription_ServiceTypeEnum_ServiceTypeEnum_MAX + 1;

const ::google::protobuf::EnumDescriptor* ServiceDescription_ServiceTypeEnum_descriptor();
inline const ::std::string& ServiceDescription_ServiceTypeEnum_Name(ServiceDescription_ServiceTypeEnum value) {
  return ::google::protobuf::internal::NameOfEnum(
    ServiceDescription_ServiceTypeEnum_descriptor(), value);
}
inline bool ServiceDescription_ServiceTypeEnum_Parse(
    const ::std::string& name, ServiceDescription_ServiceTypeEnum* value) {
  return ::google::protobuf::internal::ParseNamedEnum<ServiceDescription_ServiceTypeEnum>(
    ServiceDescription_ServiceTypeEnum_descriptor(), name, value);
}
enum ServiceDescription_Status {
  ServiceDescription_Status_INACTIVE = 0,
  ServiceDescription_Status_ACTIVE = 1,
  ServiceDescription_Status_ServiceDescription_Status_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
  ServiceDescription_Status_ServiceDescription_Status_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
};
bool ServiceDescription_Status_IsValid(int value);
const ServiceDescription_Status ServiceDescription_Status_Status_MIN = ServiceDescription_Status_INACTIVE;
const ServiceDescription_Status ServiceDescription_Status_Status_MAX = ServiceDescription_Status_ACTIVE;
const int ServiceDescription_Status_Status_ARRAYSIZE = ServiceDescription_Status_Status_MAX + 1;

const ::google::protobuf::EnumDescriptor* ServiceDescription_Status_descriptor();
inline const ::std::string& ServiceDescription_Status_Name(ServiceDescription_Status value) {
  return ::google::protobuf::internal::NameOfEnum(
    ServiceDescription_Status_descriptor(), value);
}
inline bool ServiceDescription_Status_Parse(
    const ::std::string& name, ServiceDescription_Status* value) {
  return ::google::protobuf::internal::ParseNamedEnum<ServiceDescription_Status>(
    ServiceDescription_Status_descriptor(), name, value);
}
// ===================================================================


// -------------------------------------------------------------------

class InitiateProvisioningPush : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.fca.uconnect.global.InitiateProvisioningPush) */ {
 public:
  InitiateProvisioningPush();
  virtual ~InitiateProvisioningPush();

  InitiateProvisioningPush(const InitiateProvisioningPush& from);

  inline InitiateProvisioningPush& operator=(const InitiateProvisioningPush& from) {
    CopyFrom(from);
    return *this;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const InitiateProvisioningPush& default_instance();

  static inline const InitiateProvisioningPush* internal_default_instance() {
    return reinterpret_cast<const InitiateProvisioningPush*>(
               &_InitiateProvisioningPush_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    1;

  void Swap(InitiateProvisioningPush* other);

  // implements Message ----------------------------------------------

  inline InitiateProvisioningPush* New() const PROTOBUF_FINAL { return New(NULL); }

  InitiateProvisioningPush* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const InitiateProvisioningPush& from);
  void MergeFrom(const InitiateProvisioningPush& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(InitiateProvisioningPush* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

  // nested types ----------------------------------------------------


  // accessors -------------------------------------------------------

  // map<string, string> parameters = 1;
  int parameters_size() const;
  void clear_parameters();
  static const int kParametersFieldNumber = 1;
  const ::google::protobuf::Map< ::std::string, ::std::string >&
      parameters() const;
  ::google::protobuf::Map< ::std::string, ::std::string >*
      mutable_parameters();

  // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.InitiateProvisioningPush)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  public:
  class InitiateProvisioningPush_ParametersEntry : public ::google::protobuf::internal::MapEntry<InitiateProvisioningPush_ParametersEntry, 
      ::std::string, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      0 > {
  public:
    typedef ::google::protobuf::internal::MapEntry<InitiateProvisioningPush_ParametersEntry, 
      ::std::string, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      0 > SuperType;
    InitiateProvisioningPush_ParametersEntry();
    InitiateProvisioningPush_ParametersEntry(::google::protobuf::Arena* arena);
    void MergeFrom(const ::google::protobuf::Message& other) PROTOBUF_FINAL;
    void MergeFrom(const InitiateProvisioningPush_ParametersEntry& other);
    static const Message* internal_default_instance() { return reinterpret_cast<const Message*>(&_InitiateProvisioningPush_ParametersEntry_default_instance_); }
    ::google::protobuf::Metadata GetMetadata() const;
  };
  ::google::protobuf::internal::MapField<
      InitiateProvisioningPush_ParametersEntry,
      ::std::string, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      0 > parameters_;
  private:
  mutable int _cached_size_;
  friend struct protobuf_Global_5fUconnect_5fExt_5fProvision_2eproto::TableStruct;
};
// -------------------------------------------------------------------


// -------------------------------------------------------------------

class ProvisioningRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.fca.uconnect.global.ProvisioningRequest) */ {
 public:
  ProvisioningRequest();
  virtual ~ProvisioningRequest();

  ProvisioningRequest(const ProvisioningRequest& from);

  inline ProvisioningRequest& operator=(const ProvisioningRequest& from) {
    CopyFrom(from);
    return *this;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const ProvisioningRequest& default_instance();

  static inline const ProvisioningRequest* internal_default_instance() {
    return reinterpret_cast<const ProvisioningRequest*>(
               &_ProvisioningRequest_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    3;

  void Swap(ProvisioningRequest* other);

  // implements Message ----------------------------------------------

  inline ProvisioningRequest* New() const PROTOBUF_FINAL { return New(NULL); }

  ProvisioningRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const ProvisioningRequest& from);
  void MergeFrom(const ProvisioningRequest& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(ProvisioningRequest* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

  // nested types ----------------------------------------------------


  typedef ProvisioningRequest_ReasonEnum ReasonEnum;
  static const ReasonEnum IGNITION_CYCLE_CHECK =
    ProvisioningRequest_ReasonEnum_IGNITION_CYCLE_CHECK;
  static const ReasonEnum TBM_FLASH =
    ProvisioningRequest_ReasonEnum_TBM_FLASH;
  static const ReasonEnum HU_FLASH =
    ProvisioningRequest_ReasonEnum_HU_FLASH;
  static const ReasonEnum ON_DEMAND =
    ProvisioningRequest_ReasonEnum_ON_DEMAND;
  static const ReasonEnum MISDN_MISMATCH =
    ProvisioningRequest_ReasonEnum_MISDN_MISMATCH;
  static const ReasonEnum DISCREPENCY_CHECK =
    ProvisioningRequest_ReasonEnum_DISCREPENCY_CHECK;
  static const ReasonEnum SOFTWARE_REFRESH =
    ProvisioningRequest_ReasonEnum_SOFTWARE_REFRESH;
  static const ReasonEnum HU_SWAP =
    ProvisioningRequest_ReasonEnum_HU_SWAP;
  static const ReasonEnum TBM_SWAP =
    ProvisioningRequest_ReasonEnum_TBM_SWAP;
  static const ReasonEnum ENROLLMENT =
    ProvisioningRequest_ReasonEnum_ENROLLMENT;
  static const ReasonEnum RETURN_TO_NEW =
    ProvisioningRequest_ReasonEnum_RETURN_TO_NEW;
  static inline bool ReasonEnum_IsValid(int value) {
    return ProvisioningRequest_ReasonEnum_IsValid(value);
  }
  static const ReasonEnum ReasonEnum_MIN =
    ProvisioningRequest_ReasonEnum_ReasonEnum_MIN;
  static const ReasonEnum ReasonEnum_MAX =
    ProvisioningRequest_ReasonEnum_ReasonEnum_MAX;
  static const int ReasonEnum_ARRAYSIZE =
    ProvisioningRequest_ReasonEnum_ReasonEnum_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor*
  ReasonEnum_descriptor() {
    return ProvisioningRequest_ReasonEnum_descriptor();
  }
  static inline const ::std::string& ReasonEnum_Name(ReasonEnum value) {
    return ProvisioningRequest_ReasonEnum_Name(value);
  }
  static inline bool ReasonEnum_Parse(const ::std::string& name,
      ReasonEnum* value) {
    return ProvisioningRequest_ReasonEnum_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  // map<string, string> additionalModemParams = 3;
  int additionalmodemparams_size() const;
  void clear_additionalmodemparams();
  static const int kAdditionalModemParamsFieldNumber = 3;
  const ::google::protobuf::Map< ::std::string, ::std::string >&
      additionalmodemparams() const;
  ::google::protobuf::Map< ::std::string, ::std::string >*
      mutable_additionalmodemparams();

  // string vehicleId = 1;
  void clear_vehicleid();
  static const int kVehicleIdFieldNumber = 1;
  const ::std::string& vehicleid() const;
  void set_vehicleid(const ::std::string& value);
  #if LANG_CXX11
  void set_vehicleid(::std::string&& value);
  #endif
  void set_vehicleid(const char* value);
  void set_vehicleid(const char* value, size_t size);
  ::std::string* mutable_vehicleid();
  ::std::string* release_vehicleid();
  void set_allocated_vehicleid(::std::string* vehicleid);

  // bytes DrmHash = 5;
  void clear_drmhash();
  static const int kDrmHashFieldNumber = 5;
  const ::std::string& drmhash() const;
  void set_drmhash(const ::std::string& value);
  #if LANG_CXX11
  void set_drmhash(::std::string&& value);
  #endif
  void set_drmhash(const char* value);
  void set_drmhash(const void* value, size_t size);
  ::std::string* mutable_drmhash();
  ::std::string* release_drmhash();
  void set_allocated_drmhash(::std::string* drmhash);

  // .com.fca.uconnect.global.ProvisioningRequest.ReasonEnum reason = 4;
  void clear_reason();
  static const int kReasonFieldNumber = 4;
  ::com::fca::uconnect::global::ProvisioningRequest_ReasonEnum reason() const;
  void set_reason(::com::fca::uconnect::global::ProvisioningRequest_ReasonEnum value);

  // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ProvisioningRequest)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  public:
  class ProvisioningRequest_AdditionalModemParamsEntry : public ::google::protobuf::internal::MapEntry<ProvisioningRequest_AdditionalModemParamsEntry, 
      ::std::string, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      0 > {
  public:
    typedef ::google::protobuf::internal::MapEntry<ProvisioningRequest_AdditionalModemParamsEntry, 
      ::std::string, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      0 > SuperType;
    ProvisioningRequest_AdditionalModemParamsEntry();
    ProvisioningRequest_AdditionalModemParamsEntry(::google::protobuf::Arena* arena);
    void MergeFrom(const ::google::protobuf::Message& other) PROTOBUF_FINAL;
    void MergeFrom(const ProvisioningRequest_AdditionalModemParamsEntry& other);
    static const Message* internal_default_instance() { return reinterpret_cast<const Message*>(&_ProvisioningRequest_AdditionalModemParamsEntry_default_instance_); }
    ::google::protobuf::Metadata GetMetadata() const;
  };
  ::google::protobuf::internal::MapField<
      ProvisioningRequest_AdditionalModemParamsEntry,
      ::std::string, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      0 > additionalmodemparams_;
  private:
  ::google::protobuf::internal::ArenaStringPtr vehicleid_;
  ::google::protobuf::internal::ArenaStringPtr drmhash_;
  int reason_;
  mutable int _cached_size_;
  friend struct protobuf_Global_5fUconnect_5fExt_5fProvision_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ProvisioningResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.fca.uconnect.global.ProvisioningResponse) */ {
 public:
  ProvisioningResponse();
  virtual ~ProvisioningResponse();

  ProvisioningResponse(const ProvisioningResponse& from);

  inline ProvisioningResponse& operator=(const ProvisioningResponse& from) {
    CopyFrom(from);
    return *this;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const ProvisioningResponse& default_instance();

  static inline const ProvisioningResponse* internal_default_instance() {
    return reinterpret_cast<const ProvisioningResponse*>(
               &_ProvisioningResponse_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    4;

  void Swap(ProvisioningResponse* other);

  // implements Message ----------------------------------------------

  inline ProvisioningResponse* New() const PROTOBUF_FINAL { return New(NULL); }

  ProvisioningResponse* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const ProvisioningResponse& from);
  void MergeFrom(const ProvisioningResponse& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(ProvisioningResponse* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

  // nested types ----------------------------------------------------

  typedef ProvisioningResponse_ResponseEnum ResponseEnum;
  static const ResponseEnum SUCCESS =
    ProvisioningResponse_ResponseEnum_SUCCESS;
  static const ResponseEnum FAILURE =
    ProvisioningResponse_ResponseEnum_FAILURE;
  static inline bool ResponseEnum_IsValid(int value) {
    return ProvisioningResponse_ResponseEnum_IsValid(value);
  }
  static const ResponseEnum ResponseEnum_MIN =
    ProvisioningResponse_ResponseEnum_ResponseEnum_MIN;
  static const ResponseEnum ResponseEnum_MAX =
    ProvisioningResponse_ResponseEnum_ResponseEnum_MAX;
  static const int ResponseEnum_ARRAYSIZE =
    ProvisioningResponse_ResponseEnum_ResponseEnum_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor*
  ResponseEnum_descriptor() {
    return ProvisioningResponse_ResponseEnum_descriptor();
  }
  static inline const ::std::string& ResponseEnum_Name(ResponseEnum value) {
    return ProvisioningResponse_ResponseEnum_Name(value);
  }
  static inline bool ResponseEnum_Parse(const ::std::string& name,
      ResponseEnum* value) {
    return ProvisioningResponse_ResponseEnum_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  // .com.fca.uconnect.global.ProvisioningResponse.ResponseEnum responseEnum = 1;
  void clear_responseenum();
  static const int kResponseEnumFieldNumber = 1;
  ::com::fca::uconnect::global::ProvisioningResponse_ResponseEnum responseenum() const;
  void set_responseenum(::com::fca::uconnect::global::ProvisioningResponse_ResponseEnum value);

  // bool isTransient = 2;
  void clear_istransient();
  static const int kIsTransientFieldNumber = 2;
  bool istransient() const;
  void set_istransient(bool value);

  // int32 failureReasonCode = 3;
  void clear_failurereasoncode();
  static const int kFailureReasonCodeFieldNumber = 3;
  ::google::protobuf::int32 failurereasoncode() const;
  void set_failurereasoncode(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ProvisioningResponse)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  int responseenum_;
  bool istransient_;
  ::google::protobuf::int32 failurereasoncode_;
  mutable int _cached_size_;
  friend struct protobuf_Global_5fUconnect_5fExt_5fProvision_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ProvisioningPush : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.fca.uconnect.global.ProvisioningPush) */ {
 public:
  ProvisioningPush();
  virtual ~ProvisioningPush();

  ProvisioningPush(const ProvisioningPush& from);

  inline ProvisioningPush& operator=(const ProvisioningPush& from) {
    CopyFrom(from);
    return *this;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const ProvisioningPush& default_instance();

  static inline const ProvisioningPush* internal_default_instance() {
    return reinterpret_cast<const ProvisioningPush*>(
               &_ProvisioningPush_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    5;

  void Swap(ProvisioningPush* other);

  // implements Message ----------------------------------------------

  inline ProvisioningPush* New() const PROTOBUF_FINAL { return New(NULL); }

  ProvisioningPush* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const ProvisioningPush& from);
  void MergeFrom(const ProvisioningPush& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(ProvisioningPush* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // .com.fca.uconnect.global.ServiceSubscriptionInfo serviceSubscription = 1;
  bool has_servicesubscription() const;
  void clear_servicesubscription();
  static const int kServiceSubscriptionFieldNumber = 1;
  const ::com::fca::uconnect::global::ServiceSubscriptionInfo& servicesubscription() const;
  ::com::fca::uconnect::global::ServiceSubscriptionInfo* mutable_servicesubscription();
  ::com::fca::uconnect::global::ServiceSubscriptionInfo* release_servicesubscription();
  void set_allocated_servicesubscription(::com::fca::uconnect::global::ServiceSubscriptionInfo* servicesubscription);

  // .com.fca.uconnect.global.DRM drm = 2;
  bool has_drm() const;
  void clear_drm();
  static const int kDrmFieldNumber = 2;
  const ::com::fca::uconnect::global::DRM& drm() const;
  ::com::fca::uconnect::global::DRM* mutable_drm();
  ::com::fca::uconnect::global::DRM* release_drm();
  void set_allocated_drm(::com::fca::uconnect::global::DRM* drm);

  // .com.fca.uconnect.global.BIMDPSKInfo bimdPSK = 6;
  bool has_bimdpsk() const;
  void clear_bimdpsk();
  static const int kBimdPSKFieldNumber = 6;
  const ::com::fca::uconnect::global::BIMDPSKInfo& bimdpsk() const;
  ::com::fca::uconnect::global::BIMDPSKInfo* mutable_bimdpsk();
  ::com::fca::uconnect::global::BIMDPSKInfo* release_bimdpsk();
  void set_allocated_bimdpsk(::com::fca::uconnect::global::BIMDPSKInfo* bimdpsk);

  // int64 timestamp = 3;
  void clear_timestamp();
  static const int kTimestampFieldNumber = 3;
  ::google::protobuf::int64 timestamp() const;
  void set_timestamp(::google::protobuf::int64 value);

  // int32 messageId = 4;
  void clear_messageid();
  static const int kMessageIdFieldNumber = 4;
  ::google::protobuf::int32 messageid() const;
  void set_messageid(::google::protobuf::int32 value);

  // int32 signatureId = 5;
  void clear_signatureid();
  static const int kSignatureIdFieldNumber = 5;
  ::google::protobuf::int32 signatureid() const;
  void set_signatureid(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ProvisioningPush)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::com::fca::uconnect::global::ServiceSubscriptionInfo* servicesubscription_;
  ::com::fca::uconnect::global::DRM* drm_;
  ::com::fca::uconnect::global::BIMDPSKInfo* bimdpsk_;
  ::google::protobuf::int64 timestamp_;
  ::google::protobuf::int32 messageid_;
  ::google::protobuf::int32 signatureid_;
  mutable int _cached_size_;
  friend struct protobuf_Global_5fUconnect_5fExt_5fProvision_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ProvisioningPushAck : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.fca.uconnect.global.ProvisioningPushAck) */ {
 public:
  ProvisioningPushAck();
  virtual ~ProvisioningPushAck();

  ProvisioningPushAck(const ProvisioningPushAck& from);

  inline ProvisioningPushAck& operator=(const ProvisioningPushAck& from) {
    CopyFrom(from);
    return *this;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const ProvisioningPushAck& default_instance();

  static inline const ProvisioningPushAck* internal_default_instance() {
    return reinterpret_cast<const ProvisioningPushAck*>(
               &_ProvisioningPushAck_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    6;

  void Swap(ProvisioningPushAck* other);

  // implements Message ----------------------------------------------

  inline ProvisioningPushAck* New() const PROTOBUF_FINAL { return New(NULL); }

  ProvisioningPushAck* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const ProvisioningPushAck& from);
  void MergeFrom(const ProvisioningPushAck& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(ProvisioningPushAck* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

  // nested types ----------------------------------------------------

  typedef ProvisioningPushAck_ProvisioningPushResponseEnum ProvisioningPushResponseEnum;
  static const ProvisioningPushResponseEnum SUCCESS =
    ProvisioningPushAck_ProvisioningPushResponseEnum_SUCCESS;
  static const ProvisioningPushResponseEnum FAILURE =
    ProvisioningPushAck_ProvisioningPushResponseEnum_FAILURE;
  static inline bool ProvisioningPushResponseEnum_IsValid(int value) {
    return ProvisioningPushAck_ProvisioningPushResponseEnum_IsValid(value);
  }
  static const ProvisioningPushResponseEnum ProvisioningPushResponseEnum_MIN =
    ProvisioningPushAck_ProvisioningPushResponseEnum_ProvisioningPushResponseEnum_MIN;
  static const ProvisioningPushResponseEnum ProvisioningPushResponseEnum_MAX =
    ProvisioningPushAck_ProvisioningPushResponseEnum_ProvisioningPushResponseEnum_MAX;
  static const int ProvisioningPushResponseEnum_ARRAYSIZE =
    ProvisioningPushAck_ProvisioningPushResponseEnum_ProvisioningPushResponseEnum_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor*
  ProvisioningPushResponseEnum_descriptor() {
    return ProvisioningPushAck_ProvisioningPushResponseEnum_descriptor();
  }
  static inline const ::std::string& ProvisioningPushResponseEnum_Name(ProvisioningPushResponseEnum value) {
    return ProvisioningPushAck_ProvisioningPushResponseEnum_Name(value);
  }
  static inline bool ProvisioningPushResponseEnum_Parse(const ::std::string& name,
      ProvisioningPushResponseEnum* value) {
    return ProvisioningPushAck_ProvisioningPushResponseEnum_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  // .com.fca.uconnect.global.ProvisioningPushAck.ProvisioningPushResponseEnum response = 1;
  void clear_response();
  static const int kResponseFieldNumber = 1;
  ::com::fca::uconnect::global::ProvisioningPushAck_ProvisioningPushResponseEnum response() const;
  void set_response(::com::fca::uconnect::global::ProvisioningPushAck_ProvisioningPushResponseEnum value);

  // bool isTransient = 2;
  void clear_istransient();
  static const int kIsTransientFieldNumber = 2;
  bool istransient() const;
  void set_istransient(bool value);

  // int32 failureReasonCode = 3;
  void clear_failurereasoncode();
  static const int kFailureReasonCodeFieldNumber = 3;
  ::google::protobuf::int32 failurereasoncode() const;
  void set_failurereasoncode(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ProvisioningPushAck)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  int response_;
  bool istransient_;
  ::google::protobuf::int32 failurereasoncode_;
  mutable int _cached_size_;
  friend struct protobuf_Global_5fUconnect_5fExt_5fProvision_2eproto::TableStruct;
};
// -------------------------------------------------------------------


// -------------------------------------------------------------------

class ServiceDescription : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.fca.uconnect.global.ServiceDescription) */ {
 public:
  ServiceDescription();
  virtual ~ServiceDescription();

  ServiceDescription(const ServiceDescription& from);

  inline ServiceDescription& operator=(const ServiceDescription& from) {
    CopyFrom(from);
    return *this;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const ServiceDescription& default_instance();

  static inline const ServiceDescription* internal_default_instance() {
    return reinterpret_cast<const ServiceDescription*>(
               &_ServiceDescription_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    8;

  void Swap(ServiceDescription* other);

  // implements Message ----------------------------------------------

  inline ServiceDescription* New() const PROTOBUF_FINAL { return New(NULL); }

  ServiceDescription* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const ServiceDescription& from);
  void MergeFrom(const ServiceDescription& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(ServiceDescription* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

  // nested types ----------------------------------------------------


  typedef ServiceDescription_ServiceTypeEnum ServiceTypeEnum;
  static const ServiceTypeEnum WIFIHOTSPOT =
    ServiceDescription_ServiceTypeEnum_WIFIHOTSPOT;
  static const ServiceTypeEnum ECALL =
    ServiceDescription_ServiceTypeEnum_ECALL;
  static const ServiceTypeEnum ROADSIDEASSIST =
    ServiceDescription_ServiceTypeEnum_ROADSIDEASSIST;
  static const ServiceTypeEnum THEFTALARMNOTIFICATION =
    ServiceDescription_ServiceTypeEnum_THEFTALARMNOTIFICATION;
  static const ServiceTypeEnum STOLENVEHICLEASSIST =
    ServiceDescription_ServiceTypeEnum_STOLENVEHICLEASSIST;
  static const ServiceTypeEnum SENDDESTINATIONTOCAR =
    ServiceDescription_ServiceTypeEnum_SENDDESTINATIONTOCAR;
  static const ServiceTypeEnum VEHICLEFINDER =
    ServiceDescription_ServiceTypeEnum_VEHICLEFINDER;
  static const ServiceTypeEnum REMOTEDOORCONTROL =
    ServiceDescription_ServiceTypeEnum_REMOTEDOORCONTROL;
  static const ServiceTypeEnum REMOTEENGINESTART =
    ServiceDescription_ServiceTypeEnum_REMOTEENGINESTART;
  static const ServiceTypeEnum REMOTEHORNANDFLASH =
    ServiceDescription_ServiceTypeEnum_REMOTEHORNANDFLASH;
  static const ServiceTypeEnum RADIOPRESETS =
    ServiceDescription_ServiceTypeEnum_RADIOPRESETS;
  static const ServiceTypeEnum MUSICFAVORITES =
    ServiceDescription_ServiceTypeEnum_MUSICFAVORITES;
  static const ServiceTypeEnum TEMPERATURE =
    ServiceDescription_ServiceTypeEnum_TEMPERATURE;
  static const ServiceTypeEnum HEATEDCOOLEDSEATS =
    ServiceDescription_ServiceTypeEnum_HEATEDCOOLEDSEATS;
  static const ServiceTypeEnum HEATEDSTEERINGWHEEL =
    ServiceDescription_ServiceTypeEnum_HEATEDSTEERINGWHEEL;
  static const ServiceTypeEnum CONNECTEDVEHICLE =
    ServiceDescription_ServiceTypeEnum_CONNECTEDVEHICLE;
  static const ServiceTypeEnum SQDF =
    ServiceDescription_ServiceTypeEnum_SQDF;
  static const ServiceTypeEnum FTM =
    ServiceDescription_ServiceTypeEnum_FTM;
  static const ServiceTypeEnum EVDATACHN =
    ServiceDescription_ServiceTypeEnum_EVDATACHN;
  static inline bool ServiceTypeEnum_IsValid(int value) {
    return ServiceDescription_ServiceTypeEnum_IsValid(value);
  }
  static const ServiceTypeEnum ServiceTypeEnum_MIN =
    ServiceDescription_ServiceTypeEnum_ServiceTypeEnum_MIN;
  static const ServiceTypeEnum ServiceTypeEnum_MAX =
    ServiceDescription_ServiceTypeEnum_ServiceTypeEnum_MAX;
  static const int ServiceTypeEnum_ARRAYSIZE =
    ServiceDescription_ServiceTypeEnum_ServiceTypeEnum_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor*
  ServiceTypeEnum_descriptor() {
    return ServiceDescription_ServiceTypeEnum_descriptor();
  }
  static inline const ::std::string& ServiceTypeEnum_Name(ServiceTypeEnum value) {
    return ServiceDescription_ServiceTypeEnum_Name(value);
  }
  static inline bool ServiceTypeEnum_Parse(const ::std::string& name,
      ServiceTypeEnum* value) {
    return ServiceDescription_ServiceTypeEnum_Parse(name, value);
  }

  typedef ServiceDescription_Status Status;
  static const Status INACTIVE =
    ServiceDescription_Status_INACTIVE;
  static const Status ACTIVE =
    ServiceDescription_Status_ACTIVE;
  static inline bool Status_IsValid(int value) {
    return ServiceDescription_Status_IsValid(value);
  }
  static const Status Status_MIN =
    ServiceDescription_Status_Status_MIN;
  static const Status Status_MAX =
    ServiceDescription_Status_Status_MAX;
  static const int Status_ARRAYSIZE =
    ServiceDescription_Status_Status_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor*
  Status_descriptor() {
    return ServiceDescription_Status_descriptor();
  }
  static inline const ::std::string& Status_Name(Status value) {
    return ServiceDescription_Status_Name(value);
  }
  static inline bool Status_Parse(const ::std::string& name,
      Status* value) {
    return ServiceDescription_Status_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  // map<string, string> additionalParameters = 3;
  int additionalparameters_size() const;
  void clear_additionalparameters();
  static const int kAdditionalParametersFieldNumber = 3;
  const ::google::protobuf::Map< ::std::string, ::std::string >&
      additionalparameters() const;
  ::google::protobuf::Map< ::std::string, ::std::string >*
      mutable_additionalparameters();

  // string appIdentifier = 7;
  void clear_appidentifier();
  static const int kAppIdentifierFieldNumber = 7;
  const ::std::string& appidentifier() const;
  void set_appidentifier(const ::std::string& value);
  #if LANG_CXX11
  void set_appidentifier(::std::string&& value);
  #endif
  void set_appidentifier(const char* value);
  void set_appidentifier(const char* value, size_t size);
  ::std::string* mutable_appidentifier();
  ::std::string* release_appidentifier();
  void set_allocated_appidentifier(::std::string* appidentifier);

  // string installerType = 9;
  void clear_installertype();
  static const int kInstallerTypeFieldNumber = 9;
  const ::std::string& installertype() const;
  void set_installertype(const ::std::string& value);
  #if LANG_CXX11
  void set_installertype(::std::string&& value);
  #endif
  void set_installertype(const char* value);
  void set_installertype(const char* value, size_t size);
  ::std::string* mutable_installertype();
  ::std::string* release_installertype();
  void set_allocated_installertype(::std::string* installertype);

  // string accountDN = 10;
  void clear_accountdn();
  static const int kAccountDNFieldNumber = 10;
  const ::std::string& accountdn() const;
  void set_accountdn(const ::std::string& value);
  #if LANG_CXX11
  void set_accountdn(::std::string&& value);
  #endif
  void set_accountdn(const char* value);
  void set_accountdn(const char* value, size_t size);
  ::std::string* mutable_accountdn();
  ::std::string* release_accountdn();
  void set_allocated_accountdn(::std::string* accountdn);

  // string featureMask = 13;
  void clear_featuremask();
  static const int kFeatureMaskFieldNumber = 13;
  const ::std::string& featuremask() const;
  void set_featuremask(const ::std::string& value);
  #if LANG_CXX11
  void set_featuremask(::std::string&& value);
  #endif
  void set_featuremask(const char* value);
  void set_featuremask(const char* value, size_t size);
  ::std::string* mutable_featuremask();
  ::std::string* release_featuremask();
  void set_allocated_featuremask(::std::string* featuremask);

  // string emailId = 16;
  void clear_emailid();
  static const int kEmailIdFieldNumber = 16;
  const ::std::string& emailid() const;
  void set_emailid(const ::std::string& value);
  #if LANG_CXX11
  void set_emailid(::std::string&& value);
  #endif
  void set_emailid(const char* value);
  void set_emailid(const char* value, size_t size);
  ::std::string* mutable_emailid();
  ::std::string* release_emailid();
  void set_allocated_emailid(::std::string* emailid);

  // int64 expireTime = 2;
  void clear_expiretime();
  static const int kExpireTimeFieldNumber = 2;
  ::google::protobuf::int64 expiretime() const;
  void set_expiretime(::google::protobuf::int64 value);

  // .com.fca.uconnect.global.ServiceDescription.ServiceTypeEnum serviceType = 1;
  void clear_servicetype();
  static const int kServiceTypeFieldNumber = 1;
  ::com::fca::uconnect::global::ServiceDescription_ServiceTypeEnum servicetype() const;
  void set_servicetype(::com::fca::uconnect::global::ServiceDescription_ServiceTypeEnum value);

  // .com.fca.uconnect.global.ServiceDescription.Status status = 4;
  void clear_status();
  static const int kStatusFieldNumber = 4;
  ::com::fca::uconnect::global::ServiceDescription_Status status() const;
  void set_status(::com::fca::uconnect::global::ServiceDescription_Status value);

  // int32 version = 5;
  void clear_version();
  static const int kVersionFieldNumber = 5;
  ::google::protobuf::int32 version() const;
  void set_version(::google::protobuf::int32 value);

  // int32 contentId = 6;
  void clear_contentid();
  static const int kContentIdFieldNumber = 6;
  ::google::protobuf::int32 contentid() const;
  void set_contentid(::google::protobuf::int32 value);

  // int32 appLauncherMask = 8;
  void clear_applaunchermask();
  static const int kAppLauncherMaskFieldNumber = 8;
  ::google::protobuf::int32 applaunchermask() const;
  void set_applaunchermask(::google::protobuf::int32 value);

  // int32 fileLength = 11;
  void clear_filelength();
  static const int kFileLengthFieldNumber = 11;
  ::google::protobuf::int32 filelength() const;
  void set_filelength(::google::protobuf::int32 value);

  // int64 expirexTimeSpanBegiTimeSpanBegin = 14;
  void clear_expirextimespanbegitimespanbegin();
  static const int kExpirexTimeSpanBegiTimeSpanBeginFieldNumber = 14;
  ::google::protobuf::int64 expirextimespanbegitimespanbegin() const;
  void set_expirextimespanbegitimespanbegin(::google::protobuf::int64 value);

  // int64 expireTimeSpanEnd = 15;
  void clear_expiretimespanend();
  static const int kExpireTimeSpanEndFieldNumber = 15;
  ::google::protobuf::int64 expiretimespanend() const;
  void set_expiretimespanend(::google::protobuf::int64 value);

  // int32 fileChecksum = 12;
  void clear_filechecksum();
  static const int kFileChecksumFieldNumber = 12;
  ::google::protobuf::int32 filechecksum() const;
  void set_filechecksum(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ServiceDescription)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  public:
  class ServiceDescription_AdditionalParametersEntry : public ::google::protobuf::internal::MapEntry<ServiceDescription_AdditionalParametersEntry, 
      ::std::string, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      0 > {
  public:
    typedef ::google::protobuf::internal::MapEntry<ServiceDescription_AdditionalParametersEntry, 
      ::std::string, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      0 > SuperType;
    ServiceDescription_AdditionalParametersEntry();
    ServiceDescription_AdditionalParametersEntry(::google::protobuf::Arena* arena);
    void MergeFrom(const ::google::protobuf::Message& other) PROTOBUF_FINAL;
    void MergeFrom(const ServiceDescription_AdditionalParametersEntry& other);
    static const Message* internal_default_instance() { return reinterpret_cast<const Message*>(&_ServiceDescription_AdditionalParametersEntry_default_instance_); }
    ::google::protobuf::Metadata GetMetadata() const;
  };
  ::google::protobuf::internal::MapField<
      ServiceDescription_AdditionalParametersEntry,
      ::std::string, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      0 > additionalparameters_;
  private:
  ::google::protobuf::internal::ArenaStringPtr appidentifier_;
  ::google::protobuf::internal::ArenaStringPtr installertype_;
  ::google::protobuf::internal::ArenaStringPtr accountdn_;
  ::google::protobuf::internal::ArenaStringPtr featuremask_;
  ::google::protobuf::internal::ArenaStringPtr emailid_;
  ::google::protobuf::int64 expiretime_;
  int servicetype_;
  int status_;
  ::google::protobuf::int32 version_;
  ::google::protobuf::int32 contentid_;
  ::google::protobuf::int32 applaunchermask_;
  ::google::protobuf::int32 filelength_;
  ::google::protobuf::int64 expirextimespanbegitimespanbegin_;
  ::google::protobuf::int64 expiretimespanend_;
  ::google::protobuf::int32 filechecksum_;
  mutable int _cached_size_;
  friend struct protobuf_Global_5fUconnect_5fExt_5fProvision_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ServiceSubscriptionInfo : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.fca.uconnect.global.ServiceSubscriptionInfo) */ {
 public:
  ServiceSubscriptionInfo();
  virtual ~ServiceSubscriptionInfo();

  ServiceSubscriptionInfo(const ServiceSubscriptionInfo& from);

  inline ServiceSubscriptionInfo& operator=(const ServiceSubscriptionInfo& from) {
    CopyFrom(from);
    return *this;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const ServiceSubscriptionInfo& default_instance();

  static inline const ServiceSubscriptionInfo* internal_default_instance() {
    return reinterpret_cast<const ServiceSubscriptionInfo*>(
               &_ServiceSubscriptionInfo_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    9;

  void Swap(ServiceSubscriptionInfo* other);

  // implements Message ----------------------------------------------

  inline ServiceSubscriptionInfo* New() const PROTOBUF_FINAL { return New(NULL); }

  ServiceSubscriptionInfo* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const ServiceSubscriptionInfo& from);
  void MergeFrom(const ServiceSubscriptionInfo& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(ServiceSubscriptionInfo* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated .com.fca.uconnect.global.ServiceDescription services = 1;
  int services_size() const;
  void clear_services();
  static const int kServicesFieldNumber = 1;
  const ::com::fca::uconnect::global::ServiceDescription& services(int index) const;
  ::com::fca::uconnect::global::ServiceDescription* mutable_services(int index);
  ::com::fca::uconnect::global::ServiceDescription* add_services();
  ::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::ServiceDescription >*
      mutable_services();
  const ::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::ServiceDescription >&
      services() const;

  // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ServiceSubscriptionInfo)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::ServiceDescription > services_;
  mutable int _cached_size_;
  friend struct protobuf_Global_5fUconnect_5fExt_5fProvision_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class BIMDPSKInfo_BIMDPSK : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK) */ {
 public:
  BIMDPSKInfo_BIMDPSK();
  virtual ~BIMDPSKInfo_BIMDPSK();

  BIMDPSKInfo_BIMDPSK(const BIMDPSKInfo_BIMDPSK& from);

  inline BIMDPSKInfo_BIMDPSK& operator=(const BIMDPSKInfo_BIMDPSK& from) {
    CopyFrom(from);
    return *this;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const BIMDPSKInfo_BIMDPSK& default_instance();

  static inline const BIMDPSKInfo_BIMDPSK* internal_default_instance() {
    return reinterpret_cast<const BIMDPSKInfo_BIMDPSK*>(
               &_BIMDPSKInfo_BIMDPSK_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    10;

  void Swap(BIMDPSKInfo_BIMDPSK* other);

  // implements Message ----------------------------------------------

  inline BIMDPSKInfo_BIMDPSK* New() const PROTOBUF_FINAL { return New(NULL); }

  BIMDPSKInfo_BIMDPSK* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const BIMDPSKInfo_BIMDPSK& from);
  void MergeFrom(const BIMDPSKInfo_BIMDPSK& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(BIMDPSKInfo_BIMDPSK* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // string mobileDeviceId = 1;
  void clear_mobiledeviceid();
  static const int kMobileDeviceIdFieldNumber = 1;
  const ::std::string& mobiledeviceid() const;
  void set_mobiledeviceid(const ::std::string& value);
  #if LANG_CXX11
  void set_mobiledeviceid(::std::string&& value);
  #endif
  void set_mobiledeviceid(const char* value);
  void set_mobiledeviceid(const char* value, size_t size);
  ::std::string* mutable_mobiledeviceid();
  ::std::string* release_mobiledeviceid();
  void set_allocated_mobiledeviceid(::std::string* mobiledeviceid);

  // bytes preSharedKey = 2;
  void clear_presharedkey();
  static const int kPreSharedKeyFieldNumber = 2;
  const ::std::string& presharedkey() const;
  void set_presharedkey(const ::std::string& value);
  #if LANG_CXX11
  void set_presharedkey(::std::string&& value);
  #endif
  void set_presharedkey(const char* value);
  void set_presharedkey(const void* value, size_t size);
  ::std::string* mutable_presharedkey();
  ::std::string* release_presharedkey();
  void set_allocated_presharedkey(::std::string* presharedkey);

  // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr mobiledeviceid_;
  ::google::protobuf::internal::ArenaStringPtr presharedkey_;
  mutable int _cached_size_;
  friend struct protobuf_Global_5fUconnect_5fExt_5fProvision_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class BIMDPSKInfo : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:com.fca.uconnect.global.BIMDPSKInfo) */ {
 public:
  BIMDPSKInfo();
  virtual ~BIMDPSKInfo();

  BIMDPSKInfo(const BIMDPSKInfo& from);

  inline BIMDPSKInfo& operator=(const BIMDPSKInfo& from) {
    CopyFrom(from);
    return *this;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const BIMDPSKInfo& default_instance();

  static inline const BIMDPSKInfo* internal_default_instance() {
    return reinterpret_cast<const BIMDPSKInfo*>(
               &_BIMDPSKInfo_default_instance_);
  }
  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
    11;

  void Swap(BIMDPSKInfo* other);

  // implements Message ----------------------------------------------

  inline BIMDPSKInfo* New() const PROTOBUF_FINAL { return New(NULL); }

  BIMDPSKInfo* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const BIMDPSKInfo& from);
  void MergeFrom(const BIMDPSKInfo& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(BIMDPSKInfo* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;

  // nested types ----------------------------------------------------

  typedef BIMDPSKInfo_BIMDPSK BIMDPSK;

  // accessors -------------------------------------------------------

  // repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;
  int devicekeys_size() const;
  void clear_devicekeys();
  static const int kDeviceKeysFieldNumber = 1;
  const ::com::fca::uconnect::global::BIMDPSKInfo_BIMDPSK& devicekeys(int index) const;
  ::com::fca::uconnect::global::BIMDPSKInfo_BIMDPSK* mutable_devicekeys(int index);
  ::com::fca::uconnect::global::BIMDPSKInfo_BIMDPSK* add_devicekeys();
  ::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::BIMDPSKInfo_BIMDPSK >*
      mutable_devicekeys();
  const ::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::BIMDPSKInfo_BIMDPSK >&
      devicekeys() const;

  // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.BIMDPSKInfo)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::BIMDPSKInfo_BIMDPSK > devicekeys_;
  mutable int _cached_size_;
  friend struct protobuf_Global_5fUconnect_5fExt_5fProvision_2eproto::TableStruct;
};
// ===================================================================


// ===================================================================

#if !PROTOBUF_INLINE_NOT_IN_HEADERS
// -------------------------------------------------------------------

// InitiateProvisioningPush

// map<string, string> parameters = 1;
inline int InitiateProvisioningPush::parameters_size() const {
  return parameters_.size();
}
inline void InitiateProvisioningPush::clear_parameters() {
  parameters_.Clear();
}
inline const ::google::protobuf::Map< ::std::string, ::std::string >&
InitiateProvisioningPush::parameters() const {
  // @@protoc_insertion_point(field_map:com.fca.uconnect.global.InitiateProvisioningPush.parameters)
  return parameters_.GetMap();
}
inline ::google::protobuf::Map< ::std::string, ::std::string >*
InitiateProvisioningPush::mutable_parameters() {
  // @@protoc_insertion_point(field_mutable_map:com.fca.uconnect.global.InitiateProvisioningPush.parameters)
  return parameters_.MutableMap();
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// ProvisioningRequest

// string vehicleId = 1;
inline void ProvisioningRequest::clear_vehicleid() {
  vehicleid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& ProvisioningRequest::vehicleid() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ProvisioningRequest.vehicleId)
  return vehicleid_.GetNoArena();
}
inline void ProvisioningRequest::set_vehicleid(const ::std::string& value) {
  
  vehicleid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ProvisioningRequest.vehicleId)
}
#if LANG_CXX11
inline void ProvisioningRequest::set_vehicleid(::std::string&& value) {
  
  vehicleid_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.ProvisioningRequest.vehicleId)
}
#endif
inline void ProvisioningRequest::set_vehicleid(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  vehicleid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.ProvisioningRequest.vehicleId)
}
inline void ProvisioningRequest::set_vehicleid(const char* value, size_t size) {
  
  vehicleid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.ProvisioningRequest.vehicleId)
}
inline ::std::string* ProvisioningRequest::mutable_vehicleid() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ProvisioningRequest.vehicleId)
  return vehicleid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ProvisioningRequest::release_vehicleid() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.ProvisioningRequest.vehicleId)
  
  return vehicleid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ProvisioningRequest::set_allocated_vehicleid(::std::string* vehicleid) {
  if (vehicleid != NULL) {
    
  } else {
    
  }
  vehicleid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), vehicleid);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.ProvisioningRequest.vehicleId)
}

// bytes DrmHash = 5;
inline void ProvisioningRequest::clear_drmhash() {
  drmhash_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& ProvisioningRequest::drmhash() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ProvisioningRequest.DrmHash)
  return drmhash_.GetNoArena();
}
inline void ProvisioningRequest::set_drmhash(const ::std::string& value) {
  
  drmhash_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ProvisioningRequest.DrmHash)
}
#if LANG_CXX11
inline void ProvisioningRequest::set_drmhash(::std::string&& value) {
  
  drmhash_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.ProvisioningRequest.DrmHash)
}
#endif
inline void ProvisioningRequest::set_drmhash(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  drmhash_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.ProvisioningRequest.DrmHash)
}
inline void ProvisioningRequest::set_drmhash(const void* value, size_t size) {
  
  drmhash_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.ProvisioningRequest.DrmHash)
}
inline ::std::string* ProvisioningRequest::mutable_drmhash() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ProvisioningRequest.DrmHash)
  return drmhash_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ProvisioningRequest::release_drmhash() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.ProvisioningRequest.DrmHash)
  
  return drmhash_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ProvisioningRequest::set_allocated_drmhash(::std::string* drmhash) {
  if (drmhash != NULL) {
    
  } else {
    
  }
  drmhash_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), drmhash);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.ProvisioningRequest.DrmHash)
}

// map<string, string> additionalModemParams = 3;
inline int ProvisioningRequest::additionalmodemparams_size() const {
  return additionalmodemparams_.size();
}
inline void ProvisioningRequest::clear_additionalmodemparams() {
  additionalmodemparams_.Clear();
}
inline const ::google::protobuf::Map< ::std::string, ::std::string >&
ProvisioningRequest::additionalmodemparams() const {
  // @@protoc_insertion_point(field_map:com.fca.uconnect.global.ProvisioningRequest.additionalModemParams)
  return additionalmodemparams_.GetMap();
}
inline ::google::protobuf::Map< ::std::string, ::std::string >*
ProvisioningRequest::mutable_additionalmodemparams() {
  // @@protoc_insertion_point(field_mutable_map:com.fca.uconnect.global.ProvisioningRequest.additionalModemParams)
  return additionalmodemparams_.MutableMap();
}

// .com.fca.uconnect.global.ProvisioningRequest.ReasonEnum reason = 4;
inline void ProvisioningRequest::clear_reason() {
  reason_ = 0;
}
inline ::com::fca::uconnect::global::ProvisioningRequest_ReasonEnum ProvisioningRequest::reason() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ProvisioningRequest.reason)
  return static_cast< ::com::fca::uconnect::global::ProvisioningRequest_ReasonEnum >(reason_);
}
inline void ProvisioningRequest::set_reason(::com::fca::uconnect::global::ProvisioningRequest_ReasonEnum value) {
  
  reason_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ProvisioningRequest.reason)
}

// -------------------------------------------------------------------

// ProvisioningResponse

// .com.fca.uconnect.global.ProvisioningResponse.ResponseEnum responseEnum = 1;
inline void ProvisioningResponse::clear_responseenum() {
  responseenum_ = 0;
}
inline ::com::fca::uconnect::global::ProvisioningResponse_ResponseEnum ProvisioningResponse::responseenum() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ProvisioningResponse.responseEnum)
  return static_cast< ::com::fca::uconnect::global::ProvisioningResponse_ResponseEnum >(responseenum_);
}
inline void ProvisioningResponse::set_responseenum(::com::fca::uconnect::global::ProvisioningResponse_ResponseEnum value) {
  
  responseenum_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ProvisioningResponse.responseEnum)
}

// bool isTransient = 2;
inline void ProvisioningResponse::clear_istransient() {
  istransient_ = false;
}
inline bool ProvisioningResponse::istransient() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ProvisioningResponse.isTransient)
  return istransient_;
}
inline void ProvisioningResponse::set_istransient(bool value) {
  
  istransient_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ProvisioningResponse.isTransient)
}

// int32 failureReasonCode = 3;
inline void ProvisioningResponse::clear_failurereasoncode() {
  failurereasoncode_ = 0;
}
inline ::google::protobuf::int32 ProvisioningResponse::failurereasoncode() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ProvisioningResponse.failureReasonCode)
  return failurereasoncode_;
}
inline void ProvisioningResponse::set_failurereasoncode(::google::protobuf::int32 value) {
  
  failurereasoncode_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ProvisioningResponse.failureReasonCode)
}

// -------------------------------------------------------------------

// ProvisioningPush

// .com.fca.uconnect.global.ServiceSubscriptionInfo serviceSubscription = 1;
inline bool ProvisioningPush::has_servicesubscription() const {
  return this != internal_default_instance() && servicesubscription_ != NULL;
}
inline void ProvisioningPush::clear_servicesubscription() {
  if (GetArenaNoVirtual() == NULL && servicesubscription_ != NULL) delete servicesubscription_;
  servicesubscription_ = NULL;
}
inline const ::com::fca::uconnect::global::ServiceSubscriptionInfo& ProvisioningPush::servicesubscription() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ProvisioningPush.serviceSubscription)
  return servicesubscription_ != NULL ? *servicesubscription_
                         : *::com::fca::uconnect::global::ServiceSubscriptionInfo::internal_default_instance();
}
inline ::com::fca::uconnect::global::ServiceSubscriptionInfo* ProvisioningPush::mutable_servicesubscription() {
  
  if (servicesubscription_ == NULL) {
    servicesubscription_ = new ::com::fca::uconnect::global::ServiceSubscriptionInfo;
  }
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ProvisioningPush.serviceSubscription)
  return servicesubscription_;
}
inline ::com::fca::uconnect::global::ServiceSubscriptionInfo* ProvisioningPush::release_servicesubscription() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.ProvisioningPush.serviceSubscription)
  
  ::com::fca::uconnect::global::ServiceSubscriptionInfo* temp = servicesubscription_;
  servicesubscription_ = NULL;
  return temp;
}
inline void ProvisioningPush::set_allocated_servicesubscription(::com::fca::uconnect::global::ServiceSubscriptionInfo* servicesubscription) {
  delete servicesubscription_;
  servicesubscription_ = servicesubscription;
  if (servicesubscription) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.ProvisioningPush.serviceSubscription)
}

// .com.fca.uconnect.global.DRM drm = 2;
inline bool ProvisioningPush::has_drm() const {
  return this != internal_default_instance() && drm_ != NULL;
}
inline void ProvisioningPush::clear_drm() {
  if (GetArenaNoVirtual() == NULL && drm_ != NULL) delete drm_;
  drm_ = NULL;
}
inline const ::com::fca::uconnect::global::DRM& ProvisioningPush::drm() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ProvisioningPush.drm)
  return drm_ != NULL ? *drm_
                         : *::com::fca::uconnect::global::DRM::internal_default_instance();
}
inline ::com::fca::uconnect::global::DRM* ProvisioningPush::mutable_drm() {
  
  if (drm_ == NULL) {
    drm_ = new ::com::fca::uconnect::global::DRM;
  }
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ProvisioningPush.drm)
  return drm_;
}
inline ::com::fca::uconnect::global::DRM* ProvisioningPush::release_drm() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.ProvisioningPush.drm)
  
  ::com::fca::uconnect::global::DRM* temp = drm_;
  drm_ = NULL;
  return temp;
}
inline void ProvisioningPush::set_allocated_drm(::com::fca::uconnect::global::DRM* drm) {
  delete drm_;
  drm_ = drm;
  if (drm) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.ProvisioningPush.drm)
}

// int64 timestamp = 3;
inline void ProvisioningPush::clear_timestamp() {
  timestamp_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 ProvisioningPush::timestamp() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ProvisioningPush.timestamp)
  return timestamp_;
}
inline void ProvisioningPush::set_timestamp(::google::protobuf::int64 value) {
  
  timestamp_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ProvisioningPush.timestamp)
}

// int32 messageId = 4;
inline void ProvisioningPush::clear_messageid() {
  messageid_ = 0;
}
inline ::google::protobuf::int32 ProvisioningPush::messageid() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ProvisioningPush.messageId)
  return messageid_;
}
inline void ProvisioningPush::set_messageid(::google::protobuf::int32 value) {
  
  messageid_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ProvisioningPush.messageId)
}

// int32 signatureId = 5;
inline void ProvisioningPush::clear_signatureid() {
  signatureid_ = 0;
}
inline ::google::protobuf::int32 ProvisioningPush::signatureid() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ProvisioningPush.signatureId)
  return signatureid_;
}
inline void ProvisioningPush::set_signatureid(::google::protobuf::int32 value) {
  
  signatureid_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ProvisioningPush.signatureId)
}

// .com.fca.uconnect.global.BIMDPSKInfo bimdPSK = 6;
inline bool ProvisioningPush::has_bimdpsk() const {
  return this != internal_default_instance() && bimdpsk_ != NULL;
}
inline void ProvisioningPush::clear_bimdpsk() {
  if (GetArenaNoVirtual() == NULL && bimdpsk_ != NULL) delete bimdpsk_;
  bimdpsk_ = NULL;
}
inline const ::com::fca::uconnect::global::BIMDPSKInfo& ProvisioningPush::bimdpsk() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ProvisioningPush.bimdPSK)
  return bimdpsk_ != NULL ? *bimdpsk_
                         : *::com::fca::uconnect::global::BIMDPSKInfo::internal_default_instance();
}
inline ::com::fca::uconnect::global::BIMDPSKInfo* ProvisioningPush::mutable_bimdpsk() {
  
  if (bimdpsk_ == NULL) {
    bimdpsk_ = new ::com::fca::uconnect::global::BIMDPSKInfo;
  }
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ProvisioningPush.bimdPSK)
  return bimdpsk_;
}
inline ::com::fca::uconnect::global::BIMDPSKInfo* ProvisioningPush::release_bimdpsk() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.ProvisioningPush.bimdPSK)
  
  ::com::fca::uconnect::global::BIMDPSKInfo* temp = bimdpsk_;
  bimdpsk_ = NULL;
  return temp;
}
inline void ProvisioningPush::set_allocated_bimdpsk(::com::fca::uconnect::global::BIMDPSKInfo* bimdpsk) {
  delete bimdpsk_;
  bimdpsk_ = bimdpsk;
  if (bimdpsk) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.ProvisioningPush.bimdPSK)
}

// -------------------------------------------------------------------

// ProvisioningPushAck

// .com.fca.uconnect.global.ProvisioningPushAck.ProvisioningPushResponseEnum response = 1;
inline void ProvisioningPushAck::clear_response() {
  response_ = 0;
}
inline ::com::fca::uconnect::global::ProvisioningPushAck_ProvisioningPushResponseEnum ProvisioningPushAck::response() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ProvisioningPushAck.response)
  return static_cast< ::com::fca::uconnect::global::ProvisioningPushAck_ProvisioningPushResponseEnum >(response_);
}
inline void ProvisioningPushAck::set_response(::com::fca::uconnect::global::ProvisioningPushAck_ProvisioningPushResponseEnum value) {
  
  response_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ProvisioningPushAck.response)
}

// bool isTransient = 2;
inline void ProvisioningPushAck::clear_istransient() {
  istransient_ = false;
}
inline bool ProvisioningPushAck::istransient() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ProvisioningPushAck.isTransient)
  return istransient_;
}
inline void ProvisioningPushAck::set_istransient(bool value) {
  
  istransient_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ProvisioningPushAck.isTransient)
}

// int32 failureReasonCode = 3;
inline void ProvisioningPushAck::clear_failurereasoncode() {
  failurereasoncode_ = 0;
}
inline ::google::protobuf::int32 ProvisioningPushAck::failurereasoncode() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ProvisioningPushAck.failureReasonCode)
  return failurereasoncode_;
}
inline void ProvisioningPushAck::set_failurereasoncode(::google::protobuf::int32 value) {
  
  failurereasoncode_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ProvisioningPushAck.failureReasonCode)
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// ServiceDescription

// .com.fca.uconnect.global.ServiceDescription.ServiceTypeEnum serviceType = 1;
inline void ServiceDescription::clear_servicetype() {
  servicetype_ = 0;
}
inline ::com::fca::uconnect::global::ServiceDescription_ServiceTypeEnum ServiceDescription::servicetype() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ServiceDescription.serviceType)
  return static_cast< ::com::fca::uconnect::global::ServiceDescription_ServiceTypeEnum >(servicetype_);
}
inline void ServiceDescription::set_servicetype(::com::fca::uconnect::global::ServiceDescription_ServiceTypeEnum value) {
  
  servicetype_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ServiceDescription.serviceType)
}

// int64 expireTime = 2;
inline void ServiceDescription::clear_expiretime() {
  expiretime_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 ServiceDescription::expiretime() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ServiceDescription.expireTime)
  return expiretime_;
}
inline void ServiceDescription::set_expiretime(::google::protobuf::int64 value) {
  
  expiretime_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ServiceDescription.expireTime)
}

// map<string, string> additionalParameters = 3;
inline int ServiceDescription::additionalparameters_size() const {
  return additionalparameters_.size();
}
inline void ServiceDescription::clear_additionalparameters() {
  additionalparameters_.Clear();
}
inline const ::google::protobuf::Map< ::std::string, ::std::string >&
ServiceDescription::additionalparameters() const {
  // @@protoc_insertion_point(field_map:com.fca.uconnect.global.ServiceDescription.additionalParameters)
  return additionalparameters_.GetMap();
}
inline ::google::protobuf::Map< ::std::string, ::std::string >*
ServiceDescription::mutable_additionalparameters() {
  // @@protoc_insertion_point(field_mutable_map:com.fca.uconnect.global.ServiceDescription.additionalParameters)
  return additionalparameters_.MutableMap();
}

// .com.fca.uconnect.global.ServiceDescription.Status status = 4;
inline void ServiceDescription::clear_status() {
  status_ = 0;
}
inline ::com::fca::uconnect::global::ServiceDescription_Status ServiceDescription::status() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ServiceDescription.status)
  return static_cast< ::com::fca::uconnect::global::ServiceDescription_Status >(status_);
}
inline void ServiceDescription::set_status(::com::fca::uconnect::global::ServiceDescription_Status value) {
  
  status_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ServiceDescription.status)
}

// int32 version = 5;
inline void ServiceDescription::clear_version() {
  version_ = 0;
}
inline ::google::protobuf::int32 ServiceDescription::version() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ServiceDescription.version)
  return version_;
}
inline void ServiceDescription::set_version(::google::protobuf::int32 value) {
  
  version_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ServiceDescription.version)
}

// int32 contentId = 6;
inline void ServiceDescription::clear_contentid() {
  contentid_ = 0;
}
inline ::google::protobuf::int32 ServiceDescription::contentid() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ServiceDescription.contentId)
  return contentid_;
}
inline void ServiceDescription::set_contentid(::google::protobuf::int32 value) {
  
  contentid_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ServiceDescription.contentId)
}

// string appIdentifier = 7;
inline void ServiceDescription::clear_appidentifier() {
  appidentifier_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& ServiceDescription::appidentifier() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ServiceDescription.appIdentifier)
  return appidentifier_.GetNoArena();
}
inline void ServiceDescription::set_appidentifier(const ::std::string& value) {
  
  appidentifier_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ServiceDescription.appIdentifier)
}
#if LANG_CXX11
inline void ServiceDescription::set_appidentifier(::std::string&& value) {
  
  appidentifier_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.ServiceDescription.appIdentifier)
}
#endif
inline void ServiceDescription::set_appidentifier(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  appidentifier_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.ServiceDescription.appIdentifier)
}
inline void ServiceDescription::set_appidentifier(const char* value, size_t size) {
  
  appidentifier_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.ServiceDescription.appIdentifier)
}
inline ::std::string* ServiceDescription::mutable_appidentifier() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ServiceDescription.appIdentifier)
  return appidentifier_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ServiceDescription::release_appidentifier() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.ServiceDescription.appIdentifier)
  
  return appidentifier_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ServiceDescription::set_allocated_appidentifier(::std::string* appidentifier) {
  if (appidentifier != NULL) {
    
  } else {
    
  }
  appidentifier_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), appidentifier);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.ServiceDescription.appIdentifier)
}

// int32 appLauncherMask = 8;
inline void ServiceDescription::clear_applaunchermask() {
  applaunchermask_ = 0;
}
inline ::google::protobuf::int32 ServiceDescription::applaunchermask() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ServiceDescription.appLauncherMask)
  return applaunchermask_;
}
inline void ServiceDescription::set_applaunchermask(::google::protobuf::int32 value) {
  
  applaunchermask_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ServiceDescription.appLauncherMask)
}

// string installerType = 9;
inline void ServiceDescription::clear_installertype() {
  installertype_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& ServiceDescription::installertype() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ServiceDescription.installerType)
  return installertype_.GetNoArena();
}
inline void ServiceDescription::set_installertype(const ::std::string& value) {
  
  installertype_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ServiceDescription.installerType)
}
#if LANG_CXX11
inline void ServiceDescription::set_installertype(::std::string&& value) {
  
  installertype_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.ServiceDescription.installerType)
}
#endif
inline void ServiceDescription::set_installertype(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  installertype_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.ServiceDescription.installerType)
}
inline void ServiceDescription::set_installertype(const char* value, size_t size) {
  
  installertype_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.ServiceDescription.installerType)
}
inline ::std::string* ServiceDescription::mutable_installertype() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ServiceDescription.installerType)
  return installertype_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ServiceDescription::release_installertype() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.ServiceDescription.installerType)
  
  return installertype_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ServiceDescription::set_allocated_installertype(::std::string* installertype) {
  if (installertype != NULL) {
    
  } else {
    
  }
  installertype_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), installertype);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.ServiceDescription.installerType)
}

// string accountDN = 10;
inline void ServiceDescription::clear_accountdn() {
  accountdn_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& ServiceDescription::accountdn() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ServiceDescription.accountDN)
  return accountdn_.GetNoArena();
}
inline void ServiceDescription::set_accountdn(const ::std::string& value) {
  
  accountdn_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ServiceDescription.accountDN)
}
#if LANG_CXX11
inline void ServiceDescription::set_accountdn(::std::string&& value) {
  
  accountdn_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.ServiceDescription.accountDN)
}
#endif
inline void ServiceDescription::set_accountdn(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  accountdn_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.ServiceDescription.accountDN)
}
inline void ServiceDescription::set_accountdn(const char* value, size_t size) {
  
  accountdn_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.ServiceDescription.accountDN)
}
inline ::std::string* ServiceDescription::mutable_accountdn() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ServiceDescription.accountDN)
  return accountdn_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ServiceDescription::release_accountdn() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.ServiceDescription.accountDN)
  
  return accountdn_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ServiceDescription::set_allocated_accountdn(::std::string* accountdn) {
  if (accountdn != NULL) {
    
  } else {
    
  }
  accountdn_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), accountdn);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.ServiceDescription.accountDN)
}

// int32 fileLength = 11;
inline void ServiceDescription::clear_filelength() {
  filelength_ = 0;
}
inline ::google::protobuf::int32 ServiceDescription::filelength() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ServiceDescription.fileLength)
  return filelength_;
}
inline void ServiceDescription::set_filelength(::google::protobuf::int32 value) {
  
  filelength_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ServiceDescription.fileLength)
}

// int32 fileChecksum = 12;
inline void ServiceDescription::clear_filechecksum() {
  filechecksum_ = 0;
}
inline ::google::protobuf::int32 ServiceDescription::filechecksum() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ServiceDescription.fileChecksum)
  return filechecksum_;
}
inline void ServiceDescription::set_filechecksum(::google::protobuf::int32 value) {
  
  filechecksum_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ServiceDescription.fileChecksum)
}

// string featureMask = 13;
inline void ServiceDescription::clear_featuremask() {
  featuremask_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& ServiceDescription::featuremask() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ServiceDescription.featureMask)
  return featuremask_.GetNoArena();
}
inline void ServiceDescription::set_featuremask(const ::std::string& value) {
  
  featuremask_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ServiceDescription.featureMask)
}
#if LANG_CXX11
inline void ServiceDescription::set_featuremask(::std::string&& value) {
  
  featuremask_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.ServiceDescription.featureMask)
}
#endif
inline void ServiceDescription::set_featuremask(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  featuremask_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.ServiceDescription.featureMask)
}
inline void ServiceDescription::set_featuremask(const char* value, size_t size) {
  
  featuremask_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.ServiceDescription.featureMask)
}
inline ::std::string* ServiceDescription::mutable_featuremask() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ServiceDescription.featureMask)
  return featuremask_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ServiceDescription::release_featuremask() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.ServiceDescription.featureMask)
  
  return featuremask_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ServiceDescription::set_allocated_featuremask(::std::string* featuremask) {
  if (featuremask != NULL) {
    
  } else {
    
  }
  featuremask_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), featuremask);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.ServiceDescription.featureMask)
}

// int64 expirexTimeSpanBegiTimeSpanBegin = 14;
inline void ServiceDescription::clear_expirextimespanbegitimespanbegin() {
  expirextimespanbegitimespanbegin_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 ServiceDescription::expirextimespanbegitimespanbegin() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ServiceDescription.expirexTimeSpanBegiTimeSpanBegin)
  return expirextimespanbegitimespanbegin_;
}
inline void ServiceDescription::set_expirextimespanbegitimespanbegin(::google::protobuf::int64 value) {
  
  expirextimespanbegitimespanbegin_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ServiceDescription.expirexTimeSpanBegiTimeSpanBegin)
}

// int64 expireTimeSpanEnd = 15;
inline void ServiceDescription::clear_expiretimespanend() {
  expiretimespanend_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 ServiceDescription::expiretimespanend() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ServiceDescription.expireTimeSpanEnd)
  return expiretimespanend_;
}
inline void ServiceDescription::set_expiretimespanend(::google::protobuf::int64 value) {
  
  expiretimespanend_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ServiceDescription.expireTimeSpanEnd)
}

// string emailId = 16;
inline void ServiceDescription::clear_emailid() {
  emailid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& ServiceDescription::emailid() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ServiceDescription.emailId)
  return emailid_.GetNoArena();
}
inline void ServiceDescription::set_emailid(const ::std::string& value) {
  
  emailid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ServiceDescription.emailId)
}
#if LANG_CXX11
inline void ServiceDescription::set_emailid(::std::string&& value) {
  
  emailid_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.ServiceDescription.emailId)
}
#endif
inline void ServiceDescription::set_emailid(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  emailid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.ServiceDescription.emailId)
}
inline void ServiceDescription::set_emailid(const char* value, size_t size) {
  
  emailid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.ServiceDescription.emailId)
}
inline ::std::string* ServiceDescription::mutable_emailid() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ServiceDescription.emailId)
  return emailid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ServiceDescription::release_emailid() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.ServiceDescription.emailId)
  
  return emailid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ServiceDescription::set_allocated_emailid(::std::string* emailid) {
  if (emailid != NULL) {
    
  } else {
    
  }
  emailid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), emailid);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.ServiceDescription.emailId)
}

// -------------------------------------------------------------------

// ServiceSubscriptionInfo

// repeated .com.fca.uconnect.global.ServiceDescription services = 1;
inline int ServiceSubscriptionInfo::services_size() const {
  return services_.size();
}
inline void ServiceSubscriptionInfo::clear_services() {
  services_.Clear();
}
inline const ::com::fca::uconnect::global::ServiceDescription& ServiceSubscriptionInfo::services(int index) const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ServiceSubscriptionInfo.services)
  return services_.Get(index);
}
inline ::com::fca::uconnect::global::ServiceDescription* ServiceSubscriptionInfo::mutable_services(int index) {
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ServiceSubscriptionInfo.services)
  return services_.Mutable(index);
}
inline ::com::fca::uconnect::global::ServiceDescription* ServiceSubscriptionInfo::add_services() {
  // @@protoc_insertion_point(field_add:com.fca.uconnect.global.ServiceSubscriptionInfo.services)
  return services_.Add();
}
inline ::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::ServiceDescription >*
ServiceSubscriptionInfo::mutable_services() {
  // @@protoc_insertion_point(field_mutable_list:com.fca.uconnect.global.ServiceSubscriptionInfo.services)
  return &services_;
}
inline const ::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::ServiceDescription >&
ServiceSubscriptionInfo::services() const {
  // @@protoc_insertion_point(field_list:com.fca.uconnect.global.ServiceSubscriptionInfo.services)
  return services_;
}

// -------------------------------------------------------------------

// BIMDPSKInfo_BIMDPSK

// string mobileDeviceId = 1;
inline void BIMDPSKInfo_BIMDPSK::clear_mobiledeviceid() {
  mobiledeviceid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& BIMDPSKInfo_BIMDPSK::mobiledeviceid() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK.mobileDeviceId)
  return mobiledeviceid_.GetNoArena();
}
inline void BIMDPSKInfo_BIMDPSK::set_mobiledeviceid(const ::std::string& value) {
  
  mobiledeviceid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK.mobileDeviceId)
}
#if LANG_CXX11
inline void BIMDPSKInfo_BIMDPSK::set_mobiledeviceid(::std::string&& value) {
  
  mobiledeviceid_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK.mobileDeviceId)
}
#endif
inline void BIMDPSKInfo_BIMDPSK::set_mobiledeviceid(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  mobiledeviceid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK.mobileDeviceId)
}
inline void BIMDPSKInfo_BIMDPSK::set_mobiledeviceid(const char* value, size_t size) {
  
  mobiledeviceid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK.mobileDeviceId)
}
inline ::std::string* BIMDPSKInfo_BIMDPSK::mutable_mobiledeviceid() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK.mobileDeviceId)
  return mobiledeviceid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* BIMDPSKInfo_BIMDPSK::release_mobiledeviceid() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK.mobileDeviceId)
  
  return mobiledeviceid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void BIMDPSKInfo_BIMDPSK::set_allocated_mobiledeviceid(::std::string* mobiledeviceid) {
  if (mobiledeviceid != NULL) {
    
  } else {
    
  }
  mobiledeviceid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), mobiledeviceid);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK.mobileDeviceId)
}

// bytes preSharedKey = 2;
inline void BIMDPSKInfo_BIMDPSK::clear_presharedkey() {
  presharedkey_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& BIMDPSKInfo_BIMDPSK::presharedkey() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK.preSharedKey)
  return presharedkey_.GetNoArena();
}
inline void BIMDPSKInfo_BIMDPSK::set_presharedkey(const ::std::string& value) {
  
  presharedkey_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK.preSharedKey)
}
#if LANG_CXX11
inline void BIMDPSKInfo_BIMDPSK::set_presharedkey(::std::string&& value) {
  
  presharedkey_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK.preSharedKey)
}
#endif
inline void BIMDPSKInfo_BIMDPSK::set_presharedkey(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  presharedkey_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK.preSharedKey)
}
inline void BIMDPSKInfo_BIMDPSK::set_presharedkey(const void* value, size_t size) {
  
  presharedkey_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK.preSharedKey)
}
inline ::std::string* BIMDPSKInfo_BIMDPSK::mutable_presharedkey() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK.preSharedKey)
  return presharedkey_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* BIMDPSKInfo_BIMDPSK::release_presharedkey() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK.preSharedKey)
  
  return presharedkey_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void BIMDPSKInfo_BIMDPSK::set_allocated_presharedkey(::std::string* presharedkey) {
  if (presharedkey != NULL) {
    
  } else {
    
  }
  presharedkey_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), presharedkey);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK.preSharedKey)
}

// -------------------------------------------------------------------

// BIMDPSKInfo

// repeated .com.fca.uconnect.global.BIMDPSKInfo.BIMDPSK deviceKeys = 1;
inline int BIMDPSKInfo::devicekeys_size() const {
  return devicekeys_.size();
}
inline void BIMDPSKInfo::clear_devicekeys() {
  devicekeys_.Clear();
}
inline const ::com::fca::uconnect::global::BIMDPSKInfo_BIMDPSK& BIMDPSKInfo::devicekeys(int index) const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.BIMDPSKInfo.deviceKeys)
  return devicekeys_.Get(index);
}
inline ::com::fca::uconnect::global::BIMDPSKInfo_BIMDPSK* BIMDPSKInfo::mutable_devicekeys(int index) {
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.BIMDPSKInfo.deviceKeys)
  return devicekeys_.Mutable(index);
}
inline ::com::fca::uconnect::global::BIMDPSKInfo_BIMDPSK* BIMDPSKInfo::add_devicekeys() {
  // @@protoc_insertion_point(field_add:com.fca.uconnect.global.BIMDPSKInfo.deviceKeys)
  return devicekeys_.Add();
}
inline ::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::BIMDPSKInfo_BIMDPSK >*
BIMDPSKInfo::mutable_devicekeys() {
  // @@protoc_insertion_point(field_mutable_list:com.fca.uconnect.global.BIMDPSKInfo.deviceKeys)
  return &devicekeys_;
}
inline const ::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::BIMDPSKInfo_BIMDPSK >&
BIMDPSKInfo::devicekeys() const {
  // @@protoc_insertion_point(field_list:com.fca.uconnect.global.BIMDPSKInfo.deviceKeys)
  return devicekeys_;
}

#endif  // !PROTOBUF_INLINE_NOT_IN_HEADERS
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)


}  // namespace global
}  // namespace uconnect
}  // namespace fca
}  // namespace com

#ifndef SWIG
namespace google {
namespace protobuf {

template <> struct is_proto_enum< ::com::fca::uconnect::global::ProvisioningRequest_ReasonEnum> : ::google::protobuf::internal::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::com::fca::uconnect::global::ProvisioningRequest_ReasonEnum>() {
  return ::com::fca::uconnect::global::ProvisioningRequest_ReasonEnum_descriptor();
}
template <> struct is_proto_enum< ::com::fca::uconnect::global::ProvisioningResponse_ResponseEnum> : ::google::protobuf::internal::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::com::fca::uconnect::global::ProvisioningResponse_ResponseEnum>() {
  return ::com::fca::uconnect::global::ProvisioningResponse_ResponseEnum_descriptor();
}
template <> struct is_proto_enum< ::com::fca::uconnect::global::ProvisioningPushAck_ProvisioningPushResponseEnum> : ::google::protobuf::internal::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::com::fca::uconnect::global::ProvisioningPushAck_ProvisioningPushResponseEnum>() {
  return ::com::fca::uconnect::global::ProvisioningPushAck_ProvisioningPushResponseEnum_descriptor();
}
template <> struct is_proto_enum< ::com::fca::uconnect::global::ServiceDescription_ServiceTypeEnum> : ::google::protobuf::internal::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::com::fca::uconnect::global::ServiceDescription_ServiceTypeEnum>() {
  return ::com::fca::uconnect::global::ServiceDescription_ServiceTypeEnum_descriptor();
}
template <> struct is_proto_enum< ::com::fca::uconnect::global::ServiceDescription_Status> : ::google::protobuf::internal::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::com::fca::uconnect::global::ServiceDescription_Status>() {
  return ::com::fca::uconnect::global::ServiceDescription_Status_descriptor();
}

}  // namespace protobuf
}  // namespace google
#endif  // SWIG

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_Global_5fUconnect_5fExt_5fProvision_2eproto__INCLUDED
