// Copyright (c) 2005 DMTF.  All rights reserved.
   [Version ( "2.7.0" ), 
    UMLPackagePath ( "CIM::Network::QoS" ), 
    Description ( 
       "This class is a subclass of the abstract class "
       "SchedulingElement. It introduces five new properties to "
       "support bandwidth-based scheduling. As is the case with all "
       "subclasses of SchedulingElement, the input associated with an "
       "instance of AllocationSchedulingElement is of one of two "
       "types: either a queue, or another scheduler." )]
class CIM_AllocationSchedulingElement : CIM_SchedulingElement {

      [Description ( 
          "A 16-bit unsigned integer enumeration that identifies "
          "the units in which the BandwidthAllocation and "
          "BurstAllocation properties are expressed. The following "
          "values are defined: \n"
          "- Bytes(1) \n"
          "- Packets(2) \n"
          "- Cells(3) (fixed-size, for example, ATM) \n"
          "If no value is specified, 1 (\"Bytes\") should be "
          "assumed." ), 
       ValueMap { "1", "2", "3" }, 
       Values { "Bytes", "Packets", "Cells" }]
   uint16 AllocationUnits;

      [Description ( 
          "A 32-bit bit unsigned integer defining the number of "
          "\'units\' per second that should be allocated to the "
          "associated input. \'Units\' are identified by the "
          "AllocationUnits property." ), 
       ModelCorrespondence { 
          "CIM_AllocationSchedulingElement.AllocationUnits" }]
   uint32 BandwidthAllocation;

      [Description ( 
          "A 32-bit bit unsigned integer specifying the amount of "
          "temporary or short-term bandwidth (in \'units\' per "
          "second) that can be allocated to an input, beyond the "
          "amount of bandwidth allocated through the "
          "BandwidthAllocation property. If the maximum actual "
          "bandwidth allocation for the input were to be measured, "
          "it would be the sum of the BurstAllocation and the "
          "BandwidthAllocation properties. \'Units\' are identified "
          "by the AllocationUnits property." ), 
       ModelCorrespondence { 
          "CIM_AllocationSchedulingElement.AllocationUnits" }]
   uint32 BurstAllocation;

      [Description ( 
          "A boolean property that, if TRUE, enables unused "
          "bandwidth from the associated input to be allocated to "
          "other inputs serviced by the Scheduler." )]
   boolean CanShare;

      [Description ( 
          "A boolean property that, if TRUE, indicates that the "
          "behavior of the scheduler relative to this input can be "
          "altered by changing the value of the inherited property, "
          "WorkConserving." )]
   boolean WorkFlexible;


};
