// Copyright (c) 2009 DMTF.  All rights reserved.
   [Version ( "2.23.0" ), 
    UMLPackagePath ( "CIM::Device::FC" ), 
    Description ( 
       "The ZoneService if responsible for managing the Zone "
       "enforcement for the fabric. The ZoneService is hosted on an "
       "AdminDomain. This relationship is depicted by the "
       "HostedService association." )]
class CIM_ZoneService : CIM_Service {

      [Description ( 
          "SessionState is an integer enumeration that indicates "
          "whether the session is currently starting (value=2) or "
          "has ended (value=3). It is possible that a particular "
          "instance of a ZoneService might not support sessions. If "
          "sessions are not supported, the value 4 (\"Not "
          "Applicable\") is used." ), 
       ValueMap { "0", "2", "3", "4" }, 
       Values { "Unknown", "Starting", "Ended", "Not Applicable" }]
   uint16 SessionState = 4;

      [Description ( 
          "RequestedSessionState is an integer enumeration that "
          "indicates whether the ZoneService session has been "
          "requested to start (value=2), end (value=3), or "
          "terminate (value=4). Note that when "
          "RequestedSessionState is set to 4 (\"Not Applicable\"), "
          "then this property is not used. By default, the "
          "RequestedSessionState of the element is 5 (\"No "
          "Change\")." ), 
       ValueMap { "2", "3", "4", "5" }, 
       Values { "Start", "End", "Terminate", "No Change" }, 
       ModelCorrespondence { "CIM_ZoneService.SessionState", 
          "CIM_ZoneService.SessionControl" }]
   uint16 RequestedSessionState = 5;

      [Description ( 
          "DefaultZoningState indicates whether fabric members "
          "(devices) that are not in any other active Zones can "
          "access each other. In particular, if no Zones are "
          "active, a DefaultZoningState \"Allow\" indicates that "
          "all fabric members can access each other." ), 
       ValueMap { "0", "2", "3" }, 
       Values { "Unknown", "Allow", "Deny" }]
   uint16 DefaultZoningState;


      [Description ( 
          "The method creates a ZoneSet and the association "
          "HostedCollection. The newly created association, "
          "HostedCollection, associates the Zone to the same "
          "AdminDomain that the ZoneService is hosted to. For the "
          "newly created ZoneSet, the Active property is always set "
          "to false. \n"
          "\n"
          "This method might be deprecated in the future in lieu of "
          "intrinsics after limitations in the CIM Operations are "
          "addressed." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
          "10..0x0FFF", "0x1000..0x7777", "0x8000.." }, 
       Values { "Success", "Not Supported", "Unspecified Error", 
          "Timeout", "Failed", "Invalid Parameter", "Access_Denied", 
          "Not_Found", "Already_Exists", "Insufficient_Resources", 
          "DMTF_Reserved", "Method_Reserved", "Vendor_Reserved" }]
   uint32 CreateZoneSet(
         [Required, IN, Description ( 
             "A user-friendly name for the ZoneSet that is "
             "unique within the AdminDomain." ), 
          ModelCorrespondence { "CIM_ZoneSet.ElementName" }]
      string ZoneSetName, 
         [IN, OUT, Description ( 
             "A reference to the newly created Zone." )]
      CIM_ZoneSet REF ZoneSet);

      [Description ( 
          "The method creates a Zone and the association "
          "HostedCollection. The newly created association, "
          "HostedCollection, associates the Zone to the same "
          "AdminDomain that the ZoneService is hosted to. For the "
          "newly created Zone, the Active property is always set to "
          "false. \n"
          "\n"
          "This method might be deprecated in the future in lieu of "
          "intrinsics after limitations in the CIM Operations are "
          "addressed." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
          "10..0x0FFF", "0x1000..0x7777", "0x8000.." }, 
       Values { "Success", "Not Supported", "Unspecified Error", 
          "Timeout", "Failed", "Invalid Parameter", "Access_Denied", 
          "Not_Found", "Already_Exists", "Insufficient_Resources", 
          "DMTF_Reserved", "Method_Reserved", "Vendor_Reserved" }]
   uint32 CreateZone(
         [Required, IN, Description ( 
             "A user-friendly name for the Zone that is unique "
             "within the AdminDomain." ), 
          ModelCorrespondence { "CIM_Zone.ElementName" }]
      string ZoneName, 
         [IN, Description ( "The type of zoning to be enforced." ), 
          ValueMap { "2", "3" }, 
          Values { "Default", "Protocol" }, 
          ModelCorrespondence { "CIM_Zone.ZoneType" }]
      uint16 ZoneType, 
         [IN, Description ( 
             "Specific clarification to be used when the "
             "ZoneType has an enumeration that requires it. "
             "Specifically, if ZoneType is \"Protocol\", then "
             "SubType is the Fibre Channel FC4 type." ), 
          ValueMap { "2", "3", "4" }, 
          Values { "SCSI", "VI", "IP" }, 
          ModelCorrespondence { "CIM_Zone.ZoneSubType" }]
      uint16 ZoneSubType, 
         [IN, OUT, Description ( 
             "A reference to the newly created Zone." )]
      CIM_Zone REF Zone);

