GET /api/provisioning_templates
List provisioning templates

GET /api/operatingsystems/:operatingsystem_id/provisioning_templates
List provisioning templates per operating system

GET /api/locations/:location_id/provisioning_templates
List provisioning templates per location

GET /api/organizations/:organization_id/provisioning_templates
List provisioning templates per organization

Examples

GET /api/provisioning_templates
200
{
  "total": 16,
  "subtotal": 16,
  "page": 1,
  "per_page": 20,
  "search": null,
  "sort": {
    "by": null,
    "order": null
  },
  "results": [
    {
      "snippet": false,
      "description": null,
      "created_at": "2021-09-01 12:55:45 UTC",
      "updated_at": "2021-09-01 12:55:45 UTC",
      "id": 1007981701,
      "name": "centos5_3_pxelinux",
      "template_kind_id": 452984334,
      "template_kind_name": "PXELinux"
    },
    {
      "snippet": false,
      "description": null,
      "created_at": "2021-09-01 12:55:45 UTC",
      "updated_at": "2021-09-01 12:55:45 UTC",
      "id": 560244479,
      "name": "Global Registration",
      "template_kind_id": 581478312,
      "template_kind_name": "registration"
    },
    {
      "snippet": false,
      "description": null,
      "created_at": "2021-09-01 12:55:45 UTC",
      "updated_at": "2021-09-01 12:55:45 UTC",
      "id": 698706415,
      "name": "iPXE Dummy Menu",
      "template_kind_id": 698706415,
      "template_kind_name": "iPXE"
    },
    {
      "snippet": false,
      "description": null,
      "created_at": "2021-09-01 12:55:45 UTC",
      "updated_at": "2021-09-01 12:55:45 UTC",
      "id": 508279162,
      "name": "Linux host initial configuration",
      "template_kind_id": 508279162,
      "template_kind_name": "host_init_config"
    },
    {
      "snippet": false,
      "description": null,
      "created_at": "2021-09-01 12:55:45 UTC",
      "updated_at": "2021-09-01 12:55:45 UTC",
      "id": 718456980,
      "name": "Locked Template",
      "template_kind_id": 983253650,
      "template_kind_name": "provision"
    },
    {
      "snippet": false,
      "description": null,
      "created_at": "2021-09-01 12:55:45 UTC",
      "updated_at": "2021-09-01 12:55:45 UTC",
      "id": 104314179,
      "name": "MyFinish",
      "template_kind_id": 550103832,
      "template_kind_name": "finish"
    },
    {
      "snippet": false,
      "description": null,
      "created_at": "2021-09-01 12:55:45 UTC",
      "updated_at": "2021-09-01 12:55:45 UTC",
      "id": 981457253,
      "name": "MyScript",
      "template_kind_id": 478250810,
      "template_kind_name": "script"
    },
    {
      "snippet": false,
      "description": null,
      "created_at": "2021-09-01 12:55:45 UTC",
      "updated_at": "2021-09-01 12:55:45 UTC",
      "id": 943779058,
      "name": "MyString",
      "template_kind_id": 698706415,
      "template_kind_name": "iPXE"
    },
    {
      "snippet": false,
      "description": null,
      "created_at": "2021-09-01 12:55:45 UTC",
      "updated_at": "2021-09-01 12:55:45 UTC",
      "id": 269958254,
      "name": "MyString2",
      "template_kind_id": 983253650,
      "template_kind_name": "provision"
    },
    {
      "snippet": false,
      "description": null,
      "created_at": "2021-09-01 12:55:45 UTC",
      "updated_at": "2021-09-01 12:55:45 UTC",
      "id": 684651467,
      "name": "PXE Default Menu",
      "template_kind_id": 452984334,
      "template_kind_name": "PXELinux"
    },
    {
      "snippet": false,
      "description": null,
      "created_at": "2021-09-01 12:55:45 UTC",
      "updated_at": "2021-09-01 12:55:45 UTC",
      "id": 554905648,
      "name": "PXEGrub2 global default",
      "template_kind_id": 701398793,
      "template_kind_name": "PXEGrub2"
    },
    {
      "snippet": false,
      "description": null,
      "created_at": "2021-09-01 12:55:45 UTC",
      "updated_at": "2021-09-01 12:55:45 UTC",
      "id": 131565194,
      "name": "PXEGrub Dummy Menu",
      "template_kind_id": 131565194,
      "template_kind_name": "PXEGrub"
    },
    {
      "snippet": false,
      "description": null,
      "created_at": "2021-09-01 12:55:45 UTC",
      "updated_at": "2021-09-01 12:55:45 UTC",
      "id": 824224502,
      "name": "PXEGrub global default",
      "template_kind_id": 131565194,
      "template_kind_name": "PXEGrub"
    },
    {
      "snippet": false,
      "description": null,
      "created_at": "2021-09-01 12:55:45 UTC",
      "updated_at": "2021-09-01 12:55:45 UTC",
      "id": 821548108,
      "name": "PXELinux default local boot",
      "template_kind_id": 452984334,
      "template_kind_name": "PXELinux"
    },
    {
      "snippet": false,
      "description": null,
      "created_at": "2021-09-01 12:55:45 UTC",
      "updated_at": "2021-09-01 12:55:45 UTC",
      "id": 352050261,
      "name": "PXELinux global default",
      "template_kind_id": 452984334,
      "template_kind_name": "PXELinux"
    },
    {
      "snippet": false,
      "description": null,
      "created_at": "2021-09-01 12:55:45 UTC",
      "updated_at": "2021-09-01 12:55:45 UTC",
      "id": 56083308,
      "name": "suse_pxelinux",
      "template_kind_id": 452984334,
      "template_kind_name": "PXELinux"
    }
  ]
}

