// Copyright (c) 2009 DMTF.  All rights reserved.
   [Version ( "2.22.0" ), 
    UMLPackagePath ( "CIM::Core::Resource" ), 
    Description ( 
       "The CIM_StorageAllocationSettingData class represents settings "
       "specifically related to the allocation of virtual storage." )]
class CIM_StorageAllocationSettingData : CIM_ResourceAllocationSettingData {

      [Description ( 
          "Size in bytes of the blocks that are presented to the "
          "consumer as the result of this storage resource "
          "allocation or storage resource allocation request. If "
          "the block size is variable, then the maximum block size "
          "in bytes should be specified. If the block size is "
          "unknown or if a block concept does not apply, then the "
          "value 1 shall be used.\n"
          "NOTE: The use of 1 (and not 0) to indicate that the "
          "blocksize is unknown still allows the use of the "
          "VirtualQuantity property to convey the size in blocks of "
          "size 1).\n"
          "NOTE: This property is a copy of the "
          "CIM_StorageExtent.BlockSize property. See the "
          "description of the CIM_StorageExtent.BlockSize property "
          "for details." ), 
       ModelCorrespondence { "CIM_StorageExtent.BlockSize" }, 
       PUnit ( "byte" )]
   uint64 VirtualResourceBlockSize;

      [Override ( "VirtualQuantity" ), 
       Description ( 
          "Number of blocks that are presented to the consumer. The "
          "blocksize is specified by the value of the "
          "VirtualResourceBlockSize property." ), 
       ModelCorrespondence { "CIM_StorageExtent.NumberOfBlocks", 
          "CIM_StorageAllocationSettingData.VirtualQuantityUnits" }]
   uint64 VirtualQuantity;

      [Override ( "VirtualQuantityUnits" ), 
       Description ( 
          "This property specifies the units used by the "
          "VirtualQuantity property. The value shall match "
          "\"count(fixed size block)\" | \"byte\".\n"
          "The default value \"count(fixed size block)\" assumes "
          "that the implementation knows a fixed block size and "
          "conveys the block size through the value of the "
          "VirtualResourceBlockSize property. However, if the "
          "VirtualResourceBlockSize property has a value \"1\", "
          "this indicates an unknown or variable block size; in "
          "this case the value of the VirtualQuantityUnit property "
          "should be set to \"byte\", such that the value of the "
          "VirtualQuantity property is measured directly in byte.\n"
          "NOTE: The IsPUnit qualifier already formally restricts "
          "the value of this property to be a unit as specified in "
          "DMTF DSP0004:2.5.0, Annex C; in addition, the normative "
          "text in the description of this property above further "
          "constrains the value to match \"byte\" | \"count(fixed "
          "size block)\"." ), 
       ModelCorrespondence { 
          "CIM_StorageAllocationSettingData.VirtualQuantity" }, 
       IsPUnit]
   string VirtualQuantityUnits = "count(fixed size block)";

      [Description ( 
          "Access describes whether the allocated storage extent is "
          "1 (readable), 2 (writeable), or 3 (both).\n"
          "NOTE: This property is a copy of the "
          "CIM_StorageExtent.Access property, except deprecated "
          "values. See the description of the "
          "CIM_StorageExtent.Access property for details." ), 
       ValueMap { "0", "1", "2", "3", ".." }, 
       Values { "Unknown", "Readable", "Writeable", 
          "Read/Write Supported", "DMTF Reserved" }, 
       ModelCorrespondence { "CIM_StorageExtent.Access" }]
   uint16 Access;

      [Description ( 
          "Size in bytes of the blocks that are allocated at the "
          "host as the result of this storage resource allocation "
          "or storage resource allocation request. If the block "
          "size is variable, then the maximum block size in bytes "
          "should be specified. If the block size is unknown or if "
          "a block concept does not apply, then the value 1 shall "
          "be used.\n"
          "NOTE: This property is a copy of the "
          "CIM_StorageExtent.BlockSize property. See the "
          "description of the CIM_StorageExtent.BlockSize property "
          "for details." ), 
       ModelCorrespondence { "CIM_StorageExtent.BlockSize" }, 
       PUnit ( "byte" )]
   uint64 HostResourceBlockSize;

