// Copyright (c) 2005 DMTF.  All rights reserved.
//<change cr="DMTFCR01584" type="change">CIM 2.9 Review Comments -
//PerceivedSeverity  Promotion to CIM_Indication</change>
//<change cr=WIPCR00225.006 type="change">CIM 2.12 
//Bring uniqueness to IndicationIdentifier</change>
// <change cr="ArchCR00066.004" type="add">Add UmlPackagePath
// qualifier values to CIM Schema.</change>
// ==================================================================
//  CIM_Indication 
// ==================================================================
   [Indication, Abstract, Version ( "2.7.0" ), 
    UMLPackagePath ( "CIM::Event" ), 
    Description ( 
       "CIM_Indication is the abstract root class for all "
       "notifications about changes in schema, objects and their data, "
       "and about events detected by providers and instrumentation. "
       "Subclasses represent specific types of notifications. \n"
       "\n"
       "To receive an Indication, a consumer (or subscriber) must "
       "create an instance of CIM_IndicationFilter describing the "
       "criteria of the notification, an instance of "
       "CIM_ListenerDestination describing the delivery of the "
       "notification, and an instance of CIM_IndicationSubscription "
       "associating the Filter and Handler." )]
class CIM_Indication {

      [Description ( 
          "An identifier for the Indication. This property is "
          "similar to a key value in that it can be used for "
          "identification, when correlating Indications (see the "
          "CorrelatedIndications array). Its value SHOULD be unique "
          "as long as correlations are reported, but MAY be reused "
          "or left NULL if no future Indications will reference it "
          "in their CorrelatedIndications array.To ensure "
          "uniqueness, the value of IndicationIdentifier should be "
          "constructed using the following \"preferred\" algorithm: \n"
          "<OrgID>:<LocalID> \n"
          "Where <OrgID> and <LocalID> are separated by a colon "
          "(:), and where <OrgID> must include a copyrighted, "
          "trademarked, or otherwise unique name that is owned by "
          "the business entity that is creating or defining the "
          "IndicationIdentifier or that is a recognized ID that is "
          "assigned to the business entity by a recognized global "
          "authority. (This requirement is similar to the <Schema "
          "Name>_<Class Name> structure of Schema class names.) In "
          "addition, to ensure uniqueness <OrgID> must not contain "
          "a colon (:). When using this algorithm, the first colon "
          "to appear in IndicationIdentifier must appear between "
          "<OrgID> and <LocalID>. \n"
          "<LocalID> is chosen by the business entity and should "
          "not be re-used to identify different underlying "
          "(real-world) elements. \n"
          "If the above \"preferred\" algorithm is not used, the "
          "defining entity should assure that the resulting "
          "IndicationIdentifier is not re-used across any "
          "IndicationIdentifiers that are produced by this or other "
          "providers for the NameSpace of this instance. \n"
          "For DMTF-defined instances, the \"preferred\" algorithm "
          "should be used with the <OrgID> set to CIM." ), 
       MappingStrings { 
          "Recommendation.ITU|X733.Notification identifier" }]
   string IndicationIdentifier;

      [Description ( 
          "A list of IndicationIdentifiers whose notifications are "
          "correlated with (related to) this one." ), 
       MappingStrings { 
          "Recommendation.ITU|X733.Correlated notifications" }, 
       ModelCorrespondence { "CIM_Indication.IndicationIdentifier" }]
   string CorrelatedIndications[];

      [Description ( 
          "The time and date of creation of the Indication. The "
          "property may be set to NULL if the entity creating the "
          "Indication is not capable of determining this "
          "information. Note that IndicationTime may be the same "
          "for two Indications that are generated in rapid "
          "succession." )]
   datetime IndicationTime;

      [Description ( 
          "An enumerated value that describes the severity of the "
          "Indication from the notifier\'s point of view: \n"
          "1 - Other, by CIM convention, is used to indicate that "
          "the Severity\'s value can be found in the OtherSeverity "
          "property. \n"
          "3 - Degraded/Warning should be used when its appropriate "
          "to let the user decide if action is needed. \n"
          "4 - Minor should be used to indicate action is needed, "
          "but the situation is not serious at this time. \n"
          "5 - Major should be used to indicate action is needed "
          "NOW. \n"
          "6 - Critical should be used to indicate action is needed "
          "NOW and the scope is broad (perhaps an imminent outage "
          "to a critical resource will result). \n"
          "7 - Fatal/NonRecoverable should be used to indicate an "
          "error occurred, but it\'s too late to take remedial "
          "action. \n"
          "2 and 0 - Information and Unknown (respectively) follow "
          "common usage. Literally, the Indication is purely "
          "informational or its severity is simply unknown." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7" }, 
       Values { "Unknown", "Other", "Information", 
          "Degraded/Warning", "Minor", "Major", "Critical", 
          "Fatal/NonRecoverable" }, 
       MappingStrings { "Recommendation.ITU|X733.Perceived severity" }]
   uint16 PerceivedSeverity;

      [Description ( 
          "Holds the value of the user defined severity value when "
          "\'PerceivedSeverity\' is 1 (\"Other\")." ), 
       ModelCorrespondence { "CIM_AlertIndication.PerceivedSeverity" }]
   string OtherSeverity;


};
