GET /api/roles
List all roles

Examples

GET /api/roles
200
{
  "total": 13,
  "subtotal": 13,
  "page": 1,
  "per_page": 20,
  "search": null,
  "sort": {
    "by": "name",
    "order": "ASC"
  },
  "results": [
    {
      "builtin": 0,
      "cloned_from_id": null,
      "name": "CRUD hosts",
      "id": 12,
      "description": null,
      "origin": ""
    },
    {
      "builtin": 0,
      "cloned_from_id": null,
      "name": "Create hosts",
      "id": 9,
      "description": null,
      "origin": ""
    },
    {
      "builtin": 2,
      "cloned_from_id": null,
      "name": "Default role",
      "id": 7,
      "description": null,
      "origin": "foreman"
    },
    {
      "builtin": 0,
      "cloned_from_id": null,
      "name": "Destroy hosts",
      "id": 8,
      "description": null,
      "origin": ""
    },
    {
      "builtin": 0,
      "cloned_from_id": null,
      "name": "Edit hosts",
      "id": 4,
      "description": null,
      "origin": "foreman"
    },
    {
      "builtin": 0,
      "cloned_from_id": null,
      "name": "Edit partition tables",
      "id": 2,
      "description": null,
      "origin": "foreman"
    },
    {
      "builtin": 0,
      "cloned_from_id": null,
      "name": "Manager",
      "id": 1,
      "description": null,
      "origin": "foreman"
    },
    {
      "builtin": 0,
      "cloned_from_id": null,
      "name": "No rights",
      "id": 10,
      "description": null,
      "origin": ""
    },
    {
      "builtin": 0,
      "cloned_from_id": null,
      "name": "Organization admin",
      "id": 13,
      "description": null,
      "origin": "foreman"
    },
    {
      "builtin": 0,
      "cloned_from_id": null,
      "name": "System admin",
      "id": 14,
      "description": null,
      "origin": "foreman"
    },
    {
      "builtin": 0,
      "cloned_from_id": null,
      "name": "View compute resources",
      "id": 11,
      "description": null,
      "origin": ""
    },
    {
      "builtin": 0,
      "cloned_from_id": null,
      "name": "View hosts",
      "id": 3,
      "description": null,
      "origin": "foreman"
    },
    {
      "builtin": 0,
      "cloned_from_id": null,
      "name": "Viewer",
      "id": 5,
      "description": null,
      "origin": "foreman"
    }
  ]
}

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

search
optional

filter results

Validations:

  • Must be a String

order
optional

Sort field and order, eg. ‘id DESC’

Validations:

  • Must be a String

page
optional

paginate results

Validations:

  • Must be a String

per_page
optional

number of entries per request

Validations:

  • Must be a String

Search fields

Field name Type Possible values
builtin true, false
description text
name string
permission string

GET /api/roles/:id
Show a role

Examples

GET /api/roles/1-Manager
200
{
  "builtin": 0,
  "cloned_from_id": null,
  "name": "Manager",
  "id": 1,
  "description": null,
  "origin": "foreman",
  "filters": [
    {
      "id": 139728896
    },
    {
      "id": 169533705
    },
    {
      "id": 170801529
    },
    {
      "id": 222559602
    },
    {
      "id": 225912082
    },
    {
      "id": 255448041
    },
    {
      "id": 291325508
    },
    {
      "id": 321349837
    },
    {
      "id": 340438230
    },
    {
      "id": 343831726
    },
    {
      "id": 372277853
    },
    {
      "id": 503111935
    },
    {
      "id": 528928374
    },
    {
      "id": 557298380
    },
    {
      "id": 592288835
    },
    {
      "id": 595149887
    },
    {
      "id": 643462867
    },
    {
      "id": 679608033
    },
    {
      "id": 721145960
    },
    {
      "id": 943645556
    },
    {
      "id": 977587707
    },
    {
      "id": 980424071
    },
    {
      "id": 1025364382
    },
    {
      "id": 1026099682
    },
    {
      "id": 1062414187
    }
  ],
  "locations": [],
  "organizations": []
}

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

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.

description
optional

Validations:

  • Must be a String


POST /api/roles
Create a role

Examples

POST /api/roles
{
  "role": {
    "name": "Test Role",
    "location_ids": [
      255093256
    ],
    "organization_ids": [
      447626438
    ]
  }
}
201
{
  "builtin": 0,
  "cloned_from_id": null,
  "name": "Test Role",
  "id": 18,
  "description": null,
  "origin": null,
  "filters": [],
  "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

Scope by locations

Validations:

  • Must be a Integer

organization_id
optional

Scope by organizations

Validations:

  • Must be a Integer

role
required

Validations:

  • Must be a Hash

role[name]
required

Validations:

  • Must be a String

role[description]
optional , nil allowed

Role description

Validations:

  • Must be a String

role[location_ids]
optional , nil allowed

REPLACE locations with given ids

Validations:

  • Must be an array of any type

role[organization_ids]
optional , nil allowed

REPLACE organizations with given ids.

Validations:

  • Must be an array of any type


PUT /api/roles/:id
Update a role

Examples

PUT /api/roles/18
{
  "role": {
    "location_ids": [
      255093256
    ],
    "organization_ids": [
      447626438
    ]
  }
}
200
{
  "builtin": 0,
  "cloned_from_id": null,
  "name": "New Role",
  "id": 18,
  "description": null,
  "origin": null,
  "filters": [
    {
      "id": 1062414301
    }
  ],
  "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

Scope by locations

Validations:

  • Must be a Integer

organization_id
optional

Scope by organizations

Validations:

  • Must be a Integer

id
required

Validations:

  • Must be a String

role
required

Validations:

  • Must be a Hash

role[name]
optional

Validations:

  • Must be a String

role[description]
optional , nil allowed

Role description

Validations:

  • Must be a String

role[location_ids]
optional , nil allowed

REPLACE locations with given ids

Validations:

  • Must be an array of any type

role[organization_ids]
optional , nil allowed

REPLACE organizations with given ids.

Validations:

  • Must be an array of any type


DELETE /api/roles/:id
Delete a role

Examples

DELETE /api/roles/13-Organization%20admin/clone
{
  "role": {}
}
200
{
  "id": 18,
  "name": "Org Admin",
  "builtin": 0,
  "description": null,
  "origin": null,
  "cloned_from_id": 13
}

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

id
required

Validations:

  • Must be a String


POST /api/roles/:id/clone
Clone a role

Examples

POST /api/roles/13-Organization%20admin/clone
{
  "new_name": "Org Admin",
  "role": {
    "name": "Org Admin"
  }
}
201
{
  "id": 18,
  "name": "Org Admin",
  "builtin": 0,
  "description": null,
  "origin": null,
  "cloned_from_id": 13
}

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

id
required

Validations:

  • Must be a String

role
required

Validations:

  • Must be a Hash

role[name]
optional

Validations:

  • Must be a String

role[description]
optional , nil allowed

Role description

Validations:

  • Must be a String

role[location_ids]
optional , nil allowed

REPLACE locations with given ids

Validations:

  • Must be an array of any type

role[organization_ids]
optional , nil allowed

REPLACE organizations with given ids.

Validations:

  • Must be an array of any type