1 karl 1.1 // ==================================================================
2 // Title: Policy MOF Specification 2.7.1
3 // Filename: CIM_Policy27.MOF
4 // Version: 2.7.1
5 // Status: Preliminary
6 // Date: 10/21/2002
7 // ===================================================================
8 // Copyright 2000-2002 Distributed Management Task Force, Inc. (DMTF).
9 // All rights reserved.
10 // DMTF is a not-for-profit association of industry members dedicated
11 // to promoting enterprise and systems management and interoperability.
12 // DMTF specifications and documents may be reproduced for uses
13 // consistent with this purpose by members and non-members,
14 // provided that correct attribution is given.
15 // As DMTF specifications may be revised from time to time,
16 // the particular version and release date should always be noted.
17 //
18 // Implementation of certain elements of this standard or proposed
19 // standard may be subject to third party patent rights, including
20 // provisional patent rights (herein "patent rights"). DMTF makes
21 // no representations to users of the standard as to the existence
22 karl 1.1 // of such rights, and is not responsible to recognize, disclose, or
23 // identify any or all such third party patent right, owners or
24 // claimants, nor for any incomplete or inaccurate identification or
25 // disclosure of such rights, owners or claimants. DMTF shall have no
26 // liability to any party, in any manner or circumstance, under any
27 // legal theory whatsoever, for failure to recognize, disclose, or
28 // identify any such third party patent rights, or for such party's
29 // reliance on the standard or incorporation thereof in its product,
30 // protocols or testing procedures. DMTF shall have no liability to
31 // any party implementing such standard, whether such implementation
32 // is foreseeable or not, nor to any patent owner or claimant, and shall
33 // have no liability or responsibility for costs or losses incurred if
34 // a standard is withdrawn or modified after publication, and shall be
35 // indemnified and held harmless by any party implementing the
36 // standard from any and all claims of infringement by a patent owner
37 // for such implementations.
38 //
39 // For information about patents held by third-parties which have
40 // notified the DMTF that, in their opinion, such patent may relate to
41 // or impact implementations of DMTF standards, visit
42 // http://www.dmtf.org/about/policies/disclosures.php.
43 karl 1.1 // ===================================================================
44 // Description: The Policy Model provides a framework for specifying
45 // configuration and operational information in a scalable
46 // way using rules composed of conditions and actions.
47 //
48 // The object classes below are listed in an order that
49 // avoids forward references. Required objects, defined
50 // by other working groups, are omitted.
51 // ===================================================================
52 // CIMCR914 - Added propagated keys in PolicyRoleCollection
53 //
54 // CIMCR906 - Add text to PolicySetComponent's Description and the
55 // class' Priority property to indicate that the values
56 // of Priority must be unique
57 //
58 // With promotion of Component to ManagedElement,
59 // added CIM_Component as superclass of CIM_PolicyComponent
60 // (there is no other change to the semantics or syntax)
61 //
62 // CIMCR625 - Add CompoundPolicyCondition as PolicyCondition subclass
63 // - Add PolicyConditionStructure abstract aggregation as a
64 karl 1.1 // subclass of PolicyComponent
65 // - Change derivation of PolicyConditionInPolicyRule from
66 // PolicyComponent to PolicyConditionStructure and move
67 // GroupNumber and ConditionNegated properties up to parent class
68 // - Add PolicyConditionInPolicyCondition aggregation as a
69 // subclass of PolicyConditionStructure
70 // - Add PolicyRoleCollection as Collection subclass
71 // - Add ElementInPolicyRoleCollection as MemberOfCollection
72 // subclass
73 // - Add PolicyRoleCollectionInSystem as Dependency subclass
74 //
75 // CIMCR614 - Add CompoundPolicyAction for CIM 2.6
76 // - Add CompoundPolicyAction as a subclass of PolicyAction
77 // - Add PolicyActionStructure abstract aggregation as a
78 // subclass of PolicyComponent
79 // - Change derivation of PolicyActionInPolicyRule from
80 // PolicyComponent to PolicyActionStructure and, thus,
81 // move ActionOrder property up to parent class
82 // - Add PolicyActionInPolicyAction aggregation as a
83 // subclass of PolicyActionStructure
84 //
85 karl 1.1 // CIMCR597a - PCIMe updates for 2.6
86 // - Edit Policy description
87 // - Add PolicySet & derive PolicyGroup & PolicyRule
88 // - Deprecate PolicyRule.Priority for
89 // PolicySetComponent.Priority
90 // - Remove PolicyRule.PolicyRoles (it's in PolicySet)
91 // - Add PolicyRule.ExecutionStrategy
92 // - Deprecate PolicyRepository & replace with
93 // ReusablePolicyContainer
94 // - Add PolicySetInSystem
95 // - Add PolicySetComponent & deprecate ...InPolicyGroup
96 // & derive PolicyGroupInSystem & PolicyRuleInSystem
97 // - Add ContainedDomain (to Core)
98 // & deprecate PolicyRepositoryInPolicyRepository
99 // - Add ReusablePolicy & deprecate ...InPolicyRepository
100 //
101 // ==================================================================
102
103 #pragma Locale ("en-US")
104
105
106 karl 1.1 // ==================================================================
107 // Compile prerequisite: Core MOF
108 // ==================================================================
109
110
111 // ==================================================================
112 // Policy
113 // ==================================================================
114 [Abstract, Version ("2.6.0"), Description (
115 "An abstract class defining the common properties of the policy "
116 "managed elements derived from CIM_Policy. The subclasses are "
117 "used to create rules and groups of rules that work together to "
118 "form a coherent set of policies within an administrative domain "
119 "or set of domains.") ]
120 class CIM_Policy : CIM_ManagedElement {
121 [Description (
122 "A user-friendly name of this policy-related object.") ]
123 string CommonName;
124 [Description (
125 "An array of keywords for characterizing / categorizing "
126 "policy objects. Keywords are of one of two types: \n"
127 karl 1.1 "- Keywords defined in this and other MOFs, or in DMTF"
128 "white papers. These keywords provide a vendor-"
129 "independent, installation-independent way of "
130 "characterizing policy objects. \n"
131 "- Installation-dependent keywords for characterizing "
132 "policy objects. Examples include 'Engineering', "
133 "'Billing', and 'Review in December 2000'. \n"
134 "This MOF defines the following keywords: 'UNKNOWN', "
135 "'CONFIGURATION', 'USAGE', 'SECURITY', 'SERVICE', "
136 "'MOTIVATIONAL', 'INSTALLATION', and 'EVENT'. These "
137 "concepts are self-explanatory and are further discussed "
138 "in the SLA/Policy White Paper. One additional keyword "
139 "is defined: 'POLICY'. The role of this keyword is to "
140 "identify policy-related instances that may not be otherwise "
141 "identifiable, in some implementations. The keyword 'POLICY' "
142 "is NOT mutually exclusive of the other keywords "
143 "specified above.") ]
144 string PolicyKeywords[];
145 };
146
147
148 karl 1.1 // ==================================================================
149 // PolicySet
150 // ==================================================================
151 [Abstract, Version ("2.6.0"),
152 Description ("PolicySet is an abstract class that "
153 "represents a set of policies that form a coherent set. The "
154 "set of contained policies has a common decision strategy and "
155 "a common set of policy roles. Subclasses include "
156 "PolicyGroup and PolicyRule.") ]
157 class CIM_PolicySet : CIM_Policy {
158 [Description ("PolicyDecisionStrategy defines the evaluation "
159 "method used for policies contained in the PolicySet. "
160 "FirstMatching enforces the actions of the first rule that "
161 "evaluates to TRUE. It is the only value currently defined."),
162 ValueMap {"1"},
163 Values {"FirstMatching"} ]
164 uint16 PolicyDecisionStrategy;
165 [Description (
166 "The PolicyRoles property represents the roles and role "
167 "combinations associated with a PolicySet. All contained "
168 "PolicySet instances inherit the values of the PolicyRoles of "
169 karl 1.1 "the aggregating PolicySet but the values are not copied. "
170 "A contained PolicySet instance may, however, add additional "
171 "PolicyRoles to those it inherits from its aggregating "
172 "PolicySet(s). \n"
173 "\n"
174 "Each value represents one role or role combination. Since "
175 "this is a multi-valued property, more than one role or "
176 "combination can be associated with a single PolicySet. Each "
177 "value is a string of the form: \n"
178 " <RoleName>[&&<RoleName>]* \n"
179 "where the individual role names appear in alphabetical order "
180 "(according to the collating sequence for UCS-2).") ]
181 string PolicyRoles[];
182 };
183
184
185 // ==================================================================
186 // PolicyGroup
187 // ==================================================================
188 [Version ("2.6.0"), Description (
189 "An aggregation of PolicySet instances (PolicyGroups and/or "
190 karl 1.1 "PolicyRules) that have the same decision strategy and inherit "
191 "policy roles. PolicyGroup instances are defined and named "
192 "relative to the CIM_System that provides their context.") ]
193 class CIM_PolicyGroup : CIM_PolicySet {
194 [Propagated("CIM_System.CreationClassName"),
195 Key, MaxLen (256),
196 Description ("The scoping System's CreationClassName.") ]
197 string SystemCreationClassName;
198 [Propagated("CIM_System.Name"),
199 Key, MaxLen (256),
200 Description ("The scoping System's Name.") ]
201 string SystemName;
202 [Key, MaxLen (256), Description (
203 "CreationClassName indicates the name of the class or the "
204 "subclass used in the creation of an instance. When used "
205 "with the other key properties of this class, this property "
206 "allows all instances of this class and its subclasses to "
207 "be uniquely identified.") ]
208 string CreationClassName;
209 [Key, MaxLen (256), Description (
210 "A user-friendly name of this PolicyGroup.") ]
211 karl 1.1 string PolicyGroupName;
212 };
213
214
215 // ==================================================================
216 // PolicyRule
217 // ==================================================================
218 [Version ("2.6.0"), Description (
219 "The central class used for representing the 'If Condition then "
220 "Action' semantics of a policy rule. A PolicyRule condition, in "
221 "the most general sense, is represented as either an ORed set of "
222 "ANDed conditions (Disjunctive Normal Form, or DNF) or an ANDed "
223 "set of ORed conditions (Conjunctive Normal Form, or CNF). "
224 "Individual conditions may either be negated (NOT C) or "
225 "unnegated (C). The actions specified by a PolicyRule are to be "
226 "performed if and only if the PolicyRule condition (whether it "
227 "is represented in DNF or CNF) evaluates to TRUE. \n"
228 "\n"
229 "The conditions and actions associated with a PolicyRule are "
230 "modeled, respectively, with subclasses of PolicyCondition and "
231 "PolicyAction. These condition and action objects are tied to "
232 karl 1.1 "instances of PolicyRule by the PolicyConditionInPolicyRule and "
233 "PolicyActionInPolicyRule aggregations. \n"
234 "\n"
235 "A PolicyRule may also be associated with one or more policy "
236 "time periods, indicating the schedule according to which the "
237 "policy rule is active and inactive. In this case it is the "
238 "PolicyRuleValidityPeriod aggregation that provides this "
239 "linkage. \n"
240 "\n"
241 "The PolicyRule class uses the property ConditionListType, to "
242 "indicate whether the conditions for the rule are in DNF or "
243 "CNF. The PolicyConditionInPolicyRule aggregation contains "
244 "two additional properties to complete the representation of "
245 "the Rule's conditional expression. The first of these "
246 "properties is an integer to partition the referenced "
247 "PolicyConditions into one or more groups, and the second is a "
248 "Boolean to indicate whether a referenced Condition is "
249 "negated. An example shows how ConditionListType and these "
250 "two additional properties provide a unique representation "
251 "of a set of PolicyConditions in either DNF or CNF. \n"
252 "\n"
253 karl 1.1 "Suppose we have a PolicyRule that aggregates five "
254 "PolicyConditions C1 through C5, with the following values "
255 "in the properties of the five PolicyConditionInPolicyRule "
256 "associations: \n"
257 " C1: GroupNumber = 1, ConditionNegated = FALSE \n"
258 " C2: GroupNumber = 1, ConditionNegated = TRUE \n"
259 " C3: GroupNumber = 1, ConditionNegated = FALSE \n"
260 " C4: GroupNumber = 2, ConditionNegated = FALSE \n"
261 " C5: GroupNumber = 2, ConditionNegated = FALSE \n"
262 "\n"
263 "If ConditionListType = DNF, then the overall condition for "
264 "the PolicyRule is: \n"
265 " (C1 AND (NOT C2) AND C3) OR (C4 AND C5) \n"
266 "\n"
267 "On the other hand, if ConditionListType = CNF, then the "
268 "overall condition for the PolicyRule is: \n"
269 " (C1 OR (NOT C2) OR C3) AND (C4 OR C5) \n"
270 "\n"
271 "In both cases, there is an unambiguous specification of "
272 "the overall condition that is tested to determine whether "
273 "to perform the PolicyActions associated with the PolicyRule. \n"
274 karl 1.1 "\n"
275 "PolicyRule instances may also be used to aggregate other "
276 "PolicyRules and/or PolicyGroups. When used in this way to "
277 "implement nested rules, the conditions of the aggregating rule "
278 "apply to the subordinate rules as well. However, any side "
279 "effects of condition evaluation or the execution of actions MUST "
280 "NOT affect the result of the evaluation of other conditions "
281 "evaluated by the rule engine in the same evaluation pass. That "
282 "is, an implementation of a rule engine MAY evaluate all "
283 "conditions in any order before applying the priority and "
284 "determining which actions are to be executed.") ]
285 class CIM_PolicyRule : CIM_PolicySet {
286 [Propagated("CIM_System.CreationClassName"),
287 Key, MaxLen (256),
288 Description ("The scoping System's CreationClassName.") ]
289 string SystemCreationClassName;
290 [Propagated("CIM_System.Name"),
291 Key, MaxLen (256),
292 Description ("The scoping System's Name.") ]
293 string SystemName;
294 [Key, MaxLen (256), Description (
295 karl 1.1 "CreationClassName indicates the name of the class or the "
296 "subclass used in the creation of an instance. When used "
297 "with the other key properties of this class, this property "
298 "allows all instances of this class and its subclasses to "
299 "be uniquely identified.") ]
300 string CreationClassName;
301 [Key, MaxLen (256), Description (
302 "A user-friendly name of this PolicyRule.") ]
303 string PolicyRuleName;
304 [Description (
305 "Indicates whether this PolicyRule is administratively "
306 "enabled, administratively disabled, or enabled for "
307 "debug. When the property has the value 3 (\"enabledFor"
308 "Debug\"), the entity evaluating the PolicyConditions is "
309 "instructed to evaluate the conditions for the Rule, but not "
310 "to perform the actions if the PolicyConditions evaluate to "
311 "TRUE. This serves as a debug vehicle when attempting to "
312 "determine what policies would execute in a particular "
313 "scenario, without taking any actions to change state "
314 "during the debugging. The default value is 1 "
315 "(\"Enabled\")."),
316 karl 1.1 ValueMap {"1", "2", "3"},
317 Values {"Enabled", "Disabled", "EnabledForDebug"} ]
318 uint16 Enabled;
319 [Description (
320 "Indicates whether the list of PolicyConditions "
321 "associated with this PolicyRule is in disjunctive "
322 "normal form (DNF) or conjunctive normal form (CNF)."
323 "The default value is 1 (\"DNF\")."),
324 ValueMap {"1", "2"},
325 Values {"DNF", "CNF"} ]
326 uint16 ConditionListType;
327 [Description (
328 "A free-form string that can be used to provide "
329 "guidelines on how this PolicyRule should be used.") ]
330 string RuleUsage;
331 [DEPRECATED {"CIM_PolicySetComponent.Priority"},
332 Description (
333 "PolicyRule.Priority is deprecated and replaced by "
334 "providing the priority for a rule (and a group) in the "
335 "context of the aggregating PolicySet instead of the "
336 "priority being used for all aggregating PolicySet "
337 karl 1.1 "instances. Thus, the assignment of priority values is "
338 "much simpler. \n"
339 "\n"
340 "A non-negative integer for prioritizing this Policy"
341 "Rule relative to other Rules. A larger value "
342 "indicates a higher priority. The default value is 0.") ]
343 uint16 Priority;
344 [Description (
345 "A flag indicating that the evaluation of the Policy"
346 "Conditions and execution of PolicyActions (if the "
347 "Conditions evaluate to TRUE) is required. The "
348 "evaluation of a PolicyRule MUST be attempted if the "
349 "Mandatory property value is TRUE. If the Mandatory "
350 "property is FALSE, then the evaluation of the Rule "
351 "is 'best effort' and MAY be ignored.") ]
352 boolean Mandatory;
353 [Description (
354 "This property gives a policy administrator a way "
355 "of specifying how the ordering of the PolicyActions "
356 "associated with this PolicyRule is to be interpreted. "
357 "Three values are supported: \n"
358 karl 1.1 " o mandatory(1): Do the actions in the indicated "
359 " order, or don't do them at all. \n"
360 " o recommended(2): Do the actions in the indicated "
361 " order if you can, but if you can't do them in this "
362 " order, do them in another order if you can. \n"
363 " o dontCare(3): Do them -- I don't care about the "
364 " order. \n"
365 "The default value is 3 (\"DontCare\")."),
366 ValueMap {"1", "2", "3"},
367 Values {"Mandatory", "Recommended", "DontCare"} ]
368 uint16 SequencedActions;
369 [Description (
370 "ExecutionStrategy defines the strategy to be used in "
371 "executing the sequenced actions aggregated by this "
372 "PolicyRule. There are three execution strategies: \n"
373 "\n"
374 "Do Until Success - execute actions according to predefined \n"
375 " order, until successful execution of a \n"
376 " single action. \n"
377 "Do All - execute ALL actions which are part of \n"
378 " the modeled set, according to their \n"
379 karl 1.1 " predefined order. Continue doing this, \n"
380 " even if one or more of the actions fails. \n"
381 "Do Until Failure - execute actions according to predefined \n"
382 " order, until the first failure in \n"
383 " execution of an action instance."),
384 ValueMap {"1", "2", "3"},
385 Values {"Do Until Success", "Do All", "Do Until Failure"} ]
386 uint16 ExecutionStrategy;
387 };
388
389
390 // ==================================================================
391 // ReusablePolicyContainer
392 // ==================================================================
393 [Version ("2.6.0"), Description (
394 "A class representing an administratively defined "
395 "container for reusable policy-related information. "
396 "This class does not introduce any additional "
397 "properties beyond those in its superclass "
398 "AdminDomain. It does, however, participate in a "
399 "unique association for containing policy elements. \n"
400 karl 1.1 "\n"
401 "An instance of this class uses the NameFormat value"
402 "\"ReusablePolicyContainer\".") ]
403 class CIM_ReusablePolicyContainer : CIM_AdminDomain {
404 };
405
406
407 // ==================================================================
408 // PolicyRepository *** deprecated
409 // ==================================================================
410 [DEPRECATED{"CIM_ReusablePolicyContainer"},
411 Version ("2.6.0"), Description (
412 "The term 'PolicyRepository' has been confusing to both "
413 "developers and users of the model. The replacement class "
414 "name describes model element properly and is less likely "
415 "to be confused with a data repository. \n"
416 "\n"
417 "A class representing an administratively defined "
418 "container for reusable policy-related information. "
419 "This class does not introduce any additional "
420 "properties beyond those in its superclass "
421 karl 1.1 "AdminDomain. It does, however, participate in a "
422 "number of unique associations. \n"
423 "\n"
424 "An instance of this class uses the NameFormat value"
425 "\"PolicyRepository\".") ]
426 class CIM_PolicyRepository : CIM_AdminDomain {
427 };
428
429
430 // ==================================================================
431 // PolicyCondition
432 // ==================================================================
433 [Abstract, Version ("2.6.0"), Description (
434 "A class representing a rule-specific or reusable policy "
435 "condition to be evaluated in conjunction with a Policy"
436 "Rule. Since all operational details of a PolicyCondition "
437 "are provided in subclasses of this object, this class is "
438 "abstract.") ]
439 class CIM_PolicyCondition : CIM_Policy {
440 [Key, MaxLen (256), Description (
441 "The name of the class or the subclass used in the "
442 karl 1.1 "creation of the System object in whose scope this "
443 "PolicyCondition is defined. \n"
444 "\n"
445 "This property helps to identify the System object in "
446 "whose scope this instance of PolicyCondition exists. "
447 "For a rule-specific PolicyCondition, this is the System "
448 "in whose context the PolicyRule is defined. For a "
449 "reusable PolicyCondition, this is the instance of "
450 "PolicyRepository (which is a subclass of System) that "
451 "holds the Condition. \n"
452 "\n"
453 "Note that this property, and the analogous property "
454 "SystemName, do not represent propagated keys from an "
455 "instance of the class System. Instead, they are "
456 "properties defined in the context of this class, which "
457 "repeat the values from the instance of System to which "
458 "this PolicyCondition is related, either directly via the "
459 "PolicyConditionInPolicyRepository association or indirectly "
460 "via the PolicyConditionInPolicyRule aggregation.") ]
461 string SystemCreationClassName;
462 [Key, MaxLen (256), Description (
463 karl 1.1 "The name of the System object in whose scope this "
464 "PolicyCondition is defined. \n"
465 "\n"
466 "This property completes the identification of the System "
467 "object in whose scope this instance of PolicyCondition "
468 "exists. For a rule-specific PolicyCondition, this is the "
469 "System in whose context the PolicyRule is defined. For a "
470 "reusable PolicyCondition, this is the instance of "
471 "PolicyRepository (which is a subclass of System) that "
472 "holds the Condition.") ]
473 string SystemName;
474 [Key, MaxLen (256), Description (
475 "For a rule-specific PolicyCondition, the "
476 "CreationClassName of the PolicyRule object with which "
477 "this Condition is associated. For a reusable Policy"
478 "Condition, a special value, 'NO RULE', should be used to "
479 "indicate that this Condition is reusable and not "
480 "associated with a single PolicyRule.") ]
481 string PolicyRuleCreationClassName;
482 [Key, MaxLen (256), Description (
483 "For a rule-specific PolicyCondition, the name of "
484 karl 1.1 "the PolicyRule object with which this Condition is "
485 "associated. For a reusable PolicyCondition, a "
486 "special value, 'NO RULE', should be used to indicate "
487 "that this Condition is reusable and not associated "
488 "with a single PolicyRule.") ]
489 string PolicyRuleName;
490 [Key, MaxLen (256), Description (
491 "CreationClassName indicates the name of the class or the "
492 "subclass used in the creation of an instance. When used "
493 "with the other key properties of this class, this property "
494 "allows all instances of this class and its subclasses to "
495 "be uniquely identified.") ]
496 string CreationClassName;
497 [Key, MaxLen (256), Description (
498 "A user-friendly name of this PolicyCondition.") ]
499 string PolicyConditionName;
500 };
501
502
503 // ==================================================================
504 // PolicyTimePeriodCondition
505 karl 1.1 // ==================================================================
506 [Version ("2.6.0"), Description (
507 "This class provides a means of representing the time "
508 "periods during which a PolicyRule is valid, i.e., active. "
509 "At all times that fall outside these time periods, the "
510 "PolicyRule has no effect. A Rule is treated as valid "
511 "at ALL times, if it does not specify a "
512 "PolicyTimePeriodCondition. \n"
513 "\n"
514 "In some cases a Policy Consumer may need to perform "
515 "certain setup / cleanup actions when a PolicyRule becomes "
516 "active / inactive. For example, sessions that were "
517 "established while a Rule was active might need to "
518 "be taken down when the Rule becomes inactive. In other "
519 "cases, however, such sessions might be left up. In this "
520 "case, the effect of deactivating the PolicyRule would "
521 "just be to prevent the establishment of new sessions. \n"
522 "\n"
523 "Setup / cleanup behaviors on validity period "
524 "transitions are not currently addressed by the Policy "
525 "Model, and must be specified in 'guideline' documents or "
526 karl 1.1 "via subclasses of CIM_PolicyRule, CIM_PolicyTimePeriod"
527 "Condition or other concrete subclasses of CIM_Policy. If "
528 "such behaviors need to be under the control of the policy "
529 "administrator, then a mechanism to allow this control "
530 "must also be specified in the subclasses. \n"
531 "\n"
532 "PolicyTimePeriodCondition is defined as a subclass of "
533 "PolicyCondition. This is to allow the inclusion of "
534 "time-based criteria in the AND/OR condition definitions "
535 "for a PolicyRule. \n"
536 "\n"
537 "Instances of this class may have up to five properties "
538 "identifying time periods at different levels. The values "
539 "of all the properties present in an instance are ANDed "
540 "together to determine the validity period(s) for the "
541 "instance. For example, an instance with an overall "
542 "validity range of January 1, 2000 through December 31, "
543 "2000; a month mask that selects March and April; a "
544 "day-of-the-week mask that selects Fridays; and a time "
545 "of day range of 0800 through 1600 would be represented "
546 "using the following time periods: \n"
547 karl 1.1 " Friday, March 5, 2000, from 0800 through 1600; \n"
548 " Friday, March 12, 2000, from 0800 through 1600; \n"
549 " Friday, March 19, 2000, from 0800 through 1600; \n"
550 " Friday, March 26, 2000, from 0800 through 1600; \n"
551 " Friday, April 2, 2000, from 0800 through 1600; \n"
552 " Friday, April 9, 2000, from 0800 through 1600; \n"
553 " Friday, April 16, 2000, from 0800 through 1600; \n"
554 " Friday, April 23, 2000, from 0800 through 1600; \n"
555 " Friday, April 30, 2000, from 0800 through 1600. \n"
556 "\n"
557 "Properties not present in an instance of "
558 "PolicyTimePeriodCondition are implicitly treated as having "
559 "their value 'always enabled'. Thus, in the example above, "
560 "the day-of-the-month mask is not present, and so the "
561 "validity period for the instance implicitly includes a "
562 "day-of-the-month mask that selects all days of the month. "
563 "If this 'missing property' rule is applied to its fullest, we "
564 "see that there is a second way to indicate that a Policy"
565 "Rule is always enabled: associate with it an instance of "
566 "PolicyTimePeriodCondition whose only properties with "
567 "specific values are its key properties.") ]
568 karl 1.1 class CIM_PolicyTimePeriodCondition : CIM_PolicyCondition {
569 [Description (
570 "This property identifies an overall range of calendar "
571 "dates and times over which a PolicyRule is valid. It is "
572 "formatted as a string representing a start date and time, "
573 "in which the character 'T' indicates the beginning of the "
574 "time portion, followed by the solidus character '/', "
575 "followed by a similar string representing an end date and "
576 "time. The first date indicates the beginning of the range, "
577 "while the second date indicates the end. Thus, the second "
578 "date and time must be later than the first. Date/times are "
579 "expressed as substrings of the form yyyymmddThhmmss. For "
580 "example: \n"
581 " 20000101T080000/20000131T120000 defines \n"
582 " January 1, 2000, 0800 through January 31, 2000, noon \n"
583 "\n"
584 "There are also two special cases in which one of the "
585 "date/time strings is replaced with a special string defined "
586 "in RFC 2445. \n"
587 " o If the first date/time is replaced with the string "
588 " 'THISANDPRIOR', then the property indicates that a "
589 karl 1.1 " PolicyRule is valid [from now] until the date/time "
590 " that appears after the '/'. \n"
591 " o If the second date/time is replaced with the string "
592 " 'THISANDFUTURE', then the property indicates that a "
593 " PolicyRule becomes valid on the date/time that "
594 " appears before the '/', and remains valid from that "
595 " point on."),
596 ModelCorrespondence {
597 "CIM_PolicyTimePeriodCondition.MonthOfYearMask",
598 "CIM_PolicyTimePeriodCondition.DayOfMonthMask",
599 "CIM_PolicyTimePeriodCondition.DayOfWeekMask",
600 "CIM_PolicyTimePeriodCondition.TimeOfDayMask",
601 "CIM_PolicyTimePeriodCondition.LocalOrUtcTime"} ]
602 string TimePeriod;
603 [Octetstring, Description (
604 "The purpose of this property is to refine the valid time "
605 "period that is defined by the TimePeriod property, by "
606 "explicitly specifying in which months the PolicyRule is "
607 "valid. These properties work together, with the "
608 "TimePeriod used to specify the overall time period in "
609 "which the PolicyRule is valid, and the MonthOfYearMask used "
610 karl 1.1 "to pick out the months during which the Rule is valid. \n"
611 "\n"
612 "This property is formatted as an octet string, structured "
613 "as follows: \n"
614 " o a 4-octet length field, indicating the length of the "
615 " entire octet string; this field is always set to "
616 " 0x00000006 for this property; \n"
617 " o a 2-octet field consisting of 12 bits identifying the "
618 " 12 months of the year, beginning with January and "
619 " ending with December, followed by 4 bits that are "
620 " always set to '0'. For each month, the value '1' "
621 " indicates that the policy is valid for that month, "
622 " and the value '0' indicates that it is not valid. \n"
623 "\n"
624 "The value 0x000000060830, for example, indicates that a "
625 "PolicyRule is valid only in the months May, November, "
626 "and December. \n"
627 "\n"
628 "If a value for this property is not provided, then the "
629 "PolicyRule is treated as valid for all twelve months, and "
630 "only restricted by its TimePeriod property value and the "
631 karl 1.1 "other Mask properties."),
632 ModelCorrespondence {
633 "CIM_PolicyTimePeriodCondition.TimePeriod",
634 "CIM_PolicyTimePeriodCondition.LocalOrUtcTime"} ]
635 uint8 MonthOfYearMask[];
636 [Octetstring, Description (
637 "The purpose of this property is to refine the valid time "
638 "period that is defined by the TimePeriod property, by "
639 "explicitly specifying in which days of the month the Policy"
640 "Rule is valid. These properties work together, "
641 "with the TimePeriod used to specify the overall time period "
642 "in which the PolicyRule is valid, and the DayOfMonthMask used "
643 "to pick out the days of the month during which the Rule "
644 "is valid. \n"
645 "\n"
646 "This property is formatted as an octet string, structured "
647 "as follows: \n"
648 " o a 4-octet length field, indicating the length of the "
649 " entire octet string; this field is always set to "
650 " 0x0000000C for this property; \n"
651 " o an 8-octet field consisting of 31 bits identifying "
652 karl 1.1 " the days of the month counting from the beginning, "
653 " followed by 31 more bits identifying the days of the "
654 " month counting from the end, followed by 2 bits that "
655 " are always set to '0'. For each day, the value '1' "
656 " indicates that the policy is valid for that day, and "
657 " the value '0' indicates that it is not valid. \n"
658 "\n"
659 "The value 0x0000000C8000000100000000, for example, "
660 "indicates that a PolicyRule is valid on the first and "
661 "last days of the month. \n"
662 "\n"
663 "For months with fewer than 31 days, the digits corresponding "
664 "to days that the months do not have (counting in both "
665 "directions) are ignored. \n"
666 "\n"
667 "If a value for this property is not provided, then the "
668 "PolicyRule is treated as valid for all days of the month, and "
669 "only restricted by its TimePeriod property value and the "
670 "other Mask properties."),
671 ModelCorrespondence {
672 "CIM_PolicyTimePeriodCondition.TimePeriod",
673 karl 1.1 "CIM_PolicyTimePeriodCondition.LocalOrUtcTime"} ]
674 uint8 DayOfMonthMask[];
675 [Octetstring, Description (
676 "The purpose of this property is to refine the valid time "
677 "period that is defined by the TimePeriod property, by "
678 "explicitly specifying in which days of the month the Policy"
679 "Rule is valid. These properties work together, "
680 "with the TimePeriod used to specify the overall time period "
681 "in which the PolicyRule is valid, and the DayOfWeekMask used "
682 "to pick out the days of the week during which the Rule "
683 "is valid. \n"
684 "\n"
685 "This property is formatted as an octet string, structured "
686 "as follows: \n"
687 " o a 4-octet length field, indicating the length of the "
688 " entire octet string; this field is always set to "
689 " 0x00000005 for this property; \n"
690 " o a 1-octet field consisting of 7 bits identifying the 7 "
691 " days of the week, beginning with Sunday and ending with "
692 " Saturday, followed by 1 bit that is always set to '0'. "
693 " For each day of the week, the value '1' indicates that "
694 karl 1.1 " the policy is valid for that day, and the value '0' "
695 " indicates that it is not valid. \n"
696 "\n"
697 "The value 0x000000057C, for example, indicates that a "
698 "PolicyRule is valid Monday through Friday. \n"
699 "\n"
700 "If a value for this property is not provided, then the "
701 "PolicyRule is treated as valid for all days of the week, "
702 "and only restricted by its TimePeriod property value and "
703 "the other Mask properties."),
704 ModelCorrespondence {
705 "CIM_PolicyTimePeriodCondition.TimePeriod",
706 "CIM_PolicyTimePeriodCondition.LocalOrUtcTime"} ]
707 uint8 DayOfWeekMask[];
708 [Description (
709 "The purpose of this property is to refine the valid time "
710 "period that is defined by the TimePeriod property, by "
711 "explicitly specifying a range of times in a day during which "
712 "the PolicyRule is valid. These properties work "
713 "together, with the TimePeriod used to specify the overall "
714 "time period in which the PolicyRule is valid, and the "
715 karl 1.1 "TimeOfDayMask used to pick out the range of time periods "
716 "in a given day of during which the Rule is valid. \n"
717 "\n"
718 "This property is formatted in the style of RFC 2445: a "
719 "time string beginning with the character 'T', followed by "
720 "the solidus character '/', followed by a second time string. "
721 "The first time indicates the beginning of the range, while "
722 "the second time indicates the end. Times are expressed as "
723 "substrings of the form 'Thhmmss'. \n"
724 "\n"
725 "The second substring always identifies a later time than "
726 "the first substring. To allow for ranges that span "
727 "midnight, however, the value of the second string may be "
728 "smaller than the value of the first substring. Thus, "
729 "'T080000/T210000' identifies the range from 0800 until 2100, "
730 "while 'T210000/T080000' identifies the range from 2100 until "
731 "0800 of the following day. \n"
732 "\n"
733 "When a range spans midnight, it by definition includes "
734 "parts of two successive days. When one of these days is "
735 "also selected by either the MonthOfYearMask, "
736 karl 1.1 "DayOfMonthMask, and/or DayOfWeekMask, but the other day is "
737 "not, then the policy is active only during the portion of "
738 "the range that falls on the selected day. For example, if "
739 "the range extends from 2100 until 0800, and the day of "
740 "week mask selects Monday and Tuesday, then the policy is "
741 "active during the following three intervals: \n"
742 " From midnight Sunday until 0800 Monday; \n"
743 " From 2100 Monday until 0800 Tuesday; \n"
744 " From 2100 Tuesday until 23:59:59 Tuesday. \n"
745 "\n"
746 "If a value for this property is not provided, then the "
747 "PolicyRule is treated as valid for all hours of the day, "
748 "and only restricted by its TimePeriod property value and "
749 "the other Mask properties."),
750 ModelCorrespondence {
751 "CIM_PolicyTimePeriodCondition.TimePeriod",
752 "CIM_PolicyTimePeriodCondition.LocalOrUtcTime"} ]
753 string TimeOfDayMask;
754 [Description (
755 "This property indicates whether the times represented "
756 "in the TimePeriod property and in the various Mask "
757 karl 1.1 "properties represent local times or UTC times. There is "
758 "no provision for mixing of local times and UTC times: the "
759 "value of this property applies to all of the other "
760 "time-related properties."),
761 ValueMap {"1", "2"},
762 Values {"LocalTime", "UTCTime"},
763 ModelCorrespondence {
764 "CIM_PolicyTimePeriodCondition.TimePeriod",
765 "CIM_PolicyTimePeriodCondition.MonthOfYearMask",
766 "CIM_PolicyTimePeriodCondition.DayOfMonthMask",
767 "CIM_PolicyTimePeriodCondition.DayOfWeekMask",
768 "CIM_PolicyTimePeriodCondition.TimeOfDayMask"} ]
769 uint16 LocalOrUtcTime;
770 };
771
772
773 // ==================================================================
774 // CompoundPolicyCondition
775 // ==================================================================
776 [Experimental, Version ("2.7.0"), Description (
777 "CompoundPolicyCondition is used to represent "
778 karl 1.1 "compound conditions formed by aggregating simpler policy "
779 "conditions. Compound conditions are constructed by "
780 "associating subordinate condition terms together using the "
781 "PolicyConditionInPolicyCondition aggregation.") ]
782 class CIM_CompoundPolicyCondition : CIM_PolicyCondition {
783 [Description (
784 "Indicates whether the list of CompoundPolicyConditions "
785 "associated with this PolicyRule is in disjunctive normal "
786 "form (DNF) or conjunctive normal form (CNF). The default "
787 "value is 1 (\"DNF\")."),
788 ValueMap {"1", "2"},
789 Values { "DNF", "CNF" } ]
790 uint16 ConditionListType;
791 };
792
793
794 // ==================================================================
795 // VendorPolicyCondition
796 // ==================================================================
797 [Version ("2.6.0"), Description (
798 "A class that provides a general extension mechanism for "
799 karl 1.1 "representing PolicyConditions that have not been modeled "
800 "with specific properties. Instead, the two properties "
801 "Constraint and ConstraintEncoding are used to define the "
802 "content and format of the Condition, as explained below. \n"
803 "\n"
804 "As its name suggests, VendorPolicyCondition is intended for "
805 "vendor-specific extensions to the Policy Core Information "
806 "Model. Standardized extensions are not expected to use "
807 "this class.") ]
808 class CIM_VendorPolicyCondition : CIM_PolicyCondition {
809 [Octetstring, Description (
810 "This property provides a general extension mechanism for "
811 "representing PolicyConditions that have not been "
812 "modeled with specific properties. The format of the "
813 "octet strings in the array is left unspecified in "
814 "this definition. It is determined by the OID value "
815 "stored in the property ConstraintEncoding. Since "
816 "ConstraintEncoding is single-valued, all the values of "
817 "Constraint share the same format and semantics."),
818 ModelCorrespondence {
819 "CIM_VendorPolicyCondition.ConstraintEncoding"} ]
820 karl 1.1 string Constraint[];
821 [Description (
822 "An OID encoded as a string, identifying the format "
823 "and semantics for this instance's Constraint property."),
824 ModelCorrespondence {
825 "CIM_VendorPolicyCondition.Constraint"} ]
826 string ConstraintEncoding;
827 };
828
829 // ==================================================================
830 // PolicyAction
831 // ==================================================================
832 [Abstract, Version ("2.6.0"), Description (
833 "A class representing a rule-specific or reusable policy "
834 "action to be performed if the PolicyConditions for a Policy"
835 "Rule evaluate to TRUE. Since all operational details of a "
836 "PolicyAction are provided in subclasses of this object, "
837 "this class is abstract.") ]
838 class CIM_PolicyAction : CIM_Policy {
839 [Key, MaxLen (256), Description (
840 "The name of the class or the subclass used in the "
841 karl 1.1 "creation of the System object in whose scope this "
842 "PolicyAction is defined. \n"
843 "\n"
844 "This property helps to identify the System object in "
845 "whose scope this instance of PolicyAction exists. "
846 "For a rule-specific PolicyAction, this is the System "
847 "in whose context the PolicyRule is defined. For a "
848 "reusable PolicyAction, this is the instance of "
849 "PolicyRepository (which is a subclass of System) that "
850 "holds the Action. \n"
851 "\n"
852 "Note that this property, and the analogous property "
853 "SystemName, do not represent propagated keys from an "
854 "instance of the class System. Instead, they are "
855 "properties defined in the context of this class, which "
856 "repeat the values from the instance of System to which "
857 "this PolicyAction is related, either directly via the "
858 "PolicyActionInPolicyRepository association or indirectly "
859 "via the PolicyActionInPolicyRule aggregation.") ]
860 string SystemCreationClassName;
861 [Key, MaxLen (256), Description (
862 karl 1.1 "The name of the System object in whose scope this "
863 "PolicyAction is defined. \n"
864 "\n"
865 "This property completes the identification of the System "
866 "object in whose scope this instance of PolicyAction "
867 "exists. For a rule-specific PolicyAction, this is the "
868 "System in whose context the PolicyRule is defined. For "
869 "a reusable PolicyAction, this is the instance of "
870 "PolicyRepository (which is a subclass of System) that "
871 "holds the Action.") ]
872 string SystemName;
873 [Key, MaxLen (256), Description (
874 "For a rule-specific PolicyAction, the CreationClassName "
875 "of the PolicyRule object with which this Action is "
876 "associated. For a reusable PolicyAction, a "
877 "special value, 'NO RULE', should be used to "
878 "indicate that this Action is reusable and not "
879 "associated with a single PolicyRule.") ]
880 string PolicyRuleCreationClassName;
881 [Key, MaxLen (256), Description (
882 "For a rule-specific PolicyAction, the name of "
883 karl 1.1 "the PolicyRule object with which this Action is "
884 "associated. For a reusable PolicyAction, a "
885 "special value, 'NO RULE', should be used to "
886 "indicate that this Action is reusable and not "
887 "associated with a single PolicyRule.") ]
888 string PolicyRuleName;
889 [Key, MaxLen (256), Description (
890 "CreationClassName indicates the name of the class or the "
891 "subclass used in the creation of an instance. When used "
892 "with the other key properties of this class, this property "
893 "allows all instances of this class and its subclasses to "
894 "be uniquely identified.") ]
895 string CreationClassName;
896 [Key, MaxLen (256), Description (
897 "A user-friendly name of this PolicyAction.") ]
898 string PolicyActionName;
899 };
900
901
902 // ==================================================================
903 // VendorPolicyAction
904 karl 1.1 // ==================================================================
905 [Version ("2.6.0"), Description (
906 "A class that provides a general extension mechanism for "
907 "representing PolicyActions that have not been modeled "
908 "with specific properties. Instead, the two properties "
909 "ActionData and ActionEncoding are used to define the "
910 "content and format of the Action, as explained below. \n"
911 "\n"
912 "As its name suggests, VendorPolicyAction is intended for "
913 "vendor-specific extensions to the Policy Core Information "
914 "Model. Standardized extensions are not expected to use "
915 "this class.") ]
916 class CIM_VendorPolicyAction : CIM_PolicyAction {
917 [Octetstring, Description (
918 "This property provides a general extension mechanism for "
919 "representing PolicyActions that have not been "
920 "modeled with specific properties. The format of the "
921 "octet strings in the array is left unspecified in "
922 "this definition. It is determined by the OID value "
923 "stored in the property ActionEncoding. Since "
924 "ActionEncoding is single-valued, all the values of "
925 karl 1.1 "ActionData share the same format and semantics."),
926 ModelCorrespondence {
927 "CIM_VendorPolicyAction.ActionEncoding"} ]
928 string ActionData[];
929 [Description (
930 "An OID encoded as a string, identifying the format "
931 "and semantics for this instance's ActionData property."),
932 ModelCorrespondence {
933 "CIM_VendorPolicyAction.ActionData"} ]
934 string ActionEncoding;
935 };
936
937
938 // ==================================================================
939 // CompoundPolicyAction
940 // ==================================================================
941 [Version ("2.6.0"),
942 Description ("CompoundPolicyAction is used to represent an "
943 "expression consisting of an ordered sequence of action "
944 "terms. Each action term is represented as a subclass of "
945 "the PolicyAction class. Compound actions are constructed "
946 karl 1.1 "by associating dependent action terms together using the "
947 "PolicyActionInPolicyAction aggregation.") ]
948 class CIM_CompoundPolicyAction : CIM_PolicyAction {
949 [Description (
950 "This property gives a policy administrator a way "
951 "of specifying how the ordering of the PolicyActions "
952 "associated with this PolicyRule is to be interpreted. "
953 "Three values are supported: \n"
954 " o mandatory(1): Do the actions in the indicated "
955 " order, or don't do them at all. \n"
956 " o recommended(2): Do the actions in the indicated "
957 " order if you can, but if you can't do them in this "
958 " order, do them in another order if you can. \n"
959 " o dontCare(3): Do them -- I don't care about the "
960 " order. \n"
961 "The default value is 3 (\"DontCare\")."),
962 ValueMap {"1", "2", "3"},
963 Values {"Mandatory", "Recommended", "DontCare"} ]
964 uint16 SequencedActions;
965 [Description ("ExecutionStrategy defines the strategy to be "
966 "used in executing the sequenced actions aggregated by this "
967 karl 1.1 "CompoundPolicyAction. There are three execution strategies: \n"
968 "\n"
969 "Do Until Success - execute actions according to predefined \n"
970 " order, until successful execution of a \n"
971 " single action. \n"
972 "Do All - execute ALL actions which are part of \n"
973 " the modeled set, according to their \n"
974 " predefined order. Continue doing this, \n"
975 " even if one or more of the actions "
976 " fails. \n"
977 "Do Until Failure - execute actions according to predefined \n"
978 " order, until the first failure in \n"
979 " execution of an action instance. \n"
980 "The default value is 2 (\"Do All\")."),
981 ValueMap {"1", "2", "3"},
982 Values {"Do Until Success", "Do All", "Do Until Failure"} ]
983 uint16 ExecutionStrategy;
984 };
985
986
987 // ==================================================================
988 karl 1.1 // PolicyRoleCollection
989 // ==================================================================
990 [Experimental, Version ("2.7.1"), Description (
991 "PolicyRoleCollection is used to represent a "
992 "collection of managed elements that share a common policy "
993 "role. The PolicyRoleCollection always exists in the context "
994 "of a system, specified using the PolicyRoleCollectionInSystem "
995 "aggregation. The value of the PolicyRole property in this "
996 "class specifies the role, and can be matched with the value(s) "
997 "in the PolicyRoles array in PolicyRules and PolicyGroups. "
998 "ManagedElements that share the role defined in this collection "
999 "are aggregated into the Collection via the "
1000 "ElementInPolicyRoleCollection association.") ]
1001 class CIM_PolicyRoleCollection : CIM_Collection {
1002 [Propagated ("CIM_System.CreationClassName"),
1003 Key, MaxLen (256), Description (
1004 "The scoping System's CreationClassName.") ]
1005 string SystemCreationClassName;
1006 [Propagated ("CIM_System.Name"),
1007 Key, MaxLen (256), Description (
1008 "The scoping System's Name.") ]
1009 karl 1.1 string SystemName;
1010 [Key, Description (
1011 "The PolicyRole property role name for the managed "
1012 "elements aggregated into the PolicyRoleCollection. This "
1013 "role name is the same role name that appears in related "
1014 "PolicySet instances.") ]
1015 string PolicyRole;
1016 };
1017
1018
1019 // ==================================================================
1020 // === Association classes ===
1021 // ==================================================================
1022
1023
1024 // ==================================================================
1025 // PolicyComponent
1026 // ==================================================================
1027 [Association, Abstract, Aggregation, Version ("2.6.0"),
1028 Description (
1029 "CIM_PolicyComponent is a generic association used to "
1030 karl 1.1 "establish 'part of' relationships between the subclasses of "
1031 "CIM_Policy. For example, the PolicyConditionInPolicyRule "
1032 "association defines that PolicyConditions are part of a "
1033 "PolicyRule.") ]
1034 class CIM_PolicyComponent : CIM_Component {
1035 [Aggregate, Override ("GroupComponent"), Description (
1036 "The parent Policy in the association.") ]
1037 CIM_Policy REF GroupComponent;
1038 [Override ("PartComponent"), Description (
1039 "The child/part Policy in the association.") ]
1040 CIM_Policy REF PartComponent;
1041 };
1042
1043
1044 // ==================================================================
1045 // PolicyInSystem
1046 // ==================================================================
1047 [Association, Abstract, Version ("2.6.0"), Description (
1048 "CIM_PolicyInSystem is a generic association used to "
1049 "establish dependency relationships between Policies and the "
1050 "Systems that host them. These Systems may be ComputerSystems "
1051 karl 1.1 "where Policies are 'running' or they may be Policy"
1052 "Repositories where Policies are stored. This relationship "
1053 "is similar to the concept of CIM_Services being dependent "
1054 "on CIM_Systems as defined by the HostedService "
1055 "association. \n"
1056 "\n"
1057 "Cardinality is Max (1) for the Antecedent/System "
1058 "reference since Policies can only be hosted in at most one "
1059 "System context. Some subclasses of the association will "
1060 "further refine this definition to make the Policies Weak "
1061 "to Systems. Other subclasses of PolicyInSystem will "
1062 "define an optional hosting relationship. Examples of each "
1063 "of these are the PolicyRuleInSystem and PolicyConditionIn"
1064 "PolicyRepository associations, respectively.") ]
1065 class CIM_PolicyInSystem : CIM_Dependency {
1066 [Override ("Antecedent"), Max (1), Description (
1067 "The hosting System.") ]
1068 CIM_System REF Antecedent;
1069 [Override ("Dependent"), Description (
1070 "The hosted Policy.") ]
1071 CIM_Policy REF Dependent;
1072 karl 1.1 };
1073
1074
1075 // ==================================================================
1076 // PolicySetInSystem
1077 // ==================================================================
1078 [Association, Abstract, Version ("2.6.0"), Description (
1079 "PolicySetInSystem is an abstract association class that "
1080 "represents a relationship between a System and a PolicySet used "
1081 "in the administrative scope of that system (e.g., AdminDomain, "
1082 "ComputerSystem). The Priority property is used to assign a "
1083 "relative priority to a PolicySet within the administrative "
1084 "scope in contexts where it is not a component of another "
1085 "PolicySet.") ]
1086 class CIM_PolicySetInSystem : CIM_PolicyInSystem {
1087 [Override ("Antecedent"), Min (1), Max (1), Description (
1088 "The System in whose scope a PolicySet is defined.") ]
1089 CIM_System REF Antecedent;
1090 [Override ("Dependent"), Description (
1091 "A PolicySet named within the scope of a System.") ]
1092 CIM_PolicySet REF Dependent;
1093 karl 1.1 [Description (
1094 "The Priority property is used to specify the relative "
1095 "priority of the referenced PolicySet when there are more "
1096 "than one PolicySet instances applied to a managed resource "
1097 "that are not PolicySetComponents and, therefore, have no "
1098 "other relative priority defined. The priority is a "
1099 "non-negative integer; a larger value indicates a higher "
1100 "priority.") ]
1101 uint16 Priority;
1102 };
1103
1104
1105 // ==================================================================
1106 // PolicyGroupInSystem
1107 // ==================================================================
1108 [Association, Version ("2.6.0"), Description (
1109 "An association that links a PolicyGroup to the System "
1110 "in whose scope the Group is defined.") ]
1111 class CIM_PolicyGroupInSystem : CIM_PolicySetInSystem {
1112 [Override ("Antecedent"), Min (1), Max (1), Description (
1113 "The System in whose scope a PolicyGroup is defined.") ]
1114 karl 1.1 CIM_System REF Antecedent;
1115 [Override ("Dependent"), Weak, Description (
1116 "A PolicyGroup named within the scope of a System.") ]
1117 CIM_PolicyGroup REF Dependent;
1118 };
1119
1120
1121 // ==================================================================
1122 // PolicyRuleInSystem
1123 // ==================================================================
1124 [Association, Version ("2.6.0"), Description (
1125 "An association that links a PolicyRule to the System "
1126 "in whose scope the Rule is defined.") ]
1127 class CIM_PolicyRuleInSystem : CIM_PolicySetInSystem {
1128 [Override ("Antecedent"), Min (1), Max (1), Description (
1129 "The System in whose scope a PolicyRule is defined.") ]
1130 CIM_System REF Antecedent;
1131 [Override ("Dependent"), Weak, Description (
1132 "A PolicyRule named within the scope of a System.") ]
1133 CIM_PolicyRule REF Dependent;
1134 };
1135 karl 1.1
1136
1137 // ==================================================================
1138 // PolicySetComponent
1139 // ==================================================================
1140 [Association, Aggregation, Version ("2.6.0"), Description (
1141 "PolicySetComponent is a concrete aggregation that "
1142 "collects instances of the subclasses of PolicySet (i.e., "
1143 "PolicyGroups and PolicyRules). Instances are collected in "
1144 "sets that use the same decision strategy. They are "
1145 "prioritized relative to each other, within the set, "
1146 "using the Priority property of this aggregation. \n"
1147 "\n"
1148 "Together, the PolicySet.PolicyDecisionStrategy and PolicySet"
1149 "Component.Priority properties determine the processing "
1150 "for the groups and rules contained in a PolicySet. A larger "
1151 "priority value represents a higher priority. Note that "
1152 "the Priority property MUST have a unique value when "
1153 "compared with others defined for the same aggregating "
1154 "PolicySet. Thus, the evaluation of rules within a set "
1155 "is deterministically specified.") ]
1156 karl 1.1 class CIM_PolicySetComponent : CIM_PolicyComponent {
1157 [Override ("GroupComponent"), Aggregate, Description (
1158 "A PolicySet that aggregates other PolicySet instances.") ]
1159 CIM_PolicySet REF GroupComponent;
1160 [Override ("PartComponent"), Description (
1161 "A PolicySet aggregated into a PolicySet.") ]
1162 CIM_PolicySet REF PartComponent;
1163 [Description (
1164 "A non-negative integer for prioritizing this PolicySet "
1165 "component relative to other elements of the same PolicySet. "
1166 "A larger value indicates a higher priority. The "
1167 "Priority property MUST have a unique value when compared "
1168 "with others defined for the same aggregating PolicySet.") ]
1169 uint16 Priority;
1170 };
1171
1172
1173 // ==================================================================
1174 // PolicyGroupInPolicyGroup *** deprecated
1175 // ==================================================================
1176 [Association, Aggregation, DEPRECATED {"CIM_PolicySetComponent"},
1177 karl 1.1 Version ("2.6.0"), Description (
1178 "PolicySetComponent provides a more general mechanism for "
1179 "aggregating both PolicyGroups and PolicyRules and doing so with "
1180 "the priority value applying only to the aggregated set rather "
1181 "than policy wide. \n"
1182 "\n"
1183 "A relationship that aggregates one or more lower-level "
1184 "PolicyGroups into a higher-level Group. A Policy"
1185 "Group may aggregate PolicyRules and/or other Policy"
1186 "Groups.") ]
1187 class CIM_PolicyGroupInPolicyGroup : CIM_PolicyComponent {
1188 [Override ("GroupComponent"), Aggregate, Description (
1189 "A PolicyGroup that aggregates other Groups.") ]
1190 CIM_PolicyGroup REF GroupComponent;
1191 [Override ("PartComponent"), Description (
1192 "A PolicyGroup aggregated by another Group.") ]
1193 CIM_PolicyGroup REF PartComponent;
1194 };
1195
1196
1197 // ==================================================================
1198 karl 1.1 // PolicyRuleInPolicyGroup *** deprecated
1199 // ==================================================================
1200 [Association, Aggregation, DEPRECATED {"CIM_PolicySetComponent"},
1201 Version ("2.6.0"), Description (
1202 "PolicySetComponent provides a more general mechanism for "
1203 "aggregating both PolicyGroups and PolicyRules and doing so with "
1204 "the priority value applying only to the aggregated set rather "
1205 "than policy wide. \n"
1206 "\n"
1207 "A relationship that aggregates one or more PolicyRules "
1208 "into a PolicyGroup. A PolicyGroup may aggregate "
1209 "PolicyRules and/or other PolicyGroups.") ]
1210 class CIM_PolicyRuleInPolicyGroup : CIM_PolicyComponent {
1211 [Override ("GroupComponent"), Aggregate, Description (
1212 "A PolicyGroup that aggregates one or more PolicyRules.") ]
1213 CIM_PolicyGroup REF GroupComponent;
1214 [Override ("PartComponent"), Description (
1215 "A PolicyRule aggregated by a PolicyGroup.") ]
1216 CIM_PolicyRule REF PartComponent;
1217 };
1218
1219 karl 1.1
1220 // ==================================================================
1221 // PolicyRuleValidityPeriod
1222 // ==================================================================
1223 [Association, Aggregation, Version ("2.6.0"), Description (
1224 "The PolicyRuleValidityPeriod aggregation represents "
1225 "scheduled activation and deactivation of a PolicyRule. "
1226 "If a PolicyRule is associated with multiple policy time "
1227 "periods via this association, then the Rule is active if "
1228 "at least one of the time periods indicates that it is "
1229 "active. (In other words, the PolicyTimePeriodConditions "
1230 "are ORed to determine whether the Rule is active.) A Time"
1231 "Period may be aggregated by multiple PolicyRules. A Rule "
1232 "that does not point to a PolicyTimePeriodCondition via this "
1233 "association is, from the point of view of scheduling, "
1234 "always active. It may, however, be inactive for other "
1235 "reasons. For example, the Rule's Enabled property may "
1236 "be set to \"disabled\" (value=2).") ]
1237 class CIM_PolicyRuleValidityPeriod : CIM_PolicyComponent {
1238 [Override ("GroupComponent"), Aggregate, Description (
1239 "This property contains the name of a PolicyRule that "
1240 karl 1.1 "contains one or more PolicyTimePeriodConditions.") ]
1241 CIM_PolicyRule REF GroupComponent;
1242 [Override ("PartComponent"), Description (
1243 "This property contains the name of a "
1244 "PolicyTimePeriodCondition defining the valid time periods "
1245 "for one or more PolicyRules.") ]
1246 CIM_PolicyTimePeriodCondition REF PartComponent;
1247 };
1248
1249
1250 // ==================================================================
1251 // PolicyConditionStructure
1252 // ==================================================================
1253 [Association, Aggregation, Abstract,
1254 Experimental, Version ("2.7.0"), Description (
1255 "PolicyConditions may be aggregated into rules and into "
1256 "compound conditions. PolicyConditionStructure is the "
1257 "abstract aggregation class for the structuring of policy "
1258 "conditions. \n"
1259 "\n"
1260 "The Conditions aggregated by a PolicyRule or "
1261 karl 1.1 "CompoundPolicyCondition are grouped into two levels of "
1262 "lists: either an ORed set of ANDed sets of conditions (DNF, "
1263 "the default) or an ANDed set of ORed sets of conditions "
1264 "(CNF). Individual PolicyConditions in these lists may be "
1265 "negated. The property ConditionListType specifies which of "
1266 "these two grouping schemes applies to a particular "
1267 "PolicyRule or CompoundPolicyCondition instance. \n"
1268 "\n"
1269 "One or more PolicyTimePeriodConditions may be among the "
1270 "conditions associated with a PolicyRule or "
1271 "CompoundPolicyCondition via the PolicyConditionStructure "
1272 "subclass association. In this case, the time periods are "
1273 "simply additional Conditions to be evaluated along "
1274 "with any others that are specified. ") ]
1275 class CIM_PolicyConditionStructure : CIM_PolicyComponent {
1276 [Override ("GroupComponent"), Aggregate, Description (
1277 "This property represents the Policy that "
1278 "contains one or more PolicyConditions.") ]
1279 CIM_Policy REF GroupComponent;
1280 [Override ("PartComponent"), Description (
1281 "This property holds the name of a PolicyCondition "
1282 karl 1.1 "contained by one or more PolicyRule or "
1283 "CompoundPolicyCondition instances.") ]
1284 CIM_PolicyCondition REF PartComponent;
1285 [Description (
1286 "Unsigned integer indicating the group to which the "
1287 "contained PolicyCondition belongs. This integer segments "
1288 "the Conditions into the ANDed sets (when the "
1289 "ConditionListType is \"DNF\") or, similarly, into the ORed "
1290 "sets (when the ConditionListType is \"CNF\").") ]
1291 uint16 GroupNumber;
1292 [Description (
1293 "Indication of whether the contained PolicyCondition is "
1294 "negated. TRUE indicates that the PolicyCondition IS "
1295 "negated, FALSE indicates that it IS NOT negated.") ]
1296 boolean ConditionNegated;
1297 };
1298
1299
1300 // ==================================================================
1301 // PolicyConditionInPolicyRule
1302 // ==================================================================
1303 karl 1.1 [Association, Aggregation, Version ("2.7.0"),
1304 Description (
1305 "A PolicyRule aggregates zero or more instances of the "
1306 "PolicyCondition class, via the PolicyConditionInPolicyRule "
1307 "association. A Rule that aggregates zero Conditions is not "
1308 "valid; it may, however, be in the process of being defined. "
1309 "Note that a PolicyRule should have no effect until it is "
1310 "valid.") ]
1311 class CIM_PolicyConditionInPolicyRule : CIM_PolicyConditionStructure {
1312 [Override ("GroupComponent"), Aggregate, Description (
1313 "This property represents the PolicyRule that "
1314 "contains one or more PolicyConditions.") ]
1315 CIM_PolicyRule REF GroupComponent;
1316 [Override ("PartComponent"), Description (
1317 "This property holds the name of a PolicyCondition "
1318 "contained by one or more PolicyRules.") ]
1319 CIM_PolicyCondition REF PartComponent;
1320 };
1321
1322 // ==================================================================
1323 // PolicyConditionInPolicyCondition
1324 karl 1.1 // ==================================================================
1325 [Association, Aggregation, Experimental, Version ("2.7.0"),
1326 Description (
1327 "A CompoundPolicyCondition aggregates zero or more instances "
1328 "of the PolicyCondition class, via the "
1329 "PolicyConditionInPolicyCondition association. A "
1330 "CompoundPolicyCondition that aggregates zero Conditions is "
1331 "not valid; it may, however, be in the process of being "
1332 "defined. Note that a CompoundPolicyCondition should have no "
1333 "effect until it is valid.") ]
1334 class CIM_PolicyConditionInPolicyCondition :
1335 CIM_PolicyConditionStructure {
1336 [Override ("GroupComponent"), Aggregate, Description (
1337 "This property represents the CompoundPolicyCondition that "
1338 "contains one or more PolicyConditions.") ]
1339 CIM_CompoundPolicyCondition REF GroupComponent;
1340 [Override ("PartComponent"), Description (
1341 "This property holds the name of a PolicyCondition "
1342 "contained by one or more PolicyRules.") ]
1343 CIM_PolicyCondition REF PartComponent;
1344 };
1345 karl 1.1
1346
1347 // ==================================================================
1348 // PolicyActionStructure
1349 // ==================================================================
1350 [Association, Aggregation, Abstract, Version ("2.6.0"),
1351 Description (
1352 "PolicyActions may be aggregated into rules and into "
1353 "compound actions. PolicyActionStructure is the abstract "
1354 "aggregation class for the structuring of policy actions.") ]
1355 class CIM_PolicyActionStructure : CIM_PolicyComponent {
1356 [Override ("GroupComponent"), Aggregate, Description (
1357 "PolicyAction instances may be aggregated into either "
1358 "PolicyRule instances or CompoundPolicyAction instances.") ]
1359 CIM_Policy REF GroupComponent;
1360 [Override ("PartComponent"), Description (
1361 "A PolicyAction aggregated by a PolicyRule or "
1362 "CompoundPolicyAction.") ]
1363 CIM_PolicyAction REF PartComponent;
1364 [Description (
1365 "ActionOrder is an unsigned integer 'n' that indicates the "
1366 karl 1.1 "relative position of a PolicyAction in the sequence of"
1367 "actions associated with a PolicyRule or "
1368 "CompoundPolicyAction. When 'n' is a positive integer, it "
1369 "indicates a place in the sequence of actions to be "
1370 "performed, with smaller integers indicating earlier "
1371 "positions in the sequence. The special value '0' indicates "
1372 "'don't care'. If two or more PolicyActions have the same "
1373 "non-zero sequence number, they may be performed in any "
1374 "order, but they must all be performed at the appropriate "
1375 "place in the overall action sequence. \n"
1376 "\n"
1377 "A series of examples will make ordering of PolicyActions "
1378 "clearer: \n"
1379 " o If all actions have the same sequence number, \n"
1380 " regardless of whether it is '0' or non-zero, any \n"
1381 " order is acceptable. \n"
1382 " o The values: \n"
1383 " 1:ACTION A \n"
1384 " 2:ACTION B \n"
1385 " 1:ACTION C \n"
1386 " 3:ACTION D \n"
1387 karl 1.1 " indicate two acceptable orders: A,C,B,D or C,A,B,D, \n"
1388 " since A and C can be performed in either order, but \n"
1389 " only at the '1' position. \n"
1390 " o The values: \n"
1391 " 0:ACTION A \n"
1392 " 2:ACTION B \n"
1393 " 3:ACTION C \n"
1394 " 3:ACTION D \n"
1395 " require that B,C, and D occur either as B,C,D or as \n"
1396 " B,D,C. Action A may appear at any point relative to \n"
1397 " B, C, and D. Thus the complete set of acceptable \n"
1398 " orders is: A,B,C,D; B,A,C,D; B,C,A,D; B,C,D,A; \n"
1399 " A,B,D,C; B,A,D,C; B,D,A,C; B,D,C,A. \n"
1400 "\n"
1401 "Note that the non-zero sequence numbers need not start with "
1402 "'1', and they need not be consecutive. All that matters is "
1403 "their relative magnitude.") ]
1404 uint16 ActionOrder;
1405 };
1406
1407
1408 karl 1.1 // ==================================================================
1409 // PolicyActionInPolicyRule
1410 // ==================================================================
1411 [Association, Aggregation, Version ("2.6.0"), Description (
1412 "A PolicyRule aggregates zero or more instances of the "
1413 "PolicyAction class, via the PolicyActionInPolicyRule "
1414 "association. A Rule that aggregates zero Actions is not "
1415 "valid--it may, however, be in the process of being entered "
1416 "into a PolicyRepository or being defined for a System. "
1417 "Alternately, the actions of the policy may be explicit in "
1418 "the definition of the PolicyRule. Note that a PolicyRule "
1419 "should have no effect until it is valid. \n"
1420 "\n"
1421 "The Actions associated with a PolicyRule may be given a "
1422 "required order, a recommended order, or no order at all. "
1423 "For Actions represented as separate objects, the "
1424 "PolicyActionInPolicyRule aggregation can be used to express "
1425 "an order. \n"
1426 "\n"
1427 "This aggregation does not indicate whether a specified "
1428 "action order is required, recommended, or of no "
1429 karl 1.1 "significance; the property SequencedActions in the "
1430 "aggregating instance of PolicyRule provides this "
1431 "indication.") ]
1432 class CIM_PolicyActionInPolicyRule : CIM_PolicyActionStructure {
1433 [Override ("GroupComponent"), Aggregate, Description (
1434 "This property represents the PolicyRule that "
1435 "contains one or more PolicyActions.") ]
1436 CIM_PolicyRule REF GroupComponent;
1437 [Override ("PartComponent"), Description (
1438 "This property holds the name of a PolicyAction "
1439 "contained by one or more PolicyRules.") ]
1440 CIM_PolicyAction REF PartComponent;
1441 };
1442
1443
1444 // ==================================================================
1445 // PolicyActionInPolicyAction
1446 // ==================================================================
1447 [Association, Aggregation, Version ("2.6.0"), Description (
1448 "PolicyActionInPolicyAction is used to represent the "
1449 "compounding of policy actions into a higher-level policy "
1450 karl 1.1 "action.") ]
1451 class CIM_PolicyActionInPolicyAction : CIM_PolicyActionStructure {
1452 [Override ("GroupComponent"), Aggregate, Description (
1453 "This property represents the CompoundPolicyAction that "
1454 "contains one or more PolicyActions.") ]
1455 CIM_CompoundPolicyAction REF GroupComponent;
1456 [Override ("PartComponent"), Description (
1457 "This property holds the name of a PolicyAction "
1458 "contained by one or more CompoundPolicyActions.") ]
1459 CIM_PolicyAction REF PartComponent;
1460 };
1461
1462
1463 // ==================================================================
1464 // PolicyContainerInPolicyContainer
1465 // ==================================================================
1466 [Association, Aggregation, Version ("2.6.0"), Description (
1467 "A relationship that aggregates one or more lower-level "
1468 "ReusablePolicyContainer instances into a higher-level "
1469 "ReusablePolicyContainer.") ]
1470 class CIM_PolicyContainerInPolicyContainer: CIM_SystemComponent {
1471 karl 1.1 [Override ("GroupComponent"), Aggregate, Description (
1472 "A ReusablePolicyContainer that aggregates other "
1473 "ReusablePolicyContainers.") ]
1474 CIM_ReusablePolicyContainer REF GroupComponent;
1475 [Override ("PartComponent"), Description (
1476 "A ReusablePolicyContainer aggregated by another "
1477 "ReusablePolicyContainer.") ]
1478 CIM_ReusablePolicyContainer REF PartComponent;
1479 };
1480
1481
1482 // ==================================================================
1483 // PolicyRepositoryInPolicyRepository *** deprecated
1484 // ==================================================================
1485 [Association, Aggregation,
1486 DEPRECATED {"CIM_PolicyContainerInPolicyContainer"},
1487 Version ("2.6.0"), Description (
1488 "The term 'PolicyRepository' has been confusing to both "
1489 "developers and users of the model. The replacement class "
1490 "name describes model element properly and is less likely "
1491 "to be confused with a data repository. ContainedDomain is a "
1492 karl 1.1 "general purpose mechanism for expressing domain hierarchy. \n"
1493 "\n"
1494 "A relationship that aggregates one or more lower-level "
1495 "PolicyRepositories into a higher-level Repository.") ]
1496 class CIM_PolicyRepositoryInPolicyRepository : CIM_SystemComponent {
1497 [Override ("GroupComponent"), Aggregate, Description (
1498 "A PolicyRepository that aggregates other Repositories.") ]
1499 CIM_PolicyRepository REF GroupComponent;
1500 [Override ("PartComponent"), Description (
1501 "A PolicyRepository aggregated by another Repository.") ]
1502 CIM_PolicyRepository REF PartComponent;
1503 };
1504
1505
1506 // ==================================================================
1507 // ReusablePolicy
1508 // ==================================================================
1509 [Association, Version ("2.6.0"), Description (
1510 "The ReusablePolicy association provides for the reuse of any "
1511 "subclass of Policy in a ReusablePolicyContainer.") ]
1512 class CIM_ReusablePolicy : CIM_PolicyInSystem {
1513 karl 1.1 [Override ("Antecedent"), Max (1), Description (
1514 "This property identifies a ReusablePolicyContainer that "
1515 "provides the administrative scope for the reuse of the "
1516 "referenced policy element.") ]
1517 CIM_ReusablePolicyContainer REF Antecedent;
1518 [Override ("Dependent"), Description (
1519 "A reusable policy element.") ]
1520 CIM_Policy REF Dependent;
1521 };
1522
1523
1524 // ==================================================================
1525 // ElementInPolicyRoleCollection
1526 // ==================================================================
1527 [Association, Aggregation, Experimental, Version ("2.7.0"),
1528 Description (
1529 "An ElementInPolicyRoleCollection aggregates zero or more "
1530 "ManagedElement subclass instances with a "
1531 "PolicyRoleCollection object that represents a role played "
1532 "by these ManagedElements.") ]
1533 class CIM_ElementInPolicyRoleCollection : CIM_MemberOfCollection {
1534 karl 1.1 [Override ("Collection"), Aggregate,
1535 Description ("The PolicyRoleCollection.") ]
1536 CIM_PolicyRoleCollection REF Collection;
1537 [Override ("Member"), Description (
1538 "The ManagedElement that plays the role represented by "
1539 "the PolicyRoleCollection.") ]
1540 CIM_ManagedElement REF Member;
1541 };
1542
1543
1544 // ==================================================================
1545 // PolicyRoleCollectionInSystem
1546 // ==================================================================
1547 [Association, Experimental, Version ("2.7.0"), Description (
1548 "PolicyRoleCollectionInSystem is an association used to "
1549 "establish a relationship between a collection and an "
1550 "'owning' System such as an AdminDomain or ComputerSystem." ) ]
1551 class CIM_PolicyRoleCollectionInSystem: CIM_Dependency {
1552 [Override ("Antecedent"), Min (1), Max (1), Description (
1553 "The parent system responsible for the collection.") ]
1554 CIM_System REF Antecedent;
1555 karl 1.1 [Override ("Dependent"), Weak,
1556 Description ("The Collection.") ]
1557 CIM_PolicyRoleCollection REF Dependent;
1558 };
1559
1560
1561 // ==================================================================
1562 // PolicyConditionInPolicyRepository *** deprecated
1563 // ==================================================================
1564 [Association, DEPRECATED {"CIM_ReusablePolicy"},
1565 Version ("2.6.0"), Description (
1566 "The ReusablePolicy association is a more general relationship "
1567 "that incorporates both Conditions and Actions as well as any "
1568 "other policy subclass. \n"
1569 "\n"
1570 "A class representing the hosting of reusable "
1571 "PolicyConditions by a PolicyRepository. A reusable Policy"
1572 "Condition is always related to a single PolicyRepository, "
1573 "via this association. \n"
1574 "\n"
1575 "Note, that an instance of PolicyCondition can be either "
1576 karl 1.1 "reusable or rule-specific. When the Condition is rule-"
1577 "specific, it shall not be related to any "
1578 "PolicyRepository via the PolicyConditionInPolicyRepository "
1579 "association.") ]
1580 class CIM_PolicyConditionInPolicyRepository : CIM_PolicyInSystem {
1581 [Override ("Antecedent"), Max (1), Description (
1582 "This property identifies a PolicyRepository "
1583 "hosting one or more PolicyConditions. A reusable "
1584 "PolicyCondition is always related to exactly one "
1585 "PolicyRepository via the PolicyConditionInPolicyRepository "
1586 "association. The [0..1] cardinality for this property "
1587 "covers the two types of PolicyConditions: 0 for a "
1588 "rule-specific PolicyCondition, 1 for a reusable one.") ]
1589 CIM_PolicyRepository REF Antecedent;
1590 [Override ("Dependent"), Description (
1591 "This property holds the name of a PolicyCondition"
1592 "hosted in the PolicyRepository.") ]
1593 CIM_PolicyCondition REF Dependent;
1594 };
1595
1596
1597 karl 1.1 // ==================================================================
1598 // PolicyActionInPolicyRepository *** deprecated
1599 // ==================================================================
1600 [Association, DEPRECATED {"CIM_ReusablePolicy"},
1601 Version ("2.6.0"), Description (
1602 "The ReusablePolicy association is a more general relationship "
1603 "that incorporates both Conditions and Actions as well as any "
1604 "other policy subclass. \n"
1605 "\n"
1606 "A class representing the hosting of reusable "
1607 "PolicyActions by a PolicyRepository. A reusable Policy"
1608 "Action is always related to a single PolicyRepository, "
1609 "via this association. \n"
1610 "\n"
1611 "Note, that an instance of PolicyAction can be either "
1612 "reusable or rule-specific. When the Action is rule-"
1613 "specific, it shall not be related to any "
1614 "PolicyRepository via the PolicyActionInPolicyRepository "
1615 "association.") ]
1616 class CIM_PolicyActionInPolicyRepository : CIM_PolicyInSystem {
1617 [Override ("Antecedent"), Max (1), Description (
1618 karl 1.1 "This property represents a PolicyRepository "
1619 "hosting one or more PolicyActions. A reusable "
1620 "PolicyAction is always related to exactly one "
1621 "PolicyRepository via the PolicyActionInPolicyRepository "
1622 "association. The [0..1] cardinality for this property "
1623 "covers the two types of PolicyActions: 0 for a "
1624 "rule-specific PolicyAction, 1 for a reusable one.") ]
1625 CIM_PolicyRepository REF Antecedent;
1626 [Override ("Dependent"), Description (
1627 "This property holds the name of a PolicyAction"
1628 "hosted in the PolicyRepository.") ]
1629 CIM_PolicyAction REF Dependent;
1630 };
1631
1632
1633 // ===================================================================
1634 // end of file
1635 // ===================================================================
|