1 marek 1.1 // Copyright (c) 2005 DMTF. All rights reserved.
2 [Version ( "2.7.0" ),
3 UMLPackagePath ( "CIM::Policy" ),
4 Description (
5 "This class provides a means of representing the time periods "
6 "during which a PolicySet is valid, i.e., active. At all times "
7 "that fall outside these time periods, the PolicySet has no "
8 "effect. A PolicySet is treated as valid at ALL times, if it "
9 "does not specify a PolicyTimePeriodCondition. \n"
10 "\n"
11 "In some cases a Policy Consumer may need to perform certain "
12 "setup / cleanup actions when a PolicySet becomes active / "
13 "inactive. For example, sessions that were established while a "
14 "PolicySet was active might need to be taken down when the "
15 "PolicySet becomes inactive. In other cases, however, such "
16 "sessions might be left up. In this case, the effect of "
17 "deactivating the PolicySet would just be to prevent the "
18 "establishment of new sessions. \n"
19 "\n"
20 "Setup / cleanup behaviors on validity period transitions are "
21 "not currently addressed by the Policy Model, and must be "
22 marek 1.1 "specified in \'guideline\' documents or via subclasses of "
23 "CIM_PolicySet, CIM_PolicyTimePeriod Condition or other "
24 "concrete subclasses of CIM_Policy. If such behaviors need to "
25 "be under the control of the policy administrator, then a "
26 "mechanism to allow this control must also be specified in the "
27 "subclasses. \n"
28 "\n"
29 "PolicyTimePeriodCondition is defined as a subclass of "
30 "PolicyCondition. This is to allow the inclusion of time-based "
31 "criteria in the AND/OR condition definitions for a PolicyRule. \n"
32 "\n"
33 "Instances of this class may have up to five properties "
34 "identifying time periods at different levels. The values of "
35 "all the properties present in an instance are ANDed together "
36 "to determine the validity period(s) for the instance. For "
37 "example, an instance with an overall validity range of January "
38 "1, 2000 through December 31, 2000; a month mask that selects "
39 "March and April; a day-of-the-week mask that selects Fridays; "
40 "and a time of day range of 0800 through 1600 would be "
41 "represented using the following time periods: \n"
42 "Friday, March 5, 2000, from 0800 through 1600; \n"
43 marek 1.1 "Friday, March 12, 2000, from 0800 through 1600; \n"
44 "Friday, March 19, 2000, from 0800 through 1600; \n"
45 "Friday, March 26, 2000, from 0800 through 1600; \n"
46 "Friday, April 2, 2000, from 0800 through 1600; \n"
47 "Friday, April 9, 2000, from 0800 through 1600; \n"
48 "Friday, April 16, 2000, from 0800 through 1600; \n"
49 "Friday, April 23, 2000, from 0800 through 1600; \n"
50 "Friday, April 30, 2000, from 0800 through 1600. \n"
51 "\n"
52 "Properties not present in an instance of "
53 "PolicyTimePeriodCondition are implicitly treated as having "
54 "their value \'always enabled\'. Thus, in the example above, "
55 "the day-of-the-month mask is not present, and so the validity "
56 "period for the instance implicitly includes a day-of-the-month "
57 "mask that selects all days of the month. If this \'missing "
58 "property\' rule is applied to its fullest, we see that there "
59 "is a second way to indicate that a PolicySet is always "
60 "enabled: associate with it an instance of "
61 "PolicyTimePeriodCondition whose only properties with specific "
62 "values are its key properties." )]
63 class CIM_PolicyTimePeriodCondition : CIM_PolicyCondition {
64 marek 1.1
65 [Description (
66 "This property identifies an overall range of calendar "
67 "dates and times over which a PolicySet is valid. It is "
68 "formatted as a string representing a start date and "
69 "time, in which the character \'T\' indicates the "
70 "beginning of the time portion, followed by the solidus "
71 "character \'/\', followed by a similar string "
72 "representing an end date and time. The first date "
73 "indicates the beginning of the range, while the second "
74 "date indicates the end. Thus, the second date and time "
75 "must be later than the first. Date/times are expressed "
76 "as substrings of the form yyyymmddThhmmss. For example: \n"
77 "20000101T080000/20000131T120000 defines \n"
78 "January 1, 2000, 0800 through January 31, 2000, noon \n"
79 "\n"
80 "There are also two special cases in which one of the "
81 "date/time strings is replaced with a special string "
82 "defined in RFC 2445. \n"
83 "o If the first date/time is replaced with the string "
84 "\'THISANDPRIOR\', then the property indicates that a "
85 marek 1.1 "PolicySet is valid [from now] until the date/time that "
86 "appears after the \'/\'. \n"
87 "o If the second date/time is replaced with the string "
88 "\'THISANDFUTURE\', then the property indicates that a "
89 "PolicySet becomes valid on the date/time that appears "
90 "before the \'/\', and remains valid from that point on." ),
91 ModelCorrespondence {
92 "CIM_PolicyTimePeriodCondition.MonthOfYearMask",
93 "CIM_PolicyTimePeriodCondition.DayOfMonthMask",
94 "CIM_PolicyTimePeriodCondition.DayOfWeekMask",
95 "CIM_PolicyTimePeriodCondition.TimeOfDayMask",
96 "CIM_PolicyTimePeriodCondition.LocalOrUtcTime" }]
97 string TimePeriod;
98
99 [Description (
100 "The purpose of this property is to refine the valid time "
101 "period that is defined by the TimePeriod property, by "
102 "explicitly specifying in which months the PolicySet is "
103 "valid. These properties work together, with the "
104 "TimePeriod used to specify the overall time period in "
105 "which the PolicySet is valid, and the MonthOfYearMask "
106 marek 1.1 "used to pick out the months during which the PolicySet "
107 "is valid. \n"
108 "\n"
109 "This property is formatted as an octet string, "
110 "structured as follows: \n"
111 "o a 4-octet length field, indicating the length of the "
112 "entire octet string; this field is always set to "
113 "0x00000006 for this property; \n"
114 "o a 2-octet field consisting of 12 bits identifying the "
115 "12 months of the year, beginning with January and ending "
116 "with December, followed by 4 bits that are always set to "
117 "\'0\'. For each month, the value \'1\' indicates that "
118 "the policy is valid for that month, and the value \'0\' "
119 "indicates that it is not valid. \n"
120 "\n"
121 "The value 0x000000060830, for example, indicates that a "
122 "PolicySet is valid only in the months May, November, and "
123 "December. \n"
124 "\n"
125 "If a value for this property is not provided, then the "
126 "PolicySet is treated as valid for all twelve months, and "
127 marek 1.1 "only restricted by its TimePeriod property value and the "
128 "other Mask properties." ),
129 OctetString, ModelCorrespondence {
130 "CIM_PolicyTimePeriodCondition.TimePeriod",
131 "CIM_PolicyTimePeriodCondition.LocalOrUtcTime" }]
132 uint8 MonthOfYearMask[];
133
134 [Description (
135 "The purpose of this property is to refine the valid time "
136 "period that is defined by the TimePeriod property, by "
137 "explicitly specifying in which days of the month the "
138 "PolicySet is valid. These properties work together, with "
139 "the TimePeriod used to specify the overall time period "
140 "in which the PolicySet is valid, and the DayOfMonthMask "
141 "used to pick out the days of the month during which the "
142 "PolicySet is valid. \n"
143 "\n"
144 "This property is formatted as an octet string, "
145 "structured as follows: \n"
146 "o a 4-octet length field, indicating the length of the "
147 "entire octet string; this field is always set to "
148 marek 1.1 "0x0000000C for this property; \n"
149 "o an 8-octet field consisting of 31 bits identifying the "
150 "days of the month counting from the beginning, followed "
151 "by 31 more bits identifying the days of the month "
152 "counting from the end, followed by 2 bits that are "
153 "always set to \'0\'. For each day, the value \'1\' "
154 "indicates that the PolicySet is valid for that day, and "
155 "the value \'0\' indicates that it is not valid. \n"
156 "\n"
157 "The value 0x0000000C8000000100000000, for example, "
158 "indicates that a PolicySet is valid on the first and "
159 "last days of the month. \n"
160 "\n"
161 "For months with fewer than 31 days, the digits "
162 "corresponding to days that the months do not have "
163 "(counting in both directions) are ignored. \n"
164 "\n"
165 "If a value for this property is not provided, then the "
166 "PolicySet is treated as valid for all days of the month, "
167 "and only restricted by its TimePeriod property value and "
168 "the other Mask properties." ),
169 marek 1.1 OctetString, ModelCorrespondence {
170 "CIM_PolicyTimePeriodCondition.TimePeriod",
171 "CIM_PolicyTimePeriodCondition.LocalOrUtcTime" }]
172 uint8 DayOfMonthMask[];
173
174 [Description (
175 "The purpose of this property is to refine the valid time "
176 "period that is defined by the TimePeriod property, by "
177 "explicitly specifying in which days of the week the "
178 "PolicySet is valid. These properties work together, with "
179 "the TimePeriod used to specify the overall time period "
180 "in which the PolicySet is valid, and the DayOfWeekMask "
181 "used to pick out the days of the week during which the "
182 "PolicySet is valid. \n"
183 "\n"
184 "This property is formatted as an octet string, "
185 "structured as follows: \n"
186 "o a 4-octet length field, indicating the length of the "
187 "entire octet string; this field is always set to "
188 "0x00000005 for this property; \n"
189 "o a 1-octet field consisting of 7 bits identifying the 7 "
190 marek 1.1 "days of the week, beginning with Sunday and ending with "
191 "Saturday, followed by 1 bit that is always set to \'0\'. "
192 "For each day of the week, the value \'1\' indicates that "
193 "the PolicySet is valid for that day, and the value \'0\' "
194 "indicates that it is not valid. \n"
195 "\n"
196 "The value 0x000000057C, for example, indicates that a "
197 "PolicySet is valid Monday through Friday. \n"
198 "\n"
199 "If a value for this property is not provided, then the "
200 "PolicySet is treated as valid for all days of the week, "
201 "and only restricted by its TimePeriod property value and "
202 "the other Mask properties." ),
203 OctetString, ModelCorrespondence {
204 "CIM_PolicyTimePeriodCondition.TimePeriod",
205 "CIM_PolicyTimePeriodCondition.LocalOrUtcTime" }]
206 uint8 DayOfWeekMask[];
207
208 [Description (
209 "The purpose of this property is to refine the valid time "
210 "period that is defined by the TimePeriod property, by "
211 marek 1.1 "explicitly specifying a range of times in a day during "
212 "which the PolicySet is valid. These properties work "
213 "together, with the TimePeriod used to specify the "
214 "overall time period in which the PolicySet is valid, and "
215 "the TimeOfDayMask used to pick out the range of time "
216 "periods in a given day of during which the PolicySet is "
217 "valid. \n"
218 "\n"
219 "This property is formatted in the style of RFC 2445: a "
220 "time string beginning with the character \'T\', followed "
221 "by the solidus character \'/\', followed by a second "
222 "time string. The first time indicates the beginning of "
223 "the range, while the second time indicates the end. "
224 "Times are expressed as substrings of the form \'Thhmmss\'. \n"
225 "\n"
226 "The second substring always identifies a later time than "
227 "the first substring. To allow for ranges that span "
228 "midnight, however, the value of the second string may be "
229 "smaller than the value of the first substring. Thus, "
230 "\'T080000/T210000\' identifies the range from 0800 until "
231 "2100, while \'T210000/T080000\' identifies the range "
232 marek 1.1 "from 2100 until 0800 of the following day. \n"
233 "\n"
234 "When a range spans midnight, it by definition includes "
235 "parts of two successive days. When one of these days is "
236 "also selected by either the MonthOfYearMask, "
237 "DayOfMonthMask, and/or DayOfWeekMask, but the other day "
238 "is not, then the PolicySet is active only during the "
239 "portion of the range that falls on the selected day. For "
240 "example, if the range extends from 2100 until 0800, and "
241 "the day of week mask selects Monday and Tuesday, then "
242 "the PolicySet is active during the following three "
243 "intervals: \n"
244 "From midnight Sunday until 0800 Monday; \n"
245 "From 2100 Monday until 0800 Tuesday; \n"
246 "From 2100 Tuesday until 23:59:59 Tuesday. \n"
247 "\n"
248 "If a value for this property is not provided, then the "
249 "PolicySet is treated as valid for all hours of the day, "
250 "and only restricted by its TimePeriod property value and "
251 "the other Mask properties." ),
252 ModelCorrespondence {
253 marek 1.1 "CIM_PolicyTimePeriodCondition.TimePeriod",
254 "CIM_PolicyTimePeriodCondition.LocalOrUtcTime" }]
255 string TimeOfDayMask;
256
257 [Description (
258 "This property indicates whether the times represented in "
259 "the TimePeriod property and in the various Mask "
260 "properties represent local times or UTC times. There is "
261 "no provision for mixing of local times and UTC times: "
262 "the value of this property applies to all of the other "
263 "time-related properties. TimePeriods are synchronized "
264 "worldwide by using the enumeration value \'UTCTime\'. If "
265 "the goal is to synchronize worldwide on a particular "
266 "local time (such as 0300 - 0500 in New York), then if "
267 "the TimePeriod property spans a Daylight Savings Time "
268 "transition in New York, it will be necessary to create "
269 "multiple instances of PolicyTimePeriodCondition, one "
270 "based on the offset UTC-0500 for the part of each year "
271 "when standard time is used in New York, and one based on "
272 "the offset UTC-0400 for the part of each year when "
273 "Daylight Savings Time is used there." ),
274 marek 1.1 ValueMap { "1", "2" },
275 Values { "Local Time", "UTC Time" },
276 ModelCorrespondence {
277 "CIM_PolicyTimePeriodCondition.TimePeriod",
278 "CIM_PolicyTimePeriodCondition.MonthOfYearMask",
279 "CIM_PolicyTimePeriodCondition.DayOfMonthMask",
280 "CIM_PolicyTimePeriodCondition.DayOfWeekMask",
281 "CIM_PolicyTimePeriodCondition.TimeOfDayMask" }]
282 uint16 LocalOrUtcTime;
283
284
285 };
|