Last active
July 7, 2020 22:06
-
-
Save LucasRoesler/a82a1632c4f7e2d6027a to your computer and use it in GitHub Desktop.
EB SCIM
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
swagger: '2.0' | |
info: | |
title: Teem User Provisioning API | |
version: "1.0.0" | |
contact: | |
url: https://teem.com/developers/ | |
email: [email protected] | |
# the domain of the service | |
host: app.teem.com | |
# will be prefixed to all paths | |
basePath: /api/scim | |
# array of all schemes that your API supports | |
schemes: | |
- https | |
consumes: | |
- application/json | |
produces: | |
- application/json | |
securityDefinitions: | |
eventboard: | |
type: oauth2 | |
authorizationUrl: https://app.teem.com/oauth/authorize/ | |
tokenUrl: https://app.teem.com/oauth/token/ | |
flow: accessCode | |
scopes: | |
users: read and modify your users and groups | |
x-documentation: https://app.teem.com/oauth/applications/ | |
security: | |
- eventboard: | |
- users | |
paths: | |
/Users: | |
get: | |
summary: Teem Users | |
description: | | |
The Users endpoint implements the SCIM 2.0 API and Schema for Users. | |
tags: | |
- Users | |
security: | |
- eventboard: | |
- users | |
responses: | |
200: | |
description: An array of users | |
schema: | |
type: object | |
properties: | |
totalResults: | |
type: integer | |
format: int32 | |
schemas: | |
type: array | |
items: | |
type: string | |
Resources: | |
type: array | |
items: | |
$ref: '#/definitions/Users' | |
401: | |
description: Unauthorized. Missing OAuth authentication token | |
schema: | |
$ref: '#/definitions/Unauthorized' | |
403: | |
description: Permissions Denied. The accessing user must have write permissions for Users. | |
schema: | |
$ref: '#/definitions/PermissionDenied' | |
post: | |
summary: Create an Teem User | |
description: Creates and Returns an Teem User. | |
tags: | |
- Users | |
security: | |
- eventboard: | |
- users | |
parameters: | |
- in: body | |
name: body | |
description: User object to be added | |
required: true | |
schema: | |
$ref: "#/definitions/Users" | |
responses: | |
201: | |
description: The user that was just created | |
schema: | |
type: object | |
items: | |
$ref: '#/definitions/Users' | |
400: | |
description: Invalid data supplied. Will contain a key for each invalid field supplied. | |
schema: | |
$ref: '#/definitions/Error' | |
401: | |
description: Unauthorized. Missing oauth authentication token | |
schema: | |
$ref: '#/definitions/Unauthorized' | |
403: | |
description: Permissions Denied. The accessing user must have write permissions for Users and Groups. | |
schema: | |
$ref: '#/definitions/PermissionDenied' | |
409: | |
description: Uniqueness Error. Conflicting externalId or other unique field. | |
schema: | |
$ref: '#/definitions/UniquenessError' | |
/Users/{id}: | |
get: | |
summary: A single Teem User | |
description: | | |
The Users/id endpoint implements the SCIM 2.0 Schema for Users. | |
tags: | |
- Users | |
security: | |
- eventboard: | |
- users | |
responses: | |
200: | |
description: A user instance | |
schema: | |
type: object | |
items: | |
$ref: '#/definitions/Users' | |
401: | |
description: Unauthorized. Missing OAuth authentication token | |
schema: | |
$ref: '#/definitions/Unauthorized' | |
403: | |
description: Permissions Denied. The accessing user must have write permissions for Users and Groups. | |
schema: | |
$ref: '#/definitions/PermissionDenied' | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: the user id | |
type: integer | |
format: int32 | |
patch: | |
summary: Update a single Eventboard User | |
description: | | |
The Users/id endpoint implements the SCIM 2.0 Schema for Users. | |
tags: | |
- Users | |
security: | |
- eventboard: | |
- users | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: the user id | |
type: integer | |
format: int32 | |
- in: body | |
name: body | |
description: User object to be replaced | |
required: true | |
schema: | |
$ref: "#/definitions/Users" | |
responses: | |
200: | |
description: A user instance | |
schema: | |
type: object | |
items: | |
$ref: '#/definitions/Users' | |
400: | |
description: Invalid data supplied. Will contain a key for each invalid field supplied. | |
schema: | |
$ref: '#/definitions/Error' | |
401: | |
description: Unauthorized. Missing OAuth authentication token | |
schema: | |
$ref: '#/definitions/Unauthorized' | |
403: | |
description: Permissions Denied. The accessing user must have write permissions for Users and Groups. | |
schema: | |
$ref: '#/definitions/PermissionDenied' | |
409: | |
description: Uniqueness Error. Conflicting externalId or other unique field. | |
schema: | |
$ref: '#/definitions/UniquenessError' | |
delete: | |
summary: Delete an Teem User | |
description: Deletes an Teem User. | |
tags: | |
- Users | |
security: | |
- eventboard: | |
- users | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: the user id | |
type: integer | |
format: int32 | |
responses: | |
204: | |
description: Notification that the delete was successful. | |
401: | |
description: Unauthorized. Missing OAuth authentication token | |
schema: | |
$ref: '#/definitions/Unauthorized' | |
403: | |
description: Permissions Denied. The accessing user must have write permissions for Users and Groups. | |
schema: | |
$ref: '#/definitions/PermissionDenied' | |
/Users/{id}/groups: | |
patch: | |
summary: Update the list of groups on an Teem User | |
description: Update the list of groups on an Teem User | |
tags: | |
- Users | |
security: | |
- eventboard: | |
- users | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: the user id | |
type: integer | |
format: int32 | |
- name: group_ids | |
in: body | |
required: true | |
description: the list of group ids | |
schema: | |
$ref: '#/definitions/GroupIdPayload' | |
responses: | |
200: | |
description: A user instance | |
schema: | |
type: object | |
items: | |
$ref: '#/definitions/Users' | |
400: | |
description: Invalid data supplied. | |
schema: | |
$ref: '#/definitions/Error' | |
401: | |
description: Unauthorized. Missing OAuth authentication token | |
schema: | |
$ref: '#/definitions/Unauthorized' | |
403: | |
description: Permissions Denied. The accessing user must have write permissions for Users and Groups. | |
schema: | |
$ref: '#/definitions/PermissionDenied' | |
put: | |
summary: Replace the list of groups on an Teem User | |
description: Replace the list of groups on an Teem User | |
tags: | |
- Users | |
security: | |
- eventboard: | |
- users | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: the user id | |
type: integer | |
format: int32 | |
- name: group_ids | |
in: body | |
required: true | |
description: the list of group ids | |
schema: | |
$ref: '#/definitions/GroupIdPayload' | |
responses: | |
200: | |
description: A user instance | |
schema: | |
type: object | |
items: | |
$ref: '#/definitions/Users' | |
400: | |
description: Invalid data supplied. | |
schema: | |
$ref: '#/definitions/Error' | |
401: | |
description: Unauthorized. Missing OAuth authentication token | |
schema: | |
$ref: '#/definitions/Unauthorized' | |
403: | |
description: Permissions Denied. The accessing user must have write permissions for Users and Groups. | |
schema: | |
$ref: '#/definitions/PermissionDenied' | |
/Groups: | |
get: | |
summary: Teem Groups | |
tags: | |
- Groups | |
security: | |
- eventboard: | |
- users | |
responses: | |
200: | |
description: An array of groups | |
schema: | |
type: object | |
properties: | |
totalResults: | |
type: integer | |
format: int32 | |
schemas: | |
type: array | |
items: | |
type: string | |
Resources: | |
type: array | |
items: | |
$ref: '#/definitions/Groups' | |
401: | |
description: Unauthorized. Missing OAuth authentication token | |
schema: | |
$ref: '#/definitions/Unauthorized' | |
403: | |
description: Permissions Denied. The accessing user must have write permissions for Users and Groups. | |
schema: | |
$ref: '#/definitions/PermissionDenied' | |
post: | |
summary: Create an Teem Group | |
description: Creates and Returns an Teem Group. | |
tags: | |
- Groups | |
security: | |
- eventboard: | |
- users | |
parameters: | |
- in: body | |
name: body | |
description: Group object to be added | |
required: true | |
schema: | |
$ref: "#/definitions/Groups" | |
responses: | |
201: | |
description: The group that was just created | |
schema: | |
type: object | |
items: | |
$ref: '#/definitions/Groups' | |
400: | |
description: Invalid data supplied. Will contain a key for each invalid field supplied. | |
schema: | |
$ref: '#/definitions/Error' | |
401: | |
description: Unauthorized. Missing OAuth authentication token | |
schema: | |
$ref: '#/definitions/Unauthorized' | |
403: | |
description: Permissions Denied. The accessing user must have write permissions for Users and Groups. | |
schema: | |
$ref: '#/definitions/PermissionDenied' | |
409: | |
description: Uniqueness Error. Conflicting externalId or other unique field. | |
schema: | |
$ref: '#/definitions/UniquenessError' | |
/Groups/{id}: | |
get: | |
summary: A single Teem Group | |
tags: | |
- Groups | |
security: | |
- eventboard: | |
- users | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: the Group id | |
type: integer | |
format: int32 | |
responses: | |
200: | |
description: A Teem Group | |
schema: | |
type: object | |
items: | |
$ref: '#/definitions/Groups' | |
401: | |
description: Unauthorized. Missing OAuth authentication token | |
schema: | |
$ref: '#/definitions/Unauthorized' | |
403: | |
description: Permissions Denied. The accessing user must have write permissions for Users and Groups. | |
schema: | |
$ref: '#/definitions/PermissionDenied' | |
patch: | |
summary: Update a single Teem Group | |
tags: | |
- Groups | |
security: | |
- eventboard: | |
- users | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: the Group id | |
type: integer | |
format: int32 | |
- in: body | |
name: body | |
description: the Group object to be replaced | |
required: true | |
schema: | |
$ref: "#/definitions/Groups" | |
responses: | |
200: | |
description: A user instance | |
schema: | |
type: object | |
items: | |
$ref: '#/definitions/Groups' | |
401: | |
description: Unauthorized. Missing OAuth authentication token | |
schema: | |
$ref: '#/definitions/Unauthorized' | |
403: | |
description: Permissions Denied. The accessing user must have write permissions for Users and Groups. | |
schema: | |
$ref: '#/definitions/PermissionDenied' | |
422: | |
description: Invalid data supplied. Will contain a key for each invalid field supplied. | |
schema: | |
$ref: '#/definitions/Error' | |
409: | |
description: Uniqueness Error. Conflicting externalId or other unique field. | |
schema: | |
$ref: '#/definitions/UniquenessError' | |
delete: | |
summary: Delete an Teem Group | |
tags: | |
- Groups | |
security: | |
- eventboard: | |
- users | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: the Group id | |
type: integer | |
format: int32 | |
responses: | |
204: | |
description: Notification that the delete was successful. | |
401: | |
description: Unauthorized. Missing OAuth authentication token | |
schema: | |
$ref: '#/definitions/Unauthorized' | |
403: | |
description: Permissions Denied. The accessing user must have write permissions for Users and Groups. | |
schema: | |
$ref: '#/definitions/PermissionDenied' | |
/Groups/{id}/users: | |
patch: | |
summary: Update the list of users on an Teem group | |
description: Update the list of users on an Teem group | |
tags: | |
- Groups | |
security: | |
- eventboard: | |
- users | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: the group id | |
type: integer | |
format: int32 | |
- name: group_ids | |
in: body | |
required: true | |
description: the list of group ids | |
schema: | |
$ref: '#/definitions/UserIdPayload' | |
responses: | |
200: | |
description: A group instance | |
schema: | |
type: object | |
items: | |
$ref: '#/definitions/Groups' | |
400: | |
description: Invalid data supplied. | |
schema: | |
$ref: '#/definitions/Error' | |
401: | |
description: Unauthorized. Missing OAuth authentication token | |
schema: | |
$ref: '#/definitions/Unauthorized' | |
403: | |
description: Permissions Denied. The accessing user must have write permissions for Users and Groups. | |
schema: | |
$ref: '#/definitions/PermissionDenied' | |
put: | |
summary: Replace the list of users on an Teem group | |
description: Replace the list of users on an Teem group | |
tags: | |
- Groups | |
security: | |
- eventboard: | |
- users | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: the group id | |
type: integer | |
format: int32 | |
- name: group_ids | |
in: body | |
required: true | |
description: the list of group ids | |
schema: | |
$ref: '#/definitions/UserIdPayload' | |
responses: | |
200: | |
description: A group instance | |
schema: | |
type: object | |
items: | |
$ref: '#/definitions/Groups' | |
400: | |
description: Invalid data supplied. | |
schema: | |
$ref: '#/definitions/Error' | |
401: | |
description: Unauthorized. Missing OAuth authentication token | |
schema: | |
$ref: '#/definitions/Unauthorized' | |
403: | |
description: Permissions Denied. The accessing user must have write permissions for Users and Groups. | |
schema: | |
$ref: '#/definitions/PermissionDenied' | |
definitions: | |
Users: | |
properties: | |
id: | |
type: integer | |
format: int32 | |
default: 1 | |
description: Unique identifier for the user. | |
externalId: | |
type: string | |
description: Unique identifier provided from an extrnal source. | |
active: | |
type: boolean | |
description: is the user active | |
userName: | |
type: string | |
description: The user's email address. | |
displayName: | |
type: object | |
properties: | |
familyName: | |
type: string | |
givenName: | |
type: string | |
formatted: | |
type: string | |
name: | |
type: object | |
description: The user's name. | |
properties: | |
familyName: | |
type: string | |
givenName: | |
type: string | |
formatted: | |
type: string | |
emails: | |
type: array | |
items: | |
type: object | |
properties: | |
value: | |
type: string | |
description: The email address | |
'type': | |
type: string | |
example: other | |
primary: | |
type: boolean | |
phoneNumbers: | |
type: array | |
items: | |
type: object | |
properties: | |
value: | |
type: string | |
description: The phone number | |
'type': | |
type: string | |
example: other | |
primary: | |
type: boolean | |
groups: | |
type: array | |
readOnly: true | |
items: | |
type: object | |
properties: | |
value: | |
type: integer | |
format: int32 | |
description: The group id. | |
display: | |
type: string | |
description: The group name. | |
ref: | |
type: string | |
description: The uri for the group. | |
meta: | |
type: object | |
properties: | |
resourceType: | |
type: string | |
default: 'User' | |
created: | |
type: string | |
format: dateTime | |
location: | |
type: string | |
description: uri for this User. | |
version: | |
type: string | |
description: e-tag for this User. | |
schemas: | |
type: array | |
items: | |
type: string | |
format: string | |
required: | |
- externalId | |
- emails | |
- userName | |
- name | |
- active | |
Groups: | |
properties: | |
id: | |
type: integer | |
format: int32 | |
displayName: | |
type: string | |
format: string | |
device: | |
type: boolean | |
description: | |
type: string | |
format: string | |
memebers: | |
type: array | |
items: | |
type: object | |
properties: | |
value: | |
type: integer | |
format: int32 | |
description: the user id of the group member | |
ref: | |
type: string | |
description: the uri of the user | |
meta: | |
type: object | |
properties: | |
resourceType: | |
type: string | |
default: 'User' | |
created: | |
type: string | |
format: dateTime | |
location: | |
type: string | |
description: uri for this Group. | |
version: | |
type: string | |
description: e-tag for this Group. | |
schemas: | |
type: array | |
items: | |
type: string | |
format: string | |
required: | |
- displayName | |
GroupIdPayload: | |
properties: | |
group_ids: | |
type: array | |
items: | |
type: integer | |
format: int32 | |
description: Eventboard group id | |
required: | |
- group_ids | |
UserIdPayload: | |
properties: | |
user_ids: | |
type: array | |
items: | |
type: integer | |
format: int32 | |
description: Eventboard user id | |
required: | |
- user_ids | |
Error: | |
properties: | |
status: | |
type: integer | |
format: int32 | |
example: 400 | |
schemas: | |
type: array | |
items: | |
type: string | |
example: ['urn:ietf:params:scim:api:messages:2.0:Error'] | |
field_name: | |
type: array | |
items: | |
type: string | |
example: ['Email is a required field.'] | |
Unauthorized: | |
properties: | |
status: | |
type: integer | |
format: int32 | |
example: 401 | |
description: HTTP status code | |
schemas: | |
type: array | |
items: | |
type: string | |
example: ['urn:ietf:params:scim:api:messages:2.0:Error'] | |
detail: | |
type: string | |
UniquenessError: | |
properties: | |
status: | |
type: integer | |
format: int32 | |
example: 409 | |
description: HTTP status code | |
schemas: | |
type: array | |
items: | |
type: string | |
example: ['urn:ietf:params:scim:api:messages:2.0:Error'] | |
scimType: | |
type: string | |
detail: | |
type: string | |
PermissionDenied: | |
properties: | |
status: | |
type: integer | |
format: int32 | |
example: 403 | |
description: HTTP status code | |
schemas: | |
type: array | |
items: | |
type: string | |
example: ['urn:ietf:params:scim:api:messages:2.0:Error'] | |
detail: | |
type: string |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment