docs: def list(gandi, state, id, limit, datacenter):
      """List virtual machines."""
      options = {
          'items_per_page': limit,
      }
      if state:
          options['state'] = state
      if datacenter:
          options['datacenter_id'] = gandi.datacenter.usable_id(datacenter)
  
      output_keys = ['hostname', 'state']
      if id:
          output_keys.append('id')
  
      result = gandi.iaas.list(options)
      for num, vm in enumerate(result):
          if num:
              gandi.separator_line()
          output_vm(gandi, vm, [], output_keys)
  
      return result