// Copyright (c) 2005 DMTF. All rights reserved. [Version ( "2.7.0" ), UMLPackagePath ( "CIM::Policy" ), Description ( "This class provides a means of representing the time periods " "during which a PolicySet is valid, i.e., active. At all times " "that fall outside these time periods, the PolicySet has no " "effect. A PolicySet is treated as valid at ALL times, if it " "does not specify a PolicyTimePeriodCondition. \n" "\n" "In some cases a Policy Consumer may need to perform certain " "setup / cleanup actions when a PolicySet becomes active / " "inactive. For example, sessions that were established while a " "PolicySet was active might need to be taken down when the " "PolicySet becomes inactive. In other cases, however, such " "sessions might be left up. In this case, the effect of " "deactivating the PolicySet would just be to prevent the " "establishment of new sessions. \n" "\n" "Setup / cleanup behaviors on validity period transitions are " "not currently addressed by the Policy Model, and must be " "specified in \'guideline\' documents or via subclasses of " "CIM_PolicySet, CIM_PolicyTimePeriod Condition or other " "concrete subclasses of CIM_Policy. If such behaviors need to " "be under the control of the policy administrator, then a " "mechanism to allow this control must also be specified in the " "subclasses. \n" "\n" "PolicyTimePeriodCondition is defined as a subclass of " "PolicyCondition. This is to allow the inclusion of time-based " "criteria in the AND/OR condition definitions for a PolicyRule. \n" "\n" "Instances of this class may have up to five properties " "identifying time periods at different levels. The values of " "all the properties present in an instance are ANDed together " "to determine the validity period(s) for the instance. For " "example, an instance with an overall validity range of January " "1, 2000 through December 31, 2000; a month mask that selects " "March and April; a day-of-the-week mask that selects Fridays; " "and a time of day range of 0800 through 1600 would be " "represented using the following time periods: \n" "Friday, March 5, 2000, from 0800 through 1600; \n" "Friday, March 12, 2000, from 0800 through 1600; \n" "Friday, March 19, 2000, from 0800 through 1600; \n" "Friday, March 26, 2000, from 0800 through 1600; \n" "Friday, April 2, 2000, from 0800 through 1600; \n" "Friday, April 9, 2000, from 0800 through 1600; \n" "Friday, April 16, 2000, from 0800 through 1600; \n" "Friday, April 23, 2000, from 0800 through 1600; \n" "Friday, April 30, 2000, from 0800 through 1600. \n" "\n" "Properties not present in an instance of " "PolicyTimePeriodCondition are implicitly treated as having " "their value \'always enabled\'. Thus, in the example above, " "the day-of-the-month mask is not present, and so the validity " "period for the instance implicitly includes a day-of-the-month " "mask that selects all days of the month. If this \'missing " "property\' rule is applied to its fullest, we see that there " "is a second way to indicate that a PolicySet is always " "enabled: associate with it an instance of " "PolicyTimePeriodCondition whose only properties with specific " "values are its key properties." )] class CIM_PolicyTimePeriodCondition : CIM_PolicyCondition { [Description ( "This property identifies an overall range of calendar " "dates and times over which a PolicySet is valid. It is " "formatted as a string representing a start date and " "time, in which the character \'T\' indicates the " "beginning of the time portion, followed by the solidus " "character \'/\', followed by a similar string " "representing an end date and time. The first date " "indicates the beginning of the range, while the second " "date indicates the end. Thus, the second date and time " "must be later than the first. Date/times are expressed " "as substrings of the form yyyymmddThhmmss. For example: \n" "20000101T080000/20000131T120000 defines \n" "January 1, 2000, 0800 through January 31, 2000, noon \n" "\n" "There are also two special cases in which one of the " "date/time strings is replaced with a special string " "defined in RFC 2445. \n" "o If the first date/time is replaced with the string " "\'THISANDPRIOR\', then the property indicates that a " "PolicySet is valid [from now] until the date/time that " "appears after the \'/\'. \n" "o If the second date/time is replaced with the string " "\'THISANDFUTURE\', then the property indicates that a " "PolicySet becomes valid on the date/time that appears " "before the \'/\', and remains valid from that point on." ), ModelCorrespondence { "CIM_PolicyTimePeriodCondition.MonthOfYearMask", "CIM_PolicyTimePeriodCondition.DayOfMonthMask", "CIM_PolicyTimePeriodCondition.DayOfWeekMask", "CIM_PolicyTimePeriodCondition.TimeOfDayMask", "CIM_PolicyTimePeriodCondition.LocalOrUtcTime" }] string TimePeriod; [Description ( "The purpose of this property is to refine the valid time " "period that is defined by the TimePeriod property, by " "explicitly specifying in which months the PolicySet is " "valid. These properties work together, with the " "TimePeriod used to specify the overall time period in " "which the PolicySet is valid, and the MonthOfYearMask " "used to pick out the months during which the PolicySet " "is valid. \n" "\n" "This property is formatted as an octet string, " "structured as follows: \n" "o a 4-octet length field, indicating the length of the " "entire octet string; this field is always set to " "0x00000006 for this property; \n" "o a 2-octet field consisting of 12 bits identifying the " "12 months of the year, beginning with January and ending " "with December, followed by 4 bits that are always set to " "\'0\'. For each month, the value \'1\' indicates that " "the policy is valid for that month, and the value \'0\' " "indicates that it is not valid. \n" "\n" "The value 0x000000060830, for example, indicates that a " "PolicySet is valid only in the months May, November, and " "December. \n" "\n" "If a value for this property is not provided, then the " "PolicySet is treated as valid for all twelve months, and " "only restricted by its TimePeriod property value and the " "other Mask properties." ), OctetString, ModelCorrespondence { "CIM_PolicyTimePeriodCondition.TimePeriod", "CIM_PolicyTimePeriodCondition.LocalOrUtcTime" }] uint8 MonthOfYearMask[]; [Description ( "The purpose of this property is to refine the valid time " "period that is defined by the TimePeriod property, by " "explicitly specifying in which days of the month the " "PolicySet is valid. These properties work together, with " "the TimePeriod used to specify the overall time period " "in which the PolicySet is valid, and the DayOfMonthMask " "used to pick out the days of the month during which the " "PolicySet is valid. \n" "\n" "This property is formatted as an octet string, " "structured as follows: \n" "o a 4-octet length field, indicating the length of the " "entire octet string; this field is always set to " "0x0000000C for this property; \n" "o an 8-octet field consisting of 31 bits identifying the " "days of the month counting from the beginning, followed " "by 31 more bits identifying the days of the month " "counting from the end, followed by 2 bits that are " "always set to \'0\'. For each day, the value \'1\' " "indicates that the PolicySet is valid for that day, and " "the value \'0\' indicates that it is not valid. \n" "\n" "The value 0x0000000C8000000100000000, for example, " "indicates that a PolicySet is valid on the first and " "last days of the month. \n" "\n" "For months with fewer than 31 days, the digits " "corresponding to days that the months do not have " "(counting in both directions) are ignored. \n" "\n" "If a value for this property is not provided, then the " "PolicySet is treated as valid for all days of the month, " "and only restricted by its TimePeriod property value and " "the other Mask properties." ), OctetString, ModelCorrespondence { "CIM_PolicyTimePeriodCondition.TimePeriod", "CIM_PolicyTimePeriodCondition.LocalOrUtcTime" }] uint8 DayOfMonthMask[]; [Description ( "The purpose of this property is to refine the valid time " "period that is defined by the TimePeriod property, by " "explicitly specifying in which days of the week the " "PolicySet is valid. These properties work together, with " "the TimePeriod used to specify the overall time period " "in which the PolicySet is valid, and the DayOfWeekMask " "used to pick out the days of the week during which the " "PolicySet is valid. \n" "\n" "This property is formatted as an octet string, " "structured as follows: \n" "o a 4-octet length field, indicating the length of the " "entire octet string; this field is always set to " "0x00000005 for this property; \n" "o a 1-octet field consisting of 7 bits identifying the 7 " "days of the week, beginning with Sunday and ending with " "Saturday, followed by 1 bit that is always set to \'0\'. " "For each day of the week, the value \'1\' indicates that " "the PolicySet is valid for that day, and the value \'0\' " "indicates that it is not valid. \n" "\n" "The value 0x000000057C, for example, indicates that a " "PolicySet is valid Monday through Friday. \n" "\n" "If a value for this property is not provided, then the " "PolicySet is treated as valid for all days of the week, " "and only restricted by its TimePeriod property value and " "the other Mask properties." ), OctetString, ModelCorrespondence { "CIM_PolicyTimePeriodCondition.TimePeriod", "CIM_PolicyTimePeriodCondition.LocalOrUtcTime" }] uint8 DayOfWeekMask[]; [Description ( "The purpose of this property is to refine the valid time " "period that is defined by the TimePeriod property, by " "explicitly specifying a range of times in a day during " "which the PolicySet is valid. These properties work " "together, with the TimePeriod used to specify the " "overall time period in which the PolicySet is valid, and " "the TimeOfDayMask used to pick out the range of time " "periods in a given day of during which the PolicySet is " "valid. \n" "\n" "This property is formatted in the style of RFC 2445: a " "time string beginning with the character \'T\', followed " "by the solidus character \'/\', followed by a second " "time string. The first time indicates the beginning of " "the range, while the second time indicates the end. " "Times are expressed as substrings of the form \'Thhmmss\'. \n" "\n" "The second substring always identifies a later time than " "the first substring. To allow for ranges that span " "midnight, however, the value of the second string may be " "smaller than the value of the first substring. Thus, " "\'T080000/T210000\' identifies the range from 0800 until " "2100, while \'T210000/T080000\' identifies the range " "from 2100 until 0800 of the following day. \n" "\n" "When a range spans midnight, it by definition includes " "parts of two successive days. When one of these days is " "also selected by either the MonthOfYearMask, " "DayOfMonthMask, and/or DayOfWeekMask, but the other day " "is not, then the PolicySet is active only during the " "portion of the range that falls on the selected day. For " "example, if the range extends from 2100 until 0800, and " "the day of week mask selects Monday and Tuesday, then " "the PolicySet is active during the following three " "intervals: \n" "From midnight Sunday until 0800 Monday; \n" "From 2100 Monday until 0800 Tuesday; \n" "From 2100 Tuesday until 23:59:59 Tuesday. \n" "\n" "If a value for this property is not provided, then the " "PolicySet is treated as valid for all hours of the day, " "and only restricted by its TimePeriod property value and " "the other Mask properties." ), ModelCorrespondence { "CIM_PolicyTimePeriodCondition.TimePeriod", "CIM_PolicyTimePeriodCondition.LocalOrUtcTime" }] string TimeOfDayMask; [Description ( "This property indicates whether the times represented in " "the TimePeriod property and in the various Mask " "properties represent local times or UTC times. There is " "no provision for mixing of local times and UTC times: " "the value of this property applies to all of the other " "time-related properties. TimePeriods are synchronized " "worldwide by using the enumeration value \'UTCTime\'. If " "the goal is to synchronize worldwide on a particular " "local time (such as 0300 - 0500 in New York), then if " "the TimePeriod property spans a Daylight Savings Time " "transition in New York, it will be necessary to create " "multiple instances of PolicyTimePeriodCondition, one " "based on the offset UTC-0500 for the part of each year " "when standard time is used in New York, and one based on " "the offset UTC-0400 for the part of each year when " "Daylight Savings Time is used there." ), ValueMap { "1", "2" }, Values { "Local Time", "UTC Time" }, ModelCorrespondence { "CIM_PolicyTimePeriodCondition.TimePeriod", "CIM_PolicyTimePeriodCondition.MonthOfYearMask", "CIM_PolicyTimePeriodCondition.DayOfMonthMask", "CIM_PolicyTimePeriodCondition.DayOfWeekMask", "CIM_PolicyTimePeriodCondition.TimeOfDayMask" }] uint16 LocalOrUtcTime; };