GET /api/job_templates
List job templates

GET /api/locations/:location_id/job_templates
List job templates per location

GET /api/organizations/:organization_id/job_templates
List job templates per organization

Examples

GET /api/job_templates
200
{
  "total": 1,
  "subtotal": 1,
  "page": 1,
  "per_page": 20,
  "search": null,
  "sort": {
    "by": null,
    "order": null
  },
  "results": [
    {
      "id": 1007982065,
      "name": "Job template 231",
      "job_category": "Job name 235",
      "provider_type": "SSH",
      "snippet": false,
      "description_format": null,
      "created_at": "2023-11-27 20:15:29 UTC",
      "updated_at": "2023-11-27 20:15:29 UTC"
    }
  ]
}

Params

Param name Description
location_id
optional

Scope by locations

Validations:

  • Integer

organization_id
optional

Scope by organizations

Validations:

  • Integer

search
optional

filter results

Validations:

  • String

order
optional

Sort and order by a searchable field, e.g. '<field> DESC'

Validations:

  • 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$/.


POST /api/job_templates/import
Import a job template from ERB

Examples

POST /api/job_templates/import
{
  "template": "<%#\nname: Job template 230_renamed\nsnippet: false\nmodel: JobTemplate\njob_category: Job name 234\nprovider_type: SSH\nkind: job_template\norganizations:\n- Organization 1\nlocations:\n- Location 1\n%>\n\nid",
  "job_template": {
    "template": "<%#\nname: Job template 230_renamed\nsnippet: false\nmodel: JobTemplate\njob_category: Job name 234\nprovider_type: SSH\nkind: job_template\norganizations:\n- Organization 1\nlocations:\n- Location 1\n%>\n\nid"
  }
}
201
{
  "id": 1007982064,
  "name": "Job template 230_renamed",
  "template": "id",
  "snippet": false,
  "template_kind_id": null,
  "created_at": "2023-11-27T20:15:29.302Z",
  "updated_at": "2023-11-27T20:15:29.302Z",
  "locked": false,
  "default": false,
  "vendor": null,
  "os_family": null,
  "job_category": "Job name 234",
  "provider_type": "SSH",
  "description_format": null,
  "execution_timeout_interval": null,
  "description": null
}

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

template
required

Template ERB

Validations:

  • String

overwrite
optional

Overwrite template if it already exists

Validations:

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


GET /api/job_templates/:id/export
Export a job template to ERB

Examples

GET /api/job_templates/1007982072-Job%20template%20238/export
200
<%#
name: Job template 238
snippet: false
model: JobTemplate
job_category: Job name 242
provider_type: SSH
kind: job_template
organizations:
- Organization 1
locations:
- Location 1
%>

id

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

id
required

Validations:

  • string from 2 to 128 characters containing only alphanumeric characters, space, '_', '-' with no leading or trailing space..


GET /api/job_templates/:id
Show job template details

Examples

GET /api/job_templates/1007982077-Job%20template%20242
200
{
  "description": null,
  "description_format": null,
  "created_at": "2023-11-27 20:15:29 UTC",
  "updated_at": "2023-11-27 20:15:29 UTC",
  "template": "id",
  "locked": false,
  "id": 1007982077,
  "name": "Job template 242",
  "job_category": "Job name 246",
  "provider_type": "SSH",
  "snippet": false,
  "template_inputs": [],
  "effective_user": {
    "value": null,
    "current_user": false,
    "overridable": true
  },
  "locations": [
    {
      "id": 255093256,
      "name": "Location 1",
      "title": "Location 1",
      "description": null
    }
  ],
  "organizations": [
    {
      "id": 447626438,
      "name": "Organization 1",
      "title": "Organization 1",
      "description": null
    }
  ]
}

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

id
required

Validations:

  • string from 2 to 128 characters containing only alphanumeric characters, space, '_', '-' with no leading or trailing space..


POST /api/job_templates
Create a job template

Examples

POST /api/job_templates
{
  "job_template": {}
}
422
{
  "error": {
    "id": null,
    "errors": {
      "name": [
        "can't be blank"
      ],
      "template": [
        "can't be blank"
      ],
      "provider_type": [
        "can't be blank",
        "Translation missing. Options considered were:\n- en.activerecord.errors.models.job_template.attributes.provider_type.uniq\n- en.activerecord.errors.models.job_template.uniq\n- en.activerecord.errors.messages.uniq\n- en.errors.attributes.provider_type.uniq\n- en.errors.messages.uniq"
      ]
    },
    "full_messages": [
      "Name can't be blank",
      "Template can't be blank",
      "Provider type can't be blank",
      "Provider type Translation missing. Options considered were:\n- en.activerecord.errors.models.job_template.attributes.provider_type.uniq\n- en.activerecord.errors.models.job_template.uniq\n- en.activerecord.errors.messages.uniq\n- en.errors.attributes.provider_type.uniq\n- en.errors.messages.uniq"
    ]
  }
}

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

job_template
required

Validations:

  • Hash

job_template[name]
required

Template name

Validations:

  • String

job_template[description]
optional , nil allowed

Validations:

  • String

job_template[job_category]
required

Job category

Validations:

  • String

job_template[description_format]
optional , nil allowed

This template is used to generate the description. Input values can be used using the syntax %{package}. You may also include the job category and template name using %{job_category} and %{template_name}.

Validations:

  • String

job_template[template]
required

Validations:

  • String

job_template[provider_type]
required

Provider type

