Last active
December 20, 2015 10:30
-
-
Save fearthecowboy/6115377 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Copyright (c) 2009 DMTF. All rights reserved. | |
[Abstract, Version ( "2.23.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" | |
"<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 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 <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 InstanceID 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. 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 <OrgID> 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", | |
"10", "..", "0x8000.." }, | |
Values { "Unknown", "Other", "Not Applicable", "Linux RPM", | |
"HP-UX Depot", "Windows MSI", "Solaris Package", | |
"Macintosh Disk Image", "Debian linux Package", | |
"VMware vSphere Installation Bundle", | |
"VMware Software Bulletin", "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", "104", "105", "106", "107", | |
"108", "109", "110" }, | |
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", "VMware ESXi", | |
"Microsoft Windows 7", "CentOS 32-bit", "CentOS 64-bit", | |
"Oracle Enterprise Linux 32-bit", | |
"Oracle Enterprise Linux 64-bit", | |
//110 | |
"eComStation 32-bitx" }, | |
ModelCorrespondence { "CIM_OperatingSystem.OSType" }] | |
uint16 TargetOSTypes[]; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment