// Copyright (c) 2005 DMTF. All rights reserved.
// Add 'Service/Support Pack'
// to SoftwareIdentity classifications
// Updated description.
// Add UmlPackagePath
// qualifier values to CIM Schema.
// ==================================================================
// CIM_SoftwareIdentity
// ==================================================================
[Version ( "2.14.0" ), UMLPackagePath ( "CIM::Core::Software" ),
Description (
"SoftwareIdentity provides descriptive information about a "
"software component for asset tracking and/or installation "
"dependency management. When the IsEntity property has the "
"value TRUE, the instance of SoftwareIdentity represents an "
"individually identifiable entity similar to Physical Element. "
"SoftwareIdentity does NOT indicate whether the software is "
"installed, executing, etc. This extra information may be "
"provided through specialized associations to Software "
"Identity. For instance, both InstalledSoftwareIdentity and "
"ElementSoftwareIdentity may be used to indicate that the "
"software identified by this class is installed. "
"SoftwareIdentity is used when managing the software components "
"of a ManagedElement that is management focus. Since software "
"may be acquired, SoftwareIdentity can be associated with a "
"Product using the ProductSoftwareComponent relationship. The "
"Application Model manages the deployment and installation of "
"software via the classes, SoftwareFeatures and "
"SoftwareElements. SoftwareFeature and SoftwareElement are used "
"when the software component is the management focus. The "
"deployment/installation concepts are related to the "
"asset/identity one. In fact, a SoftwareIdentity may correspond "
"to a Product, or to one or more SoftwareFeatures or "
"SoftwareElements - depending on the granularity of these "
"classes and the deployment model. The correspondence of "
"Software Identity to Product, SoftwareFeature or "
"SoftwareElement is indicated using the ConcreteIdentity "
"association. Note that there may not be sufficient detail or "
"instrumentation to instantiate ConcreteIdentity. And, if the "
"association is instantiated, some duplication of information "
"may result. For example, the Vendor described in the instances "
"of Product and SoftwareIdentity MAY be the same. However, this "
"is not necessarily true, and it is why vendor and similar "
"information are duplicated in this class. \n"
"Note that ConcreteIdentity can also be used to describe the "
"relationship of the software to any LogicalFiles that result "
"from installing it. As above, there may not be sufficient "
"detail or instrumentation to instantiate this association.")]
class CIM_SoftwareIdentity : CIM_LogicalElement {
[Key, Description (
"Within the scope of the instantiating Namespace, InstanceID "
"opaquely and uniquely identifies an instance of this class. "
"In order to ensure uniqueness within the NameSpace, the "
"value of InstanceID SHOULD be constructed using the "
"following 'preferred' algorithm: \n"
": \n"
"Where and are separated by a colon ':', "
"and where MUST include a copyrighted, trademarked "
"or otherwise unique name that is owned by the business "
"entity creating/defining the InstanceID, or is a registered "
"ID that is assigned to the business entity by a recognized "
"global authority (This is similar to the _ structure of Schema class names.) In "
"addition, to ensure uniqueness MUST NOT contain a "
"colon (':'). When using this algorithm, the first colon to "
"appear in InstanceID MUST appear between and "
". \n"
" is chosen by the business entity and SHOULD not "
"be re-used to identify different underlying (real-world) "
"elements. If the above 'preferred' algorithm is not used, "
"the defining entity MUST assure that the resultant "
"InstanceID is not re-used across any InstanceIDs produced "
"by this or other providers for this instance's NameSpace. \n"
"For DMTF defined instances, the 'preferred' algorithm MUST "
"be used with the set to 'CIM'.")]
string InstanceID;
[Description (
"The major number component of the software's version "
"information - for example, '12' from version 12.1(3)T. This "
"property is defined as a numeric value to allow the "
"determination of 'newer' vs. 'older' releases. A 'newer' "
"major release is indicated by a larger numeric value.")]
uint16 MajorVersion;
[Description (
"The minor number component of the software's version "
"information - for example, '1' from version 12.1(3)T. This "
"property is defined as a numeric value to allow the "
"determination of 'newer' vs. 'older' releases. A 'newer' "
"minor release is indicated by a larger numeric value.")]
uint16 MinorVersion;
[Description (
"The revision or maintenance release component of the "
"software's version information - for example, '3' from "
"version 12.1(3)T. This property is defined as a numeric "
"value to allow the determination of 'newer' vs. 'older' "
"releases. A 'newer' revision is indicated by a larger "
"numeric value.")]
uint16 RevisionNumber;
[Description (
"The build number of the software.")]
uint16 BuildNumber;
[Description (
"A string representing the complete software version "
"information - for example, '12.1(3)T'. This string and the "
"numeric major/minor/revision/build properties are "
"complementary. Since vastly different representations and "
"semantics exist for versions, it is not assumed that one "
"representation is sufficient to permit a client to perform "
"computations (i.e., the values are numeric) and a user to "
"recognize the software's version (i.e., the values are "
"understandable and readable). Hence, both numeric and "
"string representations of version are provided.")]
string VersionString;
[Description (
"Specifies the target operating systems of the software. "
"This property should be used when a target operating system "
"is not listed in the TargetOSTypes array values.")]
string TargetOperatingSystems[];
[Description (
"Manufacturer of this software.")]
string Manufacturer;
[Description (
"The language editions supported by the software. The "
"language codes defined in ISO 639 should be used.")]
string Languages[];
[Description (
"An array of enumerated integers that classify this "
"software. For example, the software MAY be instrumentation "
"(value=5) or firmware and diagnostic software (10 and 7). "
"The use of value 6, Firmware/BIOS, is being deprecated. "
"Instead, either the value 10 (Firmware) and/or 11 "
"(BIOS/FCode) SHOULD be used. The value 13, Software Bundle, "
"identifies a software package consisting of multiple "
"discrete software instances that can be installed "
"individually or together. \n"
"Each contained software instance is represented by an "
"instance of SoftwareIdentity that is associated to this "
"instance of SoftwareIdentity instance via a Component "
"association."),
ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"10", "11", "12", "13", "..", "0x8000..0xFFFF" },
Values { "Unknown", "Other", "Driver", "Configuration Software",
"Application Software", "Instrumentation", "Firmware/BIOS",
"Diagnostic Software", "Operating System", "Middleware",
"Firmware", "BIOS/FCode", "Support/Service Pack",
"Software Bundle", "DMTF Reserved", "Vendor Reserved" },
ArrayType ( "Indexed" ),
ModelCorrespondence {
"CIM_SoftwareIdentity.ClassificationDescriptions" }]
uint16 Classifications[];
[Description (
"An array of free-form strings providing more detailed "
"explanations for any of the entries in the Classifications "
"array. Note that each entry is related to one in the "
"Classifications array located at the same index."),
ArrayType ( "Indexed" ),
ModelCorrespondence { "CIM_SoftwareIdentity.Classifications" }]
string ClassificationDescriptions[];
[Description (
"A manufacturer-allocated number used to identify the "
"software.")]
string SerialNumber;
[Description (
"The date the software was released.")]
datetime ReleaseDate;
};