// Copyright (c) 2009 DMTF.  All rights reserved.
   [Version ( "2.22.0" ), 
    UMLPackagePath ( "CIM::Network::USBRedirection" ), 
    Description ( 
       "USBRedirectionCapabilities describes the capabilities of the "
       "USB Redirection Service." )]
class CIM_USBRedirectionCapabilities : CIM_RedirectionServiceCapabilities {

      [Description ( 
          "The connection mode used to configure the session. A "
          "value set to 2 = \"Listen\" shall indicate that the SAP "
          "will listen for a connection request from the remote USB "
          "redirection server. A CIM_BindsTo association to a "
          "CIM_ProtocolEndoint may be used to represent where the "
          "SAP is listening for the connection request. A value set "
          "to 3 = \"Connect\" shall indicate that the the SAP shall "
          "initiate the connection to the remote USB redirection "
          "server. A CIM_RemoteAccessAvailableToElement association "
          "to a CIM_RemoteServiceAccessPoint may be used to "
          "represent where the SAP shall connect to the remote USB "
          "redirection server." ), 
       ValueMap { "0", "2", "3", "..", "32768..65535" }, 
       Values { "Unknown", "Listen", "Connect", "DMTF Reserved", 
          "Vendor Specified" }, 
       ModelCorrespondence { "CIM_USBRedirectionSAP.ConnectionMode" }]
   uint16 ConnectionModesSupported[];

      [Description ( 
          "An enumeration indicating the USB specification versions "
          "which are supported. The property is expressed as a "
          "Binary-Coded Decimal (BCD) where a decimal point is "
          "implied between the 2nd and 3rd digits. For example, a "
          "value of 0x0201 indicates that version 2.01 is "
          "supported. Note that each entry of this array is related "
          "to the entries of the ClassesSupported, "
          "SubClassesSupported, MaxDevicesSupported and "
          "MaxDevicesPerSAP arrays that are located at the same "
          "index." ), 
       ArrayType ( "Indexed" ), 
       MappingStrings { 
          "Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|bcdUSB" }, 
       ModelCorrespondence { "CIM_USBDevice.USBVersion", 
          "CIM_USBRedirectionCapabilities.ClassesSupported", 
          "CIM_USBRedirectionCapabilities.SubClassesSupported", 
          "CIM_USBRedirectionCapabilities.MaxDevicesSupported", 
          "CIM_USBRedirectionCapabilities.MaxDevicesPerSAP" }]
   uint16 USBVersionsSupported[];

      [Description ( 
          "An enumeration indicating the USB Device Classes which "
          "are supported. Note that each entry of this array is "
          "related to the entries of the USBVersionsSupported, "
          "SubClassesSupported, MaxDevicesSupported, and "
          "MaxDevicesPerSAP arrays that are located at the same "
          "index." ), 
       ArrayType ( "Indexed" ), 
       MappingStrings { 
          "Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|bDeviceClass" }, 
       ModelCorrespondence { "CIM_USBDevice.ClassCode", 
          "CIM_USBRedirectionCapabilities.USBVersionsSupported", 
          "CIM_USBRedirectionCapabilities.SubClassesSupported", 
          "CIM_USBRedirectionCapabilities.MaxDevicesSupported", 
          "CIM_USBRedirectionCapabilities.MaxDevicesPerSAP" }]
   uint8 ClassesSupported[];

      [Description ( 
          "An enumeration indicating the USB Device SubClasses "
          "which are supported. Note that each entry of this array "
          "is related to the entries of the USBVersionsSupported, "
          "ClassesSupproted, MaxDevicesSupported, and "
          "MaxDevicesPerSAP arrays that are located at the same "
          "index." ), 
       ArrayType ( "Indexed" ), 
       MappingStrings { 
          "Universal Serial Bus Specification.USB-IF|Standard Device Descriptor|bDeviceSubClass" }, 
       ModelCorrespondence { "CIM_USBDevice.SubclassCode", 
          "CIM_USBRedirectionCapabilities.USBVersionsSupported", 
          "CIM_USBRedirectionCapabilities.ClassesSupported", 
          "CIM_USBRedirectionCapabilities.MaxDevicesSupported", 
          "CIM_USBRedirectionCapabilities.MaxDevicesPerSAP" }]
   uint8 SubClassesSupported[];

