docs: def domain_capabilities(emulator=None, arch=None, machine=None, domain=None, **kwargs):
      '''
      Return the domain capabilities given an emulator, architecture, machine or virtualization type.
  
      .. versionadded:: 2019.2.0
  
      :param emulator: return the capabilities for the given emulator binary
      :param arch: return the capabilities for the given CPU architecture
      :param machine: return the capabilities for the given emulated machine type
      :param domain: return the capabilities for the given virtualization type.
      :param connection: libvirt connection URI, overriding defaults
      :param username: username to connect with, overriding defaults
      :param password: password to connect with, overriding defaults
  
      The list of the possible emulator, arch, machine and domain can be found in
      the host capabilities output.
  
      If none of the parameters is provided, the libvirt default one is returned.
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' virt.domain_capabilities arch='x86_64' domain='kvm'
  
      '''
      conn = __get_conn(**kwargs)
      result = []
      try:
          caps = ElementTree.fromstring(conn.getDomainCapabilities(emulator, arch, machine, domain, 0))
          result = _parse_domain_caps(caps)
      finally:
          conn.close()
  
      return result