Skip to content
This repository was archived by the owner on Apr 27, 2021. It is now read-only.

API Reference Resources

vsts build edited this page Sep 25, 2017 · 45 revisions

Resources

Clients

Operations for managing clients

Registers a new client

POST /v1/Clients
Parameters
Type Name Description Schema
Body Client
required
The client to register ClientApiModel
Responses
HTTP Code Description Schema
201 Created ClientApiModel
400 Client with specified id already exists or Client object in body failed validation Error
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write,fabric/authorization.manageclients

Gets all registered clients

GET /v1/Clients
Responses
HTTP Code Description Schema
200 OK ClientApiModel
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read,fabric/authorization.manageclients

Gets a single client

GET /v1/Clients/{clientid}
Parameters
Type Name Description Schema
Path clientid
required
ClientId to use for the request integer
Responses
HTTP Code Description Schema
200 Client found ClientApiModel
403 Client does not have access No Content
404 Client with specified id was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read,fabric/authorization.manageclients

Deletes a client

DELETE /v1/Clients/{clientid}
Parameters
Type Name Description Schema
Path clientid
required
ClientId to use for the request integer
Responses
HTTP Code Description Schema
204 Client deleted No Content
403 Client does not have access No Content
404 Client with specified id was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write,fabric/authorization.manageclients

Fabric.Identity Search

Operations for searching Fabric.Identity

Searches for users and (non-custom) groups by client ID and other optional parameters.

GET /v1/identities
Parameters
Type Name Description Schema
Query client_id
required
Client ID string
Query filter
optional
Text filter string
Query page_number
optional
Page number integer
Query page_size
optional
Page size integer
Query sort_dir
optional
Sort direction string
Query sort_key
optional
Sort key string
Responses
HTTP Code Description Schema
200 OK < IdentitySearchResponse > array
400 Group already exists Error
403 Client does not have the required scopes to read data in Fabric.Authorization (fabric/authorization.read). No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Groups

Operations for managing groups

Adds a new group

POST /v1/groups
Description

GroupSource can be either "Custom" for creating custom groups in Fabric or the displayName of the 3rd party identity provider if the group is from an external Idp. If groupSource is empty, it will be defaulted to the group source defined in the appsettings.json

Parameters
Type Name Description Schema
Body Group
required
The group to add GroupRoleApiModel
Responses
HTTP Code Description Schema
201 Created GroupRoleApiModel
400 Group already exists Error
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read,fabric/authorization.write

Updates a list of groups, useful for syncing 3rd party ID Provider groups with Fabric.Authorization groups.

POST /v1/groups/UpdateGroups
Parameters
Type Name Description Schema
Body Group
required
The groups to update < GroupRoleApiModel > array
Responses
HTTP Code Description Schema
204 Groups updated No Content
400 Group already exists Error
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Gets a group by name

GET /v1/groups/{groupName}
Parameters
Type Name Description Schema
Path groupName
required
The name of the group string
Responses
HTTP Code Description Schema
200 OK GroupRoleApiModel
403 Client does not have access No Content
404 Group with specified name was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Deletes a group

DELETE /v1/groups/{groupName}
Parameters
Type Name Description Schema
Path groupName
required
The name of the group string
Responses
HTTP Code Description Schema
204 Group deleted No Content
403 Client does not have access No Content
404 Group with specified name was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Adds a role to a group

POST /v1/groups/{groupName}/roles
Parameters
Type Name Description Schema
Path groupName
required
The name of the group string
Body Id
required
Role ID (GUID) string
Responses
HTTP Code Description Schema
201 Created GroupRoleApiModel
403 Client does not have access No Content
404 Group with specified name was not found or the role was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Gets roles for a group by group name

GET /v1/groups/{groupName}/roles
Parameters
Type Name Description Schema
Path groupName
required
The name of the group string
Query grain
optional
grain string
Query securableItem
optional
securable item string
Responses
HTTP Code Description Schema
200 OK GroupRoleApiModel
403 Client does not have access No Content
404 Group with specified name was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Deletes a role from a group