      [Description ( 
          "An enumeration indicating the number of USB devices "
          "which are supported for the devices specified in the "
          "USBVersionsSupported, ClassesSupported, and "
          "SubClassesSupported array properties. Note that each "
          "entry of this array is related to the entries in the "
          "USBVersionsSupported, ClassesSupported, and "
          "SubClassesSupported arrays that are located at the same "
          "index." ), 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_USBRedirectionCapabilities.ClassesSupported", 
          "CIM_USBRedirectionCapabilities.USBVersionsSupported", 
          "CIM_USBRedirectionCapabilities.SubClassesSupported", 
          "CIM_USBRedirectionCapabilities.MaxDevicesPerSAP" }]
   uint16 MaxDevicesSupported[];

      [Description ( 
          "An enumeration indicating the number of USB devices per "
          "USB Redirection Session which are supported for the "
          "devices specified in the USBVersionsSupported, "
          "ClassesSupported, and SubClassesSupported array "
          "properties. Note that each entry of this array is "
          "related to the entries in the USBVersionsSupported, "
          "ClassesSupported, and SubClassesSupported arrays that "
          "are located at the same index." ), 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_USBRedirectionCapabilities.MaxDevicesSupported", 
          "CIM_USBRedirectionCapabilities.USBVersionsSupported", 
          "CIM_USBRedirectionCapabilities.SubClassesSupported", 
          "CIM_USBRedirectionCapabilities.ClassesSupported" }]
   uint16 MaxDevicesPerSAP[];

      [Description ( 
          "An enumeration indicating the whether instances of "
          "USBRedirectionSAPs already exist and whether whether "
          "SAPs can be created. A value set to 2 = \"Pre-Configured "
          "SAPs\" shall indicate that instances of "
          "CIM_USBRedirectionSAP exists which can be enabled. A "
          "value set to 3 = \"Create SAPs\" shall indicate that "
          "instances of CIM_USBRedirectionSAP can be created with "
          "the CreateDevice() and CreateSession() methods. A value "
          "set to 4 = \"Modify Timeouts\" shall indicate that the "
          "timeout parameters of instances of CIM_USBRedirectionSAP "
          "can be modified by applications using \'ModifyInstance\'" ), 
       ValueMap { "0", "2", "3", "4", "..", "32768..65535" }, 
       Values { "Unknown", "Pre-Configured SAPs", "Create SAPs", 
          "Modify SAP", "DMTF Reserved", "Vendor Specified" }]
   uint16 SAPCapabilitiesSupported[];

      [Description ( 
          "An enumeration indicating the RequestedStatesSupported "
          "capabilities that may be used when creating a new SAP, "
          "if SAPCapabilitiesSupported has a value of 3, \'Create "
          "SAPs\', otherwise ignored" ), 
       ModelCorrespondence { 
          "CIM_EnabledLogicalElementCapabilities.RequestedStatesSupported", 
          "CIM_USBRedirectionCapabilities.SAPCapabilitiesSupported" }]
   uint16 RequestedStatesSupportedForCreatedSAP[];

      [Description ( 
          "An enumeration indicating which of the formats for "
          "CIM_RemoteServiceAcccessPoint.InfoFormat are supported "
          "by the USB Redirection Service. When a USB Redirection "
          "Session is configured with ConnectionMode = 3 \'Connect\' "
          "the USB Redirection SAP needs to know the remote service "
          "access point to connect to. The "
          "CIM_RemoteServiceAccessPoint class is used to model this "
          "information. InfoFormat describes the address format for "
          "CIM_RemoteServiceAccessPoint.AccessInfo. which tells the "
          "local SAP where to find the USB redirection remote "
          "access point modeled by CIM_RemoteServiceAccessPoint. "
          "InfoFormatsSupported describes the AccessInfo formats "
          "that are supported by the local USB Redirection Service." ), 
       ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
          "11", "12", "13", "100", "101", "102", "103", "104", 
          "200", "201", "202", "203", "204", "205", "..", 
          "32768..65535" }, 
       Values { "Other", "Host Name", "IPv4 Address", 
          "IPv6 Address", "IPX Address", "DECnet Address", 
          "SNA Address", "Autonomous System Number", "MPLS Label", 
          "IPv4 Subnet Address", "IPv6 Subnet Address", 
          "IPv4 Address Range", "IPv6 Address Range", "Dial String", 
          "Ethernet Address", "Token Ring Address", "ATM Address", 
          "Frame Relay Address", "URL", "FQDN", "User FQDN", 
          "DER ASN1 DN", "DER ASN1 GN", "Key ID", "DMTF Reserved", 
          "Vendor Reserved" }, 
       ModelCorrespondence { 
          "CIM_RemoteServiceAccessPoint.InfoFormat" }]
   uint16 InfoFormatsSupported[];

      [Description ( 
          "SingleClassPerSAP indicates that only instances of "
          "CIM_USBDevice whose ClassCode property have the same "
          "value as each other shall be associated with the "
          "instances of CIM_USBRedirectionSAP." ), 
       ModelCorrespondence { "CIM_USBDevice.ClassCode" }]
   boolean SingleClassPerSAP;


};
