+ a dictionary containing the details of the request; the keys vary
+ depending on the type of operation that's being requested, as
+ explained in `Operation-specific input`_ below.
+
+nodegroups
+ a dictionary with the data for the cluster's node groups; it is keyed
+ on the group UUID, and the values are a dictionary with the following
+ keys:
+
+ name
+ the node group name
+ alloc_policy
+ the allocation policy of the node group (consult the semantics of
+ this attribute in the :manpage:`gnt-group(8)` manpage)
+
+instances
+ a dictionary with the data for the current existing instance on the
+ cluster, indexed by instance name; the contents are similar to the
+ instance definitions for the allocate mode, with the addition of:
+
+ admin_up
+ if this instance is set to run (but not the actual status of the
+ instance)
+
+ nodes
+ list of nodes on which this instance is placed; the primary node
+ of the instance is always the first one
+
+nodes
+ dictionary with the data for the nodes in the cluster, indexed by
+ the node name; the dict contains [*]_ :
+
+ total_disk
+ the total disk size of this node (mebibytes)
+
+ free_disk
+ the free disk space on the node
+
+ total_memory
+ the total memory size
+
+ free_memory
+ free memory on the node; note that currently this does not take
+ into account the instances which are down on the node
+
+ total_cpus
+ the physical number of CPUs present on the machine; depending on
+ the hypervisor, this might or might not be equal to how many CPUs
+ the node operating system sees;
+
+ primary_ip
+ the primary IP address of the node
+
+ secondary_ip
+ the secondary IP address of the node (the one used for the DRBD
+ replication); note that this can be the same as the primary one
+
+ tags
+ list with the tags of the node
+
+ master_candidate:
+ a boolean flag denoting whether this node is a master candidate
+
+ drained:
+ a boolean flag denoting whether this node is being drained
+
+ offline:
+ a boolean flag denoting whether this node is offline
+
+ i_pri_memory:
+ total memory required by primary instances
+
+ i_pri_up_memory:
+ total memory required by running primary instances
+
+ group:
+ the node group that this node belongs to
+
+ No allocations should be made on nodes having either the ``drained``
+ or ``offline`` flags set. More details about these of node status
+ flags is available in the manpage :manpage:`ganeti(7)`.
+
+.. [*] Note that no run-time data is present for offline, drained or
+ non-vm_capable nodes; this means the tags total_memory,
+ reserved_memory, free_memory, total_disk, free_disk, total_cpus,
+ i_pri_memory and i_pri_up memory will be absent
+
+Operation-specific input
+++++++++++++++++++++++++
+
+All input dictionaries to the IAllocator carry, in the ``request``
+dictionary, detailed information about the operation that's being
+requested. The required keys vary depending on the type of operation, as
+follows.
+
+In all cases, it includes: