Examples

POST /api/hosts
{
  "host": {
    "name": "testhost11",
    "environment_id": 334344675,
    "domain_id": 22495316,
    "ptable_id": 1007981803,
    "medium_id": 980190962,
    "architecture_id": 501905019,
    "operatingsystem_id": 1073012828,
    "puppet_proxy_id": 182953976,
    "compute_resource_id": 980190962,
    "root_pass": "xybxa6JUkz63w",
    "location_id": 255093256,
    "organization_id": 447626438,
    "ip": "10.0.0.20",
    "mac": "52:53:00:1e:85:93",
    "compute_attributes": {
      "cpus": 4,
      "memory": 1024
    },
    "enabled": false
  }
}
201
{
  "ip": "10.0.0.20",
  "ip6": null,
  "environment_id": 334344675,
  "environment_name": "production",
  "last_report": null,
  "mac": "52:53:00:1e:85:93",
  "realm_id": null,
  "realm_name": null,
  "sp_mac": null,
  "sp_ip": null,
  "sp_name": null,
  "domain_id": 22495316,
  "domain_name": "mydomain.net",
  "architecture_id": 501905019,
  "architecture_name": "x86_64",
  "operatingsystem_id": 1073012828,
  "operatingsystem_name": "RHEL 6.1",
  "subnet_id": null,
  "subnet_name": null,
  "subnet6_id": null,
  "subnet6_name": null,
  "sp_subnet_id": null,
  "ptable_id": 1007981803,
  "ptable_name": "ptable1",
  "medium_id": 980190962,
  "medium_name": "CentOS 5.4",
  "pxe_loader": "Grub UEFI",
  "build": false,
  "comment": null,
  "disk": null,
  "installed_at": null,
  "model_id": null,
  "hostgroup_id": null,
  "owner_id": 135138680,
  "owner_name": "Admin User",
  "owner_type": "User",
  "enabled": false,
  "managed": true,
  "use_image": null,
  "image_file": "",
  "uuid": null,
  "compute_resource_id": 980190962,
  "compute_resource_name": "bigcompute",
  "compute_profile_id": null,
  "compute_profile_name": null,
  "capabilities": [
    "build",
    "image",
    "new_volume"
  ],
  "provision_method": "build",
  "certname": "testhost11.mydomain.net",
  "image_id": null,
  "image_name": null,
  "created_at": "2018-11-15 19:01:36 UTC",
  "updated_at": "2018-11-15 19:01:36 UTC",
  "last_compile": null,
  "global_status": 0,
  "global_status_label": "Warning",
  "organization_id": 447626438,
  "organization_name": "Organization 1",
  "location_id": 255093256,
  "location_name": "Location 1",
  "puppet_status": 0,
  "model_name": null,
  "configuration_status": 0,
  "configuration_status_label": "Alerts disabled",
  "build_status": 0,
  "build_status_label": "Installed",
  "name": "testhost11.mydomain.net",
  "id": 2,
  "puppet_proxy_id": 182953976,
  "puppet_proxy_name": "Puppetmaster Proxy",
  "puppet_ca_proxy_id": 182953976,
  "puppet_ca_proxy_name": "Puppetmaster Proxy",
  "puppet_proxy": {
    "name": "Puppetmaster Proxy",
    "id": 182953976,
    "url": "http://else.where:4567"
  },
  "puppet_ca_proxy": {
    "name": "Puppetmaster Proxy",
    "id": 182953976,
    "url": "http://else.where:4567"
  },
  "hostgroup_name": null,
  "hostgroup_title": null,
  "parameters": [],
  "all_parameters": [
    {
      "priority": null,
      "created_at": "2018-11-15 19:01:27 UTC",
      "updated_at": "2018-11-15 19:01:27 UTC",
      "id": 716195090,
      "name": "os1",
      "value": "os1"
    },
    {
      "priority": null,
      "created_at": "2018-11-15 19:01:27 UTC",
      "updated_at": "2018-11-15 19:01:27 UTC",
      "id": 665394701,
      "name": "parameter",
      "value": "value1"
    },
    {
      "priority": null,
      "created_at": "2018-11-15 19:01:27 UTC",
      "updated_at": "2018-11-15 19:01:27 UTC",
      "id": 513706444,
      "name": "loc_param",
      "value": "abc"
    },
    {
      "priority": null,
      "created_at": "2018-11-15 19:01:27 UTC",
      "updated_at": "2018-11-15 19:01:27 UTC",
      "id": 32400255,
      "name": "org_param",
      "value": "xyz"
    },
    {
      "priority": null,
      "created_at": "2018-11-15 19:01:27 UTC",
      "updated_at": "2018-11-15 19:01:27 UTC",
      "id": 636252244,
      "name": "test",
      "value": "myvalue"
    }
  ],
  "interfaces": [
    {
      "subnet_id": null,
      "subnet_name": null,
      "subnet6_id": null,
      "subnet6_name": null,
      "domain_id": 22495316,
      "domain_name": "mydomain.net",
      "created_at": "2018-11-15 19:01:36 UTC",
      "updated_at": "2018-11-15 19:01:36 UTC",
      "managed": true,
      "identifier": null,
      "id": 2,
      "name": "testhost11.mydomain.net",
      "ip": "10.0.0.20",
      "ip6": null,
      "mac": "52:53:00:1e:85:93",
      "mtu": null,
      "fqdn": "testhost11.mydomain.net",
      "primary": true,
      "provision": true,
      "type": "interface",
      "virtual": false
    }
  ],
  "puppetclasses": [],
  "config_groups": [],
  "all_puppetclasses": [],
  "permissions": {
    "console_hosts": true,
    "build_hosts": true,
    "power_hosts": true,
    "edit_hosts": true,
    "destroy_hosts": true,
    "create_hosts": true,
    "ipmi_boot_hosts": true,
    "view_hosts": true,
    "puppetrun_hosts": true
  }
}

