GET /api/register
Render Global registration template

Params

Param name Description
organization_id
optional

ID of the Organization to register the host in

Validations:

  • Must be a number.

location_id
optional

ID of the Location to register the host in

Validations:

  • Must be a number.

hostgroup_id
optional

ID of the Host group to register the host in

Validations:

  • Must be a number.

operatingsystem_id
optional

ID of the Operating System to register the host in

Validations:

  • Must be a number.

setup_insights
optional

Set 'host_registration_insights' parameter for the host. If it is set to true, insights client will be installed and registered on Red Hat family operating systems

Validations:

  • Must be one of: true, false, 1, 0.

setup_remote_execution
optional

Set 'host_registration_remote_execution' parameter for the host. If it is set to true, SSH keys will be installed on the host

Validations:

  • Must be one of: true, false, 1, 0.

packages
optional

Packages to install on the host when registered. Can be set by `host_packages` parameter, example: `pkg1 pkg2`

Validations:

  • String

update_packages
optional

Update all packages on the host

Validations:

  • Must be one of: true, false, 1, 0.

repo
optional

Repository URL / details, for example for Debian OS family: 'deb deb.example.com/ buster 1.0', for Red Hat OS family: 'yum.theforeman.org/client/latest/el8/x86_64/'

Validations:

  • String

repo_gpg_key_url
optional

URL of the GPG key for the repository

Validations:

  • String

remote_execution_interface
optional

Identifier of the Host interface for Remote execution

Validations:

  • String

setup_remote_execution_pull
optional

Set 'host_registration_remote_execution_pull' parameter for the host. If it is set to true, pull provider client will be deployed on the host

Validations:

  • Must be one of: true, false, 1, 0.


POST /api/register
Find or create a host and render the 'Host initial configuration' template

Examples

POST /register
{
  "host": {
    "name": "centos-test.example.com",
    "managed": false,
    "build": false,
    "organization_id": 447626445,
    "location_id": 447626444,
    "operatingsystem_id": 1073012859,
    "type": "Host::Managed"
  },
  "remote_execution_interface": "dummy999",
  "registration": {
    "host": {
      "name": "centos-test.example.com",
      "managed": false,
      "build": false,
      "organization_id": 447626445,
      "location_id": 447626444,
      "operatingsystem_id": 1073012859,
      "type": "Host::Managed"
    },
    "remote_execution_interface": "dummy999"
  }
}
404
echo "ERROR: not_found";
echo "Interface with the 'dummy999' identifier was specified as a remote execution interface, however the interface was not found on the host. If the interface exists, it needs to be created in Foreman during the registration.";
exit 1

Params

Param name Description
location_id
optional

Set the current location context for the request

Validations:

  • Integer

organization_id
optional

Set the current organization context for the request

Validations:

  • Integer

host
required

Validations:

  • Hash

host[name]
optional

Validations:

  • String

host[location_id]
optional

Validations:

  • Must be a number.

host[organization_id]
optional

Validations:

  • Must be a number.

host[ip]
optional , nil allowed

IPv4 address, not required if using a subnet with DHCP proxy

Validations:

  • String

host[ip6]
optional , nil allowed

IPv6 address, not required if using a subnet with DHCP proxy

Validations:

  • String

host[mac]
optional , nil allowed

required for managed host that is bare metal, not required if it's a virtual machine

Validations:

  • String

host[domain_id]
optional , nil allowed

required if host is managed and value is not inherited from host group

Validations:

  • Must be a number.

host[operatingsystem_id]
optional , nil allowed

required if host is managed and value is not inherited from host group

Validations:

  • Must be a number.

host[subnet_id]
optional , nil allowed

required if host is managed and value is not inherited from host group

Validations:

  • Must be a number.

host[model_id]
optional , nil allowed

Validations:

  • Must be a number.

host[hostgroup_id]
optional , nil allowed

Validations:

  • Must be a number.

host[host_parameters_attributes]
optional , nil allowed

Host's parameters (array or indexed hash)

Validations:

  • Must be an Array of nested elements

