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