Params

Param name Description
operatingsystem_id
optional

ID of operating system

Validations:

  • Must be a number.

location_id
optional

Scope by locations

Validations:

  • Must be a Integer

organization_id
optional

Scope by organizations

Validations:

  • Must be a Integer

search
optional

filter results

Validations:

  • Must be a String

order
optional

Sort and order by a searchable field, e.g. ‘id DESC’

Validations:

  • Must be a String

page
optional

Page number, starting at 1

Validations:

  • Must be a number.

per_page
optional

Number of results per page to return, ‘all’ to return all results

Validations:

  • Must match regular expression /\A([1-9]\d|all)\Z$/.

Search fields

Field name Type Possible values
default_template true, false
hostgroup string
kind string
location string
location_id integer
locked true, false
name string
operatingsystem string
organization string
organization_id integer
snippet true, false
template text
vendor string

GET /api/provisioning_templates/:id
Show provisioning template details

Examples

GET /api/provisioning_templates/1007981701-centos5_3_pxelinux
200
{
  "template": "default linux~label linux~kernel <%= @kernel %>~append initrd=<%= @initrd %> ks=<%= foreman_url(\"kickstart\")%> ksdevice=bootif network kssendmac",
  "locked": false,
  "snippet": false,
  "description": null,
  "created_at": "2021-09-01 12:55:45 UTC",
  "updated_at": "2021-09-01 12:55:45 UTC",
  "id": 1007981701,
  "name": "centos5_3_pxelinux",
  "template_kind_id": 452984334,
  "template_kind_name": "PXELinux",
  "template_combinations": [],
  "operatingsystems": [
    {
      "id": 309172073,
      "name": "centos",
      "title": "centos 5.3"
    },
    {
      "id": 1073012828,
      "name": "Redhat",
      "title": "RHEL 6.1"
    },
    {
      "id": 331303656,
      "name": "Ubuntu",
      "title": "Ubuntu 10.10"
    }
  ],
  "os_default_templates": [
    {
      "id": 281110143,
      "provisioning_template_id": 1007981701,
      "provisioning_template_name": "centos5_3_pxelinux",
      "template_kind_id": 710512633,
      "template_kind_name": null,
      "operatingsystem_id": 1073012828,
      "operatingsystem_name": "RHEL 6.1"
    },
    {
      "id": 638205575,
      "provisioning_template_id": 1007981701,
      "provisioning_template_name": "centos5_3_pxelinux",
      "template_kind_id": 710512633,
      "template_kind_name": null,
      "operatingsystem_id": 331303656,
      "operatingsystem_name": "Ubuntu 10.10"
    }
  ],
  "locations": [],
  "organizations": []
}

