Gremlin users API
Get users (all or active) and activate, deactivate, update, and invite users.
Get users (all or active) and activate, deactivate, update, and invite users.
openapi: 3.0.1
info:
title: Gremlin agents users API
description: The API for interacting with the Gremlin Failure-as-a-Service platform
termsOfService: https://www.gremlin.com/terms_of_service_2017_03_24
contact:
name: Gremlin Support
email: support@gremlin.com
license:
name: Gremlin License
url: https://www.gremlin.com/license_2017_03_24
version: '1.0'
servers:
- url: https://api.gremlin.com/v1
description: Gremlin API v1
tags:
- name: users
description: Get users (all or active) and activate, deactivate, update, and invite users.
paths:
/users/active:
get:
tags:
- users
summary: Get all active users.
description: Requires the privilege [`USERS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: active_4
parameters:
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json: {}
'403':
description: 'User requires privilege for target team: USERS_READ'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- USERS_READ
/users/active/paged:
get:
tags:
- users
summary: Get all active users paginated.
description: Requires the privilege [`USERS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: activePaginated
parameters:
- name: pageSize
in: query
description: This value determines how many results will be returned per call.
schema:
type: integer
format: int32
default: 10
example: None (unlimited)
- name: pageToken
in: query
description: Token corresponding to the last page of active company users for team retrieved. Pass the pageToken to get the next page of active company users for team
schema:
type: string
example: None (returns first page)
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json: {}
'403':
description: 'User requires privilege for target team: USERS_READ'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- USERS_READ
/users:
get:
tags:
- users
summary: Get all users.
description: Requires the privilege [`USERS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: all_4
parameters:
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json: {}
'403':
description: 'User requires privilege for target team: USERS_READ'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- USERS_READ
post:
tags:
- users
summary: Add an existing user to the target team
description: 'User must belong to this teams company
Requires the privilege [`USERS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)'
operationId: addUserToTeam
parameters:
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AddUserRequest'
required: true
responses:
'200':
description: Users successfully added
'400':
description: One or more users were not found or were revoked, no users added
'409':
description: One or more users already belong on team, no users added
'403':
description: 'User requires privilege for target team: USERS_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- USERS_WRITE
/users/paged:
get:
tags:
- users
summary: Get all users paginated.
description: Requires the privilege [`USERS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: allPaginated
parameters:
- name: pageSize
in: query
description: This value determines how many results will be returned per call.
schema:
type: integer
format: int32
default: 10
example: None (unlimited)
- name: pageToken
in: query
description: Token corresponding to the last page of company users for team retrieved. Pass the pageToken to get the next page of company users for team
schema:
type: string
example: None (returns first page)
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json: {}
'403':
description: 'User requires privilege for target team: USERS_READ'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- USERS_READ
/users/self:
get:
tags:
- users
summary: Get information about the authenticated user
description: Requires the privilege [`MINIMUM_COMPANY_PRIVILEGES`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: getSelf
parameters: []
responses:
default:
description: default response
content:
application/json: {}
'403':
description: 'User requires privilege: MINIMUM_COMPANY_PRIVILEGES'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- MINIMUM_COMPANY_PRIVILEGES
patch:
tags:
- users
summary: Update an existing users info.
description: 'User must exist.
Requires the privilege [`MINIMUM_COMPANY_PRIVILEGES`](https://www.gremlin.com/docs/user-management/access-control/#privileges)'
operationId: rbacUpdateSelf
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateUserInfoRequest'
required: true
responses:
default:
description: default response
content:
text/plain: {}
'403':
description: 'User requires privilege: MINIMUM_COMPANY_PRIVILEGES'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- MINIMUM_COMPANY_PRIVILEGES
/users/invite:
post:
tags:
- users
summary: Invite a user.
description: Requires the privilege [`COMPANY_USERS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: invite_1
parameters: []
requestBody:
content:
application/x-www-form-urlencoded:
schema:
required:
- email
type: object
properties:
email:
type: string
source_detail:
type: string
enum:
- Onboarding
responses:
default:
description: default response
content:
text/plain: {}
'403':
description: 'User requires privilege: COMPANY_USERS_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- COMPANY_USERS_WRITE
/users/renew/rbac:
post:
tags:
- users
summary: Renew authorization.
operationId: rbacAuthRenew
parameters: []
requestBody:
content:
application/x-www-form-urlencoded:
schema:
required:
- companyId
- email
- renewToken
type: object
properties:
email:
type: string
companyId:
type: string
teamId:
type: string
renewToken:
type: string
responses:
default:
description: default response
content:
application/json: {}
'403':
description: Response was sent via HTTP, please retry using HTTPS
/users/{email}:
put:
tags:
- users
summary: Update an existing user.
description: 'User must exist.
Requires the privilege [`USERS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)'
operationId: update_2
parameters:
- name: email
in: path
required: true
schema:
type: string
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
requestBody:
content:
application/x-www-form-urlencoded:
schema:
required:
- role
type: object
properties:
role:
uniqueItems: true
type: array
items:
type: string
responses:
default:
description: default response
content:
application/json: {}
'403':
description: 'User requires privilege for target team: USERS_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- USERS_WRITE
delete:
tags:
- users
summary: Deactivate a user.
description: Requires the privilege [`USERS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: revokeOrRemoveFromTeam
parameters:
- name: email
in: path
required: true
schema:
type: string
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
responses:
default:
description: default response
content:
text/plain: {}
'403':
description: 'User requires privilege for target team: USERS_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- USERS_WRITE
/users/sessions:
get:
tags:
- users
summary: Returns the updated user sessions list for the currently authenticated user.
description: Requires the privilege [`MINIMUM_COMPANY_PRIVILEGES`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: refreshSessions
parameters:
- name: getCompanySession
in: query
schema:
type: boolean
responses:
default:
description: default response
content:
application/json: {}
'403':
description: 'User requires privilege: MINIMUM_COMPANY_PRIVILEGES'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- MINIMUM_COMPANY_PRIVILEGES
/users/invite/{email}:
delete:
tags:
- users
summary: Revoke a pending user invite.
description: Requires the privilege [`COMPANY_USERS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: revokeInvite
parameters:
- name: email
in: path
required: true
schema:
type: string
responses:
default:
description: default response
content:
text/plain: {}
'403':
description: 'User requires privilege: COMPANY_USERS_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- COMPANY_USERS_WRITE
components:
schemas:
UpdateUserInfoRequest:
type: object
properties:
first_name:
type: string
last_name:
type: string
AddUserRequest:
required:
- identifier
type: object
properties:
identifier:
type: string
description: The unique identifier for the user (user's email)
description: represents a request to add an existing user to a team