      [Override ( "Reservation" ), 
       Description ( 
          "The amount of blocks that are guaranteed to be available "
          "for this storage resource allocation at the host. The "
          "blocksize is specified by the value of the "
          "HostResourceBlockSize property." ), 
       ModelCorrespondence { 
          "CIM_StorageAllocationSettingData.HostResourceBlockSize" }]
   uint64 Reservation;

      [Override ( "Limit" ), 
       Description ( 
          "The maximum amount of blocks that will be granted for "
          "this storage resource allocation at the host. The "
          "blocksize is specified by the value of the "
          "HostResourceBlockSize property.Usually the value this "
          "property would reflect a maximum size for the allocated "
          "host extent that matches the size of the virtual storage "
          "extent presented to the consumer. A value less than that "
          "would indicate a situation where a sparsely populated "
          "virtual storage extent is expected, where the fill rate "
          "is limited by the value of the Limit property." ), 
       ModelCorrespondence { 
          "CIM_StorageAllocationSettingData.HostResourceBlockSize" }]
   uint64 Limit;

      [Description ( 
          "The HostExtentStartingAddress property identifies the "
          "starting address on the host storage extent identified "
          "by the value of the HostExtentName property that is used "
          "for the allocation of the virtual storage extent.\n"
          "A value of NULL indicates that there is no direct "
          "mapping of the virtual storage extent onto the "
          "referenced host storage extent.\n"
          "NOTE: This property is a copy of the "
          "CIM_BasedOn.StartingAddess property. See the description "
          "of CIM_BasedOn association for details." ), 
       ModelCorrespondence { 
          "CIM_StorageAllocationSettingData.HostResourceBlockSize", 
          "CIM_BasedOn.StartingAddress" }]
   uint64 HostExtentStartingAddress;

      [Description ( 
          "A unique identifier for the host extent. The identified "
          "host extent is used for the storage resource allocation.\n"
          "NOTE: This property is a copy of the "
          "CIM_StorageExtent.Name property. See the description of "
          "CIM_StorageExtent.Name property for details." ), 
       ModelCorrespondence { 
          "CIM_StorageAllocationSettingData.HostExtentNameFormat", 
          "CIM_StorageAllocationSettingData.HostExtentNameNamespace", 
          "CIM_StorageExtent.Name" }]
   string HostExtentName;

      [Description ( 
          "The HostExtentNameFormat property identifies the format "
          "that is used for the value of the HostExtentName property.\n"
          "NOTE: This property is a copy of the "
          "CIM_StorageExtent.NameFormat property, excluding "
          "deprecated values. See the description of "
          "CIM_StorageExtent.NameFormat class for details.\n"
          "7 = Serial Number/Vendor/Model (SNVM) SNVM is 3 strings "
          "representing the vendor name, product name within the "
          "vendor namespace, and the serial number within the model "
          "namespace. Strings are delimited with a \'+\'. Spaces "
          "may be included and are significant. The serial number "
          "is the text representation of the serial number in "
          "hexadecimal upper case. This represents the vendor and "
          "model ID from SCSI Inquiry data; the vendor field MUST "
          "be 8 characters wide and the product field MUST be 16 "
          "characters wide. For example, \n"
          "\'ACME____+SUPER DISK______+124437458\' (_ is a space "
          "character) \n"
          "9 = NAA as a generic format. See \n"
          "http://standards.ieee.org/regauth/oui/tutorials/fibrecomp_id.html. "
          "Formatted as 16 or 32 unseparated uppercase hex "
          "characters (2 per binary byte). For example "
          "\'21000020372D3C73\' \n"
          "10 = EUI as a generic format (EUI64) See \n"
          "http://standards.ieee.org/regauth/oui/tutorials/EUI64.html. \n"
          "Formatted as 16 unseparated uppercase hex characters (2 "
          "per binary byte) \n"
          "11 = T10 vendor identifier format as returned by SCSI "
          "Inquiry VPD page 83, identifier type 1. See T10 SPC-3 "
          "specification. This is the 8-byte ASCII vendor ID from "
          "the T10 registry followed by a vendor specific ASCII "
          "identifier; spaces are permitted. For non SCSI volumes, "
          "\'SNVM\' may be the most appropriate choice. 12 = OS "
          "Device Name (for LogicalDisks). See LogicalDisk Name "
          "description for details." ), 
       ValueMap { "0", "1", "7", "9", "10", "11", "12", ".." }, 
       Values { "Unknown", "Other", "SNVM", "NAA", "EUI64", 
          "T10VID", "OS Device Name", "DMTF Reserved" }, 
       ModelCorrespondence { 
          "CIM_StorageAllocationSettingData.HostExtentName", 
          "CIM_StorageAllocationSettingData.OtherHostExtentNameFormat", 
          "CIM_StorageExtent.NameFormat" }]
   uint16 HostExtentNameFormat;

