openapi: 3.1.0
info:
title: Port Action Runs Users API
version: '1.0'
tags:
- name: Users
paths:
/v1/users:
get:
summary: Get all users in your organization
tags:
- Users
description: This route allows you to fetch all of the users in your Port organization.
To learn more about users, check out the [documentation](https://docs.port.io/sso-rbac/rbac-overview/).
parameters:
- schema:
type: array
style: form
explode: true
items:
type: string
enum:
- id
- email
- firstName
- isInvisible
- lastName
- picture
- status
- supportLevel
- type
- providers
- managedByScim
- createdAt
- updatedAt
- teams.name
- teams.provider
- teams.createdAt
- teams.updatedAt
- roles.name
- roles.description
- roles.isAdmin
- roles.protected
- roles.orgId
- roles.createdAt
- roles.updatedAt
- orgMembers.orgId
- orgMembers.status
- orgMembers.lastLoginAt
in: query
name: fields
required: false
description: The fields you want to fetch for each user. If used, only the specified fields will be included in the response.
security:
- bearer:
- read:users
responses:
'200':
description: Retrieved successfully.
content:
application/json:
schema:
description: Retrieved successfully.
type: object
properties:
ok:
enum:
- true
users:
type: array
items:
properties:
email:
type: string
firstName:
type: string
lastName:
type: string
picture:
type: string
status:
type: string
id:
type: string
type:
type: string
providers:
type: array
items:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
orgs:
type: array
items:
type: object
properties:
id:
type: string
required:
- id
teams:
type: array
items:
type: string
roles:
type: array
items:
type: object
properties:
name:
type: string
required:
- name
orgMembers:
type: array
items:
type: object
properties:
orgId:
type: string
status:
type: string
lastLoginAt:
type: string
format: date-time
required:
- orgId
- status
- lastLoginAt
termsAccepted:
type: boolean
default: null
managedByScim:
type: boolean
default: null
required:
- users
- ok
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
/v1/users/invite:
post:
summary: Invite a user to your organization
tags:
- Users
description: This route allows you to invite a user to your Port organization.
To learn more about users, roles, and teams, check out the [documentation](https://docs.port.io/sso-rbac/rbac-overview/).
requestBody:
content:
application/json:
schema:
type: object
properties:
invitee:
type: object
description: The details of the user you want to invite.
properties:
email:
type: string
pattern: ^[^;#/\?\s][^;#/\?]*[^;#/\?\s]$
description: The user's email address.
roles:
type: array
items:
type: string
description: The roles you want to assign to the user.
teams:
type: array
items:
type: string
description: The names of the teams you want to assign the user to.
required:
- email
additionalProperties: false
required:
- invitee
required: true
parameters:
- schema:
type: boolean
default: true
in: query
name: notify
required: false
description: If `true`, the invitee will receive an email notification.
security:
- bearer:
- create:users
responses:
'200':
description: Created successfully.
content:
application/json:
schema:
description: Created successfully.
properties:
ok:
enum:
- true
required:
- ok
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
'413':
description: Request body is too large (limit is 1MiB)
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
description: Request body is too large (limit is 1MiB)
'422':
description: The json provided does not match the route's schema
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: The json provided does not match the route's schema
/v1/users/{user_email}:
get:
summary: Get a user
tags:
- Users
description: This route allows you to fetch a specific user in your Port organization.
To learn more about users, check out the [documentation](https://docs.port.io/sso-rbac/rbac-overview/).
parameters:
- schema:
type: string
in: path
name: user_email
required: true
description: The email address of the user you want to operate on.
security:
- bearer:
- read:users
responses:
'200':
description: Retrieved successfully.
content:
application/json:
schema:
description: Retrieved successfully.
properties:
ok:
enum:
- true
user:
properties:
email:
type: string
firstName:
type: string
lastName:
type: string
picture:
type: string
status:
type: string
id:
type: string
type:
type: string
providers:
type: array
items:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
orgs:
type: array
items:
type: object
properties:
id:
type: string
required:
- id
teams:
type: array
items:
type: string
roles:
type: array
items:
type: object
properties:
name:
type: string
required:
- name
orgMembers:
type: array
items:
type: object
properties:
orgId:
type: string
status:
type: string
lastLoginAt:
type: string
format: date-time
required:
- orgId
- status
- lastLoginAt
termsAccepted:
type: boolean
default: null
managedByScim:
type: boolean
default: null
teamsIdentifiers:
type: array
items:
type: string
required:
- ok
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
patch:
summary: Update a user
tags:
- Users
description: This route allows you to update a user's details. This can be used to update the user's role/s and team/s.
To learn more about users, roles, and teams, check out the [documentation](https://docs.port.io/sso-rbac/rbac-overview/).
requestBody:
content:
application/json:
schema:
type: object
properties:
roles:
type: array
minItems: 1
items:
type: string
description: The roles you want to assign to the user.
teams:
type: array
items:
type: string
description: The names of the teams you want to assign the user to.
additionalProperties: false
parameters:
- schema:
type: string
in: path
name: user_email
required: true
description: The email address of the user you want to operate on.
security:
- bearer:
- update:users
responses:
'200':
description: Updated successfully.
content:
application/json:
schema:
properties:
ok:
enum:
- true
email:
type: string
firstName:
type: string
lastName:
type: string
picture:
type: string
status:
type: string
id:
type: string
type:
type: string
providers:
type: array
items:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
orgs:
type: array
items:
type: object
properties:
id:
type: string
required:
- id
teams:
type: array
items:
type: string
roles:
type: array
items:
type: object
properties:
name:
type: string
required:
- name
orgMembers:
type: array
items:
type: object
properties:
orgId:
type: string
status:
type: string
lastLoginAt:
type: string
format: date-time
required:
- orgId
- status
- lastLoginAt
termsAccepted:
type: boolean
default: null
managedByScim:
type: boolean
default: null
description: Updated successfully.
required:
- ok
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
'413':
description: Request body is too large (limit is 1MiB)
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
description: Request body is too large (limit is 1MiB)
'422':
description: The json provided does not match the route's schema
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: The json provided does not match the route's schema
delete:
summary: Delete a user
tags:
- Users
description: This route allows you to delete a user in your Port organization.
To learn more about users, check out the [documentation](https://docs.port.io/sso-rbac/rbac-overview/).
parameters:
- schema:
type: string
in: path
name: user_email
required: true
description: The email address of the user you want to operate on.
security:
- bearer:
- delete:users
responses:
'200':
description: Deleted successfully.
content:
application/json:
schema:
description: Deleted successfully.
properties:
ok:
enum:
- true
required:
- ok
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
'413':
description: Request body is too large (limit is 1MiB)
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
description: Request body is too large (limit is 1MiB)
'422':
description: The json provided does not match the route's schema
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: The json provided does not match the route's schema
components:
securitySchemes:
bearer:
type: apiKey
name: Authorization
in: header