Validations:

  • Must be one of: SSH, script.

job_template[snippet]
optional , nil allowed

Validations:

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

job_template[audit_comment]
optional , nil allowed

Validations:

  • String

job_template[locked]
optional , nil allowed

Whether or not the template is locked for editing

Validations:

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

job_template[effective_user_attributes]
optional , nil allowed

Effective user options

Validations:

  • Hash

job_template[effective_user_attributes][value]
optional , nil allowed

What user should be used to run the script (using sudo-like mechanisms)

Validations:

  • String

job_template[effective_user_attributes][overridable]
optional , nil allowed

Whether it should be allowed to override the effective user from the invocation form.

Validations:

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

job_template[effective_user_attributes][current_user]
optional , nil allowed

Whether the current user login should be used as the effective user

Validations:

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

job_template[location_ids]
optional , nil allowed

REPLACE locations with given ids

Validations:

  • Must be an array of any type

job_template[organization_ids]
optional , nil allowed

REPLACE organizations with given ids.

Validations:

  • Must be an array of any type


PUT /api/job_templates/:id
Update a job template

Examples

PUT /api/job_templates/1007982071-Job%20template%20237
{
  "job_template": {
    "template": "blah"
  }
}
200
{
  "description": null,
  "description_format": null,
  "created_at": "2023-11-27 20:15:29 UTC",
  "updated_at": "2023-11-27 20:15:29 UTC",
  "template": "blah",
  "locked": false,
  "id": 1007982071,
  "name": "Job template 237",
  "job_category": "Job name 241",
  "provider_type": "SSH",
  "snippet": false,
  "template_inputs": [],
  "effective_user": {
    "value": null,
    "current_user": false,
    "overridable": true
  },
  "locations": [
    {
      "id": 255093256,
      "name": "Location 1",
      "title": "Location 1",
      "description": null
    }
  ],
  "organizations": [
    {
      "id": 447626438,
      "name": "Organization 1",
      "title": "Organization 1",
      "description": null
    }
  ]
}

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

id
required

Validations:

  • string from 2 to 128 characters containing only alphanumeric characters, space, '_', '-' with no leading or trailing space..

job_template
required

Validations:

  • Hash

job_template[name]
optional

Template name

Validations:

  • String

job_template[description]
optional , nil allowed

Validations:

  • String

job_template[job_category]
optional

Job category

Validations:

  • String

job_template[description_format]
optional , nil allowed

This template is used to generate the description. Input values can be used using the syntax %{package}. You may also include the job category and template name using %{job_category} and %{template_name}.

Validations:

  • String

job_template[template]
optional

Validations:

  • String

job_template[provider_type]
optional

Provider type

Validations:

  • Must be one of: SSH, script.

job_template[snippet]
optional , nil allowed

Validations:

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

job_template[audit_comment]
optional , nil allowed

Validations:

  • String

job_template[locked]
optional , nil allowed

Whether or not the template is locked for editing

Validations:

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

job_template[effective_user_attributes]
optional , nil allowed

Effective user options

Validations:

  • Hash

job_template[effective_user_attributes][value]
optional , nil allowed

What user should be used to run the script (using sudo-like mechanisms)

Validations:

  • String

job_template[effective_user_attributes][overridable]
optional , nil allowed

Whether it should be allowed to override the effective user from the invocation form.

Validations:

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

job_template[effective_user_attributes][current_user]
optional , nil allowed

Whether the current user login should be used as the effective user

Validations:

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

job_template[location_ids]
optional , nil allowed

REPLACE locations with given ids

Validations:

  • Must be an array of any type

job_template[organization_ids]
optional , nil allowed

REPLACE organizations with given ids.

Validations:

  • Must be an array of any type


GET /api/job_templates/revision

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

version
optional

Template version

Validations:

  • String


DELETE /api/job_templates/:id
Delete a job template

Examples

DELETE /api/job_templates/1007982067-Job%20template%20233
{
  "job_template": {}
}
200
{
  "id": 1007982067,
  "name": "Job template 233",
  "template": "id",
  "snippet": false,
  "template_kind_id": null,
  "created_at": "2023-11-27T20:15:29.450Z",
  "updated_at": "2023-11-27T20:15:29.450Z",
  "locked": false,
  "default": false,
  "vendor": null,
  "os_family": null,
  "job_category": "Job name 237",
  "provider_type": "SSH",
  "description_format": null,
  "execution_timeout_interval": null,
  "description": null
}

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

id
required

Validations:

  • string from 2 to 128 characters containing only alphanumeric characters, space, '_', '-' with no leading or trailing space..


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

Examples

POST /api/job_templates/1007982068-Job%20template%20234/clone
{
  "job_template": {
    "name": "MyClone"
  }
}
201
{
  "name": "MyClone",
  "id": 1007982068,
  "template": "id",
  "snippet": false,
  "template_kind_id": null,
  "created_at": "2023-11-27T20:15:29.507Z",
  "updated_at": "2023-11-27T20:15:29.521Z",
  "locked": false,
  "default": false,
  "vendor": null,
  "os_family": null,
  "job_category": "Job name 238",
  "provider_type": "SSH",
  "description_format": null,
  "execution_timeout_interval": null,
  "description": null
}

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

id
required

Validations:

  • string from 2 to 128 characters containing only alphanumeric characters, space, '_', '-' with no leading or trailing space..

job_template
required

Validations:

  • Hash

job_template[name]
required

Template name

Validations:

  • String