+#ifdef MULTIPLE_OWNER
+ /**
+ * API to update 'doxm.oxmsel' to resource server.
+ *
+ * @param resultCallback Callback provided by API user, callback will be
+ * called when credential revocation is finished.
+ * @param oxmSelVal Method of multiple ownership transfer (ref. oic.sec.oxm)
+ * @return ::OC_STACK_OK in case of success and other value otherwise.
+ */
+ OCStackResult selectMOTMethod( const OicSecOxm_t oxmSelVal,
+ ResultCallBack resultCallback);
+
+ /**
+ * API to update 'doxm.mom' to resource server.
+ *
+ * @param resultCallback Callback provided by API user, callback will be
+ * called when credential revocation is finished.
+ * @param momType Mode of multiple ownership transfer (ref. oic.sec.mom)
+ * @return ::OC_STACK_OK in case of success and other value otherwise.
+ */
+ OCStackResult changeMOTMode( const OicSecMomType_t momType,
+ ResultCallBack resultCallback);
+
+ /**
+ * API to add preconfigured PIN to local SVR DB.
+ *
+ * @param preconfPIN Preconfig PIN which is used while multiple owner authentication
+ * @param preconfPINLength Byte length of preconfig PIN
+ * @return ::OC_STACK_OK in case of success and other value otherwise.
+ */
+ OCStackResult addPreconfigPIN(const char* preconfPIN,
+ size_t preconfPINLength);
+
+ /**
+ * API to provision preconfigured PIN.
+ *
+ * @param resultCallback Callback provided by API user, callback will be called when
+ * credential revocation is finished.
+ * @param preconfPin Preconfig PIN which is used while multiple owner authentication
+ * @param preconfPinLength Byte length of preconfig PIN
+ * @return ::OC_STACK_OK in case of success and other value otherwise.
+ */
+ OCStackResult provisionPreconfPin(const char * preconfPin,
+ size_t preconfPinLength, ResultCallBack resultCallback);
+
+ /**
+ * API to do multiple ownership transfer for MOT enabled device.
+ *
+ * @param resultCallback Result callback function to be invoked when
+ * multiple ownership transfer finished.
+ * @return ::OC_STACK_OK in case of success and other value otherwise.
+ */
+ OCStackResult doMultipleOwnershipTransfer(ResultCallBack resultCallback);
+
+ /**
+ * API to remove sub-owner from resource server
+ *
+ * @param[in] subOwner sub-owner UUID to be removed
+ * @param[in] resultCallback callback provided by API user, callback will be invoked when
+ * DELETE 'subowneruuid' request recieves a response from resource server.
+ * @return ::OC_STACK_OK in case of success and other value otherwise.
+ */
+ OCStackResult removeSubOwner(const OicUuid_t* subOwnerId, ResultCallBack resultCallback);
+
+ /**
+ * API to remove all sub-owner from resource server
+ *
+ * @param[in] resultCallback callback provided by API user, callback will be invoked when
+ * DELETE 'subowneruuid' request recieves a response from resource server.
+ * @return ::OC_STACK_OK in case of success and other value otherwise.
+ */
+ OCStackResult removeAllSubOwner(ResultCallBack resultCallback);
+
+ /**
+ * API to get a sub-owner list
+ *
+ * @param[out] Sub-owner list of resource server
+ * @return ::OC_STACK_OK in case of success and other value otherwise.
+ */
+ OCStackResult getSubOwnerList(UuidList_t &uuidList);
+
+ /**
+ * API to get the proper OxM for MOT.
+ *
+ * @param oxm Address to save the selected OxM.
+ *
+ * @return ::OC_STACK_OK in case of success and other value otherwise.
+ */
+ OCStackResult getMOTMethod( OicSecOxm_t* oxm);
+
+ /**
+ * API to check whether MOT is supported.
+ *
+ * @return ::true in case of MOT supported.
+ */
+ bool isMOTSupported();
+
+ /**
+ * API to check whether MOT is enabled.
+ *
+ * @return ::true in case of MOT enabled.
+ */
+ bool isMOTEnabled();
+
+
+#endif // MULTIPLE_OWNER
+