def modify_qos_rules(target_name, qos_rules, target_type = QoStargetTypeConstants::VVSET)
      if @current_version < @min_version && !qos_rules.nil?
        qos_rules.delete_if { |key, _value| key == :latencyGoaluSecs }
      end
      begin
        @qos.modify_qos_rules(target_name, qos_rules, target_type)
      rescue => ex
        Util.log_exception(ex, caller_locations(1, 1)[0].label)
        raise ex
      end
    end
def modify_qos_rules(target_name, qos_rules, target_type = QoStargetTypeConstants::VVSET)
      if @current_version < @min_version && !qos_rules.nil?
        qos_rules.delete_if { |key, _value| key == :latencyGoaluSecs }
      end
      begin
        @qos.modify_qos_rules(target_name, qos_rules, target_type)
      rescue => ex
        Util.log_exception(ex, caller_locations(1, 1)[0].label)
        raise ex
      end
    end
Modifies an existing QOS rules

 The QoS rule can be applied to VV sets. By using sys:all_others,
 you can apply the rule to all volumes in the system for which no
 QoS rule has been defined.
 ioMinGoal and ioMaxLimit must be used together to set I/O limits.
 Similarly, bwMinGoalKB and bwMaxLimitKB must be used together.
 If ioMaxLimitOP is set to 2 (no limit), ioMinGoalOP must also be
 to set to 2 (zero), and vice versa. They cannot be set to
 'none' individually. Similarly, if bwMaxLimitOP is set to 2 (no
 limit), then bwMinGoalOP must also be set to 2.
 If ioMaxLimitOP is set to 1 (no limit), ioMinGoalOP must also be
 to set to 1 (zero) and vice versa. Similarly, if bwMaxLimitOP is
 set to 1 (zero), then bwMinGoalOP must also be set to 1.
 The ioMinGoalOP and ioMaxLimitOP fields take precedence over
 the ioMinGoal and ioMaxLimit fields.
 The bwMinGoalOP and bwMaxLimitOP fields take precedence over
 the bwMinGoalKB and bwMaxLimitKB fields

 ==== Attributes

 * target_name: Name of the target object on which the QoS rule will be created.
     type target_name: String
 * target_type: Type of QoS target, either vvset or sys.Refer Hpe3parSdk::QoStargetTypeConstants for complete enumeration
     type target_type: String
 * qos_rules: QoS options
     type qos_rules: Hash
     qos_rules = {
         'priority'=> 2,         # Refer Hpe3parSdk::QoSpriorityEnumeration for complete enumeration
         'bwMinGoalKB'=> 1024,   # bandwidth rate minimum goal in
                                 # kilobytes per second
         'bwMaxLimitKB'=> 1024,  # bandwidth rate maximum limit in
                                 # kilobytes per second
         'ioMinGoal'=> 10000,    # I/O-per-second minimum goal.
         'ioMaxLimit'=> 2000000, # I/0-per-second maximum limit
         'enable'=> True,        # QoS rule for target enabled?
         'bwMinGoalOP'=> 1,      # zero none operation enum, when set to
                                 # 1, bandwidth minimum goal is 0
                                 # when set to 2, the bandwidth minimum
                                 # goal is none (NoLimit)
         'bwMaxLimitOP'=> 1,     # zero none operation enum, when set to
                                 # 1, bandwidth maximum limit is 0
                                 # when set to 2, the bandwidth maximum
                                 # limit is none (NoLimit)
         'ioMinGoalOP'=> 1,      # zero none operation enum, when set to
                                 # 1, I/O minimum goal minimum goal is 0
                                 # when set to 2, the I/O minimum goal is
                                 # none (NoLimit)
         'ioMaxLimitOP'=> 1,     # zero none operation enum, when set to
                                 # 1, I/O maximum limit is 0
                                 # when set to 2, the I/O maximum limit
                                 # is none (NoLimit)
         'latencyGoal'=> 5000,   # Latency goal in milliseconds
         'defaultLatency'=> false# Use latencyGoal or defaultLatency?
     }

 ==== Raises

 * Hpe3parSdk::HTTPBadRequest
     INV_INPUT_EXCEEDS_RANGE - Invalid input: number exceeds expected
     range.
 * Hpe3parSdk::HTTPNotFound
     NON_EXISTENT_QOS_RULE - QoS rule does not exists.
 * Hpe3parSdk::HTTPBadRequest
     INV_INPUT_ILLEGAL_CHAR - Illegal character in the input.
 * Hpe3parSdk::HTTPBadRequest
     EXISTENT_QOS_RULE - QoS rule already exists.
 * Hpe3parSdk::HTTPBadRequest
     INV_INPUT_IO_MIN_GOAL_GRT_MAX_LIMIT - I/O-per-second maximum limit
     should be greater than the minimum goal.
 * Hpe3parSdk::HTTPBadRequest
     INV_INPUT_BW_MIN_GOAL_GRT_MAX_LIMIT - Bandwidth maximum limit
     should be greater than the minimum goal.
 * Hpe3parSdk::HTTPBadRequest
     INV_INPUT_BELOW_RANGE - I/O-per-second limit is below
     range. Bandwidth limit is below range.
 * Hpe3parSdk::HTTPBadRequest
              UNLICENSED_FEATURE - The system is not licensed for QoS.