docs: def modify_node(hostname, username, password, name,
                  connection_limit=None,
                  description=None,
                  dynamic_ratio=None,
                  logging=None,
                  monitor=None,
                  rate_limit=None,
                  ratio=None,
                  session=None,
                  state=None,
                  trans_label=None):
      '''
      A function to connect to a bigip device and modify an existing node.
  
      hostname
          The host/address of the bigip device
      username
          The iControl REST username
      password
          The iControl REST password
      name
          The name of the node to modify
      connection_limit
          [integer]
      description
          [string]
      dynamic_ratio
          [integer]
      logging
          [enabled | disabled]
      monitor
          [[name] | none | default]
      rate_limit
          [integer]
      ratio
          [integer]
      session
          [user-enabled | user-disabled]
      state
          [user-down | user-up ]
      trans_label
          The label of the transaction stored within the grain:
          ``bigip_f5_trans:<label>``
  
      CLI Example::
  
          salt '*' bigip.modify_node bigip admin admin 10.1.1.2 ratio=2 logging=enabled
      '''
  
      params = {
          'connection-limit': connection_limit,
          'description': description,
          'dynamic-ratio': dynamic_ratio,
          'logging': logging,
          'monitor': monitor,
          'rate-limit': rate_limit,
          'ratio': ratio,
          'session': session,
          'state': state,
      }
  
      #build session
      bigip_session = _build_session(username, password, trans_label)
  
      #build payload
      payload = _loop_payload(params)
      payload['name'] = name
  
      #put to REST
      try:
          response = bigip_session.put(
              BIG_IP_URL_BASE.format(host=hostname) + '/ltm/node/{name}'.format(name=name),
              data=salt.utils.json.dumps(payload)
          )
      except requests.exceptions.ConnectionError as e:
          return _load_connection_error(hostname, e)
  
      return _load_response(response)