      [Description ( 
          "A string describing the format of the HostExtentName "
          "property if the value of the HostExtentNameFormat "
          "property is 1 (Other)." ), 
       ModelCorrespondence { 
          "CIM_StorageAllocationSettingData.HostExtentNameFormat" }]
   string OtherHostExtentNameFormat;

      [Description ( 
          "If the host extent is a SCSI volume, then the preferred "
          "source for SCSI volume names is SCSI VPD Page 83 responses.\n"
          "NOTE: This property is a copy of the "
          "CIM_StorageExtent.NameNamespace property. See the "
          "description of CIM_StorageExtent.NameNamespace class for details.\n"
          "Page 83 returns a list of identifiers for various device "
          "elements. The metadata for each identifier includes an "
          "Association field, identifiers with association of 0 "
          "apply to volumes. Page 83 supports several namespaces "
          "specified in the Type field in the identifier metadata. "
          "See SCSI SPC-3 specification. \n"
          "2 = VPD Page 83, Type 3 NAA (NameFormat SHOULD be NAA) \n"
          "3 = VPD Page 83, Type 2 EUI64 (NameFormat EUI) \n"
          "4 = VPD Page 83, Type 1 T10 Vendor Identification \n"
          "(NameFormat T10) \n"
          "Less preferred volume namespaces from other interfaces: \n"
          "5 = VPD page 80, Serial number (NameFormat SHOULD be "
          "Other) \n"
          "6 = FC NodeWWN (NameFormat SHOULD be NAA or EUI) \n"
          "7 = Serial Number/Vendor/Model (NameFormat SHOULD be "
          "SNVM) cThe preferred namespace for LogigicalDisk names "
          "is platform specific device namespace; see LogigicalDIsk "
          "Description. \n"
          "8 = OS Device Namespace." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", ".." }, 
       Values { "Unknown", "Other", "VPD83Type3", "VPD83Type2", 
          "VPD83Type1", "VPD80", "NodeWWN", "SNVM", 
          "OS Device Namespace", "DMTF Reserved" }, 
       ModelCorrespondence { 
          "CIM_StorageAllocationSettingData.HostExtentName", 
          "CIM_StorageAllocationSettingData.OtherHostExtentNameNamespace", 
          "CIM_StorageAllocationSettingData.HostExtentNameFormat", 
          "CIM_StorageExtent.NameNamespace" }]
   uint16 HostExtentNameNamespace;

      [Description ( 
          "A string describing the namespace of the HostExtentName "
          "property if the value of the HostExtentNameNamespace "
          "matches 1 (Other)." ), 
       ModelCorrespondence { 
          "CIM_StorageAllocationSettingData.HostExtentNameNamespace" }]
   string OtherHostExtentNameNamespace;


};
