---
editLink: false
lastUpdated: false
---

[@salesforce/b2c-tooling-sdk](../../../modules.md) / [operations/bm-roles](../index.md) / ScapiRolesBackend

# Class: ScapiRolesBackend

Defined in: [packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts:47](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/2feab01f654eec77c6d702777ec2818472f131f1/packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts#L47)

Common shape of every dual-backend implementation. Each canonical backend
(e.g., `JobsBackend`) extends this so a generic fallback wrapper can read
`name` to know which backend served the last call.

## Implements

- [`RolesBackend`](../interfaces/RolesBackend.md)

## Constructors

### Constructor

> **new ScapiRolesBackend**(`config`): `ScapiRolesBackend`

Defined in: [packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts:53](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/2feab01f654eec77c6d702777ec2818472f131f1/packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts#L53)

#### Parameters

##### config

[`ScapiRolesBackendConfig`](../interfaces/ScapiRolesBackendConfig.md)

#### Returns

`ScapiRolesBackend`

## Properties

### name

> `readonly` **name**: `"scapi"`

Defined in: [packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts:48](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/2feab01f654eec77c6d702777ec2818472f131f1/packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts#L48)

#### Implementation of

[`RolesBackend`](../interfaces/RolesBackend.md).[`name`](../interfaces/RolesBackend.md#name)

## Methods

### createRole()

> **createRole**(`roleId`, `input?`): `Promise`\<[`RoleInfo`](../interfaces/RoleInfo.md)\>

Defined in: [packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts:101](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/2feab01f654eec77c6d702777ec2818472f131f1/packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts#L101)

#### Parameters

##### roleId

`string`

##### input?

[`CreateRoleInput`](../interfaces/CreateRoleInput.md)

#### Returns

`Promise`\<[`RoleInfo`](../interfaces/RoleInfo.md)\>

#### Implementation of

[`RolesBackend`](../interfaces/RolesBackend.md).[`createRole`](../interfaces/RolesBackend.md#createrole)

***

### deleteRole()

> **deleteRole**(`roleId`): `Promise`\<`void`\>

Defined in: [packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts:117](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/2feab01f654eec77c6d702777ec2818472f131f1/packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts#L117)

#### Parameters

##### roleId

`string`

#### Returns

`Promise`\<`void`\>

#### Implementation of

[`RolesBackend`](../interfaces/RolesBackend.md).[`deleteRole`](../interfaces/RolesBackend.md#deleterole)

***

### getPermissions()

> **getPermissions**(`roleId`): `Promise`\<\{ \}\>

Defined in: [packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts:127](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/2feab01f654eec77c6d702777ec2818472f131f1/packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts#L127)

#### Parameters

##### roleId

`string`

#### Returns

`Promise`\<\{ \}\>

#### Implementation of

[`RolesBackend`](../interfaces/RolesBackend.md).[`getPermissions`](../interfaces/RolesBackend.md#getpermissions)

***

### getRole()

> **getRole**(`roleId`, `options?`): `Promise`\<[`RoleInfo`](../interfaces/RoleInfo.md)\>

Defined in: [packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts:86](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/2feab01f654eec77c6d702777ec2818472f131f1/packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts#L86)

#### Parameters

##### roleId

`string`

##### options?

###### expand?

(`"users"` \| `"permissions"`)[]

#### Returns

`Promise`\<[`RoleInfo`](../interfaces/RoleInfo.md)\>

#### Implementation of

[`RolesBackend`](../interfaces/RolesBackend.md).[`getRole`](../interfaces/RolesBackend.md#getrole)

***

### grantRole()

> **grantRole**(`roleId`, `login`): `Promise`\<`void`\>

Defined in: [packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts:151](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/2feab01f654eec77c6d702777ec2818472f131f1/packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts#L151)

Assigns a user to a role. Returns void; OCAPI returns the user but we don't surface that.

#### Parameters

##### roleId

`string`

##### login

`string`

#### Returns

`Promise`\<`void`\>

#### Implementation of

[`RolesBackend`](../interfaces/RolesBackend.md).[`grantRole`](../interfaces/RolesBackend.md#grantrole)

***

### listRoles()

> **listRoles**(`options`): `Promise`\<[`ListRolesResult`](../interfaces/ListRolesResult.md)\>

Defined in: [packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts:63](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/2feab01f654eec77c6d702777ec2818472f131f1/packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts#L63)

#### Parameters

##### options

[`ListRolesOptions`](../interfaces/ListRolesOptions.md) = `{}`

#### Returns

`Promise`\<[`ListRolesResult`](../interfaces/ListRolesResult.md)\>

#### Implementation of

[`RolesBackend`](../interfaces/RolesBackend.md).[`listRoles`](../interfaces/RolesBackend.md#listroles)

***

### revokeRole()

> **revokeRole**(`roleId`, `login`): `Promise`\<`void`\>

Defined in: [packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts:161](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/2feab01f654eec77c6d702777ec2818472f131f1/packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts#L161)

#### Parameters

##### roleId

`string`

##### login

`string`

#### Returns

`Promise`\<`void`\>

#### Implementation of

[`RolesBackend`](../interfaces/RolesBackend.md).[`revokeRole`](../interfaces/RolesBackend.md#revokerole)

***

### setPermissions()

> **setPermissions**(`roleId`, `permissions`): `Promise`\<\{ \}\>

Defined in: [packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts:139](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/2feab01f654eec77c6d702777ec2818472f131f1/packages/b2c-tooling-sdk/src/operations/bm-roles/scapi-backend.ts#L139)

#### Parameters

##### roleId

`string`

##### permissions

#### Returns

`Promise`\<\{ \}\>

#### Implementation of

[`RolesBackend`](../interfaces/RolesBackend.md).[`setPermissions`](../interfaces/RolesBackend.md#setpermissions)