Params

Param name Description
location_id
optional

Set the current location context for the request

Validations:

  • Must be a Integer

organization_id
optional

Set the current organization context for the request

Validations:

  • Must be a Integer

id
required

Validations:

  • Must be an identifier, string from 1 to 128 characters containing only alphanumeric characters, space, underscore(_), hypen(-) with no leading or trailing space.


POST /api/provisioning_templates
Create a provisioning template

Examples

POST /api/provisioning_templates
{
  "provisioning_template": {
    "name": "no",
    "template_kind_name": "kind_that_does_not_exist"
  }
}
422
{
  "error": {
    "message": "Could not find template_kind with name: kind_that_does_not_exist"
  }
}

Params

Param name Description
location_id
optional

Set the current location context for the request

Validations:

  • Must be a Integer

organization_id
optional

Set the current organization context for the request

Validations:

  • Must be a Integer

provisioning_template
required

Validations:

  • Must be a Hash

provisioning_template[name]
required

template name

Validations:

  • Must be a String

provisioning_template[description]
optional , nil allowed

Validations:

  • Must be a String

provisioning_template[template]
required

Validations:

  • Must be a String

provisioning_template[snippet]
optional , nil allowed

Validations:

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

provisioning_template[audit_comment]
optional , nil allowed

Validations:

  • Must be a String

provisioning_template[template_kind_id]
optional , nil allowed

not relevant for snippet

Validations:

  • Must be a number.

provisioning_template[template_combinations_attributes]
optional , nil allowed

Array of template combinations (hostgroup_id, environment_id)

Validations:

  • Must be an array of any type

provisioning_template[operatingsystem_ids]
optional , nil allowed

Array of operating system IDs to associate with the template

Validations:

  • Must be an array of any type

provisioning_template[locked]
optional , nil allowed

Whether or not the template is locked for editing

Validations:

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

provisioning_template[location_ids]
optional , nil allowed

REPLACE locations with given ids

Validations:

  • Must be an array of any type

provisioning_template[organization_ids]
optional , nil allowed

REPLACE organizations with given ids.

Validations:

  • Must be an array of any type


POST /api/provisioning_templates/import
Import a provisioning template

Examples

POST /api/provisioning_templates/import
{
  "provisioning_template": {
    "name": "provisioning_template96",
    "template": "<%#\nsnippet: true\n-%>\nbbbb"
  }
}
201
{
  "template": "<%#\nsnippet: true\n-%>\nbbbb",
  "name": "provisioning_template96",
  "id": 1007981829,
  "snippet": true,
  "description": null,
  "template_kind_id": null,
  "created_at": "2021-09-01T12:57:48.720Z",
  "updated_at": "2021-09-01T12:57:48.762Z",
  "locked": false,
  "default": false,
  "vendor": null,
  "os_family": null
}

Params

Param name Description
location_id
optional

Set the current location context for the request

Validations:

  • Must be a Integer

organization_id
optional

Set the current organization context for the request

Validations:

  • Must be a Integer

provisioning_template
required

Validations:

  • Must be a Hash

provisioning_template[name]
optional

template name

Validations:

  • Must be a String

provisioning_template[template]
optional

template contents including metadata

Validations:

  • Must be a String

provisioning_template[location_ids]
optional , nil allowed

REPLACE locations with given ids

