// Copyright (c) 2013 DMTF. All rights reserved. [Deprecated { "CIM_ProtocolControllerMaskingCapabilities.SupportedAsynchronousActions", "CIM_ProtocolControllerMaskingCapabilities.SupportedSynchronousActions" }, Version ( "2.43.0" ), UMLPackagePath ( "CIM::Device::ProtocolController" ), Description ( "A subclass of Capabilities that defines the Masking-related " "capabilities of a ProtocolController." )] class CIM_ProtocolControllerMaskingCapabilities : CIM_Capabilities { [Description ( "A list of the valid values for " "StrorageHardwareID.IDType. iSCSI IDs MAY use one of " "three iSCSI formats - iqn, eui, or naa. This three " "letter format is the name prefix; so a single iSCSI type " "is provided here, the prefix can be used to further " "refine the format." ), ValueMap { "1", "2", "3", "4", "5", "7" }, Values { "Other", "Port WWN", "Node WWN", "Host Name", "iSCSI Name", "SAS Address" }, ArrayType ( "Indexed" ), ModelCorrespondence { "CIM_StorageHardwareID.IDType" }] uint16 ValidHardwareIdTypes[]; [Description ( "An array of strings describing types for valid " "StorageHardwareID.IDType. Used when the " "ValidHardwareIdTypes includes 1 (\"Other\")." ), ArrayType ( "Indexed" )] string OtherValidHardwareIDTypes[]; [Description ( "An integer enumeration indicating the way that ports per " "view (ProtocolController) are handled by the underlying " "storage system." ), ValueMap { "2", "3", "4" }, Values { "One Port per View", "Multiple Ports per View", "All Ports share the same View" }] uint16 PortsPerView = 2; [Description ( "Set to true if this storage system allows the client to " "specify the DeviceNumber parameter when calling " "ControllerConfigurationService.AttachDevice() or specify " "the DeviceNumbers parameter when calling " "ControllerConfigurationService.ExposePaths(). Set to " "false if the implementation does not allow unit numbers " "to vary for a ProtocolController. However, if set to " "false and a Device is not the Dependent of a " "ProtocolControllerForUnit association, the client MUST " "provide a DeviceNumber parameter in " "ControllerConfigurationService.AttachDevice or " "ControllerConfigurationService.ExposePaths. If set to " "false and the Device is already the Dependent of a " "ProtocolControllerForUnit association, then the client " "can omit the DeviceNumber parameter (or supply the same " "value) in subsequent " "ControllerConfigurationService.AttachDevice calls." )] boolean ClientSelectableDeviceNumbers = true; [Deprecated { "CIM_ProtocolControllerMaskingCapabilities.SupportedAsynchronousActions", "CIM_ProtocolControllerMaskingCapabilities.SupportedSynchronousActions" }, Description ( "Set to true if this storage system supports the " "AttachDevice method." )] boolean AttachDeviceSupported; [Description ( "Set to true if this storage system limits configurations " "to a single subject hardware ID per view. Otherwise, " "multiple hardware ID types can be used. The default is " "FALSE, that multiple ID types MAY be used in a single " "view." )] boolean OneHardwareIDPerView = false; [Description ( "When set to false, different ProtocolContollers attached " "to a LogicalPort can expose the same unit numbers. If " "true, then this storage system requires unique unit " "numbers across all the ProtocolControllers connected to " "a LogicalPort." )] boolean UniqueUnitNumbersPerPort = false; [Description ( "Set to true if this storage system allows a client to " "create a Privilege instance with PrivilegeGranted set to " "FALSE." )] boolean PrivilegeDeniedSupported = false; [Description ( "If true, this property indicates that a " "Privilege/Identity pair MUST be specified when " "CreateProtocolControllerWithPorts() is called. If false, " "then the Privilege/Identity pair in " "CreateProtocolControllerWithPorts() MUST NOT be set." )] boolean ProtocolControllerRequiresAuthorizedIdentity = false; [Description ( "If true, this property indicates that the Identity " "parameter of CreateProtocolConntrollerWithPorts() MUST " "contain a reference to a CIM_Collection (or subclass) or " "to a CIM_Identity (or subclass). If ExposePathsSupported " "is true, this property indicates the storage system " "supports SystemSpecificCollections of " "StorageHardwareIDs." )] boolean ProtocolControllerSupportsCollections = false; [Description ( "Set to true if this storage system supports the " "ExposePaths and HidePaths methods." )] boolean ExposePathsSupported; [Description ( "Set to true if this storage system supports the " "CreateProtocolControllerWithPorts method." )] boolean CreateProtocolControllerSupported; [Description ( "The maximum number of ProtocolCOntrollerForUnit " "associations that can be associated with a single " "LogicalDevice (for example, StorageVolume). Zero " "indicates there is no limit." )] uint16 MaximumMapCount = 0; [Description ( "Set to true if the instumentation allows a client to " "create a configuration where an SPC has no " "LogicalDevices associated via " "CIM_ProtocolControllerForUnit associations." )] boolean SPCAllowsNoLUs = false; [Description ( "Set to true if the instumentation allows a client to " "create a configuration where an SPC has no target " "SCSIProtocolEndpoints associated via " "CIM_SAPAvailableForELement associations." )] boolean SPCAllowsNoTargets = false; [Description ( "Set to true if the instumentation allows a client to " "create a configuration where an SPC has no " "StorageHardwareIDs associated via " "CIM_AuthorizedTarget/CIM_AuthorizedPrivilege/CIM_AuthorizedSubject." )] boolean SPCAllowsNoInitiators = false; [Description ( "Set to true if it the instrumentation supports \'default " "view\' SPCs that exposes logical units to all initiators " "(so called \'promiscuous LUNs\'. Default view SPCs MUST " "have be associated to a CIM_StorageHardwareID instance " "with Name set to the null string. A target port MUST NOT " "be associated with more a single default view SPC. If " "PortsPerView is \'All Ports share the same View\', then " "at most one default view SPC MAY be associated with the " "target system. If SPCAllowsNoLUs is true, the " "instrumentation MAY instantiate a static default view " "instance or let the client create one as needed using " "ExposePaths. For other values of PortsPerView, all " "default view SPC MUST share the same null-Name " "CIM_StorageHardwareID instance." ), ModelCorrespondence { "CIM_ProtocolControllerMaskingCapabilities.PortsPerView" }] boolean SPCSupportsDefaultViews = true; [Experimental, Description ( "Set to true if this storage system supports the " "ExposePathsWithNameAndHostType method." )] boolean ExposePathsWithNameAndHostTypeSupported; [Experimental, Description ( "Enumeration indicating what operations will be executed " "as asynchronous jobs. If an operation is included in " "both this and SupportedSynchronousActions then the " "underlying implementation is indicating that it may or " "may not create a job. Values are: \n" "Create StorageHardwareID: The CreateStorageHardwareID extrinsic.\n" "Create StorageHardwareID by ExposePaths: The implicit " "creation of aStorageHardwareID by the ExposePaths extrinsic.\n" "Delete StorageHardwareID: The DeleteStorageHardwareID extrinsic.\n" "Delete StorageHardwareID by Delete Instance intrinsic: " "The DeleteInstance intrinsic of a StorageHardwareID.\n" "Create Gateway Path ID: The CreateGatewayPathID extrinsic.\n" "Delete Gateway Path ID: The DeleteInstance intrinsic of " "a GatewayPathID.\n" "Create StorageHardwareID Collection: The " "CreateHardwareIDCollection extrinsic.\n" "Delete StorageHardwareID Collection: The DeleteInstance " "intrinsic of a SystemSpecificCollection.\n" "Add StorageHardwareID to Collection: The " "AddHardwareIDsToCollection extrinsic.\n" "Remove StorageHardwareID from Collection: The " "DeleteInstance intrinsic of a MemberOfCollection.\n" "Expose Paths: The ExposePaths extrinsic.\n" "Hide Paths: The HidePaths extrinsic.\n" "Expose Default LUs: The ExposeDefaultLUs extrinsic.\n" "Hide Default LUs: The HideDefaultLUs extrinsic.\n" "Attach Device: The AttachDevice extrinsic.\n" "Detach Device: The DetachDevice extrinsic.\n" "Create ProtocolController With Ports: The " "CreateProtocolControllerWithPorts extrinsic.\n" "Delete ProtocolController: The DeleteProtocolController " "extrinsic." ), ValueMap { "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "..", "32768..65535" }, Values { "Create StorageHardwareID", "Create StorageHardwareID by ExposePaths", "Delete StorageHardwareID", "Create Gateway Path ID", "Delete Gateway Path ID", "Create StorageHardwareID Collection", "Delete StorageHardwareID Collection", "Add StorageHardwareIDs to Collection", "Remove StorageHardwareIDs from Collection", "Expose Paths", "Hide Paths", "Expose Default Views", "Hide Default Views", "Attach Device", "Detach Device", "Create ProtocolController With Ports", "Delete ProtocolController", "DMTF Reserved", "Vendor Specific" }, ModelCorrespondence { "CIM_ProtocolControllerMaskingCapabilities.SupportedSynchronousActions" }] uint16 SupportedAsynchronousActions[]; [Experimental, Description ( "Enumeration indicating what operations will be executed " "without the creation of a job. If an operation is " "included in both this and SupportedAsynchronousActions " "then the underlying instrumentation is indicating that " "it may or may not create a job. Values are: \n" "Create StorageHardwareID: The CreateStorageHardwareID extrinsic.\n" "Create StorageHardwareID by ExposePaths: The implicit " "creation of CreateStorageHardwareID by the ExposePaths extrinsic.\n" "Delete StorageHardwareID: The DeleteStorageHardwareID extrinsic.\n" "Delete StorageHardwareID by Delete Instance intrinsic: " "The DeleteInstance intrinsic of a StorageHardwareID.\n" "Create Gateway Path ID: The CreateGatewayPathID extrinsic.\n" "Delete Gateway Path ID: The DeleteInstance intrinsic of " "a GatewayPathID.\n" "Create StorageHardwareID Collection: The Delete " "StorageHardwareID Collection: The DeleteInstance " "intrinsic of a SystemSpecificCollection.\n" "Add StorageHardwareID to Collection: The " "AddHardwareIDsToCollection extrinsic.\n" "Remove StorageHardwareID from Collection: The " "DeleteInstance intrinsic of a MemberOfCollection.\n" "Expose Paths: The ExposePaths extrinsic.\n" "Hide Paths: The HidePaths extrinsic.\n" "Expose Default LUs: The ExposeDefaultLUs extrinsic.\n" "Hide Default LUs: The HideDefaultLUs extrinsic.\n" "Attach Device: The AttachDevice extrinsic.\n" "Detach Device: The DetachDevice extrinsic.\n" "Create ProtocolController With Ports: The " "CreateProtocolControllerWithPorts extrinsic.\n" "Delete ProtocolController: The DeleteProtocolController " "extrinsic." ), ValueMap { "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "..", "32768..65535" }, Values { "Create StorageHardwareID", "Create StorageHardwareID by ExposePaths", "Delete StorageHardwareID", "Create Gateway Path ID", "Delete Gateway Path ID", "Create StorageHardwareID Collection", "Delete StorageHardwareID Collection", "Add StorageHardwareIDs to Collection", "Remove StorageHardwareIDs from Collection", "Expose Paths", "Hide Paths", "Expose Default Views", "Hide Default Views", "Attach Device", "Detach Device", "Create ProtocolController With Ports", "Delete protocolController", "DMTF Reserved", "Vendor Specific" }, ModelCorrespondence { "CIM_ProtocolControllerMaskingCapabilities.SupportedAsynchronousActions" }] uint16 SupportedSynchronousActions[]; [Experimental, Description ( "This method indicates if ElementName can be specified as " "a part of invoking an appropriate method of the " "ControllerConfigurationService to create a new element. \n" "Additionally, the returned data includes the methods " "that can be used to modify the ElementName of existing " "storage elements. \n" "This method also returns the restrictions on the " "ElementName in the related \"OUT\" parameters." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "..", "0x8000.." }, Values { "Success", "Not Supported", "Unknown", "Timeout", "Failed", "Invalid Parameter", "In Use", "DMTF Reserved", "Vendor Specific" }, ModelCorrespondence { "CIM_ControllerConfigurationService.ExposePaths", "CIM_ControllerConfigurationService.ExposePathsWithNameAndHostType", "CIM_StorageHardwareIDManagementService.CreateStorageHardwareID", "CIM_GroupMaskingMappingService.CreateMaskingView" }] uint32 GetElementNameCapabilities( [IN, Description ( "A value indicating the element type." ), ValueMap { "2", "3", "..", "0x8000.." }, Values { "StorageHardwareID", "SCSIProtocolController", "DMTF Reserved", "Vendor Specific" }] uint16 ElementType, [IN, Description ( "Properties of the Goal provide additional " "information about ElementType." )] CIM_ManagedElement REF Goal, [OUT, Description ( "Enumeration indicating what methods can accept the " "element name for creation or modification of a " "storage element. \n" "ExposePaths is an example of an InvokeMethod. " "ModifyInstance and SetProperty are examples of " "intrinsic methods. \n" "An empty array indicates ElementNaming for " "ElementType is not supported, in which case the " "other OUT parameters are null." ), ValueMap { "2", "3", "4", "..", "32768..65535" }, Values { "ElementName can be supplied during creation", "ElementName can be modified with InvokeMethod", "ElementName can be modified with intrinsic method", "DMTF Reserved", "Vendor Specific" }] uint16 SupportedFeatures[], [OUT, Description ( "Maximum supported ElementName length." ), ModelCorrespondence { "CIM_EnabledLogicalElementCapabilities.MaxElementNameLen" }] uint16 MaxElementNameLen, [OUT, Description ( "This string expresses the restrictions on " "ElementName. The mask is expressed as a regular " "expression. See DMTF standard ABNF with the " "Management Profile Specification Usage Guide, " "Annex C for the regular expression syntax " "permitted. \n" "Since the ElementNameMask can describe the maximum " "length of the ElementName, any length defined in " "the regexp is in addition to the restriction " "defined in MaxElementNameLen (causing the smaller " "value to be the maximum length). The ElementName " "value satisfies the restriction, if and only if it " "matches the regular expression. \n" "If NULL, it indicates no restrictions on the " "ElementName." ), ModelCorrespondence { "CIM_EnabledLogicalElementCapabilities.ElementNameMask" }] string ElementNameMask); };