      [Description ( 
          "The method creates a ZoneAlias and the association "
          "HostedCollection. The newly created association, "
          "HostedCollection, associates the ZoneAlias to the same "
          "AdminDomain that the ZoneService is hosted to. For the "
          "newly created ZoneAlias, the Active property is always "
          "set to false. \n"
          "\n"
          "This method might be deprecated in the future in lieu of "
          "intrinsics after limitations in the CIM Operations are "
          "addressed." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
          "10..0x0FFF", "0x1000..0x7777", "0x8000.." }, 
       Values { "Success", "Not Supported", "Unspecified Error", 
          "Timeout", "Failed", "Invalid Parameter", "Access_Denied", 
          "Not_Found", "Already_Exists", "Insufficient_Resources", 
          "DMTF_Reserved", "Method_Reserved", "Vendor_Reserved" }]
   uint32 CreateZoneAlias(
         [Required, IN, Description ( 
             "A name (alias) for the ZoneAlias that is unique in "
             "the context of the hosting System." ), 
          ModelCorrespondence { "CIM_ZoneAlias.CollectionAlias" }]
      string CollectionAlias, 
         [IN, OUT, Description ( 
             "A reference to the newly created ZoneAlias." )]
      CIM_NamedAddressCollection REF ZoneAlias);

      [Description ( 
          "CreateZoneMembershipSettingData creates a "
          "ZoneMembershipSettingData and adds it to the specified "
          "Zone or ZoneAlias by creating a MemberOfCollection "
          "association. \n"
          "\n"
          "This method might be deprecated in the future in lieu of "
          "intrinsics after limitations in the CIM Operations are "
          "addressed." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
          "10..0x0FFF", "0x1000..0x7777", "0x8000.." }, 
       Values { "Success", "Not Supported", "Unspecified Error", 
          "Timeout", "Failed", "Invalid Parameter", "Access_Denied", 
          "Not_Found", "Already_Exists", "Insufficient_Resources", 
          "DMTF_Reserved", "Method_Reserved", "Vendor_Reserved" }]
   uint32 CreateZoneMembershipSettingData(
         [Required, IN, Description ( 
             "Identifies the type of identification placed in "
             "ConnectivityMemberID." ), 
          ValueMap { "0", "1", "2", "3", "4", "5", "..", 
             "0x8000.." }, 
          Values { "Unknown", "Other", "PermanentAddress", 
             "NetworkAddress", "SwitchPortID", 
             "LogicalPortGroup", "DMTF_Reserved", 
             "Vendor_Reserved" }, 
          ModelCorrespondence { 
             "CIM_ZoneMembershipSettingData.ZoneMemberType" }]
      uint16 ConnectivityMemberType, 
         [Required, IN, Description ( 
             "This property specifies the type of identification "
             "used in the ConnectivityMemberID field. For Fibre "
             "Channel: \n"
             "* A ConnectivityMemberType of \'PermanentAddress\', "
             "the ConnectivityMemberID is the NxPort WWN; \n"
             "* A ConnectivityMemberType of \'NetworkAddress\', "
             "the ConnectivityMemberID is the NXPort Address ID; \n"
             "* A ConnectivityMemberType of \'SwitchPortID\', "
             "the ConnectivityMemberID is \'Domain:PortNumber\'." ), 
          ModelCorrespondence { 
             "CIM_ZoneMembershipSettingData.ConnectivityMemberID" }]
      string ConnectivityMemberID, 
         [Required, IN, Description ( 
             "The collection that the ZoneMembershipSettingData "
             "should be added to. The collection is either a "
             "Zone or ZoneAlias." )]
      CIM_SystemSpecificCollection REF SystemSpecificCollection, 
         [IN, OUT, Description ( 
             "A reference to the newly created ZoneMembershipSettingData."
              )]
      CIM_ZoneMembershipSettingData REF ZoneMembershipSettingData);

      [Description ( 
          "Adds to the ZoneSet the specified Zone. Adding a Zone to "
          "a ZoneSet, extends the zone enforcement definition of "
          "the ZoneSet to include the members of that Zone. If "
          "adding the Zone is successful, the Zone should be "
          "associated with the ZoneSet by MemberOfCollection. \n"
          "\n"
          "This method might be deprecated in the future in lieu of "
          "intrinsics after limitations in the CIM Operations are "
          "addressed." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
          "10..0x0FFF", "0x1000..0x7777", "0x8000.." }, 
       Values { "Success", "Not Supported", "Unspecified Error", 
          "Timeout", "Failed", "Invalid Parameter", "Access_Denied", 
          "Not_Found", "Already_Exists", "Insufficient_Resources", 
          "DMTF_Reserved", "Method_Reserved", "Vendor_Reserved" }]
   uint32 AddZone(
         [Required, IN, Description ( 
             "A reference to the ZoneSet that the Zone is added to."
              )]
      CIM_ZoneSet REF ZoneSet, 
         [IN, Description ( 
             "A reference to the Zone that is to be added to the ZoneSet."
              )]
      CIM_Zone REF Zone);

