| Status | Response Type | Description |
|---|---|---|
| 200 | LoginMethods |
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response |
| Status | Response Type | Description |
|---|---|---|
| 200 | SignupMethods | |
| 500 | Signup disabled. |
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. User successfully confirmed. | |
| 400 | Invalid JSON body. | |
| 404 | Confirmation code not found. |
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. Successfully logged in. The X-Escape-Token cookie and header will both be set to a valid Escape Auth Token. | |
| 400 | Invalid JSON body. | |
| 401 | Wrong user and password combination. |
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. Request received. | |
| 400 | Invalid JSON body. |
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. Request received. | |
| 400 | Invalid JSON body. |
| Status | Response Type | Description |
|---|---|---|
| 200 | User | Payload describes quality of password provided |
| Status | Response Type | Description |
|---|---|---|
| 500 | Server error. Probably an error in the communication between the user service and the notification service. |
| Status | Response Type | Description |
|---|---|---|
| 200 | User | Signup successful. Returns created user. |
| 400 | There was a problem with the request. Missing or invalid username; missing or weak password. | |
| 409 | The user already exists. | |
| 500 | Server error. Most likely signup is disabled. |
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. Successfully logged in. | |
| 302 | Redirect to complete OAuth flow or to use the redirect_url parameter set during login. | |
| 400 | Missing redeem-token parameter. | |
| 404 | Redeem token not found. | |
| 500 | Server side error. Possibly an error in the OAuth flow or session management. |
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. Successfully logged in. | |
| 302 | Redirect to complete OAuth flow, to use redirect_url parameter or to go to /app/signup if signups are disabled. | |
| 400 | Missing redeem-token parameter. | |
| 404 | Redeem token not found. | |
| 500 | Server side error. Possibly an error in the OAuth flow or session management. |
| Status | Response Type | Description |
|---|---|---|
| 200 | User | |
| 400 | User error. User acccount is not managed by the "github" provider, invalid JSON body, username or email invalid. | |
| 404 | User not found. | |
| 500 | Server side error. Possibly an error in the OAuth flow, session management or signups might be disabled altogether. |
| Status | Response Type | Description |
|---|---|---|
| 200 | EscapeAuthToken | |
| 400 | Missing redeem-token parameter. | |
| 404 | Redeem token not found. |
| Status | Response Type | Description |
|---|---|---|
| 200 | Groups | Groups payload |
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. |
| Status | Response Type | Description |
|---|---|---|
| 200 | The version of the user service |
| Status | Response Type | Description |
|---|---|---|
| 200 | GetGroupsServiceAccountsResponse |
| Status | Response Type | Description |
|---|---|---|
| 200 | GetGroupsUserResponse |
| Status | Response Type | Description |
|---|---|---|
| 200 | ACLUser | |
| 401 | Invalid token. |
| Status | Response Type | Description |
|---|---|---|
| 200 | The version of the user service |
| Status | Response Type | Description |
|---|---|---|
| 200 | UserPlans | Plans payload |
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. | |
| 400 | Failed to read JSON body | |
| 409 | A plan with this name already exists |
| /{plan}/ |
string
|
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. | |
| 400 | Failed to read JSON body | |
| 404 | A plan with this name could not be found |
| /{plan}/ |
string
|
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. | |
| 404 | A plan with this name could not be found |
| Status | Response Type | Description |
|---|---|---|
| 200 | Roles |
| Status | Response Type | Description |
|---|---|---|
| 200 | Roles |
| Status | Response Type | Description |
|---|---|---|
| 200 | Roles |
| Status | Response Type | Description |
|---|---|---|
| 200 | Roles |
| Status | Response Type | Description |
|---|---|---|
| 200 | Roles |
| /{team}/ |
string
|
The team name. |
| Status | Response Type | Description |
|---|---|---|
| 200 | ServiceAccounts |
| /{team}/ |
string
|
The team this service account is part of. | ||
| /{username}/ |
string
|
The username of the new service account |
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. |
| /{team}/ |
string
|
The team this service account is part of. | ||
| /{username}/ |
string
|
The username of the service account |
| Status | Response Type | Description |
|---|---|---|
| 200 | EscapeAuthToken |
| /{team}/ |
string
|
The team this service account is part of. | ||
| /{username}/ |
string
|
The username of the service account |
| Status | Response Type | Description |
|---|---|---|
| 200 | EscapeAuthToken |
| Status | Response Type | Description |
|---|---|---|
| 200 | Teams | Teams payload |
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. | |
| 400 | Invalid request. Most likely caused by a missing or invalid team name. | |
| 401 | The user is not allowed to create plans, because their Plan does not allow it. | |
| 409 | The team name already exists. |
| /{team}/ |
string
|
The team name. | ||
| ?query= |
string
|
| Status | Response Type | Description |
|---|---|---|
| 200 | Teams | Teams payload |
| /{team}/ |
string
|
The team name. |
| Status | Response Type | Description |
|---|---|---|
| 200 | Team | Teams payload |
| 401 | The user is not logged in and is not allowed to see this team. | |
| 403 | The user is not allowed to see this team. | |
| 404 | The team could not be found or the team is actually an internal Group. |
| /{team}/ |
string
|
The team name. |
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. | |
| 401 | The user is not logged in and is not allowed to update this team. | |
| 403 | The user is not allowed to update this team. | |
| 404 | The team could not be found or the team is actually an internal Group. |
| /{team}/ |
string
|
The team name. |
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. | |
| 401 | The user is not logged in and is not allowed to delete this team. | |
| 403 | The user is not allowed to delete this team. | |
| 404 | The team could not be found or the team is actually an internal Group. |
| /{team}/ |
string
|
The team name. | ||
| /{username}/ |
string
|
The username to add. |
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. | |
| 400 | There was a problem with the request. Most like the permission was missing or invalid. | |
| 401 | The user is not logged in and is not allowed to configure this team. | |
| 403 | The user is not allowed to configure this team. | |
| 404 | The team could not be found or the team is actually an internal Group. |
| /{team}/ |
string
|
The team name. | ||
| /{username}/ |
string
|
The username to add. |
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. | |
| 400 | There was a problem with the request. Most like the permission was missing or invalid. | |
| 401 | The user is not logged in and is not allowed to configure this team. | |
| 403 | The user is not allowed to configure this team. | |
| 404 | The team could not be found or the team is actually an internal Group. |
| Status | Response Type | Description |
|---|---|---|
| 200 | Users | Users payload |
| Status | Response Type | Description |
|---|---|---|
| 200 | User | User payload |
| ?query= |
string
|
| Status | Response Type | Description |
|---|---|---|
| 200 |
object
|
User payload |
| /{user_id}/ |
string
|
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. |
| /{username}/ |
string
|
| Status | Response Type | Description |
|---|---|---|
| 200 | User | User payload |
| /{username}/ |
string
|
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. |
| /{username}/ |
string
|
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. |
| /{username}/ |
string
|
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. |
| /{username}/ |
string
|
| Status | Response Type | Description |
|---|---|---|
| 200 | User | User's avatar image |
| /{username}/ |
string
|
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. |
| /{username}/ |
string
|
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. |
| /{username}/ |
string
|
| Status | Response Type | Description |
|---|---|---|
| 200 | Empty response. |
| Field | Type | Description | Example | |
|---|---|---|---|---|
| roles |
array
|
The roles to assign | ||
| username |
string
|
Username of user to recieve roles |
| Field | Type | Description | Example | |
|---|---|---|---|---|
| group |
string
|
The group to add the user to. If the group doesn't exist it will get created. | ||
| user_id |
string
|
The user ID of the user to add. |
| Field | Type | Description | Example | |
|---|---|---|---|---|
| redeem-token |
string
|
Only set for OAuth2 logins. Use this as the redeem code for the redeem URL. | ||
| redeem-url |
string
|
Only set for OAuth2 logins. The command line client uses this endpoint to fetch a valid Escape Auth Token after the User completes an successfully authenticates with an OAuth provider. | ||
| type |
enum
|
The type of method (one of "secret-token", "oauth") |
"secret-token"
"oauth"
|
|
| url |
string
|
The URL to use if this method were to be used. |
| Field | Type | Description | Example | |
|---|---|---|---|---|
| group |
string
|
Group | ||
| roles |
array
|
Roles | ||
| username |
string
|
Username |
| Field | Type | Description | Example | |
|---|---|---|---|---|
| code |
string
|
The email confirmation code. |
| Field | Type | Description | Example | |
|---|---|---|---|---|
|
string
|
The email address | |||
| secret_token |
string
|
The password | ||
| username |
string
|
Deprecated field which is only used in place of the email field if the email field is empty. Is treated as an email address though. |
| Field | Type | Description | Example | |
|---|---|---|---|---|
|
string
|
The email address | |||
| password |
string
|
The password | ||
| username |
string
|
The desired username |
"4d5cc8fe-1bf5-40c7-8ce2-9b30b81784c9"
| Field | Type | Description | Example | |
|---|---|---|---|---|
| groups | GroupNames |
{
"description": "Internal group managed by EscapeKit.",
"is_internal": true,
"name": "my-group"
}
| Field | Type | Description | Example | |
|---|---|---|---|---|
| description |
string
|
The group's description (optional) | ||
| is_internal |
bool
|
Internal groups are groups that are automatically created for e.g. the Inventory and State services when you create a project. They are "machine managed" and not visible to end users on their Teams page. | ||
| logo |
string
|
The group's logo | ||
| name |
string
|
The group name | ||
| role |
string
|
User's role within the group. |
"my-group"
| Field | Type | Description | Example | |
|---|---|---|---|---|
| name |
string
|
The group name. | my-group |
| Field | Type | Description | Example | |
|---|---|---|---|---|
| group |
string
|
The group name. | my-group |
[
{
"description": "Internal group managed by EscapeKit.",
"is_internal": true,
"name": "my-group"
},
{
"description": "A team managed by some user.",
"is_internal": false,
"name": "my-team"
}
]
| Field | Type | Description | Example | |
|---|---|---|---|---|
|
string
|
The email address | |||
| username |
string
|
The desired username |
| Field | Type | Description | Example | |
|---|---|---|---|---|
| password |
string
|
The password | ||
| password_reset_token |
string
|
The password reset token |
| Field | Type | Description | Example | |
|---|---|---|---|---|
|
string
|
The email address |
| Field | Type | Description | Example | |
|---|---|---|---|---|
| permission |
enum
|
A permission. One of read, write, owner. |
"read"
"write"
"owner"
|
| Field | Type | Description | Example | |
|---|---|---|---|---|
| groups | GroupNames | |||
| user_id |
string
|
The user ID of the user to add. |
| Field | Type | Description | Example | |
|---|---|---|---|---|
| name |
string
|
|||
| team |
string
|
| Field | Type | Description | Example | |
|---|---|---|---|---|
| username |
string
|
Username of user to delete softly |
| Field | Type | Description | Example | |
|---|---|---|---|---|
| description |
string
|
The Team's description | ||
| logo |
string
|
The Team's logo | ||
| members |
{ string :
UserPermission
}
|
The team's members and their permission. | ||
| name |
string
|
The Team name. | ||
| permission |
string
|
The requesting user's permission on this Team. |
| Field | Type | Description | Example | |
|---|---|---|---|---|
| description |
string
|
The Team's description | ||
| logo |
string
|
The Team's logo | ||
| name |
string
|
The Team name. |
| Field | Type | Description | Example | |
|---|---|---|---|---|
| activated |
bool
|
Whether the user is activated or not. | ||
| avatar_uri |
string
|
URI representation of an image stored. | ||
| avatar_url |
string
|
A URL to a user's avatar. | ||
| description |
string
|
An optional user's descritpion | ||
|
string
|
The user's email address. | |||
| first_name |
string
|
The user's first name. | ||
| groups | Groups | |||
| id |
string
|
The user ID. | ||
| is_confirmed |
bool
|
Whether the user has confirmed their email or not. | ||
| last_name |
string
|
The user's last name. | ||
| plan | UserPlan | |||
| provider |
enum
|
The authentication provider. |
"email"
"github"
"service-account"
|
|
| provider_id |
string
|
The user's ID for the authentication provider. | ||
| username |
string
|
The username. |
| Field | Type | Description | Example | |
|---|---|---|---|---|
| image_uri |
string
|
The string representation of the image. |
| Field | Type | Description | Example | |
|---|---|---|---|---|
| id |
string
|
The User's ID. | ||
| permission |
string
|
The User's permission on the resource. | ||
| username |
string
|
The User's name |
| Field | Type | Description | Example | |
|---|---|---|---|---|
| can_create_state_project |
bool
|
Is the user allowed to create State projects? | ||
| can_create_team |
bool
|
Is the user allowed to create Teams? | ||
| can_manage_project_acl |
bool
|
Is the user allowed to modify ACLs on Inventory projects? | ||
| can_manage_project_hooks |
bool
|
Is the user allowed to modify hooks on Inventory projects? | ||
| name |
string
|
The name of the plan. | ||
| project_limit |
int
|
The number of projects the user is allowed to create. |
| Field | Type | Description | Example | |
|---|---|---|---|---|
| name |
string
|
The name of the plan. |
| Field | Type | Description | Example | |
|---|---|---|---|---|
| default_plan |
string
|
The default plan. | ||
| plans |
{ string :
UserPlan
}
|
A map with UserPlans keyed by the plan's name. |