Telematics SDK - Interface Specification  v1.46.10
Remote SIM Provisioning

Data Structures

struct  telux::tel::CustomHeader
 
class  telux::tel::IHttpTransactionListener
 The interface listens for indication to perform HTTP request and send back the response for HTTP request to modem. More...
 
class  telux::tel::IHttpTransactionManager
 IHttpTransactionManager is the interface to service HTTP related requests from the modem for SIM profile update related operations. More...
 
class  telux::tel::SimProfile
 SimProfile class represents single eUICC profile on the card. More...
 
class  telux::tel::ISimProfileListener
 The interface listens for profile download indication and keep track of download and install progress of profile. More...
 
class  telux::tel::ISimProfileManager
 ISimProfileManager is a primary interface for remote eUICCs (eSIMs or embedded SIMs) provisioning.This interface provides APIs to add, delete, set profile, update nickname, provide user consent, get Eid on the eUICC. More...
 

Typedefs

using telux::tel::PolicyRuleMask = std::bitset< 16 >
 
using telux::tel::ProfileListResponseCb = std::function< void(const std::vector< std::shared_ptr< SimProfile >> &profiles, telux::common::ErrorCode error)>
 
using telux::tel::EidResponseCb = std::function< void(std::string eid, telux::common::ErrorCode error)>
 
using telux::tel::ServerAddressResponseCb = std::function< void(std::string smdpAddress, std::string smdsAddress, telux::common::ErrorCode error)>
 

Enumerations

enum  telux::tel::HttpResult {
  telux::tel::HttpResult::TRANSACTION_SUCCESSFUL = 0, telux::tel::HttpResult::UNKNOWN_ERROR = 1, telux::tel::HttpResult::HTTP_SERVER_ERROR = 2, telux::tel::HttpResult::HTTP_TLS_ERROR = 3,
  telux::tel::HttpResult::HTTP_NETWORK_ERROR = 4
}
 
enum  telux::tel::ProfileType { telux::tel::ProfileType::UNKNOWN = -1, telux::tel::ProfileType::REGULAR = 0, telux::tel::ProfileType::EMERGENCY }
 
enum  telux::tel::IconType { telux::tel::IconType::NONE = 0, telux::tel::IconType::JPEG, telux::tel::IconType::PNG }
 
enum  telux::tel::ProfileClass { telux::tel::ProfileClass::UNKNOWN = -1, telux::tel::ProfileClass::TEST = 0, telux::tel::ProfileClass::PROVISIONING, telux::tel::ProfileClass::OPERATIONAL }
 
enum  telux::tel::DownloadStatus { telux::tel::DownloadStatus::DOWNLOAD_ERROR = 0, telux::tel::DownloadStatus::DOWNLOAD_INSTALLATION_COMPLETE }
 
enum  telux::tel::DownloadErrorCause {
  telux::tel::DownloadErrorCause::GENERIC = 1, telux::tel::DownloadErrorCause::SIM, telux::tel::DownloadErrorCause::NETWORK, telux::tel::DownloadErrorCause::MEMORY,
  telux::tel::DownloadErrorCause::UNSUPPORTED_PROFILE_CLASS, telux::tel::DownloadErrorCause::PPR_NOT_ALLOWED, telux::tel::DownloadErrorCause::END_USER_REJECTION, telux::tel::DownloadErrorCause::END_USER_POSTPONED
}
 
enum  telux::tel::UserConsentReasonType { telux::tel::UserConsentReasonType::END_USER_REJECTION = 0, telux::tel::UserConsentReasonType::END_USER_POSTPONED }
 
enum  telux::tel::PolicyRuleType { telux::tel::PROFILE_DISABLE_NOT_ALLOWED = (1 << 0), telux::tel::PROFILE_DELETE_NOT_ALLOWED = (1 << 1), telux::tel::PROFILE_DELETE_ON_DISABLE = (1 << 2) }
 

Detailed Description

This section contains APIs related to Remote SIM provisioning.


Data Structure Documentation

struct telux::tel::CustomHeader