DELETE /v1/groups/{groupName}/roles
Parameters
Type Name Description Schema
Path groupName
required
The name of the group string
Body Id
required
Role ID (GUID) string
Responses
HTTP Code Description Schema
200 Updated group entity including any mapped roles GroupRoleApiModel
403 Client does not have access Error
404 Group with specified name was not found or the role was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Adds a user to a group.

POST /v1/groups/{groupName}/users
Description
  1. This operation is only valid for custom groups. 2) The user specified by SubjectId parameter will be added silently if not found.
Parameters
Type Name Description Schema
Path groupName
required
The name of the group string
Body subjectId
required
Subject ID of the user string
Responses
HTTP Code Description Schema
201 Created GroupUserApiModel
400 Group is not a custom group Error
403 Client does not have access Error
404 Group with specified name was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Gets users for a custom group by group name

GET /v1/groups/{groupName}/users
Parameters
Type Name Description Schema
Path groupName
required
The name of the group string
Responses
HTTP Code Description Schema
200 OK GroupUserApiModel
403 Client does not have access Error
404 Group with specified name was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Deletes a user from a group

DELETE /v1/groups/{groupName}/users
Parameters
Type Name Description Schema
Path groupName
required
The name of the group string
Body subjectId
required
Subject ID of the user string
Responses
HTTP Code Description Schema
200 Updated group entity including any mapped users GroupUserApiModel
403 Client does not have access Error
404 Group with specified name was not found or the user was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Permissions

Operations for managing permissions

Adds a new permissions

POST /v1/Permissions
Parameters
Type Name Description Schema
Body Permission
required
The permission to add PermissionApiModel
Responses
HTTP Code Description Schema
201 Permission was created No Content
400 Permission data in body is invalid Error
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Get permissions for a particular grain and securable item

GET /v1/Permissions/{grain}/{securableItem}
Parameters
Type Name Description Schema
Path grain
required
The top level grain to return permissions for string
Path securableItem
required
The specific securableItem within the grain to return permissions for string
Responses
HTTP Code Description Schema
200 OK < PermissionApiModel > array
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Get permissions for a particular grain, securable item, and permission name

GET /v1/Permissions/{grain}/{securableItem}/{permissionName}
Parameters
Type Name Description Schema
Path grain
required
The top level grain to return permissions for string
Path permissionName
required
The name of the permission string
Path securableItem
required
The specific securableItem within the grain to return permissions for string
Responses
HTTP Code Description Schema
200 OK < PermissionApiModel > array
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Get a permission by permission id

GET /v1/Permissions/{permissionId}
Parameters
Type Name Description Schema
Path permissionId
required
The id of the permission string
Responses
HTTP Code Description Schema
200 Permission was found PermissionApiModel
400 Permission id must be a Guid Error
403 Client does not have access No Content
404 Permission with the specified id was not found No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Deletes a permission

DELETE /v1/Permissions/{permissionId}
Parameters
Type Name Description Schema
Path permissionId
required
The id of the permission string
Responses
HTTP Code Description Schema
204 Permission with the specified id was deleted No Content
400 Permission id must be a guid Error
403 Client does not have access No Content
404 Permission with specified id was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Roles

Operations for managing roles

Add a new role

POST /v1/roles
Parameters
Type Name Description Schema
Body Role
required
The role to add RoleApiModel
Responses
HTTP Code Description Schema
201 Created RoleApiModel
400 Role with specified id already exists or Role object in body failed validation Error
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Get roles associated with a securable item

GET /v1/roles/{grain}/{securableItem}
Parameters
Type Name Description Schema
Path grain
required
The top level grain to return permissions for string
Path securableItem
required
The specific securableItem within the grain to return permissions for string
Responses
HTTP Code Description Schema
200 OK No Content
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Get a role by role name

GET /v1/roles/{grain}/{securableItem}/{roleName}
Parameters
Type Name Description Schema
Path grain
required
The top level grain to return permissions for string
Path roleName
required
The name of the role string
Path securableItem
required
The specific securableItem within the grain to return permissions for string
Responses
HTTP Code Description Schema
200 Role with specified name was found < RoleApiModel > array
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Deletes a role

