// Copyright (c) 2005 DMTF. All rights reserved. // Add UmlPackagePath // qualifier values to CIM Schema. // ================================================================== // CIM_PolicyTimePeriodCondition // ================================================================== [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; };