> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bijection.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Interface: RequestOperations<D, Definition, S>

> Not exported: an exported type refers to it.

[server](/api/modules/server).RequestOperations

Not exported: an exported type refers to it.

## Type parameters

| Name | Type |
| :- | :- |
| `D` | extends [`AccessModelDefinition`](/api/modules/server#accessmodeldefinition) |
| `Definition` | `Definition` |
| `S` | extends [`GenericSchema`](/api/modules/server#genericschema) |

## Properties

### requireAudited

• **requireAudited**: `string` extends keyof `D`\[`"types"`] ? (`request`: [`ModelAccessRequest`](/api/modules/server#modelaccessrequest)\<`D`>) => `Promise`\<[`GoverningResult`](/api/modules/server#governingresult)> : `D` extends \{ `audit`: `true`  } ? (`request`: [`ModelAccessRequest`](/api/modules/server#modelaccessrequest)\<`D`>) => `Promise`\<[`GoverningResult`](/api/modules/server#governingresult)> : `never`

## Methods

### renew

▸ **renew**(`input`, `options?`): `Promise`\<[`GenericId`](/api/modules/values#genericid)\<`string`>>

#### Parameters

| Name | Type |
| :- | :- |
| `input` | `Object` |
| `input.assignmentId` | [`GenericId`](/api/modules/values#genericid)\<`string`> |
| `input.expiresAt` | `number` |
| `input.reason?` | `string` |
| `options?` | [`AssignmentOptions`](/api/modules/server#assignmentoptions) |

#### Returns

`Promise`\<[`GenericId`](/api/modules/values#genericid)\<`string`>>

***

### revoke

▸ **revoke**(`input`): `Promise`\<`void`>

#### Parameters

| Name | Type |
| :- | :- |
| `input` | `Object` |
| `input.assignmentId` | [`GenericId`](/api/modules/values#genericid)\<`string`> |

#### Returns

`Promise`\<`void`>

***

### reviewDue

▸ **reviewDue**(`input`): `Promise`\<[`Assignment`](/api/modules/server#assignment) | `null`>

#### Parameters

| Name | Type |
| :- | :- |
| `input` | `Object` |
| `input.id` | [`GenericId`](/api/modules/values#genericid)\<`string`> |

#### Returns

`Promise`\<[`Assignment`](/api/modules/server#assignment) | `null`>

***

### inspect

▸ **inspect**(): `AccessInspector`

#### Returns

`AccessInspector`

***

### requestable

▸ **requestable**(`resource`): `Promise`\<\{ `role`: `string` ; `maxDuration`: `number` | `null` ; `reasonRequired`: `boolean`  }\[]>

#### Parameters

| Name | Type |
| :- | :- |
| `resource` | [`ModelTarget`](/api/modules/server#modeltarget)\<`D`> |

#### Returns

`Promise`\<\{ `role`: `string` ; `maxDuration`: `number` | `null` ; `reasonRequired`: `boolean`  }\[]>

***

### readVisible

▸ **readVisible**(`type`, `ids`, `options`): `Promise`\<`VisibleRead`\[]>

#### Parameters

| Name | Type |
| :- | :- |
| `type` | [`TypeNames`](/api/modules/server#typenames)\<`D`> |
| `ids` | readonly `string`\[] |
| `options` | `Object` |
| `options.select` | readonly `string`\[] |

#### Returns

`Promise`\<`VisibleRead`\[]>

***

### check

▸ **check**(`request`): `Promise`\<[`AccessDecision`](/api/modules/server#accessdecision)>

#### Parameters

| Name | Type |
| :- | :- |
| `request` | [`ModelAccessRequest`](/api/modules/server#modelaccessrequest)\<`D`> |

#### Returns

`Promise`\<[`AccessDecision`](/api/modules/server#accessdecision)>

***

### checkMany

▸ **checkMany**(`requests`): `Promise`\<[`AccessDecision`](/api/modules/server#accessdecision)\[]>

#### Parameters

| Name | Type |
| :- | :- |
| `requests` | readonly [`ModelAccessRequest`](/api/modules/server#modelaccessrequest)\<`D`>\[] |

#### Returns

`Promise`\<[`AccessDecision`](/api/modules/server#accessdecision)\[]>

***

### require

▸ **require**(`request`): `Promise`\<[`GoverningResult`](/api/modules/server#governingresult)>

#### Parameters

| Name | Type |
| :- | :- |
| `request` | [`ModelAccessRequest`](/api/modules/server#modelaccessrequest)\<`D`> |

#### Returns

`Promise`\<[`GoverningResult`](/api/modules/server#governingresult)>

***

### requirePrincipal

▸ **requirePrincipal**(`request`): `Promise`\<[`GoverningResult`](/api/modules/server#governingresult)>

#### Parameters

| Name | Type |
| :- | :- |
| `request` | [`ModelAccessRequest`](/api/modules/server#modelaccessrequest)\<`D`> & \{ `principal`: [`AccessPrincipal`](/api/modules/server#accessprincipal)\<[`PrincipalKey`](/api/modules/server#principalkey)\<`D`, [`EndpointContext`](/api/modules/server#endpointcontext)\<`S`>>>  } |

#### Returns

`Promise`\<[`GoverningResult`](/api/modules/server#governingresult)>

***

### isInitialOwner

▸ **isInitialOwner**(): `Promise`\<`boolean`>

#### Returns

`Promise`\<`boolean`>

***

### principal

▸ **principal**(): `Promise`\<[`AccessPrincipal`](/api/modules/server#accessprincipal)\<[`PrincipalKey`](/api/modules/server#principalkey)\<`D`, [`EndpointContext`](/api/modules/server#endpointcontext)\<`S`>>, `string`> | `null`>

#### Returns

`Promise`\<[`AccessPrincipal`](/api/modules/server#accessprincipal)\<[`PrincipalKey`](/api/modules/server#principalkey)\<`D`, [`EndpointContext`](/api/modules/server#endpointcontext)\<`S`>>, `string`> | `null`>

***

### grant

▸ **grant**(`input`, `options?`): `Promise`\<[`GenericId`](/api/modules/values#genericid)\<`string`>>

#### Parameters

| Name | Type |
| :- | :- |
| `input` | [`ModelAssignmentInput`](/api/modules/server#modelassignmentinput)\<`D`, [`EndpointContext`](/api/modules/server#endpointcontext)\<`S`>> |
| `options?` | [`AssignmentOptions`](/api/modules/server#assignmentoptions) |

#### Returns

`Promise`\<[`GenericId`](/api/modules/values#genericid)\<`string`>>

***

### permissionsOn

▸ **permissionsOn**(`resource`): `Promise`\<`AccessPermission`\<`D`>\[]>

#### Parameters

| Name | Type |
| :- | :- |
| `resource` | [`ModelTarget`](/api/modules/server#modeltarget)\<`D`> |

#### Returns

`Promise`\<`AccessPermission`\<`D`>\[]>

***

### candidateKeys

▸ **candidateKeys**\<`T`>(`input`): `Promise`\<[`ResourceKey`](/api/modules/server#resourcekey)\<`D`, `T`>\[]>

#### Type parameters

| Name | Type |
| :- | :- |
| `T` | extends [`TypeNames`](/api/modules/server#typenames)\<`D`> |

#### Parameters

| Name | Type |
| :- | :- |
| `input` | `Object` |
| `input.type` | `T` |
| `input.permission?` | [`ResourcePermission`](/api/modules/server#resourcepermission)\<`D`, `T`> |
| `input.limit?` | `number` |

#### Returns

`Promise`\<[`ResourceKey`](/api/modules/server#resourcekey)\<`D`, `T`>\[]>

***

### holders

▸ **holders**\<`Target`>(`resource`): `Promise`\<[`AccessHolders`](/api/modules/server#accessholders)\<`Target`>>

#### Type parameters

| Name | Type |
| :- | :- |
| `Target` | extends [`ModelTarget`](/api/modules/server#modeltarget)\<`D`> |

#### Parameters

| Name | Type |
| :- | :- |
| `resource` | `Target` |

#### Returns

`Promise`\<[`AccessHolders`](/api/modules/server#accessholders)\<`Target`>>

***

### revokeAll

▸ **revokeAll**(`resource`): `Promise`\<`number`>

#### Parameters

| Name | Type |
| :- | :- |
| `resource` | [`ModelTarget`](/api/modules/server#modeltarget)\<`D`> |

#### Returns

`Promise`\<`number`>

***

### release

▸ **release**(`input`): `Promise`\<[`ExternalCallId`](/api/modules/server#externalcallid)>

#### Parameters

| Name | Type |
| :- | :- |
| `input` | `string` extends keyof `D`\[`"types"`] ? `AccessReleaseInput` : [`ModelReleaseInput`](/api/modules/server#modelreleaseinput)\<`Definition`> |

#### Returns

`Promise`\<[`ExternalCallId`](/api/modules/server#externalcallid)>

***

### sharedPage

▸ **sharedPage**\<`T`, `Fields`>(`input`): `Promise`\<[`SharedPage`](/api/modules/server#sharedpage)\<[`SelectedDocument`](/api/modules/server#selecteddocument)\<[`SharedDocument`](/api/modules/server#shareddocument)\<`D`, `T`, [`EndpointContext`](/api/modules/server#endpointcontext)\<`S`>>, `Fields`>>>

#### Type parameters

| Name | Type |
| :- | :- |
| `T` | extends [`TypeNames`](/api/modules/server#typenames)\<`D`> |
| `Fields` | extends [`DocumentFields`](/api/modules/server#documentfields)\<[`SharedDocument`](/api/modules/server#shareddocument)\<`D`, `T`, [`EndpointContext`](/api/modules/server#endpointcontext)\<`S`>>> |

#### Parameters

| Name | Type |
| :- | :- |
| `input` | \{ `type`: `T` ; `select`: readonly `Fields`\[]  } & [`SharedPageOptions`](/api/modules/server#sharedpageoptions) |

#### Returns

`Promise`\<[`SharedPage`](/api/modules/server#sharedpage)\<[`SelectedDocument`](/api/modules/server#selecteddocument)\<[`SharedDocument`](/api/modules/server#shareddocument)\<`D`, `T`, [`EndpointContext`](/api/modules/server#endpointcontext)\<`S`>>, `Fields`>>>

▸ **sharedPage**\<`T`>(`input`): `Promise`\<[`SharedPage`](/api/modules/server#sharedpage)\<[`SharedDocument`](/api/modules/server#shareddocument)\<`D`, `T`, [`EndpointContext`](/api/modules/server#endpointcontext)\<`S`>>>>

#### Type parameters

| Name | Type |
| :- | :- |
| `T` | extends [`TypeNames`](/api/modules/server#typenames)\<`D`> |

#### Parameters

| Name | Type |
| :- | :- |
| `input` | \{ `type`: `T`  } & `Omit`\<[`SharedPageOptions`](/api/modules/server#sharedpageoptions), `"select"`> & \{ `select?`: `undefined`  } |

#### Returns

`Promise`\<[`SharedPage`](/api/modules/server#sharedpage)\<[`SharedDocument`](/api/modules/server#shareddocument)\<`D`, `T`, [`EndpointContext`](/api/modules/server#endpointcontext)\<`S`>>>>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.