// Copyright (c) 2005 DMTF.  All rights reserved.
   [Version ( "2.8.0" ), 
    UMLPackagePath ( "CIM::Physical::Package" ), 
    Description ( 
       "The Card class represents a type of physical container that "
       "can be plugged into another Card or HostingBoard, or is itself "
       "a HostingBoard/Motherboard in a Chassis. The CIM_Card class "
       "includes any package capable of carrying signals and providing "
       "a mounting point for PhysicalComponents, such as Chips, or "
       "other PhysicalPackages, such as other Cards." )]
class CIM_Card : CIM_PhysicalPackage {

      [Description ( 
          "Boolean indicating that this Card is a Motherboard or, "
          "more generically, a baseboard in a Chassis." )]
   boolean HostingBoard;

      [Description ( 
          "SlotLayout is a free-form string that describes the slot "
          "positioning, typical usage, restrictions, individual "
          "slot spacings or any other pertinent information for the "
          "slots on a Card." )]
   string SlotLayout;

      [Description ( 
          "Boolean indicating that at least one daughterboard or "
          "auxiliary Card is required in order to function "
          "properly." )]
   boolean RequiresDaughterBoard;

      [Description ( 
          "Boolean indicating that this Card is physically unique "
          "from other Cards of the same type and therefore requires "
          "a special Slot. For example, a double-wide Card requires "
          "two Slots. Another example is where a certain Card may "
          "be used for the same general function as other Cards but "
          "requires a special Slot (e.g., extra long), whereas the "
          "other Cards can be placed in any available Slot. If set "
          "to TRUE, then the corresponding property, "
          "RequirementsDescription, should specify the nature of "
          "the uniqueness or purpose of the Card." ), 
       ModelCorrespondence { "CIM_Card.RequirementsDescription" }]
   boolean SpecialRequirements;

      [Description ( 
          "A free-form string describing the way(s) in which this "
          "Card is physically unique from other Cards. This "
          "property only has meaning when the corresponding boolean "
          "property, SpecialRequirements, is set to TRUE." ), 
       ModelCorrespondence { "CIM_Card.SpecialRequirements" }]
   string RequirementsDescription;

      [Description ( "Operating voltages required by the Card." ), 
       Units ( "MilliVolts" ), 
       PUnit ( "volt * 10^-3" )]
   sint16 OperatingVoltages[];


      [Description ( 
          "This method manipulates the power to a PhysicalConnector "
          "on a Card. It is intended to be used by a Card "
          "(especially by a motherboard - i.e., HostingBoard=TRUE) "
          "to turn the power on and off for a specific "
          "PhysicalConnector located on it. For example, in a "
          "personal computer, a system slot does not know how to "
          "turn itself on and off. However, the motherboard hosting "
          "this slot may have that capability. This is important in "
          "order to support hot swapping of an adapter card in a "
          "system slot. The method should return 0 if successful, 1 "
          "if the request is not supported, and some other value if "
          "any other error occurred. In a subclass, the set of "
          "possible return codes could be specified, using a "
          "ValueMap qualifier on the method. The strings to which "
          "the ValueMap contents are \'translated\' may also be "
          "specified in the subclass as a Values array qualifier." )]
   uint32 ConnectorPower(
         [IN, Description ( 
             "The connector to change the power setting for." )]
      CIM_PhysicalConnector REF Connector, 
         [IN, Description ( 
             "If TRUE, turn power on for the connector. If "
             "FALSE, turn power off." )]
      boolean PoweredOn);

};