Header information to be sent along with HTTP post request.

Data Fields
string name

Header name

string value

Header value

class telux::tel::IHttpTransactionListener

The interface listens for indication to perform HTTP request and send back the response for HTTP request to modem.

The methods in the listener can be invoked from multiple threads. It is client's responsibility to make sure the implementation is thread safe.

Public Member Functions

virtual void onNewHttpRequest (const std::string &url, uint32_t tokenId, const std::vector< CustomHeader > &headers, const std::vector< uint8_t > &reqPayload)
 
virtual ~IHttpTransactionListener ()
 
- Public Member Functions inherited from telux::common::IServiceStatusListener
virtual void onServiceStatusChange (ServiceStatus status)
 
virtual ~IServiceStatusListener ()
 

Constructor & Destructor Documentation

virtual telux::tel::IHttpTransactionListener::~IHttpTransactionListener ( )
virtual

Destructor of IHttpTransactionListener

Member Function Documentation

virtual void telux::tel::IHttpTransactionListener::onNewHttpRequest ( const std::string &  url,
uint32_t  tokenId,
const std::vector< CustomHeader > &  headers,
const std::vector< uint8_t > &  reqPayload 
)
virtual

An application handling this indication should perform the HTTP request and call the IHttpTransactionManager::sendHttpTransactionReq to provide the result of the HTTP transaction.

Parameters
[in]urlURL to sent HTTP post request.
[in]tokenIdToken identifier.
[in]headersHeader information to be sent along with HTTP post request.
[in]reqPayloadRequest payload.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
class telux::tel::IHttpTransactionManager

IHttpTransactionManager is the interface to service HTTP related requests from the modem for SIM profile update related operations.

Public Member Functions

virtual telux::common::ServiceStatus getServiceStatus ()=0
 
virtual telux::common::Status sendHttpTransactionResult (uint32_t token, HttpResult result, const std::vector< CustomHeader > &headers, const std::vector< uint8_t > &response, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status registerListener (std::weak_ptr< IHttpTransactionListener > listener)=0
 
virtual telux::common::Status deregisterListener (std::weak_ptr< IHttpTransactionListener > listener)=0
 
virtual ~IHttpTransactionManager ()
 

Constructor & Destructor Documentation

virtual telux::tel::IHttpTransactionManager::~IHttpTransactionManager ( )
virtual

Destructor for IHttpTransactionManager

Member Function Documentation

virtual telux::common::ServiceStatus telux::tel::IHttpTransactionManager::getServiceStatus ( )
pure virtual

This status indicates whether the IHttpTransactionManager object is in a usable state.

Returns
SERVICE_AVAILABLE - If HTTP transaction manager is ready for service. SERVICE_UNAVAILABLE - If HTTP transaction manager is temporarily unavailable. SERVICE_FAILED - If HTTP transaction manager encountered an irrecoverable failure.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::tel::IHttpTransactionManager::sendHttpTransactionResult ( uint32_t  token,
HttpResult  result,
const std::vector< CustomHeader > &  headers,
const std::vector< uint8_t > &  response,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Send the result of HTTP Post request transaction to modem.

Parameters
[in]tokenToken identifier for request and response pair.
[in]resultHTTP transaction request result.
[in]headersCustom Headers in HTTP Response.
[in]responseHTTP response payload.
[in]callbackCallback function to get the result of send HTTP transaction request.
Returns
Status of send HTTP transaction result i.e. success or suitable error code.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::tel::IHttpTransactionManager::registerListener ( std::weak_ptr< IHttpTransactionListener listener)
pure virtual

Register a listener for specific events like perform HTTP Post request.

Parameters
[in]listenerPointer of IHttpTransactionListener object that processes the notification.
Returns
Status of registerHttpListener success or suitable status code.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::tel::IHttpTransactionManager::deregisterListener ( std::weak_ptr< IHttpTransactionListener listener)
pure virtual

De-register the listener.

Parameters
[in]listenerPointer of IHttpTransactionListener object that needs to be deregistered.
Returns
Status of deregisterHttpListener success or suitable status code.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
class telux::tel::SimProfile

SimProfile class represents single eUICC profile on the card.

Public Member Functions

 SimProfile (int profileId, ProfileType profileType, const std::string &iccid, bool isActive, const std::string &nickName, const std::string &spn, const std::string &name, IconType iconType, std::vector< uint8_t > icon, ProfileClass profileClass, PolicyRuleMask policyRuleMask)
 
int getSlotId ()
 
int getProfileId ()
 
ProfileType getType ()
 
const std::string & getIccid ()
 
bool isActive ()
 
const std::string & getNickName ()
 
const std::string & getSPN ()
 
const std::string & getName ()
 
IconType getIconType ()
 
std::vector< uint8_t > getIcon ()
 
ProfileClass getClass ()
 
PolicyRuleMask getPolicyRule ()
 
std::string toString ()
 

Constructor & Destructor Documentation

telux::tel::SimProfile::SimProfile ( int  profileId,
ProfileType  profileType,
const std::string &  iccid,
bool  isActive,
const std::string &  nickName,
const std::string &  spn,
const std::string &  name,
IconType  iconType,
std::vector< uint8_t >  icon,
ProfileClass  profileClass,
PolicyRuleMask  policyRuleMask 
)

Member Function Documentation

int telux::tel::SimProfile::getSlotId ( )

Get slot id associated for this profile

Returns
SlotId
int telux::tel::SimProfile::getProfileId ( )

Get profile identifier. The profile identifier is not persistently unique. It is unique for given snapshot of SIM profiles state. The profile identifier could change when any profile is deleted and added.

Returns
unique identifier for the profile
ProfileType telux::tel::SimProfile::getType ( )

Get profile Type.

Returns
profile type
const std::string& telux::tel::SimProfile::getIccid ( )

Get profile ICCID.

Returns
profile ICCID coded as in EF-ICCID
bool telux::tel::SimProfile::isActive ( )

Indicates the profile state whether active or not.

Returns
true if profile is Active
const std::string& telux::tel::SimProfile::getNickName ( )

Get profile nick name.

Returns
profile nick name
const std::string& telux::tel::SimProfile::getSPN ( )

Get profile service provider name.

Returns
profile service provider name.
const std::string& telux::tel::SimProfile::getName ( )

Get profile name.

Returns
profile name
IconType telux::tel::SimProfile::getIconType ( )

Get profile icon type.

Returns
profile icon type
std::vector<uint8_t> telux::tel::SimProfile::getIcon ( )

Get profile icon content.

Returns
profile icon content
ProfileClass telux::tel::SimProfile::getClass ( )

Get profile class.

Returns
profile class
PolicyRuleMask telux::tel::SimProfile::getPolicyRule ( )

Get profile policy rules.

Returns
mask of profile policy rules
std::string telux::tel::SimProfile::toString ( )

Get the text related informative representation of this object.

Returns
String containing informative string.
class telux::tel::ISimProfileListener

The interface listens for profile download indication and keep track of download and install progress of profile.

The methods in the listener can be invoked from multiple threads. It is client's responsibility to make sure the implementation is thread safe.

Public Member Functions

virtual void onDownloadStatus (SlotId slotId, DownloadStatus status, DownloadErrorCause cause)
 
virtual void onUserDisplayInfo (SlotId slotId, bool userConsentRequired, PolicyRuleMask mask)
 
virtual void onConfirmationCodeRequired (SlotId slotId, std::string profileName)
 
virtual ~ISimProfileListener ()
 
- Public Member Functions inherited from telux::common::IServiceStatusListener
virtual void onServiceStatusChange (ServiceStatus status)
 
virtual ~IServiceStatusListener ()
 

Constructor & Destructor Documentation

virtual telux::tel::ISimProfileListener::~ISimProfileListener ( )
virtual

Destructor of ISimProfileListener

Member Function Documentation

virtual void telux::tel::ISimProfileListener::onDownloadStatus ( SlotId  slotId,
DownloadStatus  status,
DownloadErrorCause  cause 
)
virtual

This function is called when indication about status of profile download and installation comes.

Parameters
[in]slotIdSlot on which profile get downloaded and installed.
[in]statustelux::tel::DownloadStatus.
[in]causetelux::tel::DownloadErrorCause.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual void telux::tel::ISimProfileListener::onUserDisplayInfo ( SlotId  slotId,
bool  userConsentRequired,
PolicyRuleMask  mask 
)
virtual

This function is invoked when information about user consent and profile policy rules is received. The client application is expected to provide user consent for download and install profile by calling telux::tel::ISimProfileManager::provideUserConsent if user consent is expected.

Parameters
[in]slotIdSlot on which profile get downloaded and installed.
[in]userConsentRequiredUser consent required or not. If true it means user is expected to provide consent for download and install.
[in]masktelux::tel::PprMask (Profile policy rules Mask)
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual void telux::tel::ISimProfileListener::onConfirmationCodeRequired ( SlotId  slotId,
std::string  profileName 
)
virtual

This function is invoked when confirmation code is required. The client application is expected to provide confirmation code for download and install profile by calling telux::tel::ISimProfileManager::provideConfirmationCode

Parameters
[in]slotIdSlot on which profile get downloaded and installed.
[in]profileNameProfile name corresponding to which confirmation code is required.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
class telux::tel::ISimProfileManager

ISimProfileManager is a primary interface for remote eUICCs (eSIMs or embedded SIMs) provisioning.This interface provides APIs to add, delete, set profile, update nickname, provide user consent, get Eid on the eUICC.

Public Member Functions

virtual bool isSubsystemReady ()=0
 
virtual std::future< bool > onSubsystemReady ()=0
 
virtual telux::common::Status addProfile (SlotId slotId, const std::string &activationCode, const std::string &confirmationCode="", bool userConsentSupported=false, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status deleteProfile (SlotId slotId, int profileId, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status setProfile (SlotId slotId, int profileId, bool enable=false, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status updateNickName (SlotId slotId, int profileId, const std::string &nickName, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status requestProfileList (SlotId slotId, ProfileListResponseCb callback)=0
 
virtual telux::common::Status requestEid (SlotId slotId, EidResponseCb callback)=0
 
virtual telux::common::Status provideUserConsent (SlotId slotId, bool userConsent, UserConsentReasonType reason, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status provideConfirmationCode (SlotId slotId, std::string code, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status requestServerAddress (SlotId slotId, ServerAddressResponseCb callback)=0
 
virtual telux::common::Status setServerAddress (SlotId slotId, const std::string &smdpAddress, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status registerListener (std::weak_ptr< ISimProfileListener > listener)=0
 
virtual telux::common::Status deregisterListener (std::weak_ptr< ISimProfileListener > listener)=0
 
virtual ~ISimProfileManager ()
 

Constructor & Destructor Documentation

virtual telux::tel::ISimProfileManager::~ISimProfileManager ( )
virtual

Destructor for ISimProfileManager

Member Function Documentation

virtual bool telux::tel::ISimProfileManager::isSubsystemReady ( )
pure virtual

Checks if the eUICC subsystem is ready.

Returns
True if ISimProfileManager is ready for service, otherwise returns false.
virtual std::future<bool> telux::tel::ISimProfileManager::onSubsystemReady ( )
pure virtual

Wait for eUICC subsystem to be ready.

Returns
A future that caller can wait on to be notified when card manager is ready.
virtual telux::common::Status telux::tel::ISimProfileManager::addProfile ( SlotId  slotId,
const std::string &  activationCode,
const std::string &  confirmationCode = "",
bool  userConsentSupported = false,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Add new profile to eUICC card and download and install the profile on eUICC.

Parameters
[in]slotIdSlot identifier corresponding to the card.
[in]activationCodeActivation code.
[in]confirmationCodeOptional confirmation code required for downloading the profile.
[in]userConsentSupportedOptional User consent supported or not.
[in]callbackCallback function to get the result of add profile.
Returns
Status of add profile i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ISimProfileManager::deleteProfile ( SlotId  slotId,
int  profileId,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Delete profile from eUICC card.

Parameters
[in]slotIdSlot identifier corresponding to the card.
[in]profileIdProfile identifier
[in]callbackCallback function to get the result of delete profile.
Returns
Status of delete profile i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ISimProfileManager::setProfile ( SlotId  slotId,
int  profileId,
bool  enable = false,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Enable or disable profile which allows to switch to other profile on eUICC card.

Parameters
[in]slotIdSlot identifier corresponding to the card.
[in]profileIdProfile identifier.
[in]enableIndicates whether a profile must be enabled or disabled. true - Enable and false - Disable.
[in]callbackCallback function to get the result of set profile.
Returns
Status of set profile i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ISimProfileManager::updateNickName ( SlotId  slotId,
int  profileId,
const std::string &  nickName,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Update nick name of the profile

Parameters
[in]slotIdSlot identifier corresponding to the card.
[in]profileIdProfile identifier
[in]nickNameNew nick name for profile.
[in]callbackCallback function to get the result of update nickname.
Returns
Status of update nick name i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ISimProfileManager::requestProfileList ( SlotId  slotId,
ProfileListResponseCb  callback 
)
pure virtual

Request list of profiles supported by the eUICC card.

Parameters
[in]slotIdSlot identifier corresponding to the card.
[in]callbackCallback function to get the result of request profile list.
Returns
Status of request profile list i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ISimProfileManager::requestEid ( SlotId  slotId,
EidResponseCb  callback 
)
pure virtual

Request eUICC identifier(EID) for the slot.

Parameters
[in]slotIdSlot identifier corresponding to the card.
[in]callbackCallback function to get the result of request EID.
Returns
Status of request EID.e. success or suitable error code.
virtual telux::common::Status telux::tel::ISimProfileManager::provideUserConsent ( SlotId  slotId,
bool  userConsent,
UserConsentReasonType  reason,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Provide user consent required for downloading and installing profile. This API should be called in response to telux::tel::ISimProfileListener::onUserDisplayInfo.

Parameters
[in]slotIdSlot identifier corresponding to the card.
[in]userConsentConsent for proļ¬le download and install. True means user consent given to download and install.
[in]reasonReason for not providing user consent to download and install. telux::tel::UserConsentReasonType
[in]callbackCallback function to get the result of user consent request.
Returns
Status of user consent request i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ISimProfileManager::provideConfirmationCode ( SlotId  slotId,
std::string  code,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Provide confirmation code required for downloading and installing profile. This API should be called in response to telux::tel::ISimProfileListener::onConfirmationCodeRequired.

Parameters
[in]slotIdSlot identifier corresponding to the card.
[in]codeConfirmation code for profile download and install.
[in]callbackCallback function to get the result of confirmation request.
Returns
Status of provide confirmation code i.e. success or suitable error code.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::tel::ISimProfileManager::requestServerAddress ( SlotId  slotId,
ServerAddressResponseCb  callback 
)
pure virtual

Get Subscription Manager Data Preparation (SM-DP+) address and the Subscription Manager Discovery Server (SMDS) address configured on the eUICC.

Parameters
[in]slotIdSlot identifier corresponding to the card.
[in]callbackCallback function to get the result of server address request.
Returns
Status of server address request i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ISimProfileManager::setServerAddress ( SlotId  slotId,
const std::string &  smdpAddress,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Set Subscription Manager Data Preparation (SM-DP+) address on the eUICC. If SMDP+ address length is zero then the existing SM-DP+ address on the eUICC is removed

Parameters
[in]slotIdSlot identifier corresponding to the card.
[in]smdpAddressSM-DP+ address to be configured on the eUICC.
[in]callbackOptional Callback function to get the result of set SM-DP+ request.
Returns
Status of set server address request i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ISimProfileManager::registerListener ( std::weak_ptr< ISimProfileListener listener)
pure virtual

Register a listener to listen for status of specific events like download and installation of profile on eUICC.

Parameters
[in]listenerPointer of ISimProfileListener object that processes the notification.
Returns
Status of registerListener success or suitable status code
virtual telux::common::Status telux::tel::ISimProfileManager::deregisterListener ( std::weak_ptr< ISimProfileListener listener)
pure virtual

De-register the listener.

Parameters
[in]listenerPointer of ISimProfileListener object that needs to be removed
Returns
Status of deregisterListener success or suitable status code

Typedef Documentation

using telux::tel::PolicyRuleMask = typedef std::bitset<16>

16 bit mask that denotes which of the profile policy rules(PPR) defined in Policy Rule Type enum are used.

using telux::tel::ProfileListResponseCb = typedef std::function<void( const std::vector<std::shared_ptr<SimProfile>> &profiles, telux::common::ErrorCode error)>

This function is called with the response to requestProfileList API.

The callback can be invoked from multiple different threads. The implementation should be thread safe.

Parameters
[in]infoProfiles information telux::tel::SimProfile.
[in]errorReturn code which indicates whether the operation succeeded or not. telux::common::ErrorCode.
using telux::tel::EidResponseCb = typedef std::function<void(std::string eid, telux::common::ErrorCode error)>

This function is called with the response to requestEid API.

The callback can be invoked from multiple different threads. The implementation should be thread safe.

Parameters
[in]eideUICC identifier.
[in]errorReturn code which indicates whether the operation succeeded or not. telux::common::ErrorCode.
using telux::tel::ServerAddressResponseCb = typedef std::function<void(std::string smdpAddress, std::string smdsAddress, telux::common::ErrorCode error)>

This function is called with the response to requestServerAddress API.

The callback can be invoked from multiple different threads. The implementation should be thread safe.

Parameters
[in]smdpAddressConfigured SM-DP+ address on the eUICC.
[in]smdsAddressConfigured SMDS address on the eUICC.
[in]errorReturn code which indicates whether the operation succeeded or not. telux::common::ErrorCode.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

Enumeration Type Documentation

Defines the HTTP request result.

Enumerator
TRANSACTION_SUCCESSFUL 

HTTP request successful

UNKNOWN_ERROR 

Unknown error

HTTP_SERVER_ERROR 

Server error

HTTP_TLS_ERROR 

TLS error

HTTP_NETWORK_ERROR 

Network error

Indicates profile type of card

Enumerator
UNKNOWN 
REGULAR 

Regular profile

EMERGENCY 

Emergency profile

enum telux::tel::IconType
strong

Indicates profile icon type.

Enumerator
NONE 

No icon information

JPEG 

JPEG icon

PNG 

PNG icon

Indicates profile class.

Enumerator
UNKNOWN 

No info about profile class

TEST 

Test profile

PROVISIONING 

Provisioning profile

OPERATIONAL 

Operational profile

Indicates profile download status.

Enumerator
DOWNLOAD_ERROR 

Profile download error

DOWNLOAD_INSTALLATION_COMPLETE 

Profile download and installation is complete

Indicates profile download error cause.

Enumerator
GENERIC 

Generic error

SIM 

Error from the SIM card

NETWORK 

Error from the network

MEMORY 

Error due to no memory

UNSUPPORTED_PROFILE_CLASS 

Unsupported profile class

PPR_NOT_ALLOWED 

Profile policy rules not allowed

END_USER_REJECTION 

End user rejection

END_USER_POSTPONED 

End user postponed

Indicates the reason for user consent not provided.

Enumerator
END_USER_REJECTION 

End user rejection

END_USER_POSTPONED 

End user postponed

Defines profile policy rules(PPR). Each value represents corresponding bit for PprMask bitset.

Enumerator
PROFILE_DISABLE_NOT_ALLOWED 

Disabling of the profile is not allowed

PROFILE_DELETE_NOT_ALLOWED 

Deletion of the profile is not allowed

PROFILE_DELETE_ON_DISABLE 

Deletion of the profile is required on successful disabling