The following enumerations are used in IMIconnect iOS SDK.


This enumeration exposes enumeration data with type of logs that will be logged.

ICLogTypeNoneNo log will be displayed/recorded.
ICLogTypeDebugA large amount of logs will be logged that can help to debug.
ICLogTypeProductionLogs will be kept at a minimum level.


This enumeration represents the target on which the logs will be displayed or recorded.

ICLogTargetConsoleLogs will be displayed in the console.
ICLogTargetFileLogs will be recorded in a file.


This enumeration describes different connection status between the SDK and the Real Time Messaging server.

ICConnectionStatusNoneNo connection attempt has been made.
ICConnectionStatusConnectingThe SDK is attempting to establish a connection with Real Time Messaging server.
ICConnectionStatusConnectedThe SDK is connected and allows you to publish and receive messages.
ICConnectionStatusRefusedThe connection is refused by the Real Time Messaging server.
ICConnectionStatusClosedThe SDK is disconnected from the Real Time Messaging server.
ICConnectionStatusErrorA connection error has occurred while connecting to Real Time Messaging server.


This enumeration describes different error codes of the SDK.

ICErrorCodeNotInitializedReturned when trying to access a feature without initializing the SDK.
ICErrorCodeAlreadyInitializedReturned when trying to initialize the SDK when it is already initialized.
ICErrorCodeNotRegisteredReturned when trying to access a feature without registering a user.
ICErrorCodeFeatureNotSupportedReturned when trying to access a feature that is not supported by the app.
ICErrorCodeInvalidParameterValueReturned when a required parameter is not passed or an invalid value has been passed to a method.
ICErrorCodeNotConnectedReturned when trying to communicate with the RTM server without establishing a connection.
ICErrorCodeRegistrationFailureReturned when a registration is failed.
ICErrorCodeInvalidResponseReturned when a response from the server is invalid.
ICErrorCodeTokenInvalid = 38The token is not in the expected format.
ICErrorCodeTokenUnauthorized = 39The token does not provide authorization to access the requested resource.
ICErrorCodeTokenExpired = 40The token has expired.
ICErrorCodeTokenRequired = 41The token is required.


This enumeration describes the supported message channels.

ICMessageChannelPushThe incoming message comes from Push notification channel.
ICMessageChannelRealTimeThe incoming message comes from Real Time Messaging channel.


This enumeration describes the message types.

ICMessageTypeBasicA standard non-interactive message.
ICMessageTypeInteractiveA message that contains pre-built out-of-the-box interactive elements. This type of message typically causes actions to occur on the device in response to notification buttons.
ICMessageTypeAlertMessage data is alert from connect platform.
ICMessageTypeDeliveryReceiptMessage data is a DeliveryReceipt, TransactionId is available and can be used to match the receipt to the original message.
ICMessageTypeMessageStandard Push or RTM.
ICMessageTypeNotificationRepresents the notification part of an RTM.
ICMessageTypeReadReceiptMessage data is a ReadReceipt, only TransactionId is available and can be used to match the receipt to the original message.
ICMessageTypeRepublishMessage is a republish of a MO, all data from the original message is available.
ICMessageTypeTypingStartMessage data is a TypingStart from connect platform end.
ICMessageTypeTypingStopMessage data is a TypingStop from connect platform end.



Message field could be null for below message types:



ICThreadTypeConversationThe thread is a conversation, the users can send messages on this thread.
ICThreadTypeAnnouncementThe thread is an announcement thread, the users can only receive messages on this thread.


ICMessageSynchronizationModeFullSynchronization should synchronize all available data.
ICMessageSynchronizationModeLimitedSynchronization should occur based on policy limits.
ICMessageSynchronizationModeNoneSynchronization should be disabled.


ICMessageStatusNoneNone is the default message status.
ICMessageStatusSentMessage sent successfully to connect platform.
ICMessageStatusDeliveredMessage delivered to the user device.
ICMessageStatusReadMessage read by the user device.


ICThreadStatusActiveThe thread is active. The user can receive (and send if the thread type is conversation) messages on this thread
ICThreadStatusClosedThe thread is closed. The user cannot receive (and send if the thread type is conversation) any messages on this thread