GET /api/usergroups
List all user groups

Examples

GET /api/usergroups
200
{
  "total": 0,
  "subtotal": 0,
  "page": 1,
  "per_page": 20,
  "search": null,
  "sort": {
    "by": null,
    "order": null
  },
  "results": []
}

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

search
optional

filter results

Validations:

  • Must be a String

order
optional

Sort and order by a searchable field, e.g. '<field> 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
id integer
name string
role string
role_id integer

GET /api/usergroups/:id
Show a user group

Examples

GET /api/usergroups/2-usergroup258
200
{
  "admin": false,
  "created_at": "2022-03-29 08:50:12 UTC",
  "updated_at": "2022-03-29 08:50:12 UTC",
  "name": "usergroup258",
  "id": 2,
  "external_usergroups": [],
  "usergroups": [],
  "users": [],
  "roles": []
}

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/usergroups
Create a user group

Examples

POST /api/usergroups
{
  "usergroup": {
    "name": "test_usergroup",
    "role_ids": [
      1,
      3,
      4
    ]
  }
}
201
{
  "admin": false,
  "created_at": "2022-03-29 08:50:12 UTC",
  "updated_at": "2022-03-29 08:50:12 UTC",
  "name": "test_usergroup",
  "id": 4,
  "external_usergroups": [],
  "usergroups": [],
  "users": [],
  "roles": [
    {
      "name": "Manager",
      "id": 1,
      "description": null,
      "origin": "foreman"
    },
    {
      "name": "View hosts",
      "id": 3,
      "description": null,
      "origin": "foreman"
    },
    {
      "name": "Edit hosts",
      "id": 4,
      "description": null,
      "origin": "foreman"
    }
  ]
}

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

usergroup
required

Validations:

  • Must be a Hash

usergroup[name]
required

Validations:

  • Must be a String

usergroup[admin]
optional , nil allowed

is an admin user group, can be modified by admins only

Validations:

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

usergroup[user_ids]
optional , nil allowed

Validations:

  • Must be an array of any type

usergroup[usergroup_ids]
optional , nil allowed

Validations:

  • Must be an array of any type

usergroup[role_ids]
optional , nil allowed

Validations:

  • Must be an array of any type


PUT /api/usergroups/:id
Update a user group

User groups linked to external groups (LDAP) are automatically synced with these groups on update. Remember this synchronization will remove any LDAP users manually added to the Foreman user group. Only LDAP users in the external groups will remain. Internal users can be added or removed freely.

Examples

PUT /api/usergroups/1-usergroup257
{
  "usergroup": {
    "name": "test_usergroup",
    "user_ids": [
      980190962
    ]
  }
}
200
{
  "admin": false,
  "created_at": "2022-03-29 08:50:12 UTC",
  "updated_at": "2022-03-29 08:50:12 UTC",
  "name": "test_usergroup",
  "id": 1,
  "external_usergroups": [],
  "usergroups": [],
  "users": [
    {
      "id": 980190962,
      "login": "one",
      "description": null
    }
  ],
  "roles": []
}

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 a String

usergroup
required

Validations:

  • Must be a Hash

usergroup[name]
optional

Validations:

  • Must be a String

usergroup[admin]
optional , nil allowed

is an admin user group, can be modified by admins only

Validations:

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

usergroup[user_ids]
optional , nil allowed

Validations:

  • Must be an array of any type

usergroup[usergroup_ids]
optional , nil allowed

Validations:

  • Must be an array of any type

usergroup[role_ids]
optional , nil allowed

Validations:

  • Must be an array of any type


DELETE /api/usergroups/:id
Delete a user group

Examples

DELETE /api/usergroups/5-usergroup260
{
  "usergroup": {}
}
200
{
  "id": 5,
  "name": "usergroup260",
  "created_at": "2022-03-29T08:50:12.794Z",
  "updated_at": "2022-03-29T08:50:12.794Z",
  "admin": false
}

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 a String