<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:class="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_AssociatedPrivilege" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" elementFormDefault="qualified" targetNamespace="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_AssociatedPrivilege">
<xs:import namespace="http://schemas.dmtf.org/wbem/wscim/1/common" schemaLocation="http://schemas.dmtf.org/wbem/wscim/1/common.xsd"/>
<xs:element name="Subject" type="cim:cimReference">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Key" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">The Subject for which privileges are granted or denied.</cim:Qualifier>
<cim:Classorigin name="CIM_AssociatedPrivilege"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="Target" type="cim:cimReference">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Key" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">The target element to which the privileges apply.</cim:Qualifier>
<cim:Classorigin name="CIM_AssociatedPrivilege"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="UseKey" type="cim:cimString">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Key" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">UseKey is used to distinguish instances in case multiple instances of this association exist between the same Subject and Target. This may arise, for example, if separate instances are created for each management domain, or if the Subject has access and authorization rights to the Target.
Within the scope of the instantiating Namespace, UseKey opaquely and uniquely identifies an instance of this class. In order to ensure uniqueness within the NameSpace, the value of UseKey should be constructed using the following 'preferred' algorithm: 
&lt;OrgID&gt;:&lt;LocalID&gt; 
Where &lt;OrgID&gt; and &lt;LocalID&gt; are separated by a colon ':', and where &lt;OrgID&gt; shall include a copyrighted, trademarked or otherwise unique name that is owned by the business entity creating/defining the UseKey, or is a registered ID that is assigned to the business entity by a recognized global authority. (This is similar to the &lt;Schema Name&gt;_&lt;Class Name&gt; structure of Schema class names.) In addition, to ensure uniqueness &lt;OrgID&gt; shall not contain a colon (':'). When using this algorithm, the first colon to appear in UseKey shall appear between &lt;OrgID&gt; and &lt;LocalID&gt;. 
&lt;LocalID&gt; 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 shall assure that the resultant UseKey is not re-used across any UseKeys produced by this or other providers for this instance's NameSpace. 
For DMTF defined instances, the 'preferred' algorithm shall be used with the &lt;OrgID&gt; set to 'CIM'.</cim:Qualifier>
<cim:Classorigin name="CIM_AssociatedPrivilege"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="PrivilegeGranted" nillable="true" type="cim:cimBoolean">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">Boolean indicating whether the Privilege is granted (TRUE) or denied (FALSE). The default is to grant permission.</cim:Qualifier>
<cim:Classorigin name="CIM_AssociatedPrivilege"/>
<cim:Defaultvalue type="cim:cimBoolean">true</cim:Defaultvalue>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="Activities" nillable="true">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">An enumeration indicating the activities that are granted or denied. These activities apply to all entities specified in the ActivityQualifiers array.
"Other" (1): indicates an activity that is not specified in this enumeration.
"Create" (2), "Delete" (3), "Detect" (4), "Read" (5), "Write" (6), "Execute" (7): each of these values indicates that the Subject is permitted to use an operation supported by the Target. They are all straightforward except for one, 4="Detect". This value indicates that the existence or presence of an entity may be determined, but not necessarily specific data (which requires the Read privilege to be true). This activity is exemplified by 'hidden files'- if you list the contents of a directory, you will not see hidden files. However, if you know a specific file name, or know how to expose hidden files, then they can be 'detected'. Another example is the ability to define search privileges in directory implementations.
"Deny Create" (8), "Deny Delete" (9), "Deny Detect" (10), "Deny Read" (11), "Deny Write" (12), "Deny Execute" (13): each of these values indicates that the Subject is expressly denied permission to use an operation supported by the Target.
Authorize to Grant/Deny Authorization (14): this value indicates that the Subject is permitted to add any of the following values to - or remove any of the following values from - the Activities array property in any other instance of CIM_AssociatedPrivilege that references the same Target: "Authorize to Create" (15), "Authorize to Delete" (16), "Authorize to Detect" (17), "Authorize to Read" (18), "Authorize to Write" (19), "Authorize to Execute" (20), "Authorize to Deny Create" (21), "Authorize to Deny Delete" (22), "Authorize to Deny Detect" (23), "Authorize to Deny Read" (24), "Authorize to Deny Write" (25), and "Authorize to Deny Execute" (26).
"Authorize to Create" (15), "Authorize to Delete" (16), "Authorize to Detect" (17), "Authorize to Read" (18), "Authorize to Write" (19), "Authorize to Execute" (20), "Authorize to Deny Create" (21), "Authorize to Deny Delete" (22), "Authorize to Deny Detect" (23), "Authorize to Deny Read" (24), "Authorize to Deny Write" (25), and "Authorize to Deny Execute" (26): each of these values indicates that the Subject is permitted to add value named in the string to - or remove the value from - the Activities array property in any other instance of CIM_AssociatedPrivilege that references the same Target. For example, "Authorize to Read" indicates that the Subject is permitted to add or remove the value "Read", and "Authorize to Deny Read" indicates that the Subject is permitted to add or remove the value "Deny Read".</cim:Qualifier>
<cim:Qualifier name="ArrayType" type="cim:cimString">Indexed</cim:Qualifier>
<cim:Qualifier name="ModelCorrespondence" type="cim:cimString">CIM_AssociatedPrivilege.ActivityQualifiers</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="1">Other</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="2">Create</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="3">Delete</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="4">Detect</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="5">Read</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="6">Write</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="7">Execute</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="8">Deny Create</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="9">Deny Delete</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="10">Deny Detect</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="11">Deny Read</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="12">Deny Write</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="13">Deny Execute</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="14">Authorize to Grant/Deny Authorization</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="15">Authorize to Create</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="16">Authorize to Delete</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="17">Authorize to Detect</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="18">Authorize to Read</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="19">Authorize to Write</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="20">Authorize to Execute</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="21">Authorize to Deny Create</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="22">Authorize to Deny Delete</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="23">Authorize to Deny Detect</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="24">Authorize to Deny Read</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="25">Authorize to Deny Write</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="26">Authorize to Deny Execute</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="..">DMTF Reserved</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="16000..">Vendor Reserved</cim:Qualifier>
<cim:Classorigin name="CIM_AssociatedPrivilege"/>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="cim:cimAnySimpleType">
<xs:simpleType>
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:unsignedShort">
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
<xs:enumeration value="3"/>
<xs:enumeration value="4"/>
<xs:enumeration value="5"/>
<xs:enumeration value="6"/>
<xs:enumeration value="7"/>
<xs:enumeration value="8"/>
<xs:enumeration value="9"/>
<xs:enumeration value="10"/>
<xs:enumeration value="11"/>
<xs:enumeration value="12"/>
<xs:enumeration value="13"/>
<xs:enumeration value="14"/>
<xs:enumeration value="15"/>
<xs:enumeration value="16"/>
<xs:enumeration value="17"/>
<xs:enumeration value="18"/>
<xs:enumeration value="19"/>
<xs:enumeration value="20"/>
<xs:enumeration value="21"/>
<xs:enumeration value="22"/>
<xs:enumeration value="23"/>
<xs:enumeration value="24"/>
<xs:enumeration value="25"/>
<xs:enumeration value="26"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:unsignedShort">
<xs:enumeration value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:unsignedShort">
<xs:minInclusive value="27"/>
<xs:maxInclusive value="15999"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:unsignedShort">
<xs:minInclusive value="16000"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="ActivityQualifiers" nillable="true" type="cim:cimString">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">The ActivityQualifiers property is an array of string values used to further qualify and specify the privileges granted or denied. For example, it is used to specify a set of files for which 'Read'/'Write' access is permitted or denied. Or, it defines a class' methods that may be 'Executed'. Details on the semantics of the individual entries in ActivityQualifiers are provided by corresponding entries in the QualifierFormats array.</cim:Qualifier>
<cim:Qualifier name="ArrayType" type="cim:cimString">Indexed</cim:Qualifier>
<cim:Qualifier name="ModelCorrespondence" type="cim:cimString">CIM_AssociatedPrivilege.Activities</cim:Qualifier>
<cim:Qualifier name="ModelCorrespondence" type="cim:cimString">CIM_AssociatedPrivilege.QualifierFormats</cim:Qualifier>
<cim:Classorigin name="CIM_AssociatedPrivilege"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="QualifierFormats" nillable="true">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">Defines the semantics of corresponding entries in the ActivityQualifiers array. An example of each of these 'formats' and their use follows: 
- 2=Class Name. Example: If the authorization target is a CIM Service or a Namespace, then the ActivityQualifiers entries can define a list of classes that the authorized subject is able to create or delete. 
- 3=&lt;Class.&gt;Property. Example: If the authorization target is a CIM Service, Namespace or Collection of instances, then the ActivityQualifiers entries can define the class properties that may or may not be accessed. In this case, the class names are specified with the property names to avoid ambiguity - since a CIM Service, Namespace or Collection could manage multiple classes. On the other hand, if the authorization target is an individual instance, then there is no possible ambiguity and the class name may be omitted. To specify ALL properties, the wildcard string "*" should be used. 
- 4=&lt;Class.&gt;Method. This example is very similar to the Property one, above. And, as above, the string "*" may be specified to select ALL methods. 
- 5=Object Reference. Example: If the authorization target is a CIM Service or Namespace, then the ActivityQualifiers entries can define a list of object references (as strings) that the authorized subject can access. 
- 6=Namespace. Example: If the authorization target is a CIM Service, then the ActivityQualifiers entries can define a list of Namespaces that the authorized subject is able to access. 
- 7=URL. Example: An authorization target may not be defined, but a Privilege could be used to deny access to specific URLs by individual Identities or for specific Roles, such as the 'under 17' Role. 
- 8=Directory/File Name. Example: If the authorization target is a FileSystem, then the ActivityQualifiers entries can define a list of directories and files whose access is protected. 
- 9=Command Line Instruction. Example: If the authorization target is a ComputerSystem or Service, then the ActivityQualifiers entries can define a list of command line instructions that may or may not be 'Executed' by the authorized subjects. 
- 10=SCSI Command, using a format of 'CDB=xx[,Page=pp]'. For example, the ability to select the VPD page of the Inquiry command is encoded as 'CDB=12,Page=83' in the corresponding ActivityQualifiers entry. A '*' may be used to indicate all CDBs or Page numbers. 
- 11=Packets. Example: The transmission of packets is permitted or denied by the Privilege for the target (a ComputerSystem, ProtocolEndpoint, Pipe, or other ManagedSystemElement).
- 12=Specification-defined. The semantics are defined in a a specification produced by the DMTF or other organization. The value of the corresponding ActivityQualifiers entry names the specification and the organization that produced it, and includes a label that unambiguously references the semantic definition within the specification. The value of of the corresponding ActivityQualifiers entry should be constructed using the following "preferred" algorithm: 
&lt;OrgID&gt;:&lt;SpecID&gt;:&lt;Label&gt;, where &lt;OrgID&gt;, &lt;SpecID&gt;, and &lt;Label&gt; are separated by a colon (:), and where &lt;OrgID&gt; shall include a copyrighted, trademarked, or otherwise unique name that is owned by the business entity that is creating or defining the InstanceID or that is a registered ID assigned to the business entity by a recognized global authority. (This requirement is similar to the &lt;Schema Name&gt;_&lt;Class Name&gt; structure of Schema class names.) In addition, to ensure uniqueness both &lt;OrgID&gt; and &lt;SpecID&gt; shall not contain a colon (':'). When using this algorithm, the first colon to appear in the corresponding ActivityQualifiers entry shall appear between &lt;OrgID&gt; and &lt;SpecID&gt; and the second colon to appear in the corresponding ActivityQualifiers entry shall appear between &lt;SpecID&gt; and &lt;Label&gt;. 
&lt;Label&gt; is chosen by the business entity and should not be reused to identify different underlying semantics. If the above "preferred" algorithm is not used, the defining entity must assure that the resulting value is not reused to refer to a different specification or different semantics within defined within the same specification.
For DMTF-defined instances, the "preferred" algorithm shall be used with the &lt;OrgID&gt; set to "DMTF", and the &lt;SpecID&gt; set to "DSPx", where x is the number of a DSP published by the DMTF.</cim:Qualifier>
<cim:Qualifier name="ArrayType" type="cim:cimString">Indexed</cim:Qualifier>
<cim:Qualifier name="ModelCorrespondence" type="cim:cimString">CIM_AssociatedPrivilege.ActivityQualifiers</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="2">Class Name</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="3">&lt;Class.&gt;Property</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="4">&lt;Class.&gt;Method</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="5">Object Reference</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="6">Namespace</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="7">URL</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="8">Directory/File Name</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="9">Command Line Instruction</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="10">SCSI Command</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="11">Packets</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="12">Specification-defined</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="..">DMTF Reserved</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="16000..">Vendor Reserved</cim:Qualifier>
<cim:Classorigin name="CIM_AssociatedPrivilege"/>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="cim:cimAnySimpleType">
<xs:simpleType>
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:unsignedShort">
<xs:enumeration value="2"/>
<xs:enumeration value="3"/>
<xs:enumeration value="4"/>
<xs:enumeration value="5"/>
<xs:enumeration value="6"/>
<xs:enumeration value="7"/>
<xs:enumeration value="8"/>
<xs:enumeration value="9"/>
<xs:enumeration value="10"/>
<xs:enumeration value="11"/>
<xs:enumeration value="12"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:unsignedShort">
<xs:maxInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:unsignedShort">
<xs:minInclusive value="13"/>
<xs:maxInclusive value="15999"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:unsignedShort">
<xs:minInclusive value="16000"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="RepresentsAuthorizationRights" nillable="true" type="cim:cimBoolean">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">The RepresentsAuthorizationRights flag indicates whether the rights defined by this instance shall be interpreted as rights of Subjects to access Targets or as rights of Subjects to change those rights on/for Targets.</cim:Qualifier>
<cim:Classorigin name="CIM_AssociatedPrivilege"/>
<cim:Defaultvalue type="cim:cimBoolean">false</cim:Defaultvalue>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="CIM_AssociatedPrivilege" type="class:CIM_AssociatedPrivilege_Type">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Class name="CIM_AssociatedPrivilege"/>
<cim:Qualifier name="Association" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Qualifier name="Version" type="cim:cimString">2.22.0</cim:Qualifier>
<cim:Qualifier name="UMLPackagePath" type="cim:cimString">CIM::User::Privilege</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">CIM_AssociatedPrivilege is an association that models the privileges that a Subject element has to access or authorize other elements to access a Target element.</cim:Qualifier>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:complexType name="CIM_AssociatedPrivilege_Type">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:Activities"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:ActivityQualifiers"/>
<xs:element minOccurs="0" ref="class:PrivilegeGranted"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:QualifierFormats"/>
<xs:element minOccurs="0" ref="class:RepresentsAuthorizationRights"/>
<xs:element ref="class:Subject"/>
<xs:element ref="class:Target"/>
<xs:element ref="class:UseKey"/>
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
</xs:schema>
