Device plugin manifestEvery plugin must have a manifest.xml (with precisely that name) at the root of the plugin folder. The manifest file describes essential information about your plugin to the SmartThings Ecosystem. If you’re using code templates to build your plugin, the manifest file is created for you, and most of essential manifest elements are added as you build your plugin. Manifest File StructureThe below code snippets as below show the general structure of the manifest file and all the elements that can be contained in the manifest file. Examples of manifest files are as follows. Only the and elements are required. They each must occur only once. can occur zero or one time. can occur zero or more times. Elements at the same level are generally not ordered. Package NameThe manifest file’s root element requires an attribute for your plugin’s package name. ... Except for the minPluginSdkVersion, all attributes are required. Attribute Name Type Description xmlns varchar Namespace of manifest manifestVersionCode integer Manifest Version info package varchar Package ID versionCode integer Package Version Info VersionName varchar Package Version Info minPluginSdkVersion varchar Required minimum Plugin SDK Version Plugin ComponentsManifest elements have label and icon attributes for displaying a small icon and a text label, respectively, to users for the corresponding plugin component. … All attributes are required. They each must occur only once. Attribute Name Type Description label varchar Plugin label icon varchar Pl DeviceDeclares an device that implements part of the plugin’s device. We define what kind of device (e.g. light, refrigerator) we try to connect. Except for the subtype, all attributes are required and has same value with type if not explicitly set. Attribute Name Type Description type varchar Device type in lower case subType varchar Device subtype in lower case, if available. (If not specified, has the same value as ‘type’.) manufacturer varchar Device manufacturer name (e.g., “Samsung Electronics Co., Ltd.”) manufacturerID varchar Device manufacturer ID (4 byte string, e.g. AAA1, AAA2) Privilege LevelSmartThings plugin framework provides API-level access control for security-sensitive operations which, if not used correctly, can harm user privacy and system stability. Therefore, plugins that use such sensitive APIs must declare the required privileges in the manifest.xml file. Privileges are categorized into public, partner, and platform levels according to their hierarchy: The public level is the normal privilege level. Any plugin developed using the SmartThings SDK can use these privileges. The partner level requires a partner-signed certificate that is granted to developers who have a business relationship with the vendor. The platform level is the highest privilege level. A plugin that needs these privileges requires a platform-signed certificate that is granted to vendor developers. Allowed URLBy default, accessing an external URL in the custom plugin webview is prohibited. To grant access to an external URL, you have to register the URL(s) in the element.