Sealed management packs enforce version control when you install an updated version of the management in a management group where an earlier version of the management pack is installed. If a new version of a sealed management pack is not backward compatible, you must uninstall the earlier version of the management pack before you can install the new version. If you plan to seal a management pack, you must ensure that each updated version of the management pack will be backward compatible.
Any management pack element that can be used by another management pack has an accessibility setting. By default, this setting is internal, meaning that the element can only be used in the current management pack, and no other management packs can use it. If the accessibility for an element is changed to public, the element can be used by other management packs, but backward compatibility is enforced that restricts the modifications that can be made to the element.
As a best practice, keep the accessibility internal for all management pack elements unless other management packs will be using them. Setting them to internal preserves the ability to make any modifications in later version of the management pack.
Classes are typically marked as public unless they are meant to only act as a base class for classes in the current management pack. This is because a user might want to create elements such as monitors, rules, or views that apply to the class after it is installed. Because the management pack is sealed, which is required for another management pack to reference it, these elements must be created in another management pack, but this is not possible if the class is internal. Classes must be marked as public to apply to management pack elements in other management packs.
When a new version of a sealed management pack is installed in a management group, the version that is installed must be a version later than the installed version. If the version is the same or an earlier version than the installed version, the management pack does not install.
The content of the new management pack must also be backward compatible with the installed version, or the management pack does not install. Only management pack elements with public accessibility will be checked for backward compatibility. Elements with internal accessibility are not checked and can be removed or modified without restriction.
The requirements for all elements with public accessibility for a management pack to be backward compatible are as follows:
The element must be located in the new version of the management pack.
No key properties can be added or removed from a class.
No properties can be removed from a class. Properties can be added as long as they are not a key property.
No properties on a class can have their data type changed.
Classes cannot have their base class modified.
The number of health states on a monitor type cannot be changed.
Parameters on modules and monitor types cannot be added or removed.
Parameters on modules and monitor types cannot have their data type changed.
Parameters on a module or monitor type configured to be overrideable cannot be changed to prevent overrides.