docs: def edit(env, securitygroup_id, rule_id, remote_ip, remote_group,
           direction, ethertype, port_max, port_min, protocol):
      """Edit a security group rule in a security group."""
      mgr = SoftLayer.NetworkManager(env.client)
  
      data = {}
      if remote_ip:
          data['remote_ip'] = remote_ip
      if remote_group:
          data['remote_group'] = remote_group
      if direction:
          data['direction'] = direction
      if ethertype:
          data['ethertype'] = ethertype
      if port_max is not None:
          data['port_max'] = port_max
      if port_min is not None:
          data['port_min'] = port_min
      if protocol:
          data['protocol'] = protocol
  
      ret = mgr.edit_securitygroup_rule(securitygroup_id, rule_id, **data)
  
      if not ret:
          raise exceptions.CLIAbort("Failed to edit security group rule")
  
      table = formatting.Table(REQUEST_BOOL_COLUMNS)
      table.add_row([ret['requestId']])
  
      env.fout(table)