summaryrefslogtreecommitdiffstats
path: root/Schemas/CIM236/DMTF/Policy/CIM_PolicyRule.mof
diff options
context:
space:
mode:
Diffstat (limited to 'Schemas/CIM236/DMTF/Policy/CIM_PolicyRule.mof')
-rw-r--r--Schemas/CIM236/DMTF/Policy/CIM_PolicyRule.mof176
1 files changed, 176 insertions, 0 deletions
diff --git a/Schemas/CIM236/DMTF/Policy/CIM_PolicyRule.mof b/Schemas/CIM236/DMTF/Policy/CIM_PolicyRule.mof
new file mode 100644
index 0000000..178eb0d
--- /dev/null
+++ b/Schemas/CIM236/DMTF/Policy/CIM_PolicyRule.mof
@@ -0,0 +1,176 @@
+// Copyright (c) 2005 DMTF. All rights reserved.
+ [Version ( "2.7.0" ),
+ UMLPackagePath ( "CIM::Policy" ),
+ Description (
+ "The central class used for representing the \'If Condition "
+ "then Action\' semantics of a policy rule. A PolicyRule "
+ "condition, in the most general sense, is represented as either "
+ "an ORed set of ANDed conditions (Disjunctive Normal Form, or "
+ "DNF) or an ANDed set of ORed conditions (Conjunctive Normal "
+ "Form, or CNF). Individual conditions may either be negated "
+ "(NOT C) or unnegated (C). The actions specified by a "
+ "PolicyRule are to be performed if and only if the PolicyRule "
+ "condition (whether it is represented in DNF or CNF) evaluates "
+ "to TRUE. \n"
+ "\n"
+ "The conditions and actions associated with a PolicyRule are "
+ "modeled, respectively, with subclasses of PolicyCondition and "
+ "PolicyAction. These condition and action objects are tied to "
+ "instances of PolicyRule by the PolicyConditionInPolicyRule and "
+ "PolicyActionInPolicyRule aggregations. \n"
+ "\n"
+ "A PolicyRule may also be associated with one or more policy "
+ "time periods, indicating the schedule according to which the "
+ "policy rule is active and inactive. In this case it is the "
+ "PolicySetValidityPeriod aggregation that provides this "
+ "linkage. \n"
+ "\n"
+ "The PolicyRule class uses the property ConditionListType, to "
+ "indicate whether the conditions for the rule are in DNF "
+ "(disjunctive normal form), CNF (conjunctive normal form) or, "
+ "in the case of a rule with no conditions, as an "
+ "UnconditionalRule. The PolicyConditionInPolicyRule aggregation "
+ "contains two additional properties to complete the "
+ "representation of the Rule\'s conditional expression. The "
+ "first of these properties is an integer to partition the "
+ "referenced PolicyConditions into one or more groups, and the "
+ "second is a Boolean to indicate whether a referenced Condition "
+ "is negated. An example shows how ConditionListType and these "
+ "two additional properties provide a unique representation of a "
+ "set of PolicyConditions in either DNF or CNF. \n"
+ "\n"
+ "Suppose we have a PolicyRule that aggregates five "
+ "PolicyConditions C1 through C5, with the following values in "
+ "the properties of the five PolicyConditionInPolicyRule "
+ "associations: \n"
+ "C1: GroupNumber = 1, ConditionNegated = FALSE \n"
+ "C2: GroupNumber = 1, ConditionNegated = TRUE \n"
+ "C3: GroupNumber = 1, ConditionNegated = FALSE \n"
+ "C4: GroupNumber = 2, ConditionNegated = FALSE \n"
+ "C5: GroupNumber = 2, ConditionNegated = FALSE \n"
+ "\n"
+ "If ConditionListType = DNF, then the overall condition for the "
+ "PolicyRule is: \n"
+ "(C1 AND (NOT C2) AND C3) OR (C4 AND C5) \n"
+ "\n"
+ "On the other hand, if ConditionListType = CNF, then the "
+ "overall condition for the PolicyRule is: \n"
+ "(C1 OR (NOT C2) OR C3) AND (C4 OR C5) \n"
+ "\n"
+ "In both cases, there is an unambiguous specification of the "
+ "overall condition that is tested to determine whether to "
+ "perform the PolicyActions associated with the PolicyRule. \n"
+ "\n"
+ "PolicyRule instances may also be used to aggregate other "
+ "PolicyRules and/or PolicyGroups. When used in this way to "
+ "implement nested rules, the conditions of the aggregating rule "
+ "apply to the subordinate rules as well. However, any side "
+ "effects of condition evaluation or the execution of actions "
+ "MUST NOT affect the result of the evaluation of other "
+ "conditions evaluated by the rule engine in the same evaluation "
+ "pass. That is, an implementation of a rule engine MAY evaluate "
+ "all conditions in any order before applying the priority and "
+ "determining which actions are to be executed." )]
+class CIM_PolicyRule : CIM_PolicySet {
+
+ [Key, Description ( "The scoping System\'s CreationClassName." ),
+ MaxLen ( 256 ),
+ Propagated ( "CIM_System.CreationClassName" )]
+ string SystemCreationClassName;
+
+ [Key, Description ( "The scoping System\'s Name." ),
+ MaxLen ( 256 ),
+ Propagated ( "CIM_System.Name" )]
+ string SystemName;
+
+ [Key, Description (
+ "CreationClassName indicates the name of the class or the "
+ "subclass used in the creation of an instance. When used "
+ "with the other key properties of this class, this "
+ "property allows all instances of this class and its "
+ "subclasses to be uniquely identified." ),
+ MaxLen ( 256 )]
+ string CreationClassName;
+
+ [Key, Description ( "A user-friendly name of this PolicyRule." ),
+ MaxLen ( 256 )]
+ string PolicyRuleName;
+
+ [Description (
+ "Indicates whether the list of PolicyConditions "
+ "associated with this PolicyRule is in disjunctive normal "
+ "form (DNF), conjunctive normal form (CNF), or has no "
+ "conditions (i.e., is an UnconditionalRule) and is "
+ "automatically evaluated to \"True.\" The default value "
+ "is 1 (\"DNF\")." ),
+ ValueMap { "0", "1", "2" },
+ Values { "Unconditional Rule", "DNF", "CNF" }]
+ uint16 ConditionListType = 1;
+
+ [Description (
+ "A free-form string that can be used to provide "
+ "guidelines on how this PolicyRule should be used." )]
+ string RuleUsage;
+
+ [Deprecated { "CIM_PolicySetComponent.Priority" },
+ Description (
+ "PolicyRule.Priority is deprecated and replaced by "
+ "providing the priority for a rule (and a group) in the "
+ "context of the aggregating PolicySet instead of the "
+ "priority being used for all aggregating PolicySet "
+ "instances. Thus, the assignment of priority values is "
+ "much simpler. \n"
+ "\n"
+ "A non-negative integer for prioritizing this Policy Rule "
+ "relative to other Rules. A larger value indicates a "
+ "higher priority. The default value is 0." )]
+ uint16 Priority = 0;
+
+ [Deprecated { "No value" },
+ Description (
+ "A flag indicating that the evaluation of the Policy "
+ "Conditions and execution of PolicyActions (if the "
+ "Conditions evaluate to TRUE) is required. The evaluation "
+ "of a PolicyRule MUST be attempted if the Mandatory "
+ "property value is TRUE. If the Mandatory property is "
+ "FALSE, then the evaluation of the Rule is \'best effort\' "
+ "and MAY be ignored." )]
+ boolean Mandatory;
+
+ [Description (
+ "This property gives a policy administrator a way of "
+ "specifying how the ordering of the PolicyActions "
+ "associated with this PolicyRule is to be interpreted. "
+ "Three values are supported: \n"
+ "o mandatory(1): Do the actions in the indicated order, "
+ "or don\'t do them at all. \n"
+ "o recommended(2): Do the actions in the indicated order "
+ "if you can, but if you can\'t do them in this order, do "
+ "them in another order if you can. \n"
+ "o dontCare(3): Do them -- I don\'t care about the order. \n"
+ "The default value is 3 (\"DontCare\")." ),
+ ValueMap { "1", "2", "3" },
+ Values { "Mandatory", "Recommended", "Dont Care" }]
+ uint16 SequencedActions = 3;
+
+ [Description (
+ "ExecutionStrategy defines the strategy to be used in "
+ "executing the sequenced actions aggregated by this "
+ "PolicyRule. There are three execution strategies: \n"
+ "\n"
+ "Do Until Success - execute actions according to "
+ "predefined order, until successful execution of a single "
+ "action. \n"
+ "Do All - execute ALL actions which are part of the "
+ "modeled set, according to their predefined order. "
+ "Continue doing this, even if one or more of the actions "
+ "fails. \n"
+ "Do Until Failure - execute actions according to "
+ "predefined order, until the first failure in execution "
+ "of an action instance." ),
+ ValueMap { "1", "2", "3" },
+ Values { "Do Until Success", "Do All", "Do Until Failure" }]
+ uint16 ExecutionStrategy;
+
+
+};