// Copyright (c) 2009 DMTF.  All rights reserved.
   [Version ( "2.22.0" ), 
    UMLPackagePath ( "CIM::Network::Wireless" ), 
    Description ( 
       "CIM_WiFiEndpointSettings describes setting data that can be "
       "applied to an instance of CIM_WiFiEndpoint to enable it to "
       "associate to a particular Wi-Fi network." )]
class CIM_WiFiEndpointSettings : CIM_SettingData {

      [Description ( 
          "Priority shall indicate the priority of the instance "
          "among all WiFiEndpointSettings instances." )]
   uint8 Priority;

      [Description ( 
          "SSID shall indicate the Service Set Identifier (SSID) "
          "that shall be used when the settings are applied to a "
          "WiFiEndpoint. An SSID identifies a wireless network." ), 
       MappingStrings { "IEEE 802.11-2007 | 7.3.2.1" }]
   string SSID;

      [Description ( 
          "BSSType shall indicate the Basic Service Set (BSS) Type "
          "that shall be used when the settings are applied. A "
          "Basic Service Set is a set of stations controlled by a "
          "single coordination function.\n"
          "\t* Independent: the WiFiEndpoint is associated directly "
          "to another client station.\n"
          "\t* Infrastructure: the WiFiEndpoint is associated to a "
          "network via an access point." ), 
       ValueMap { "0", "2", "3", ".." }, 
       Values { "Unknown", "Independent", "Infrastructure", 
          "DMTF Reserved" }, 
       MappingStrings { "IEEE 802.11-2007 | 3.16" }]
   uint16 BSSType;

      [Description ( 
          "EncryptionMethod shall specify the 802.11 encryption "
          "method used when the settings are applied. \t* Other "
          "(1): shall indicate that the desired encryption method "
          "is not specified in the list below. If this value is "
          "used, OtherEncryptionMethod should not be NULL and "
          "should not be empty.\n"
          "\t* WEP (2): shall indicate that the desired encryption "
          "method is Wired Equivalency Privacy (WEP). This value "
          "should be used only if AuthenticationMethod contains 2 "
          "(\"Open System\") or 3 (\"Shared Key\").\n"
          "\t* TKIP (3): shall indicate that the desired encryption "
          "method is Temporal Key Integrity Protocol (TKIP). This "
          "value should be used only if AuthenticationMethod "
          "contains 4 (\"WPA PSK\"), 5 (\"WPA IEEE 802.1x\"), 6 "
          "(\"WPA2 PSK\"), or 7 (\"WPA2 IEEE 802.1x\").\n"
          "\t* CCMP (4): shall indicate that the desired encryption "
          "method is Counter Mode with Cipher Block Chaining "
          "Message Authentication Code Protocol (CCMP). This value "
          "should be used only if AuthenticationMethod contains 4 "
          "(\"WPA PSK\"), 5 (\"WPA IEEE 802.1x\"), 6 (\"WPA2 PSK\"), "
          "or 7 (\"WPA2 IEEE 802.1x\").\n"
          "\t* None (5): shall indicate that no encryption is "
          "desired. This value should be used only if "
          "AuthenticationMethod contains 2 (\"Open System\") or 3 "
          "(\"Shared Key\")." ), 
       ValueMap { "1", "2", "3", "4", "5", "6.." }, 
       Values { "Other", "WEP", "TKIP", "CCMP", "None", 
          "DMTF Reserved" }, 
       MappingStrings { "IEEE 802.11-2007 | 8" }, 
       ModelCorrespondence { "CIM_WiFiEndpoint.EncryptionMethod", 
          "CIM_WiFiEndpointSettings.AuthenticationMethod", 
          "CIM_WiFiEndpointSettings.OtherEncryptionMethod" }]
   uint16 EncryptionMethod;

      [Description ( 
          "OtherEncryptionMethod shall specify the 802.11 "
          "encryption method used when the settings are applied if "
          "and only if EncryptionMethod contains \"Other\". The "
          "format of this string shall be vendor-specific." ), 
       ModelCorrespondence { 
          "CIM_WiFiEndpoint.OtherEncryptionMethod", 
          "CIM_WiFiEndpointSettings.EncryptionMethod" }]
   string OtherEncryptionMethod;

