// Copyright (c) 2005 DMTF.  All rights reserved.
// <change cr="ArchCR00066.004" type="add">Add UmlPackagePath
// qualifier values to CIM Schema.</change>
// ==================================================================
//  CIM_Product 
// ==================================================================
   [Version ( "2.7.0" ), 
    UMLPackagePath ( "CIM::Core::ProductFRU" ), 
    Description ( 
       "CIM_Product is a concrete class that aggregates "
       "PhysicalElements, software (SoftwareIdentity and "
       "SoftwareFeatures), Services and/or other Products, and is "
       "acquired as a unit. Acquisition implies an agreement between "
       "supplier and consumer which may have implications to Product "
       "licensing, support and warranty. Non-commercial (e.g., "
       "in-house developed Products) should also be identified as an "
       "instance of CIM_Product. \n"
       "Note that software is handled a bit differently in the list of "
       "aggregated entities, above. This is because software can be "
       "viewed as a tangible asset (similar to PhysicalElements) AND/ "
       "OR as a set of features that make up a Product and are "
       "deployed. These are two different concepts, usually managed by "
       "different units in a business\' organization. When software "
       "\'features\' are described, the CIM_SoftwareFeature class from "
       "the Application Model is instantiated (where Features are Weak "
       "to/scoped by a Product). When a specific piece of software is "
       "acquired and perhaps warrantied as part of a Product, this is "
       "addressed by the class, SoftwareIdentity." )]
class CIM_Product : CIM_ManagedElement {

      [Key, Description ( "Commonly used Product name." ), 
       MaxLen ( 256 ), 
       MappingStrings { "MIF.DMTF|ComponentID|001.2" }, 
       ModelCorrespondence { "PRS_Product.ProductName" }]
   string Name;

      [Key, Description ( 
          "Product identification such as a serial number on "
          "software, a die number on a hardware chip, or (for "
          "non-commercial Products) a project number." ), 
       MaxLen ( 64 ), 
       MappingStrings { "MIF.DMTF|ComponentID|001.4" }]
   string IdentifyingNumber;

      [Key, Description ( 
          "The name of the Product\'s supplier, or entity selling "
          "the Product (the manufacturer, reseller, OEM, etc.). "
          "Corresponds to the Vendor property in the Product object "
          "in the DMTF Solution Exchange Standard." ), 
       MaxLen ( 256 ), 
       MappingStrings { "MIF.DMTF|ComponentID|001.1" }, 
       ModelCorrespondence { "PRS_Product.Vendor" }]
   string Vendor;

      [Key, Description ( "Product version information." ), 
       MaxLen ( 64 ), 
       MappingStrings { "MIF.DMTF|ComponentID|001.3" }, 
       ModelCorrespondence { "PRS_Product.Version" }]
   string Version;

      [Description ( "Product SKU (stock keeping unit) information." ), 
       MaxLen ( 64 )]
   string SKUNumber;

      [Description ( 
          "If this Product is under warranty, the start date of the warranty."
           ), 
       MappingStrings { "MIF.DMTF|FRU|002.9" }, 
       ModelCorrespondence { "CIM_Product.WarrantyDuration" }]
   datetime WarrantyStartDate;

      [Description ( 
          "If this Product is under warranty, the duration of the "
          "warranty in days." ), 
       Units ( "Days" ), 
       MappingStrings { "MIF.DMTF|FRU|002.10" }, 
       ModelCorrespondence { "CIM_Product.WarrantyStartDate" }]
   uint32 WarrantyDuration;


};