      [Description ( 
          "Adds to the Zone or ZoneAlias, the specified "
          "ZoneMembershipSettingData. If adding the "
          "ZoneMembershipSettingData is successful, an "
          "ElementSettingData association will be created between "
          "the ZoneMembershipSettingData and either the Zone or "
          "ZoneAlias. \n"
          "\n"
          "This method might be deprecated in the future in lieu of "
          "intrinsics after limitations in the CIM Operations are "
          "addressed." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
          "10..0x0FFF", "0x1000..0x7777", "0x8000.." }, 
       Values { "Success", "Not Supported", "Unspecified Error", 
          "Timeout", "Failed", "Invalid Parameter", "Access_Denied", 
          "Not_Found", "Already_Exists", "Insufficient_Resources", 
          "DMTF_Reserved", "Method_Reserved", "Vendor_Reserved" }]
   uint32 AddZoneMembershipSettingData(
         [Required, IN, Description ( 
             "A reference to the Zone or ZoneAlias that the "
             "ZoneMembershipSettingData is to be added to." )]
      CIM_SystemSpecificCollection REF SystemSpecificCollection, 
         [IN, Description ( 
             "A reference to the ZoneMembershipSettingData that "
             "is to be added to the Zone or ZoneAlias." )]
      CIM_ZoneMembershipSettingData REF ZoneMembershipSettingData);

      [Description ( 
          "Adds to the Zone the specified ZoneAlias. \n"
          "\n"
          "This method might be deprecated in the future in lieu of "
          "intrinsics after limitations in the CIM Operations are "
          "addressed." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
          "10..0x0FFF", "0x1000..0x7777", "0x8000.." }, 
       Values { "Success", "Not Supported", "Unspecified Error", 
          "Timeout", "Failed", "Invalid Parameter", "Access_Denied", 
          "Not_Found", "Already_Exists", "Insufficient_Resources", 
          "DMTF_Reserved", "Method_Reserved", "Vendor_Reserved" }]
   uint32 AddZoneAlias(
         [Required, IN, Description ( 
             "A reference to the Zone that the ZoneAlias is to be added to."
              )]
      CIM_Zone REF Zone, 
         [IN, Description ( 
             "A reference to the ZoneAlias that is to be added to the Zone."
              )]
      CIM_NamedAddressCollection REF ZoneAlias);

      [Description ( 
          "Activates the specified ZoneSet. After the ZoneSet is "
          "activated, the ZoneSet, associated Zone, ZoneAliases, "
          "and ZoneMembershipSettingData instances will have the "
          "active flag set to true. \n"
          "\n"
          "This method might be deprecated in the future in lieu of "
          "intrinsics after limitations in the CIM Operations are "
          "addressed." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "9", 
          "10..0x0FFF", "0x1000..0x7777", "0x8000.." }, 
       Values { "Success", "Not Supported", "Unspecified Error", 
          "Timeout", "Failed", "Invalid Parameter", "Access_Denied", 
          "Not_Found", "Insufficient_Resources", "DMTF_Reserved", 
          "Method_Reserved", "Vendor_Reserved" }]
   uint32 ActivateZoneSet(
         [Required, IN, Description ( 
             "A reference to the ZoneSet to be activated." )]
      CIM_ZoneSet REF ZoneSet, 
         [Required, IN, Description ( 
             "Activate indicates whether the references to "
             "ZoneSet should be activated (Active=true) or "
             "deactivated (Active=false)." )]
      boolean Activate);

      [Description ( 
          "SessionControl requests that a session start (value=2), "
          "end (value=3), or terminate (value=4)." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "9", 
          "10..0x0FFF", "0x1000..0x7777", "0x8000.." }, 
       Values { "Success", "Not Supported", "Unspecified Error", 
          "Timeout", "Failed", "Invalid Parameter", "Access_Denied", 
          "Insufficient_Resources", "DMTF_Reserved", 
          "Method_Reserved", "Vendor_Reserved" }]
   uint32 SessionControl(
         [IN, Description ( 
             "RequestedSessionState is an integer enumeration "
             "that indicates whether the ZoneService session has "
             "been requested to start (value=2), end (value=3), "
             "or terminate (value=4)." ), 
          ValueMap { "2", "3", "4" }, 
          Values { "Start", "End", "Terminate" }, 
          ModelCorrespondence { 
             "CIM_ZoneService.RequestedSessionState" }]
      uint16 RequestedSessionState);

};