      [Description ( 
          "AuthenticationMethod shall specify the 802.11 "
          "authentication method used when the settings are "
          "applied. \t* Other (1): shall indicate that the desired "
          "authentication method is not specified in the list "
          "below. If AuthenticationMethod contains 1, "
          "OtherAuthenticationMethod should not be NULL and should "
          "not be empty.\n"
          "\t* Open System (2): shall indicate that the desired "
          "authentication method is Open System. "
          "AuthenticationMethod should contain 2 only if "
          "EncryptionMethod contains 2 (\"WEP\") or 5 (\"None\").\n"
          "\t* Shared Key (3): shall indicate that the desired "
          "authentication method is Shared Key. "
          "AuthenticationMethod should contain 3 only if "
          "EncryptionMethod contains 2 (\"WEP\") or 5 (\"None\").\n"
          "\t* WPA PSK (4): shall indicate that the desired "
          "authentication method is WPA (Wi-Fi Protected Access) "
          "PSK (Pre-Shared Key). AuthenticationMethod should "
          "contain 4 only if EncryptionMethod contains 3 (\"TKIP\") "
          "or 4 (\"CCMP\").\n"
          "\t* WPA IEEE 802.1x (5): shall indicate that the desired "
          "authentication method is WPA (Wi-Fi Protected Access) "
          "IEEE 802.1x. AuthenticationMethod should contain 5 only "
          "if EncryptionMethod contains 3 (\"TKIP\") or 4 (\"CCMP\").\n"
          "\t* WPA2 PSK (6): shall indicate that the desired "
          "authentication method is WPA2 (Wi-Fi Protected Access "
          "Version 2) PSK (Pre-Shared Key). AuthenticationMethod "
          "should containt 6 only if EncryptionMethod contains 3 "
          "(\"TKIP\") or 4 (\"CCMP\").\n"
          "\t* WPA2 IEEE 802.1x (7): shall indicated that the "
          "desired authentication method is WPA2 (Wi-Fi Protected "
          "Access Version 2) IEEE 802.1x. AuthenticationMethod "
          "should contain 7 only if EncryptionMethod contains 3 "
          "(\"TKIP\") or 4 (\"CCMP\")." ), 
       ValueMap { "1", "2", "3", "4", "5", "6", "7", "8.." }, 
       Values { "Other", "Open System", "Shared Key", "WPA PSK", 
          "WPA IEEE 802.1x", "WPA2 PSK", "WPA2 IEEE 802.1x", 
          "DMTF Reserved" }, 
       MappingStrings { "IEEE 802.11-2007 | 8" }, 
       ModelCorrespondence { 
          "CIM_WiFiEndpoint.AuthenticationMethod", 
          "CIM_WiFiEndpointSettings.EncryptionMethod", 
          "CIM_WiFiEndpointSettings.OtherAuthenticationMethod" }]
   uint16 AuthenticationMethod;

      [Description ( 
          "OtherAuthenticationMethod shall specify the 802.11 "
          "authentication method used when the settings are applied "
          "if and only if AuthenticationMethod contains \"Other\". "
          "The format of this string shall be vendor-specific." ), 
       ModelCorrespondence { 
          "CIM_WiFiEndpoint.OtherAuthenticationMethod", 
          "CIM_WiFiEndpointSettings.AuthenticationMethod" }]
   string OtherAuthenticationMethod;

      [Description ( 
          "Keys shall contain the default WEP encryption keys. Keys "
          "should be non-NULL if and only if EncryptionMethod "
          "contains 2 (\"WEP\")." ), 
       OctetString, ArrayType ( "Indexed" ), 
       MappingStrings { 
          "MIB.IETF|IEEE 802.11 MIB.dot11WEPDefaultKeys" }, 
       ModelCorrespondence { "CIM_WiFiEndpointSettings.KeyIndex", 
          "CIM_WiFiEndpointSettings.EncryptionMethod" }]
   string Keys[];

      [Description ( 
          "KeyIndex shall contain the index of the active key in "
          "the Keys array property. KeyIndex should be non-NULL if "
          "and only Keys is non-NULL." ), 
       MappingStrings { 
          "MIB.IETF|IEEE 802.11 MIB.dot11WEPDefaultKeyID" }, 
       ModelCorrespondence { "CIM_WiFiEndpointSettings.Keys" }]
   uint8 KeyIndex;

      [Description ( 
          "The actual binary value of a PSK (pre-shared key). "
          "PSKValue and PSKPassPhrase should not both be non-NULL. "
          "PSKValue should be NULL if AuthenticationMethod does not "
          "contain 4 (\"WPA PSK\") or 6 (\"WPA2 PSK\")." ), 
       OctetString, MappingStrings { 
          "MIB.IETF|IEEE 802.11 MIB.dot11RSNAConfigPSKValue" }, 
       ModelCorrespondence { 
          "CIM_WiFiEndpointSettings.PSKPassPhrase", 
          "CIM_WiFiEndpointSettings.AuthenticationMethod" }]
   uint8 PSKValue[];

      [Description ( 
          "An ASCII alphanumeric string used to generate a PSK "
          "(pre-shared key). PSKPassPhrase and PSKValue should not "
          "both be non-NULL. PSKPassPhrase should be NULL if "
          "AuthenticationMethod does not contain 4 (\"WPA PSK\") or "
          "6 (\"WPA2 PSK\")." ), 
       MinLen ( 8 ), 
       MaxLen ( 63 ), 
       MappingStrings { 
          "MIB.IETF|IEEE 802.11 MIB.dot11RSNAConfigPSKPassPhrase" }, 
       ModelCorrespondence { "CIM_WiFiEndpointSettings.PSKValue", 
          "CIM_WiFiEndpointSettings.AuthenticationMethod" }]
   string PSKPassPhrase;


};