host[host_parameters_attributes][name]
optional

Name of the parameter

Validations:

  • String

host[host_parameters_attributes][value]
optional

Parameter value

Validations:

  • String

host[host_parameters_attributes][parameter_type]
optional , nil allowed

Type of value

Validations:

  • Must be one of: string, boolean, integer, real, array, hash, yaml, json.

host[host_parameters_attributes][hidden_value]
optional , nil allowed

Validations:

  • Must be one of: true, false, 1, 0.

host[build]
optional , nil allowed

Validations:

  • Must be one of: true, false, 1, 0.

host[enabled]
optional , nil allowed

Include this host within Foreman reporting

Validations:

  • Must be one of: true, false, 1, 0.

host[managed]
optional , nil allowed

True/False flag whether a host is managed or unmanaged. Note: this value also determines whether several parameters are required or not

Validations:

  • Must be one of: true, false, 1, 0.

host[comment]
optional , nil allowed

Additional information about this host

Validations:

  • String

host[interfaces_attributes]
optional , nil allowed

Host's network interfaces

Validations:

  • Must be an Array of nested elements

host[interfaces_attributes][mac]
optional , nil allowed

MAC address of interface. Required for managed interfaces on bare metal.

Validations:

  • String

host[interfaces_attributes][ip]
optional , nil allowed

IPv4 address of interface

Validations:

  • String

host[interfaces_attributes][ip6]
optional , nil allowed

IPv6 address of interface

Validations:

  • String

host[interfaces_attributes][type]
optional , nil allowed

Interface type, e.g. bmc. Default is interface

Validations:

  • Must be one of: interface, bmc, bond, bridge.

host[interfaces_attributes][name]
optional , nil allowed

Interface's DNS name

Validations:

  • String

host[interfaces_attributes][subnet_id]
optional , nil allowed

Foreman subnet ID of IPv4 interface

Validations:

  • Must be a number.

host[interfaces_attributes][subnet6_id]
optional , nil allowed

Foreman subnet ID of IPv6 interface

Validations:

  • Must be a number.

host[interfaces_attributes][domain_id]
optional , nil allowed

Foreman domain ID of interface. Required for primary interfaces on managed hosts.

Validations:

  • Must be a number.

host[interfaces_attributes][identifier]
optional , nil allowed

Device identifier, e.g. eth0 or eth1.1

Validations:

  • String

host[interfaces_attributes][managed]
optional , nil allowed

Should this interface be managed via DHCP and DNS smart proxy and should it be configured during provisioning?

Validations:

  • Must be one of: true, false, 1, 0.

host[interfaces_attributes][primary]
optional , nil allowed

Should this interface be used for constructing the FQDN of the host? Each managed hosts needs to have one primary interface.

Validations:

  • Must be one of: true, false, 1, 0.

host[interfaces_attributes][provision]
optional , nil allowed

Should this interface be used for TFTP of PXELinux (or SSH for image-based hosts)? Each managed hosts needs to have one provision interface.

Validations:

  • Must be one of: true, false, 1, 0.

host[interfaces_attributes][username]
optional , nil allowed

Only for BMC interfaces.

Validations:

  • String

host[interfaces_attributes][password]
optional , nil allowed

Only for BMC interfaces.

Validations:

  • String

host[interfaces_attributes][provider]
optional , nil allowed

Interface provider, e.g. IPMI. Only for BMC interfaces.

Validations:

  • Must be one of: IPMI, Redfish, SSH.

host[interfaces_attributes][virtual]
optional , nil allowed

Alias or VLAN device

Validations:

  • Must be one of: true, false, 1, 0.

host[interfaces_attributes][tag]
optional , nil allowed

VLAN tag, this attribute has precedence over the subnet VLAN ID. Only for virtual interfaces.

Validations:

  • String

host[interfaces_attributes][mtu]
optional , nil allowed

MTU, this attribute has precedence over the subnet MTU.

Validations:

  • Integer

host[interfaces_attributes][attached_to]
optional , nil allowed

Identifier of the interface to which this interface belongs, e.g. eth1. Only for virtual interfaces.

