// Copyright (c) 2005 DMTF. All rights reserved. [Abstract, Version ( "2.8.0" ), UMLPackagePath ( "CIM::Policy" ), Description ( "PolicySet is an abstract class that represents a set of " "policies that form a coherent set. The set of contained " "policies has a common decision strategy and a common set of " "policy roles (defined via the PolicySetInRole Collection " "association). Subclasses include PolicyGroup and PolicyRule." )] class CIM_PolicySet : CIM_Policy { [Description ( "PolicyDecisionStrategy defines the evaluation method " "used for policies contained in the PolicySet. There are " "two values currently defined: \n" "- \'First Matching\' (1) executes the actions of the " "first rule whose conditions evaluate to TRUE. The " "concept of \'first\' is determined by examining the " "priority of the rule within the policy set (i.e., by " "examining the property, PolicySetComponent.Priority). " "Note that this ordering property MUST be maintained when " "processing the PolicyDecisionStrategy. \n" "- \'All\' (2) executes the actions of ALL rules whose " "conditions evaluate to TRUE, in the set. As noted above, " "the order of processing of the rules is defined by the " "property, PolicySetComponent.Priority (and within a " "rule, the ordering of the actions is defined by the " "property, PolicyActionStructure.ActionOrder). Note that " "when this strategy is defined, processing MUST be " "completed of ALL rules whose conditions evaluate to " "TRUE, regardless of errors in the execution of the rule " "actions." ), ValueMap { "1", "2" }, Values { "First Matching", "All" }] uint16 PolicyDecisionStrategy; [Deprecated { "CIM_PolicySetInRoleCollection" }, Description ( "The PolicyRoles property represents the roles associated " "with a PolicySet. All contained PolicySet instances " "inherit the values of the PolicyRoles of the aggregating " "PolicySet but the values are not copied. A contained " "PolicySet instance may, however, add additional " "PolicyRoles to those it inherits from its aggregating " "PolicySet(s). Each value in PolicyRoles multi-valued " "property represents a role for which the PolicySet " "applies, i.e., the PolicySet should be used by any " "enforcement point that assumes any of the listed " "PolicyRoles values. \n" "\n" "Although not officially designated as \'role " "combinations\', multiple roles may be specified using " "the form: \n" "[&&]* \n" "where the individual role names appear in alphabetical " "order (according to the collating sequence for UCS-2). " "Implementations may treat PolicyRoles values that are " "specified as \'role combinations\' as simple strings. \n" "\n" "This property is deprecated in lieu of the use of an " "association, CIM_PolicySetInRoleCollection. The latter " "is a more explicit and less error-prone approach to " "modeling that a PolicySet has one or more PolicyRoles." )] string PolicyRoles[]; [Description ( "Indicates whether this PolicySet is administratively " "enabled, administratively disabled, or enabled for " "debug. The \"EnabledForDebug\" property value is " "deprecated and, when it or any value not understood by " "the receiver is specified, the receiving enforcement " "point treats the PolicySet as \"Disabled\". To determine " "if a PolicySet is \"Enabled\", the containment hierarchy " "specified by the PolicySetComponent aggregation is " "examined and the Enabled property values of the " "hierarchy are ANDed together. Thus, for example, " "everything aggregated by a PolicyGroup may be disabled " "by setting the Enabled property in the PolicyGroup " "instance to \"Disabled\" without changing the Enabled " "property values of any of the aggregated instances. The " "default value is 1 (\"Enabled\")." ), ValueMap { "1", "2", "3" }, Values { "Enabled", "Disabled", "Enabled For Debug" }] uint16 Enabled = 1; };