Params

Param name Description
location_id
optional

Scope by locations

Validations:

  • Must be a Integer

organization_id
optional

Scope by organizations

Validations:

  • Must be a Integer

host
required

Validations:

  • Must be a Hash

host[name]
required

Validations:

  • Must be a String

host[location_id]
required

required if locations are enabled

Validations:

  • Must be a number.

host[organization_id]
required

required if organizations are enabled

Validations:

  • Must be a number.

host[environment_id]
optional , nil allowed

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

Validations:

  • Must be a String

host[ip]
optional , nil allowed

not required if using a subnet with DHCP proxy

Validations:

  • Must be a String

host[mac]
optional , nil allowed

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

Validations:

  • Must be a String

host[architecture_id]
optional , nil allowed

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

Validations:

  • Must be a number.

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[realm_id]
optional , nil allowed

Validations:

  • Must be a number.

host[puppet_proxy_id]
optional , nil allowed

Puppet proxy ID

Validations:

  • Must be a number.

host[puppet_ca_proxy_id]
optional , nil allowed

Puppet CA proxy ID

Validations:

  • Must be a number.

host[puppetclass_ids]
optional , nil allowed

Validations:

  • Must be an array of any type

host[config_group_ids]
optional , nil allowed

IDs of associated config groups

Validations:

  • Must be an array of any type

host[operatingsystem_id]
optional , nil allowed

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

Validations:

  • Must be a String

host[medium_id]
optional , nil allowed

required if not imaged based provisioning and host is managed and value is not inherited from host group

Validations:

  • Must be a String

host[pxe_loader]
optional , nil allowed

DHCP filename option (Grub2/PXELinux by default)

Validations:

  • Must be one of: None, PXELinux BIOS, PXELinux UEFI, Grub UEFI, Grub2 UEFI, Grub2 UEFI SecureBoot, Grub2 UEFI HTTP, Grub2 UEFI HTTPS, Grub2 UEFI HTTPS SecureBoot, iPXE Embedded, iPXE UEFI HTTP, iPXE Chain BIOS, iPXE Chain UEFI.

host[ptable_id]
optional , nil allowed

required if host is managed and custom partition has not been defined

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[compute_resource_id]
optional , nil allowed

nil means host is bare metal

Validations:

  • Must be a number.

host[root_pass]
optional , nil allowed

required if host is managed and value is not inherited from host group or default password in settings

Validations:

  • Must be a String

host[model_id]
optional , nil allowed

Validations:

  • Must be a number.

host[hostgroup_id]
optional , nil allowed

Validations:

  • Must be a number.

host[owner_id]
optional , nil allowed

Validations:

  • Must be a number.

host[owner_type]
optional , nil allowed

Host’s owner type

Validations:

  • Must be one of: User, Usergroup.

host[image_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]
required

Name of the parameter

Validations:

  • Must be a String

host[host_parameters_attributes][value]
required

Parameter value

Validations:

  • Must be a String

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[provision_method]
optional , nil allowed

The method used to provision the host.

Validations:

  • Must be one of: build, image.

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[progress_report_id]
optional , nil allowed

UUID to track orchestration tasks status, GET /api/orchestration/:UUID/tasks

Validations:

  • Must be a String

host[comment]
optional , nil allowed

Additional information about this host

Validations:

  • Must be a String

host[capabilities]
optional , nil allowed

Validations:

  • Must be a String

host[compute_profile_id]
optional , nil allowed

Validations:

  • Must be a number.

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:

  • Must be a String

host[interfaces_attributes][ip]
optional , nil allowed

IPv4 address of interface

Validations:

  • Must be a String

host[interfaces_attributes][ip6]
optional , nil allowed

IPv6 address of interface

Validations:

  • Must be a 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:

  • Must be a 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:

  • Must be a 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:

  • Must be a String

host[interfaces_attributes][password]
optional , nil allowed

Only for BMC interfaces.

Validations:

  • Must be a String

host[interfaces_attributes][provider]
optional , nil allowed

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

Validations:

  • Must be one of: IPMI, 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:

  • Must be a String

host[interfaces_attributes][mtu]
optional , nil allowed

MTU, this attribute has precedence over the subnet MTU.

Validations:

  • Must be a 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:

  • Must be a 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:

  • Must be a String

host[interfaces_attributes][compute_attributes]
optional , nil allowed

Additional compute resource specific attributes for the interface.

Validations:

  • Must be a Hash

host[compute_attributes]
optional , nil allowed

Additional compute resource specific attributes.

Validations:

  • Must be a Hash