Validations:

  • Must be an array of any type

provisioning_template[organization_ids]
optional , nil allowed

REPLACE organizations with given ids.

Validations:

  • Must be an array of any type

options
optional

Validations:

  • Must be a Hash

options[force]
optional , nil allowed

use if you want update locked templates

Validations:

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

options[associate]
optional , nil allowed

determines when the template should associate objects based on metadata, new means only when new template is being created, always means both for new and existing template which is only being updated, never ignores metadata

Validations:

  • Must be one of: new, always, never.

options[lock]
optional , nil allowed

lock imported templates (false by default)

Validations:

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

options[default]
optional , nil allowed

makes the template default meaning it will be automatically associated with newly created organizations and locations (false by default)

Validations:

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


PUT /api/provisioning_templates/:id
Update a provisioning template

Examples

PUT /api/provisioning_templates/1007981701-centos5_3_pxelinux
{
  "provisioning_template": {
    "audit_comment": "aha",
    "template": "tmp"
  }
}
200
{
  "template": "tmp",
  "locked": false,
  "snippet": false,
  "description": null,
  "created_at": "2021-09-01 12:55:45 UTC",
  "updated_at": "2021-09-01 12:57:47 UTC",
  "id": 1007981701,
  "name": "centos5_3_pxelinux",
  "template_kind_id": 452984334,
  "template_kind_name": "PXELinux",
  "template_combinations": [],
  "operatingsystems": [
    {
      "id": 309172073,
      "name": "centos",
      "title": "centos 5.3"
    },
    {
      "id": 1073012828,
      "name": "Redhat",
      "title": "RHEL 6.1"
    },
    {
      "id": 331303656,
      "name": "Ubuntu",
      "title": "Ubuntu 10.10"
    }
  ],
  "os_default_templates": [
    {
      "id": 281110143,
      "provisioning_template_id": 1007981701,
      "provisioning_template_name": "centos5_3_pxelinux",
      "template_kind_id": 710512633,
      "template_kind_name": null,
      "operatingsystem_id": 1073012828,
      "operatingsystem_name": "RHEL 6.1"
    },
    {
      "id": 638205575,
      "provisioning_template_id": 1007981701,
      "provisioning_template_name": "centos5_3_pxelinux",
      "template_kind_id": 710512633,
      "template_kind_name": null,
      "operatingsystem_id": 331303656,
      "operatingsystem_name": "Ubuntu 10.10"
    }
  ],
  "locations": [],
  "organizations": []
}

Params

Param name Description
location_id
optional

Set the current location context for the request

Validations:

  • Must be a Integer

organization_id
optional

Set the current organization context for the request

Validations:

  • Must be a Integer

id
required

Validations:

  • Must be an identifier, string from 1 to 128 characters containing only alphanumeric characters, space, underscore(_), hypen(-) with no leading or trailing space.

provisioning_template
required

Validations:

  • Must be a Hash

provisioning_template[name]
optional

template name

Validations:

  • Must be a String

provisioning_template[description]
optional , nil allowed

Validations:

  • Must be a String

provisioning_template[template]
optional

Validations:

  • Must be a String

provisioning_template[snippet]
optional , nil allowed

Validations:

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

provisioning_template[audit_comment]
optional , nil allowed

Validations:

  • Must be a String

provisioning_template[template_kind_id]
optional , nil allowed

not relevant for snippet

Validations:

  • Must be a number.

provisioning_template[template_combinations_attributes]
optional , nil allowed

Array of template combinations (hostgroup_id, environment_id)

Validations:

  • Must be an array of any type

provisioning_template[operatingsystem_ids]
optional , nil allowed

Array of operating system IDs to associate with the template

Validations:

  • Must be an array of any type

provisioning_template[locked]
optional , nil allowed

Whether or not the template is locked for editing

Validations:

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

provisioning_template[location_ids]
optional , nil allowed

REPLACE locations with given ids

