28 karl 1.1 // Description: The object classes below are listed in an order that
29 // avoids forward references. Required objects, defined
30 // by other working groups, are omitted.
31 // Date: 06/27/2000
32 // CIMCR516a - Rooted the model associations under Policy
33 // Component or PolicyInSystem. Corrected PolicyCondition/
34 // PolicyActionInPolicyRepository to subclass from
35 // PolicyInSystem (similar to Groups and Roles 'InSystem')
36 // ==================================================================
37 // Author: DMTF SLA (Service Level Agreement) Working Group
38 // ==================================================================
39 // Pragmas
40 // ==================================================================
41 #pragma Locale ("en-US")
42
43
44 // ==================================================================
45 // Policy
46 // ==================================================================
47 [Abstract, Description (
48 "An abstract class describing common properties of all "
49 karl 1.1 "policy rule-related subclasses, such as PolicyGroup, Policy"
50 "Rule and PolicyCondition. All instances of policy rule-"
51 "related entities will be created from subclasses of CIM_"
52 "Policy. The exception to this statement is PolicyRepository "
53 "which is a type of CIM_System.")
54 ]
55 class CIM_Policy : CIM_ManagedElement
56 {
57 [Description (
58 "A user-friendly name of this policy-related object.")
59 ]
60 string CommonName;
61 [Description (
62 "An array of keywords for characterizing / categorizing "
63 "policy objects. Keywords are of one of two types: \n"
64 " o Keywords defined in this and other MOFs, or in DMTF "
65 " white papers. These keywords provide a vendor-"
66 " independent, installation-independent way of "
67 " characterizing policy objects. \n"
68 " o Installation-dependent keywords for characterizing "
69 " policy objects. Examples include 'Engineering', "
70 karl 1.1 " 'Billing', and 'Review in December 2000'. \n"
71 "This MOF defines the following keywords: 'UNKNOWN', "
72 "'CONFIGURATION', 'USAGE', 'SECURITY', 'SERVICE', "
73 "'MOTIVATIONAL', 'INSTALLATION', and 'EVENT'. These "
74 "concepts are self-explanatory and are further discussed "
75 "in the SLA/Policy White Paper. One additional keyword "
76 "is defined: 'POLICY'. The role of this keyword is to "
77 "identify policy-related instances that may not be otherwise "
78 "identifiable, in some implementations. The keyword 'POLICY' "
79 "is NOT mutually exclusive of the other keywords "
80 "specified above.")
81 ]
82 string PolicyKeywords [];
83 };
84
85 // ==================================================================
86 // PolicyComponent
87 // ==================================================================
88 [Association, Abstract, Aggregation, Description (
89 "CIM_PolicyComponent is a generic association used to "
90 "establish 'part of' relationships between the subclasses of "
91 karl 1.1 "CIM_Policy. For example, the PolicyConditionInPolicyRule "
92 "association defines that PolicyConditions are part of a "
93 "PolicyRule.")
94 ]
95 class CIM_PolicyComponent
96 {
97 [Aggregate, Key, Description (
98 "The parent Policy in the association.")
99 ]
100 CIM_Policy REF GroupComponent;
101 [Key, Description (
102 "The child/part Policy in the association.")
103 ]
104 CIM_Policy REF PartComponent;
105 };
106
107 // ==================================================================
108 // PolicyInSystem
109 // ==================================================================
110 [Association, Abstract, Description (
111 " CIM_PolicyInSystem is a generic association used to "
112 karl 1.1 "establish dependency relationships between Policies and the "
113 "Systems that host them. These Systems may be ComputerSystems "
114 "where Policies are 'running' or they may be Policy"
115 "Repositories where Policies are stored. This relationship "
116 "is similar to the concept of CIM_Services being dependent "
117 "on CIM_Systems as defined by the HostedService "
118 "association. \n"
119 " Cardinality is Max(1) for the Antecedent/System "
120 "reference since Policies can only be hosted in at most one "
121 "System context. Some subclasses of the association will "
122 "further refine this definition to make the Policies Weak "
123 "to Systems. Other subclasses of PolicyInSystem will "
124 "define an optional hosting relationship. Examples of each "
125 "of these are the PolicyRuleInSystem and PolicyConditionIn"
126 "PolicyRepository associations, respectively.")
127 ]
128 class CIM_PolicyInSystem : CIM_Dependency
129 {
130 [Override ("Antecedent"), Max (1), Description (
131 "The hosting System.")
132 ]
133 karl 1.1 CIM_System REF Antecedent;
134 [Override ("Dependent"), Description (
135 "The hosted Policy.")
136 ]
137 CIM_Policy REF Dependent;
138 };
139
140 // ==================================================================
141 // PolicyGroup
142 // ==================================================================
143 [Description (
144 "A container for a set of related PolicyGroups "
145 "and/or PolicyRules. Policy"
146 "Groups are defined and named relative to the CIM_System "
147 "which provides their context.")
148 ]
149 class CIM_PolicyGroup : CIM_Policy
150 {
151 [Propagated("CIM_System.CreationClassName"),
152 Key, MaxLen (256),
153 Description ("The scoping System's CreationClassName.")
154 karl 1.1 ]
155 string SystemCreationClassName;
156 [Propagated("CIM_System.Name"),
157 Key, MaxLen (256),
158 Description ("The scoping System's Name.")
159 ]
160 string SystemName;
161 [Key, MaxLen (256), Description (
162 "CreationClassName indicates the name of the class or the "
163 "subclass used in the creation of an instance. When used "
164 "with the other key properties of this class, this property "
165 "allows all instances of this class and its subclasses to "
166 "be uniquely identified.") ]
167 string CreationClassName;
168 [Key, MaxLen (256), Description (
169 "A user-friendly name of this PolicyGroup.")
170 ]
171 string PolicyGroupName;
172 };
173
174 // ==================================================================
175 karl 1.1 // PolicyGroupInPolicyGroup
176 // ==================================================================
177 [Association, Aggregation, Description (
178 "A relationship that aggregates one or more lower-level "
179 "PolicyGroups into a higher-level Group. A Policy"
180 "Group may aggregate PolicyRules and/or other Policy"
181 "Groups.")
182 ]
183 class CIM_PolicyGroupInPolicyGroup : CIM_PolicyComponent
184 {
185 [Override ("GroupComponent"), Aggregate, Description (
186 "A PolicyGroup that aggregates other Groups.")
187 ]
188 CIM_PolicyGroup REF GroupComponent;
189 [Override ("PartComponent"), Description (
190 "A PolicyGroup aggregated by another Group.")
191 ]
192 CIM_PolicyGroup REF PartComponent;
193 };
194
195 // ==================================================================
196 karl 1.1 // PolicyGroupInSystem
197 // ==================================================================
198 [Association, Description (
199 "An association that links a PolicyGroup to the System "
200 "in whose scope the Group is defined.")
201 ]
202 class CIM_PolicyGroupInSystem : CIM_PolicyInSystem
203 {
204 [Override ("Antecedent"), Min(1), Max(1), Description (
205 "The System in whose scope a PolicyGroup is defined.")
206 ]
207 CIM_System REF Antecedent;
208 [Override ("Dependent"), Weak, Description (
209 "A PolicyGroup named within the scope of a System.")
210 ]
211 CIM_PolicyGroup REF Dependent;
212 };
213
214 // ==================================================================
215 // PolicyRule
216 // ==================================================================
217 karl 1.1 [Description (
218 " The central class for representing the 'If Condition then "
219 "Action' semantics associated with a policy rule. "
220 "A PolicyRule condition, in the most general sense, is "
221 "represented as either an ORed set of ANDed conditions "
222 "(Disjunctive Normal Form, or DNF) or an ANDed set of ORed "
223 "conditions (Conjunctive Normal Form, or CNF). Individual "
224 "conditions may either be negated (NOT C) or unnegated (C). "
225 "The actions specified by a PolicyRule are to be performed "
226 "if and only if the PolicyRule condition (whether it is "
227 "represented in DNF or CNF) evaluates to TRUE.\n\n"
228 " "
229 "The conditions and actions associated with a PolicyRule "
230 "are modeled, respectively, with subclasses of Policy"
231 "Condition and PolicyAction. These condition and action "
232 "objects are tied to instances of PolicyRule by the Policy"
233 "ConditionInPolicyRule and PolicyActionInPolicyRule "
234 "aggregations.\n\n"
235 " "
236 "A PolicyRule may also be associated with one or more policy "
237 "time periods, indicating the schedule according to which the "
238 karl 1.1 "policy rule is active and inactive. In this case it is the "
239 "PolicyRuleValidityPeriod aggregation that provides this "
240 "linkage.\n\n"
241 " "
242 "The PolicyRule class uses the property ConditionListType, to "
243 "indicate whether the conditions for the rule are in DNF or "
244 "CNF. The PolicyConditionInPolicyRule aggregation contains "
245 "two additional properties to complete the representation of "
246 "the Rule's conditional expression. The first of these "
247 "properties is an integer to partition the referenced "
248 "PolicyConditions into one or more groups, and the second is a "
249 "Boolean to indicate whether a referenced Condition is "
250 "negated. An example shows how ConditionListType and these "
251 "two additional properties provide a unique representation "
252 "of a set of PolicyConditions in either DNF or CNF.\n\n"
253 " "
254 "Suppose we have a PolicyRule that aggregates five "
255 "PolicyConditions C1 through C5, with the following values "
256 "in the properties of the five PolicyConditionInPolicyRule "
257 "associations:\n"
258 " C1: GroupNumber = 1, ConditionNegated = FALSE\n "
259 karl 1.1 " C2: GroupNumber = 1, ConditionNegated = TRUE\n "
260 " C3: GroupNumber = 1, ConditionNegated = FALSE\n "
261 " C4: GroupNumber = 2, ConditionNegated = FALSE\n "
262 " C5: GroupNumber = 2, ConditionNegated = FALSE\n\n "
263 " "
264 "If ConditionListType = DNF, then the overall condition for "
265 "the PolicyRule is:\n"
266 " (C1 AND (NOT C2) AND C3) OR (C4 AND C5)\n\n"
267 " "
268 "On the other hand, if ConditionListType = CNF, then the "
269 "overall condition for the PolicyRule is:\n"
270 " (C1 OR (NOT C2) OR C3) AND (C4 OR C5)\n\n"
271 " "
272 "In both cases, there is an unambiguous specification of "
273 "the overall condition that is tested to determine whether "
274 "to perform the PolicyActions associated with the PolicyRule.")
275 ]
276 class CIM_PolicyRule : CIM_Policy
277 {
278 [Propagated("CIM_System.CreationClassName"),
279 Key, MaxLen (256),
280 karl 1.1 Description ("The scoping System's CreationClassName.")
281 ]
282 string SystemCreationClassName;
283 [Propagated("CIM_System.Name"),
284 Key, MaxLen (256),
285 Description ("The scoping System's Name.")
286 ]
287 string SystemName;
288 [Key, MaxLen (256), Description (
289 "CreationClassName indicates the name of the class or the "
290 "subclass used in the creation of an instance. When used "
291 "with the other key properties of this class, this property "
292 "allows all instances of this class and its subclasses to "
293 "be uniquely identified.") ]
294 string CreationClassName;
295 [Key, MaxLen (256), Description (
296 "A user-friendly name of this PolicyRule.")
297 ]
298 string PolicyRuleName;
299 [Description (
300 "Indicates whether this PolicyRule is administratively "
301 karl 1.1 "enabled, administratively disabled, or enabled for "
302 "debug. When the property has the value 3 (\"enabledFor"
303 "Debug\"), the entity evaluating the PolicyConditions is "
304 "instructed to evaluate the conditions for the Rule, but not "
305 "to perform the actions if the PolicyConditions evaluate to "
306 "TRUE. This serves as a debug vehicle when attempting to "
307 "determine what policies would execute in a particular "
308 "scenario, without taking any actions to change state "
309 "during the debugging. The default value is 1 (\"enabled\")."),
310 ValueMap { "1", "2", "3" },
311 Values { "enabled", "disabled", "enabledForDebug" }
312 ]
313 uint16 Enabled;
314 [Description (
315 "Indicates whether the list of PolicyConditions "
316 "associated with this PolicyRule is in disjunctive "
317 "normal form (DNF) or conjunctive normal form (CNF)."
318 "The default value is 1 (\"DNF\")."),
319 ValueMap { "1", "2" },
320 Values { "DNF", "CNF" }
321 ]
322 karl 1.1 uint16 ConditionListType;
323 [Description (
324 "A free-form string that can be used to provide "
325 "guidelines on how this PolicyRule should be used.")
326 ]
327 string RuleUsage;
328 [Description (
329 "A non-negative integer for prioritizing this Policy"
330 "Rule relative to other Rules. A larger value "
331 "indicates a higher priority. The default value is 0.")
332 ]
333 uint16 Priority;
334 [Description (
335 "A flag indicating that the evaluation of the Policy"
336 "Conditions and execution of PolicyActions (if the "
337 "Conditions evaluate to TRUE) is required. The "
338 "evaluation of a PolicyRule MUST be attempted if the "
339 "Mandatory property value is TRUE. If the Mandatory "
340 "property is FALSE, then the evaluation of the Rule "
341 "is 'best effort' and MAY be ignored.")
342 ]
343 karl 1.1 boolean Mandatory;
344 [Description (
345 "This property gives a policy administrator a way "
346 "of specifying how the ordering of the PolicyActions "
347 "associated with this PolicyRule is to be interpreted. "
348 "Three values are supported:\n"
349 " o mandatory(1): Do the actions in the indicated "
350 " order, or don't do them at all.\n"
351 " o recommended(2): Do the actions in the indicated "
352 " order if you can, but if you can't do them in this "
353 " order, do them in another order if you can.\n"
354 " o dontCare(3): Do them -- I don't care about the "
355 " order.\n"
356 "The default value is 3 (\"dontCare\")."),
357 ValueMap { "1", "2", "3" },
358 Values { "mandatory", "recommended", "dontCare" }
359 ]
360 uint16 SequencedActions;
361 [Description (
362 "This property represents the roles and role combinations "
363 "associated with a PolicyRule. Each value represents one "
364 karl 1.1 "role or role combination. Since this is a multi-valued "
365 "property, more than one role or combination can be associated "
366 "with a single policy rule. Each value is a string of the "
367 "form:\n"
368 " <RoleName>[&&<RoleName>]*\n"
369 "where the individual role names appear in alphabetical order "
370 "(according to the collating sequence for UCS-2).")
371 ]
372 string PolicyRoles [];
373 };
374
375 // ==================================================================
376 // PolicyRuleInPolicyGroup
377 // ==================================================================
378 [Association, Aggregation, Description (
379 "A relationship that aggregates one or more PolicyRules "
380 "into a PolicyGroup. A PolicyGroup may aggregate "
381 "PolicyRules and/or other PolicyGroups.")
382 ]
383 class CIM_PolicyRuleInPolicyGroup : CIM_PolicyComponent
384 {
385 karl 1.1 [Override ("GroupComponent"), Aggregate, Description (
386 "A PolicyGroup that aggregates one or more PolicyRules.")
387 ]
388 CIM_PolicyGroup REF GroupComponent;
389 [Override ("PartComponent"), Description (
390 "A PolicyRule aggregated by a PolicyGroup.")
391 ]
392 CIM_PolicyRule REF PartComponent;
393 };
394
395 // ==================================================================
396 // PolicyRuleInSystem
397 // ==================================================================
398 [Association, Description (
399 "An association that links a PolicyRule to the System "
400 "in whose scope the Rule is defined.")
401 ]
402 class CIM_PolicyRuleInSystem : CIM_PolicyInSystem
403 {
404 [Override ("Antecedent"), Min(1), Max(1), Description (
405 "The System in whose scope a PolicyRule is defined.")
406 karl 1.1 ]
407 CIM_System REF Antecedent;
408 [Override ("Dependent"), Weak, Description (
409 "A PolicyRule named within the scope of a System.")
410 ]
411 CIM_PolicyRule REF Dependent;
412 };
413
414 // ==================================================================
415 // PolicyRepository
416 // ==================================================================
417 [Description (
418 "A class representing an administratively defined "
419 "container for reusable policy-related information. "
420 "This class does not introduce any additional "
421 "properties beyond those in its superclass "
422 "AdminDomain. It does, however, participate in a "
423 "number of unique associations."
424 "\n\n"
425 "An instance of this class uses the NameFormat value"
426 "\"PolicyRepository\", which is defined in the AdminDomain"
427 karl 1.1 "class.")
428 ]
429 class CIM_PolicyRepository : CIM_AdminDomain
430 {
431 };
432
433 // ==================================================================
434 // PolicyRepositoryInPolicyRepository
435 // ==================================================================
436 [Association, Aggregation, Description (
437 "A relationship that aggregates one or more lower-level "
438 "PolicyRepositories into a higher-level Repository.")
439 ]
440 class CIM_PolicyRepositoryInPolicyRepository : CIM_SystemComponent
441 {
442 [Override ("GroupComponent"), Aggregate, Description (
443 "A PolicyRepository that aggregates other Repositories.")
444 ]
445 CIM_PolicyRepository REF GroupComponent;
446 [Override ("PartComponent"), Description (
447 "A PolicyRepository aggregated by another Repository.")
448 karl 1.1 ]
449 CIM_PolicyRepository REF PartComponent;
450 };
451
452 // ==================================================================
453 // PolicyCondition
454 // ==================================================================
455 [Abstract, Description (
456 "A class representing a rule-specific or reusable policy "
457 "condition to be evaluated in conjunction with a Policy"
458 "Rule. Since all operational details of a PolicyCondition "
459 "are provided in subclasses of this object, this class is "
460 "abstract.")
461 ]
462 class CIM_PolicyCondition : CIM_Policy
463 {
464 [Key, MaxLen (256), Description (
465 " The name of the class or the subclass used in the "
466 "creation of the System object in whose scope this "
467 "PolicyCondition is defined.\n\n"
468 " "
469 karl 1.1 "This property helps to identify the System object in "
470 "whose scope this instance of PolicyCondition exists. "
471 "For a rule-specific PolicyCondition, this is the System "
472 "in whose context the PolicyRule is defined. For a "
473 "reusable PolicyCondition, this is the instance of "
474 "PolicyRepository (which is a subclass of System) that "
475 "holds the Condition.\n\n"
476 " "
477 "Note that this property, and the analogous property "
478 "SystemName, do not represent propagated keys from an "
479 "instance of the class System. Instead, they are "
480 "properties defined in the context of this class, which "
481 "repeat the values from the instance of System to which "
482 "this PolicyCondition is related, either directly via the "
483 "PolicyConditionInPolicyRepository association or indirectly "
484 "via the PolicyConditionInPolicyRule aggregation.")
485 ]
486 string SystemCreationClassName;
487 [Key, MaxLen (256), Description (
488 " The name of the System object in whose scope this "
489 "PolicyCondition is defined.\n\n"
490 karl 1.1 " "
491 "This property completes the identification of the System "
492 "object in whose scope this instance of PolicyCondition "
493 "exists. For a rule-specific PolicyCondition, this is the "
494 "System in whose context the PolicyRule is defined. For a "
495 "reusable PolicyCondition, this is the instance of "
496 "PolicyRepository (which is a subclass of System) that "
497 "holds the Condition.")
498 ]
499 string SystemName;
500 [Key, MaxLen (256), Description (
501 "For a rule-specific PolicyCondition, the "
502 "CreationClassName of the PolicyRule object with which "
503 "this Condition is associated. For a reusable Policy"
504 "Condition, a special value, 'NO RULE', should be used to "
505 "indicate that this Condition is reusable and not "
506 "associated with a single PolicyRule.")
507 ]
508 string PolicyRuleCreationClassName;
509 [Key, MaxLen (256), Description (
510 "For a rule-specific PolicyCondition, the name of "
511 karl 1.1 "the PolicyRule object with which this Condition is "
512 "associated. For a reusable PolicyCondition, a "
513 "special value, 'NO RULE', should be used to indicate "
514 "that this Condition is reusable and not associated "
515 "with a single PolicyRule.")
516 ]
517 string PolicyRuleName;
518 [Key, MaxLen (256), Description (
519 "CreationClassName indicates the name of the class or the "
520 "subclass used in the creation of an instance. When used "
521 "with the other key properties of this class, this property "
522 "allows all instances of this class and its subclasses to "
523 "be uniquely identified.") ]
524 string CreationClassName;
525 [Key, MaxLen (256), Description (
526 "A user-friendly name of this PolicyCondition.")
527 ]
528 string PolicyConditionName;
529 };
530
531 // ==================================================================
532 karl 1.1 // PolicyConditionInPolicyRule
533 // ==================================================================
534 [Association, Aggregation, Description (
535 " A PolicyRule aggregates zero or more instances of the "
536 "PolicyCondition class, via the PolicyConditionInPolicyRule "
537 "association. A Rule that aggregates zero Conditions is not "
538 "valid -- it may, however, be in the process of being entered "
539 "into a PolicyRepository or being defined for a System. Note "
540 "that a PolicyRule should have no effect until it is valid.\n\n"
541 " "
542 "The Conditions aggregated by a PolicyRule are grouped into "
543 "two levels of lists: either an ORed set of ANDed sets of "
544 "conditions (DNF, the default) or an ANDed set of ORed sets "
545 "of conditions (CNF). Individual PolicyConditions in these "
546 "lists may be negated. The property ConditionListType "
547 "specifies which of these two grouping schemes applies to a "
548 "particular PolicyRule.\n\n"
549 " "
550 "In either case, PolicyConditions are used to determine whether "
551 "to perform the PolicyActions associated with the PolicyRule.\n\n"
552 " "
553 karl 1.1 "One or more PolicyTimePeriodConditions may be among the "
554 "conditions associated with a PolicyRule via the Policy"
555 "ConditionInPolicyRule association. In this case, the time "
556 "periods are simply additional Conditions to be evaluated "
557 "along with any others that are specified for the Rule. ")
558 ]
559 class CIM_PolicyConditionInPolicyRule : CIM_PolicyComponent
560 {
561 [Override ("GroupComponent"), Aggregate, Description (
562 "This property represents the PolicyRule that "
563 "contains one or more PolicyConditions.")
564 ]
565 CIM_PolicyRule REF GroupComponent;
566 [Override ("PartComponent"), Description (
567 "This property holds the name of a PolicyCondition "
568 "contained by one or more PolicyRules.")
569 ]
570 CIM_PolicyCondition REF PartComponent;
571 [Description (
572 "Unsigned integer indicating the group to which the "
573 "PolicyCondition identified by the ContainedCondition "
574 karl 1.1 "property belongs. This integer segments the Conditions "
575 "into the ANDed sets (when the ConditionListType is "
576 "\"DNF\") or similarly the ORed sets (when the Condition"
577 "ListType is \"CNF\") that are then evaluated.")
578 ]
579 uint16 GroupNumber;
580 [Description (
581 "Indication of whether the Condition identified by "
582 "the ContainedCondition property is negated. TRUE "
583 "indicates that the PolicyCondition IS negated, FALSE "
584 "indicates that it IS NOT negated.")
585 ]
586 boolean ConditionNegated;
587 };
588
589 // ==================================================================
590 // PolicyConditionInPolicyRepository
591 // ==================================================================
592 [Association, Description (
593 " A class representing the hosting of reusable "
594 "PolicyConditions by a PolicyRepository. A reusable Policy"
595 karl 1.1 "Condition is always related to a single PolicyRepository, "
596 "via this association.\n\n"
597 " "
598 "Note, that an instance of PolicyCondition can be either "
599 "reusable or rule-specific. When the Condition is rule-"
600 "specific, it shall not be related to any "
601 "PolicyRepository via the PolicyConditionInPolicyRepository "
602 "association.")
603 ]
604 class CIM_PolicyConditionInPolicyRepository : CIM_PolicyInSystem
605 {
606 [Override ("Antecedent"), Max(1), Description (
607 "This property identifies a PolicyRepository "
608 "hosting one or more PolicyConditions. A reusable "
609 "PolicyCondition is always related to exactly one "
610 "PolicyRepository via the PolicyConditionInPolicyRepository "
611 "association. The [0..1] cardinality for this property "
612 "covers the two types of PolicyConditions: 0 for a "
613 "rule-specific PolicyCondition, 1 for a reusable one.")
614 ]
615 CIM_PolicyRepository REF Antecedent;
616 karl 1.1 [Override ("Dependent"), Description (
617 "This property holds the name of a PolicyCondition"
618 "hosted in the PolicyRepository. ")
619 ]
620 CIM_PolicyCondition REF Dependent;
621 };
622
623 // ==================================================================
624 // PolicyTimePeriodCondition
625 // ==================================================================
626 [Description (
627 " This class provides a means of representing the time "
628 "periods during which a PolicyRule is valid, i.e., active. "
629 "At all times that fall outside these time periods, the "
630 "PolicyRule has no effect. A Rule is treated as valid "
631 "at ALL times, if it does not specify a "
632 "PolicyTimePeriodCondition.\n\n"
633 " "
634 "In some cases a Policy Consumer may need to perform "
635 "certain setup / cleanup actions when a PolicyRule becomes "
636 "active / inactive. For example, sessions that were "
637 karl 1.1 "established while a Rule was active might need to "
638 "be taken down when the Rule becomes inactive. In other "
639 "cases, however, such sessions might be left up. In this "
640 "case, the effect of deactivating the PolicyRule would "
641 "just be to prevent the establishment of new sessions. \n\n"
642 " "
643 "Setup / cleanup behaviors on validity period "
644 "transitions are not currently addressed by the Policy "
645 "Model, and must be specified in 'guideline' documents or "
646 "via subclasses of CIM_PolicyRule, CIM_PolicyTimePeriod"
647 "Condition or other concrete subclasses of CIM_Policy. If "
648 "such behaviors need to be under the control of the policy "
649 "administrator, then a mechanism to allow this control "
650 "must also be specified in the subclasses.\n\n"
651 " "
652 "PolicyTimePeriodCondition is defined as a subclass of "
653 "PolicyCondition. This is to allow the inclusion of "
654 "time-based criteria in the AND/OR condition definitions "
655 "for a PolicyRule.\n\n"
656 " "
657 "Instances of this class may have up to five properties "
658 karl 1.1 "identifying time periods at different levels. The values "
659 "of all the properties present in an instance are ANDed "
660 "together to determine the validity period(s) for the "
661 "instance. For example, an instance with an overall "
662 "validity range of January 1, 2000 through December 31, "
663 "2000; a month mask that selects March and April; a "
664 "day-of-the-week mask that selects Fridays; and a time "
665 "of day range of 0800 through 1600 would be represented "
666 "using the following time periods:\n"
667 " Friday, March 5, 2000, from 0800 through 1600;\n "
668 " Friday, March 12, 2000, from 0800 through 1600;\n "
669 " Friday, March 19, 2000, from 0800 through 1600;\n "
670 " Friday, March 26, 2000, from 0800 through 1600;\n "
671 " Friday, April 2, 2000, from 0800 through 1600;\n "
672 " Friday, April 9, 2000, from 0800 through 1600;\n "
673 " Friday, April 16, 2000, from 0800 through 1600;\n "
674 " Friday, April 23, 2000, from 0800 through 1600;\n "
675 " Friday, April 30, 2000, from 0800 through 1600.\n\n"
676 " "
677 "Properties not present in an instance of "
678 "PolicyTimePeriodCondition are implicitly treated as having "
679 karl 1.1 "their value 'always enabled'. Thus, in the example above, "
680 "the day-of-the-month mask is not present, and so the "
681 "validity period for the instance implicitly includes a "
682 "day-of-the-month mask that selects all days of the month. "
683 "If this 'missing property' rule is applied to its fullest, we "
684 "see that there is a second way to indicate that a Policy"
685 "Rule is always enabled: associate with it an instance of "
686 "PolicyTimePeriodCondition whose only properties with "
687 "specific values are its key properties.")
688 ]
689 class CIM_PolicyTimePeriodCondition : CIM_PolicyCondition
690 {
691 [Description (
692 " This property identifies an overall range of calendar "
693 "dates and times over which a PolicyRule is valid. It is "
694 "formatted as a string representing a start date and time, "
695 "in which the character 'T' indicates the beginning of the "
696 "time portion, followed by the solidus character '/', "
697 "followed by a similar string representing an end date and "
698 "time. The first date indicates the beginning of the range, "
699 "while the second date indicates the end. Thus, the second "
700 karl 1.1 "date and time must be later than the first. Date/times are "
701 "expressed as substrings of the form yyyymmddThhmmss. For "
702 "example: \n"
703 " 20000101T080000/20000131T120000 defines \n"
704 " January 1, 2000, 0800 through January 31, 2000, noon\n\n"
705 " "
706 "There are also two special cases in which one of the "
707 "date/time strings is replaced with a special string defined "
708 "in RFC 2445.\n "
709 " o If the first date/time is replaced with the string "
710 " 'THISANDPRIOR', then the property indicates that a "
711 " PolicyRule is valid [from now] until the date/time "
712 " that appears after the '/'.\n"
713 " o If the second date/time is replaced with the string "
714 " 'THISANDFUTURE', then the property indicates that a "
715 " PolicyRule becomes valid on the date/time that "
716 " appears before the '/', and remains valid from that "
717 " point on. "),
718 ModelCorrespondence {
719 "CIM_PolicyTimePeriodCondition.MonthOfYearMask",
720 "CIM_PolicyTimePeriodCondition.DayOfMonthMask",
721 karl 1.1 "CIM_PolicyTimePeriodCondition.DayOfWeekMask",
722 "CIM_PolicyTimePeriodCondition.TimeOfDayMask",
723 "CIM_PolicyTimePeriodCondition.LocalOrUtcTime"}
724 ]
725 string TimePeriod;
726 [Octetstring, Description (
727 " The purpose of this property is to refine the valid time "
728 "period that is defined by the TimePeriod property, by "
729 "explicitly specifying in which months the PolicyRule is "
730 "valid. These properties work together, with the "
731 "TimePeriod used to specify the overall time period in "
732 "which the PolicyRule is valid, and the MonthOfYearMask used "
733 "to pick out the months during which the Rule is valid.\n\n"
734 " "
735 "This property is formatted as an octet string, structured "
736 "as follows:\n"
737 " o a 4-octet length field, indicating the length of the "
738 " entire octet string; this field is always set to "
739 " 0x00000006 for this property;\n"
740 " o a 2-octet field consisting of 12 bits identifying the "
741 " 12 months of the year, beginning with January and "
742 karl 1.1 " ending with December, followed by 4 bits that are "
743 " always set to '0'. For each month, the value '1' "
744 " indicates that the policy is valid for that month, "
745 " and the value '0' indicates that it is not valid.\n\n"
746 " "
747 "The value 0x000000060830, for example, indicates that a "
748 "PolicyRule is valid only in the months May, November, "
749 "and December.\n\n"
750 " "
751 "If a value for this property is not provided, then the "
752 "PolicyRule is treated as valid for all twelve months, and "
753 "only restricted by its TimePeriod property value and the "
754 "other Mask properties."),
755 ModelCorrespondence {
756 "CIM_PolicyTimePeriodCondition.TimePeriod",
757 "CIM_PolicyTimePeriodCondition.LocalOrUtcTime"}
758 ]
759 uint8 MonthOfYearMask[];
760 [Octetstring, Description (
761 " The purpose of this property is to refine the valid time "
762 "period that is defined by the TimePeriod property, by "
763 karl 1.1 "explicitly specifying in which days of the month the Policy"
764 "Rule is valid. These properties work together, "
765 "with the TimePeriod used to specify the overall time period "
766 "in which the PolicyRule is valid, and the DayOfMonthMask used "
767 "to pick out the days of the month during which the Rule "
768 "is valid.\n\n "
769 " "
770 "This property is formatted as an octet string, structured "
771 "as follows:\n"
772 " o a 4-octet length field, indicating the length of the "
773 " entire octet string; this field is always set to "
774 " 0x0000000C for this property; \n"
775 " o an 8-octet field consisting of 31 bits identifying "
776 " the days of the month counting from the beginning, "
777 " followed by 31 more bits identifying the days of the "
778 " month counting from the end, followed by 2 bits that "
779 " are always set to '0'. For each day, the value '1' "
780 " indicates that the policy is valid for that day, and "
781 " the value '0' indicates that it is not valid. \n\n"
782 " "
783 "The value 0x0000000C8000000100000000, for example, "
784 karl 1.1 "indicates that a PolicyRule is valid on the first and "
785 "last days of the month.\n\n "
786 " "
787 "For months with fewer than 31 days, the digits corresponding "
788 "to days that the months do not have (counting in both "
789 "directions) are ignored.\n\n"
790 " "
791 "If a value for this property is not provided, then the "
792 "PolicyRule is treated as valid for all days of the month, and "
793 "only restricted by its TimePeriod property value and the "
794 "other Mask properties."),
795 ModelCorrespondence {
796 "CIM_PolicyTimePeriodCondition.TimePeriod",
797 "CIM_PolicyTimePeriodCondition.LocalOrUtcTime"}
798 ]
799 uint8 DayOfMonthMask[];
800 [Octetstring, Description (
801 " The purpose of this property is to refine the valid time "
802 "period that is defined by the TimePeriod property, by "
803 "explicitly specifying in which days of the month the Policy"
804 "Rule is valid. These properties work together, "
805 karl 1.1 "with the TimePeriod used to specify the overall time period "
806 "in which the PolicyRule is valid, and the DayOfWeekMask used "
807 "to pick out the days of the week during which the Rule "
808 "is valid.\n\n "
809 " "
810 "This property is formatted as an octet string, structured "
811 "as follows:\n "
812 " o a 4-octet length field, indicating the length of the "
813 " entire octet string; this field is always set to "
814 " 0x00000005 for this property;\n"
815 " o a 1-octet field consisting of 7 bits identifying the 7 "
816 " days of the week, beginning with Sunday and ending with "
817 " Saturday, followed by 1 bit that is always set to '0'. "
818 " For each day of the week, the value '1' indicates that "
819 " the policy is valid for that day, and the value '0' "
820 " indicates that it is not valid. \n\n"
821 " "
822 "The value 0x000000057C, for example, indicates that a "
823 "PolicyRule is valid Monday through Friday.\n\n"
824 " "
825 "If a value for this property is not provided, then the "
826 karl 1.1 "PolicyRule is treated as valid for all days of the week, "
827 "and only restricted by its TimePeriod property value and "
828 "the other Mask properties."),
829 ModelCorrespondence {
830 "CIM_PolicyTimePeriodCondition.TimePeriod",
831 "CIM_PolicyTimePeriodCondition.LocalOrUtcTime"}
832 ]
833 uint8 DayOfWeekMask[];
834 [Description (
835 " The purpose of this property is to refine the valid time "
836 "period that is defined by the TimePeriod property, by "
837 "explicitly specifying a range of times in a day during which "
838 "the PolicyRule is valid. These properties work "
839 "together, with the TimePeriod used to specify the overall "
840 "time period in which the PolicyRule is valid, and the "
841 "TimeOfDayMask used to pick out the range of time periods "
842 "in a given day of during which the Rule is valid. \n\n"
843 " "
844 "This property is formatted in the style of RFC 2445: a "
845 "time string beginning with the character 'T', followed by "
846 "the solidus character '/', followed by a second time string. "
847 karl 1.1 "The first time indicates the beginning of the range, while "
848 "the second time indicates the end. Times are expressed as "
849 "substrings of the form 'Thhmmss'. \n\n"
850 " "
851 "The second substring always identifies a later time than "
852 "the first substring. To allow for ranges that span "
853 "midnight, however, the value of the second string may be "
854 "smaller than the value of the first substring. Thus, "
855 "'T080000/T210000' identifies the range from 0800 until 2100, "
856 "while 'T210000/T080000' identifies the range from 2100 until "
857 "0800 of the following day. \n\n"
858 " "
859 "When a range spans midnight, it by definition includes "
860 "parts of two successive days. When one of these days is "
861 "also selected by either the MonthOfYearMask, "
862 "DayOfMonthMask, and/or DayOfWeekMask, but the other day is "
863 "not, then the policy is active only during the portion of "
864 "the range that falls on the selected day. For example, if "
865 "the range extends from 2100 until 0800, and the day of "
866 "week mask selects Monday and Tuesday, then the policy is "
867 "active during the following three intervals:\n"
868 karl 1.1 " From midnight Sunday until 0800 Monday; \n"
869 " From 2100 Monday until 0800 Tuesday; \n"
870 " From 2100 Tuesday until 23:59:59 Tuesday. \n\n"
871 " "
872 "If a value for this property is not provided, then the "
873 "PolicyRule is treated as valid for all hours of the day, "
874 "and only restricted by its TimePeriod property value and "
875 "the other Mask properties."),
876 ModelCorrespondence {
877 "CIM_PolicyTimePeriodCondition.TimePeriod",
878 "CIM_PolicyTimePeriodCondition.LocalOrUtcTime"}
879 ]
880 string TimeOfDayMask;
881 [Description (
882 " This property indicates whether the times represented "
883 "in the TimePeriod property and in the various Mask "
884 "properties represent local times or UTC times. There is "
885 "no provision for mixing of local times and UTC times: the "
886 "value of this property applies to all of the other "
887 "time-related properties."),
888 ValueMap { "1", "2" },
889 karl 1.1 Values { "localTime", "utcTime" },
890 ModelCorrespondence {
891 "CIM_PolicyTimePeriodCondition.TimePeriod",
892 "CIM_PolicyTimePeriodCondition.MonthOfYearMask",
893 "CIM_PolicyTimePeriodCondition.DayOfMonthMask",
894 "CIM_PolicyTimePeriodCondition.DayOfWeekMask",
895 "CIM_PolicyTimePeriodCondition.TimeOfDayMask"}
896 ]
897 uint16 LocalOrUtcTime;
898 };
899
900 // ==================================================================
901 // PolicyRuleValidityPeriod
902 // ==================================================================
903 [Association, Aggregation, Description (
904 "The PolicyRuleValidityPeriod aggregation represents "
905 "scheduled activation and deactivation of a PolicyRule. "
906 "If a PolicyRule is associated with multiple policy time "
907 "periods via this association, then the Rule is active if "
908 "at least one of the time periods indicates that it is "
909 "active. (In other words, the PolicyTimePeriodConditions "
910 karl 1.1 "are ORed to determine whether the Rule is active.) A Time"
911 "Period may be aggregated by multiple PolicyRules. A Rule "
912 "that does not point to a PolicyTimePeriodCondition via this "
913 "association is, from the point of view of scheduling, "
914 "always active. It may, however, be inactive for other "
915 "reasons. For example, the Rule's Enabled property may "
916 "be set to \"disabled\" (value=2).")
917 ]
918 class CIM_PolicyRuleValidityPeriod : CIM_PolicyComponent
919 {
920 [Override ("GroupComponent"), Aggregate, Description (
921 "This property contains the name of a PolicyRule that "
922 "contains one or more PolicyTimePeriodConditions.")
923 ]
924 CIM_PolicyRule REF GroupComponent;
925 [Override ("PartComponent"), Description (
926 "This property contains the name of a "
927 "PolicyTimePeriodCondition defining the valid time periods "
928 "for one or more PolicyRules.")
929 ]
930 CIM_PolicyTimePeriodCondition REF PartComponent;
931 karl 1.1 };
932
933 // ==================================================================
934 // VendorPolicyCondition
935 // ==================================================================
936 [Description (
937 " A class that provides a general extension mechanism for "
938 "representing PolicyConditions that have not been modeled "
939 "with specific properties. Instead, the two properties "
940 "Constraint and ConstraintEncoding are used to define the "
941 "content and format of the Condition, as explained below.\n\n"
942 " "
943 "As its name suggests, VendorPolicyCondition is intended for "
944 "vendor-specific extensions to the Policy Core Information "
945 "Model. Standardized extensions are not expected to use "
946 "this class.")
947 ]
948 class CIM_VendorPolicyCondition : CIM_PolicyCondition
949 {
950 [Octetstring, Description (
951 "This property provides a general extension mechanism for "
952 karl 1.1 "representing PolicyConditions that have not been "
953 "modeled with specific properties. The format of the "
954 "octet strings in the array is left unspecified in "
955 "this definition. It is determined by the OID value "
956 "stored in the property ConstraintEncoding. Since "
957 "ConstraintEncoding is single-valued, all the values of "
958 "Constraint share the same format and semantics."),
959 ModelCorrespondence {
960 "CIM_VendorPolicyCondition.ConstraintEncoding"}
961 ]
962 string Constraint [];
963 [Description (
964 "An OID encoded as a string, identifying the format "
965 "and semantics for this instance's Constraint property."),
966 ModelCorrespondence {
967 "CIM_VendorPolicyCondition.Constraint"}
968 ]
969 string ConstraintEncoding;
970 };
971
972 // ==================================================================
973 karl 1.1 // PolicyAction
974 // ==================================================================
975 [Abstract, Description (
976 "A class representing a rule-specific or reusable policy "
977 "action to be performed if the PolicyConditions for a Policy"
978 "Rule evaluate to TRUE. Since all operational details of a "
979 "PolicyAction are provided in subclasses of this object, "
980 "this class is abstract.")
981 ]
982 class CIM_PolicyAction : CIM_Policy
983 {
984 [Key, MaxLen (256), Description (
985 " The name of the class or the subclass used in the "
986 "creation of the System object in whose scope this "
987 "PolicyAction is defined. \n\n"
988 " "
989 "This property helps to identify the System object in "
990 "whose scope this instance of PolicyAction exists. "
991 "For a rule-specific PolicyAction, this is the System "
992 "in whose context the PolicyRule is defined. For a "
993 "reusable PolicyAction, this is the instance of "
994 karl 1.1 "PolicyRepository (which is a subclass of System) that "
995 "holds the Action. \n\n"
996 " "
997 "Note that this property, and the analogous property "
998 "SystemName, do not represent propagated keys from an "
999 "instance of the class System. Instead, they are "
1000 "properties defined in the context of this class, which "
1001 "repeat the values from the instance of System to which "
1002 "this PolicyAction is related, either directly via the "
1003 "PolicyActionInPolicyRepository association or indirectly "
1004 "via the PolicyActionInPolicyRule aggregation.")
1005 ]
1006 string SystemCreationClassName;
1007 [Key, MaxLen (256), Description (
1008 " The name of the System object in whose scope this "
1009 "PolicyAction is defined. \n\n"
1010 " "
1011 "This property completes the identification of the System "
1012 "object in whose scope this instance of PolicyAction "
1013 "exists. For a rule-specific PolicyAction, this is the "
1014 "System in whose context the PolicyRule is defined. For "
1015 karl 1.1 "a reusable PolicyAction, this is the instance of "
1016 "PolicyRepository (which is a subclass of System) that "
1017 "holds the Action.")
1018 ]
1019 string SystemName;
1020 [Key, MaxLen (256), Description (
1021 "For a rule-specific PolicyAction, the CreationClassName "
1022 "of the PolicyRule object with which this Action is "
1023 "associated. For a reusable PolicyAction, a "
1024 "special value, 'NO RULE', should be used to "
1025 "indicate that this Action is reusable and not "
1026 "associated with a single PolicyRule.")
1027 ]
1028 string PolicyRuleCreationClassName;
1029 [Key, MaxLen (256), Description (
1030 "For a rule-specific PolicyAction, the name of "
1031 "the PolicyRule object with which this Action is "
1032 "associated. For a reusable PolicyAction, a "
1033 "special value, 'NO RULE', should be used to "
1034 "indicate that this Action is reusable and not "
1035 "associated with a single PolicyRule.")
1036 karl 1.1 ]
1037 string PolicyRuleName;
1038 [Key, MaxLen (256), Description (
1039 "CreationClassName indicates the name of the class or the "
1040 "subclass used in the creation of an instance. When used "
1041 "with the other key properties of this class, this property "
1042 "allows all instances of this class and its subclasses to "
1043 "be uniquely identified.") ]
1044 string CreationClassName;
1045 [Key, MaxLen (256), Description (
1046 "A user-friendly name of this PolicyAction.")
1047 ]
1048 string PolicyActionName;
1049 };
1050
1051 // ==================================================================
1052 // PolicyActionInPolicyRepository
1053 // ==================================================================
1054 [Association, Description (
1055 " A class representing the hosting of reusable "
1056 "PolicyActions by a PolicyRepository. A reusable Policy"
1057 karl 1.1 "Action is always related to a single PolicyRepository, "
1058 "via this association.\n\n"
1059 " "
1060 "Note, that an instance of PolicyAction can be either "
1061 "reusable or rule-specific. When the Action is rule-"
1062 "specific, it shall not be related to any "
1063 "PolicyRepository via the PolicyActionInPolicyRepository "
1064 "association.")
1065 ]
1066 class CIM_PolicyActionInPolicyRepository : CIM_PolicyInSystem
1067 {
1068 [Override ("Antecedent"), Max(1), Description (
1069 "This property represents a PolicyRepository "
1070 "hosting one or more PolicyActions. A reusable "
1071 "PolicyAction is always related to exactly one "
1072 "PolicyRepository via the PolicyActionInPolicyRepository "
1073 "association. The [0..1] cardinality for this property "
1074 "covers the two types of PolicyActions: 0 for a "
1075 "rule-specific PolicyAction, 1 for a reusable one.")
1076 ]
1077 CIM_PolicyRepository REF Antecedent;
1078 karl 1.1 [Override ("Dependent"), Description (
1079 "This property holds the name of a PolicyAction"
1080 "hosted in the PolicyRepository. ")
1081 ]
1082 CIM_PolicyAction REF Dependent;
1083 };
1084
1085 // ==================================================================
1086 // PolicyActionInPolicyRule
1087 // ==================================================================
1088 [Association, Aggregation, Description (
1089 " A PolicyRule aggregates zero or more instances of the "
1090 "PolicyAction class, via the PolicyActionInPolicyRule "
1091 "association. A Rule that aggregates zero Actions is not "
1092 "valid -- it may, however, be in the process of being entered "
1093 "into a PolicyRepository or being defined for a System. "
1094 "Alternately, the actions of the policy may be explicit in "
1095 "the definition of the PolicyRule. Note that a PolicyRule "
1096 "should have no effect until it is valid.\n\n"
1097 " "
1098 "The Actions associated with a PolicyRule may be given a "
1099 karl 1.1 "required order, a recommended order, or no order at all. For "
1100 "Actions represented as separate objects, the PolicyActionIn"
1101 "PolicyRule aggregation can be used to express an order. \n\n"
1102 " "
1103 "This aggregation does not indicate whether a specified "
1104 "action order is required, recommended, or of no significance; "
1105 "the property SequencedActions in the aggregating instance of "
1106 "PolicyRule provides this indication.")
1107 ]
1108 class CIM_PolicyActionInPolicyRule : CIM_PolicyComponent
1109 {
1110 [Override ("GroupComponent"), Aggregate, Description (
1111 "This property represents the PolicyRule that "
1112 "contains one or more PolicyActions.")
1113 ]
1114 CIM_PolicyRule REF GroupComponent;
1115 [Override ("PartComponent"), Description (
1116 "This property holds the name of a PolicyAction "
1117 "contained by one or more PolicyRules.")
1118 ]
1119 CIM_PolicyAction REF PartComponent;
1120 karl 1.1 [Description (
1121 " This property provides an unsigned integer 'n' that"
1122 "indicates the relative position of a PolicyAction in the "
1123 "sequence of actions associated with a PolicyRule. "
1124 "When 'n' is a positive integer, it indicates a place "
1125 "in the sequence of actions to be performed, with "
1126 "smaller integers indicating earlier positions in the "
1127 "sequence. The special value '0' indicates 'don't care'. "
1128 "If two or more PolicyActions have the same non-zero "
1129 "sequence number, they may be performed in any order, but "
1130 "they must all be performed at the appropriate place in the "
1131 "overall action sequence. \n\n"
1132 " "
1133 "A series of examples will make ordering of PolicyActions "
1134 "clearer: \n"
1135 " o If all actions have the same sequence number, "
1136 " regardless of whether it is '0' or non-zero, any "
1137 " order is acceptable.\n "
1138 " o The values: \n"
1139 " 1:ACTION A \n"
1140 " 2:ACTION B \n"
1141 karl 1.1 " 1:ACTION C \n"
1142 " 3:ACTION D \n"
1143 " indicate two acceptable orders: A,C,B,D or C,A,B,D, "
1144 " since A and C can be performed in either order, but "
1145 " only at the '1' position. \n"
1146 " o The values: \n"
1147 " 0:ACTION A \n"
1148 " 2:ACTION B \n"
1149 " 3:ACTION C \n"
1150 " 3:ACTION D \n"
1151 " require that B,C, and D occur either as B,C,D or as "
1152 " B,D,C. Action A may appear at any point relative to "
1153 " B, C, and D. Thus the complete set of acceptable "
1154 " orders is: A,B,C,D; B,A,C,D; B,C,A,D; B,C,D,A; "
1155 " A,B,D,C; B,A,D,C; B,D,A,C; B,D,C,A. \n\n"
1156 " "
1157 "Note that the non-zero sequence numbers need not start "
1158 "with '1', and they need not be consecutive. All that "
1159 "matters is their relative magnitude.")
1160 ]
1161 uint16 ActionOrder;
1162 karl 1.1 };
1163
1164 // ==================================================================
1165 // VendorPolicyAction
1166 // ==================================================================
1167 [Description (
1168 " A class that provides a general extension mechanism for "
1169 "representing PolicyActions that have not been modeled "
1170 "with specific properties. Instead, the two properties "
1171 "ActionData and ActionEncoding are used to define the "
1172 "content and format of the Action, as explained below.\n\n"
1173 " "
1174 "As its name suggests, VendorPolicyAction is intended for "
1175 "vendor-specific extensions to the Policy Core Information "
1176 "Model. Standardized extensions are not expected to use "
1177 "this class.") ]
1178 class CIM_VendorPolicyAction : CIM_PolicyAction
1179 {
1180 [Octetstring, Description (
1181 "This property provides a general extension mechanism for "
1182 "representing PolicyActions that have not been "
1183 karl 1.1 "modeled with specific properties. The format of the "
1184 "octet strings in the array is left unspecified in "
1185 "this definition. It is determined by the OID value "
1186 "stored in the property ActionEncoding. Since "
1187 "ActionEncoding is single-valued, all the values of "
1188 "ActionData share the same format and semantics."),
1189 ModelCorrespondence {
1190 "CIM_VendorPolicyAction.ActionEncoding"}
1191 ]
1192 string ActionData [];
1193 [Description (
1194 "An OID encoded as a string, identifying the format "
1195 "and semantics for this instance's ActionData property."),
1196 ModelCorrespondence {
1197 "CIM_VendorPolicyAction.ActionData"}
1198 ]
1199 string ActionEncoding;
1200 };
1201
1202 // ===================================================================
1203 // end of file
1204 karl 1.1 // ===================================================================
1205
1206
|