Validations:

  • String

host[interfaces_attributes][mode]
optional , nil allowed

Bond mode of the interface, e.g. balance-rr. Only for bond interfaces.

Validations:

  • Must be one of: balance-rr, active-backup, balance-xor, broadcast, 802.3ad, balance-tlb, balance-alb.

host[interfaces_attributes][attached_devices]
optional , nil allowed

Identifiers of attached interfaces, e.g. `['eth1', 'eth2']`. For bond interfaces those are the slaves. Only for bond and bridges interfaces.

Validations:

  • Must be an array of any type

host[interfaces_attributes][bond_options]
optional , nil allowed

Space separated options, e.g. miimon=100. Only for bond interfaces.

Validations:

  • String

host[interfaces_attributes][compute_attributes]
optional , nil allowed

Additional compute resource specific attributes for the interface.

Validations:

  • Hash

host[content_facet_attributes]
optional , nil allowed

Parameters for host's content_facet facet

Validations:

  • Hash

host[content_facet_attributes][content_view_id]
optional , nil allowed

Validations:

  • Integer

host[content_facet_attributes][lifecycle_environment_id]
optional , nil allowed

Validations:

  • Integer

host[content_facet_attributes][content_source_id]
optional , nil allowed

Validations:

  • Integer

host[content_facet_attributes][kickstart_repository_id]
optional , nil allowed

Repository Id associated with the kickstart repo used for provisioning

Validations:

  • Integer

host[subscription_facet_attributes]
optional , nil allowed

Parameters for host's subscription_facet facet

Validations:

  • Hash

host[subscription_facet_attributes][release_version]
optional , nil allowed

Release version for this Host to use (7Server, 7.1, etc)

Validations:

  • String

host[subscription_facet_attributes][autoheal]
optional , nil allowed

Sets whether the Host will autoheal subscriptions upon checkin

Validations:

  • Must be one of: true, false, 1, 0.

host[subscription_facet_attributes][purpose_usage]
optional , nil allowed

Sets the system purpose usage

Validations:

  • String

host[subscription_facet_attributes][purpose_role]
optional , nil allowed

Sets the system purpose usage

Validations:

  • String

host[subscription_facet_attributes][purpose_addons]
optional , nil allowed

Sets the system add-ons

Validations:

  • Must be an array of any type

host[subscription_facet_attributes][service_level]
optional , nil allowed

Service level to be used for autoheal

Validations:

  • String

host[subscription_facet_attributes][hypervisor_guest_uuids]
optional , nil allowed

List of hypervisor guest uuids

Validations:

  • Must be an array of any type

host[subscription_facet_attributes][installed_products_attributes]
optional , nil allowed

List of products installed on the host

Validations:

  • Must be an Array of nested elements

host[subscription_facet_attributes][installed_products_attributes][product_id]
optional , nil allowed

Product id as listed from a host's installed products, this is not the same product id as the products api returns

Validations:

  • String

host[subscription_facet_attributes][installed_products_attributes][product_name]
optional , nil allowed

Product name as listed from a host's installed products

Validations:

  • String

host[subscription_facet_attributes][installed_products_attributes][arch]
optional , nil allowed

Product architecture

Validations:

  • String

host[subscription_facet_attributes][installed_products_attributes][version]
optional , nil allowed

Product version

Validations:

  • String

setup_insights
optional

Set 'host_registration_insights' parameter for the host. If it is set to true, insights client will be installed and registered on Red Hat family operating systems

Validations:

  • Must be one of: true, false, 1, 0.

setup_remote_execution
optional

Set 'host_registration_remote_execution' parameter for the host. If it is set to true, SSH keys will be installed on the host

Validations:

  • Must be one of: true, false, 1, 0.

remote_execution_interface
optional

Identifier of the Host interface for Remote execution

Validations:

  • String

setup_remote_execution_pull
optional

Set 'host_registration_remote_execution_pull' parameter for the host. If it is set to true, pull provider client will be deployed on the host

Validations:

  • Must be one of: true, false, 1, 0.