Validations:

  • Must be an array of any type

provisioning_template[organization_ids]
optional , nil allowed

REPLACE organizations with given ids.

Validations:

  • Must be an array of any type


GET /api/provisioning_templates/revision

Params

Param name Description
location_id
optional

Set the current location context for the request

Validations:

  • Must be a Integer

organization_id
optional

Set the current organization context for the request

Validations:

  • Must be a Integer

version
optional

template version

Validations:

  • Must be a String


DELETE /api/provisioning_templates/:id
Delete a provisioning template

Examples

DELETE /api/provisioning_templates/1007981701-centos5_3_pxelinux
{
  "provisioning_template": {}
}
422
{
  "error": {
    "id": 1007981701,
    "errors": {
      "base": [
        "centos5_3_pxelinux is used by Redhat 6.1 - ",
        "centos5_3_pxelinux is used by Ubuntu 10.10 - "
      ]
    },
    "full_messages": [
      "centos5_3_pxelinux is used by Redhat 6.1 - ",
      "centos5_3_pxelinux is used by Ubuntu 10.10 - "
    ]
  }
}

Params

Param name Description
location_id
optional

Set the current location context for the request

Validations:

  • Must be a Integer

organization_id
optional

Set the current organization context for the request

Validations:

  • Must be a Integer

id
required

Validations:

  • Must be an identifier, string from 1 to 128 characters containing only alphanumeric characters, space, underscore(_), hypen(-) with no leading or trailing space.


POST /api/provisioning_templates/build_pxe_default
Update the default PXE menu on all configured TFTP servers

Examples

POST /api/provisioning_templates/build_pxe_default
{
  "provisioning_template": {}
}
200
{
  "message": "PXE files for templates PXEGrub2 global default, PXELinux global default, and PXEGrub global default have been deployed to all Smart Proxies"
}

Params

Param name Description
location_id
optional

Set the current location context for the request

Validations:

  • Must be a Integer

organization_id
optional

Set the current organization context for the request

Validations:

  • Must be a Integer


POST /api/provisioning_templates/:id/clone
Clone a provision template

Examples

POST /api/provisioning_templates/1007981701-centos5_3_pxelinux/clone
{
  "provisioning_template": {
    "name": ""
  }
}
422
{
  "error": {
    "id": null,
    "errors": {
      "name": [
        "can't be blank"
      ],
      "operatingsystems": [
        "is invalid"
      ]
    },
    "full_messages": [
      "Name can't be blank",
      "Operatingsystems is invalid"
    ]
  }
}

Params

Param name Description
location_id
optional

Set the current location context for the request

Validations:

  • Must be a Integer

organization_id
optional

Set the current organization context for the request

Validations:

  • Must be a Integer

id
required

Validations:

  • Must be an identifier, string from 1 to 128 characters containing only alphanumeric characters, space, underscore(_), hypen(-) with no leading or trailing space.

provisioning_template
required

Validations:

  • Must be a Hash

provisioning_template[name]
required

template name

Validations:

  • Must be a String


GET /api/provisioning_templates/:id/export
Export a provisioning template to ERB

Examples

GET /api/provisioning_templates/1007981701-centos5_3_pxelinux/export
200
<%#
name: centos5_3_pxelinux
snippet: false
model: ProvisioningTemplate
kind: PXELinux
oses:
- centos
- Redhat
- Ubuntu
-%>
default linux~label linux~kernel <%= @kernel %>~append initrd=<%= @initrd %> ks=<%= foreman_url("kickstart")%> ksdevice=bootif network kssendmac

Params

Param name Description
location_id
optional

Set the current location context for the request

Validations:

  • Must be a Integer

organization_id
optional

Set the current organization context for the request

Validations:

  • Must be a Integer

id
required

Validations:

  • Must be an identifier, string from 1 to 128 characters containing only alphanumeric characters, space, underscore(_), hypen(-) with no leading or trailing space.