DELETE /v1/roles/{roleId}
Parameters
Type Name Description Schema
Path roleId
required
The id of the role string
Responses
HTTP Code Description Schema
204 Role with the specified id was deleted No Content
400 Invalid roled id provided Error
403 Client does not have access No Content
404 Role with specified id was not found No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Add permissions to an existing role

POST /v1/roles/{roleId}/permissions
Parameters
Type Name Description Schema
Path roleId
required
The id of the role string
Body List of permissions
required
The list of permissions to add to the role < PermissionApiModel > array
Responses
HTTP Code Description Schema
201 Permission added to role RoleApiModel
400 Invalid role id, no permissions specified to add, or incompatible permission provided Error
403 Client does not have access No Content
404 Role not found or permission not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Delete permissions from an existing role

DELETE /v1/roles/{roleId}/permissions
Parameters
Type Name Description Schema
Path roleId
required
The id of the role string
Body List of permissions
required
The list of permissions to add to the role < PermissionApiModel > array
Responses
HTTP Code Description Schema
201 Permission removed from role RoleApiModel
400 Invalid role id or no permissions specified to delete from role Error
403 Client does not have access No Content
404 Role not found or permission not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Securable Item

Operations for managing Securable Items

Add a new securable item

POST /v1/SecurableItems
Parameters
Type Name Description Schema
Body Securable Item
required
The securable item to add SecurableItemApiModel
Responses
HTTP Code Description Schema
201 Created SecurableItemApiModel
400 The securable item id is not a guid, the securable item failed validation, or it already exists Error
403 Client does not have access No Content
404 The client was not found by client id No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Gets the top level securable item by client id

GET /v1/SecurableItems
Responses
HTTP Code Description Schema
200 OK SecurableItemApiModel
403 Client does not have access No Content
404 The client was not found by client id No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Add a new securable item by the specified securable item id

POST /v1/SecurableItems/{securableItemId}
Parameters
Type Name Description Schema
Path securableItemId
required
The id of the securable item string
Body Securable Item
required
The securable item to add SecurableItemApiModel
Responses
HTTP Code Description Schema
201 Created SecurableItemApiModel
400 The securable item id is not a guid, the securable item failed validation, or it already exists Error
403 Client does not have access No Content
404 The client was not found by client id or the specified securable item by id was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.write

Gets a securable item by client id and securable item id

GET /v1/SecurableItems/{securableItemId}
Parameters
Type Name Description Schema
Path securableItemId
required
The id of the securable item string
Responses
HTTP Code Description Schema
200 OK SecurableItemApiModel
400 The securable item id must be a guid Error
403 Client does not have access No Content
404 The client was not found by client id or the securable item was not found No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Users

Operations related to user permissions

Gets permissions for a user

GET /v1/user/permissions
Responses
HTTP Code Description Schema
200 OK UserPermissionsApiModel
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Gets custom groups for a user

GET /v1/user/{subjectId}/groups
Parameters
Type Name Description Schema
Path subjectId
required
Subject ID (from external identity provider) string
Responses
HTTP Code Description Schema
200 List of strings representing group names in which the user belongs < string > array
403 Client does not have access No Content
404 User was not found Error
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Adds granular permissions for a user

POST /v1/user/{userId}/AdditionalPermissions
Parameters
Type Name Description Schema
Path userId
required
UserId to use for the request integer
Body GranularPermissions
required
The permissions to explicitly allow for the user. GranularPermissionApiModel
Responses
HTTP Code Description Schema
204 N/A No Content
400 Bad Request Error
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.manageclients

Adds denied permissions for a user

POST /v1/user/{userId}/DeniedPermissions
Parameters
Type Name Description Schema
Path userId
required
UserId to use for the request integer
Body GranularPermissions
required
The permissions to explicitly deny for the user. GranularPermissionApiModel
Responses
HTTP Code Description Schema
204 N/A No Content
400 Bad Request Error
403 Client does not have access No Content
Security
Type Name Scopes
Unknown Oauth2 fabric/authorization.read

Clone this wiki locally