// Copyright (c) 2009 DMTF. All rights reserved. [Version ( "2.22.0" ), ClassConstraint { "inv:self.IsLargeBuildNumber=true implies self.BuildNumber = null and self.LargeBuildNumber <> null", "inv:self.IsLargeBuildNumber=false implies self.LargeBuildNumber=null" }, 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 the 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, Override ( "InstanceID" ), 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." ), ModelCorrespondence { "CIM_SoftwareIdentity.LargeBuildNumber", "CIM_SoftwareIdentity.IsLargeBuildNumber" }] uint16 BuildNumber; [Description ( "The build number of the software if IsLargeBuildNumber " "is TRUE. TheLargeBuildNumber property should be used for " "all future implementations." ), ModelCorrespondence { "CIM_SoftwareIdentity.BuildNumber", "CIM_SoftwareIdentity.IsLargeBuildNumber" }] uint64 LargeBuildNumber; [Description ( "The IsLargeBuildNumber property is used to indicate if " "the BuildNumber of LargeBuildNumber property contains " "the value of the software build. A value of TRUE shall " "indicate that the build number is represented by the " "LargeBuildNumber property. A value of FALSE shall " "indicate that the build number is represented by the " "BuildNumber property." ), ModelCorrespondence { "CIM_SoftwareIdentityBuildNumber", "CIM_SoftwareIdentity.LargeBuildNumber" }] boolean IsLargeBuildNumber = false; [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 SoftwareIdentityinstance 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 ( "An array of strings that describes the compatible " "installer(s). The purpose of the array elements is to " "establish compatibility between a SoftwareIdentity and a " "SoftwareInstallationService that can install the " "SoftwareIdentity by comparing the values of the array " "elements of this property to the values of " "SoftwareInstallationServiceCapabilities.SupportedTargetTypes[] " "property\'s array elements." ), ModelCorrespondence { "CIM_SoftwareInstallationServiceCapabilities.SupportedTargetTypes" }] string TargetTypes[]; [Description ( "IdentityInfoValue captures additional information that " "MAY be used by an organization to describe or identify a " "software instance within the context of the " "organization. For example, large organizations may have " "several ways to address or identify a particular " "instance of software depending on where it is stored; a " "catalog, a web site, or for whom it is intended; " "development, customer service, etc. The indexed array " "property IdentityInfoValue contains 0 or more strings " "that contain a specific identity info string value. " "IdentityInfoValue is mapped and indexed to " "IdentityInfoType. When the IdentityInfoValue property is " "implemented, the IdentityInfoType property MUST be " "implemented and shall be formatted using the algorithm " "provided in the IdentityInfoType property Description." ), ArrayType ( "Indexed" ), MaxLen ( 256 ), ModelCorrespondence { "CIM_SoftwareIdentity.IdentityInfoType" }] string IdentityInfoValue[]; [Description ( "An indexed array of fixed-form strings that provide the " "description of the type of information that is stored in " "the corresponding component of the IdentityInfoValue " "array. The elements of this property array describe the " "type of the value in the corresponding elements of the " "IndetityInfoValue array. When the IdentityInfoValue " "property is implemented, the IdentityInfoType property " "MUST be implemented. To insure uniqueness the " "IdentityInfoType property SHOULD be formatted using the " "following algorithm: < OrgID > : < LocalID > 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 " "IdentityInfoType or that is a registered ID 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 IdentityInfoType MUST appear " "between < OrgID > and < LocalID > . < LocalID > is " "chosen by the business entity and SHOULD NOT be reused " "to identify different underlying software elements." ), ArrayType ( "Indexed" ), MaxLen ( 256 ), ModelCorrespondence { "CIM_SoftwareIdentity.IdentityInfoValue" }] string IdentityInfoType[]; [Description ( "The date the software was released." )] datetime ReleaseDate; [Description ( "The IsEntity property is used to indicate whether the " "SoftwareIdentity corresponds to a discrete copy of the " "software component or is being used to convey " "descriptive and identifying information about software " "that is not present in the management domain.A value of " "TRUE shall indicate that the SoftwareIdentity instance " "corresponds to a discrete copy of the software " "component. A value of FALSE shall indicate that the " "SoftwareIdentity instance does not correspond to a " "discrete copy of the Software." )] boolean IsEntity = false; [Description ( "The binary format type of the installation package of " "the software. This property can be used to locate a " "SoftwareInstallationService capable of installing this " "software." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9..0x7FFF", "0x8000.." }, Values { "Unknown", "Other", "Not Applicable", "Linux RPM", "HP-UX Depot", "Windows MSI", "Solaris Package", "Macintosh Disk Image", "Debian linux Package", "DMTF Reserved", "Vendor Reserved" }, ModelCorrespondence { "CIM_SoftwareIdentity.OtherExtendedResource", "CIM_SoftwareIdentity.MinExtendedResourceTypeMajorVersion", "CIM_SoftwareIdentity.MinExtendedResourceTypeMinorVersion", "CIM_SoftwareIdentity.MinExtendedResourceTypeRevisionNumber", "CIM_SoftwareIdentity.MinExtendedResourceTypeBuildNumber", "CIM_SoftwareInstallationServiceCapabilities.SupportedExtendedResourceTypes[]" }] uint16 ExtendedResourceType; [Description ( "A string describing the binary format type of the " "installation package of the software when the " "ExtendedResourceType property has a value of 1 (Other)." ), ModelCorrespondence { "CIM_SoftwareIdentity.ExtendedResourceType", "CIM_SoftwareIdentity.MinExtendedResourceTypeMajorVersion", "CIM_SoftwareIdentity.MinExtendedResourceTypeMinorVersion", "CIM_SoftwareIdentity.MinExtendedResourceTypeRevisionNumber", "CIM_SoftwareIdentity.MinExtendedResourceTypeBuildNumber", "CIM_SoftwareInstallationServiceCapabilities.SupportedExtendedResourceTypes[]" }] string OtherExtendedResourceTypeDescription; [Description ( "This property represents the major number component of " "the minimum version of the installer, represented by the " "ExtendedResourceType property, that is required to " "install this software." ), ModelCorrespondence { "CIM_SoftwareIdentity.ExtendedResourceType", "CIM_SoftwareIdentity.OtherExtendedResourceTypeDescription", "CIM_SoftwareInstallationServiceCapabilities.SupportedExtendedResourceTypes[]", "CIM_SoftwareInstallationServiceCapabilities.SupportedExtendedResourceTypesMajorVersions[]" }] uint16 MinExtendedResourceTypeMajorVersion; [Description ( "This property represents the minor number component of " "the minimum version of the installer, represented by " "theExtendedResourceType property, that is required to " "install this software." ), ModelCorrespondence { "CIM_SoftwareIdentity.ExtendedResourceType", "CIM_SoftwareIdentity.OtherExtendedResourceTypeDescription", "CIM_SoftwareInstallationServiceCapabilities.SupportedExtendedResourceTypes[]", "CIM_SoftwareInstallationServiceCapabilities.SupportedExtendedResourceTypesMinorVersions[]" }] uint16 MinExtendedResourceTypeMinorVersion; [Description ( "This property represents the Revision number component " "of the minimum version of the installer, represented by " "theExtendedResourceType property, that is required to " "install this software." ), ModelCorrespondence { "CIM_SoftwareIdentity.ExtendedResourceType", "CIM_SoftwareIdentity.OtherExtendedResourceTypeDescription", "CIM_SoftwareInstallationServiceCapabilities.SupportedExtendedResourceTypes[]", "CIM_SoftwareInstallationServiceCapabilities.SupportedExtendedResourceTypesRevisionNumbers[]" }] uint16 MinExtendedResourceTypeRevisionNumber; [Description ( "This property represents the Build number component of " "the minimum version of the installer, represented by " "theExtendedResourceType property, that is required to " "install this software." ), ModelCorrespondence { "CIM_SoftwareIdentity.ExtendedResourceType", "CIM_SoftwareIdentity.OtherExtendedResourceTypeDescription", "CIM_SoftwareInstallationServiceCapabilities.SupportedExtendedResourceTypes[]", "CIM_SoftwareInstallationServiceCapabilities.SupportedExtendedResourceTypesBuildNumbers[]" }] uint16 MinExtendedResourceTypeBuildNumber; [Description ( "The TargetOSTypes property specifies the target " "operating systems supported by the software. When the " "target operating system of the software is not listed in " "the enumeration values, TargetOperatingSystems[] " "property should be used to specify the target operating " "system." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103" }, Values { "Unknown", "Other", "MACOS", "ATTUNIX", "DGUX", "DECNT", "Tru64 UNIX", "OpenVMS", "HPUX", "AIX", //10 "MVS", "OS400", "OS/2", "JavaVM", "MSDOS", "WIN3x", "WIN95", "WIN98", "WINNT", "WINCE", //20 "NCR3000", "NetWare", "OSF", "DC/OS", "Reliant UNIX", "SCO UnixWare", "SCO OpenServer", "Sequent", "IRIX", "Solaris", //30 "SunOS", "U6000", "ASERIES", "HP NonStop OS", "HP NonStop OSS", "BS2000", "LINUX", "Lynx", "XENIX", "VM", //40 "Interactive UNIX", "BSDUNIX", "FreeBSD", "NetBSD", "GNU Hurd", "OS9", "MACH Kernel", "Inferno", "QNX", "EPOC", //50 "IxWorks", "VxWorks", "MiNT", "BeOS", "HP MPE", "NextStep", "PalmPilot", "Rhapsody", "Windows 2000", "Dedicated", //60 "OS/390", "VSE", "TPF", "Windows (R) Me", "Caldera Open UNIX", "OpenBSD", "Not Applicable", "Windows XP", "z/OS", "Microsoft Windows Server 2003", //70 "Microsoft Windows Server 2003 64-Bit", "Windows XP 64-Bit", "Windows XP Embedded", "Windows Vista", "Windows Vista 64-Bit", "Windows Embedded for Point of Service", "Microsoft Windows Server 2008", "Microsoft Windows Server 2008 64-Bit", "FreeBSD 64-Bit", "RedHat Enterprise Linux", //80 "RedHat Enterprise Linux 64-Bit", "Solaris 64-Bit", "SUSE", "SUSE 64-Bit", "SLES", "SLES 64-Bit", "Novell OES", "Novell Linux Desktop", "Sun Java Desktop System", "Mandriva", //90 "Mandriva 64-Bit", "TurboLinux", "TurboLinux 64-Bit", "Ubuntu", "Ubuntu 64-Bit", "Debian", "Debian 64-Bit", "Linux 2.4.x", "Linux 2.4.x 64-Bit", "Linux 2.6.x", //100 "Linux 2.6.x 64-Bit", "Linux 64-Bit", "Other 64-Bit", "Microsoft Windows Server 2008 R2" }, ModelCorrespondence { "CIM_OperatingSystem.OSType" }] uint16 TargetOSTypes[]; };