# Entitlements Technical Reference

Canonical page: https://www.adaptabletools.com/docs/technical-reference-permissioning

## Entitlement Options

| Property | Type | Description | Default |
| --- | --- | --- | --- |
| [defaultAccessLevel](https://www.adaptabletools.com/docs/reference/entitlementoptions.md#defaultaccesslevel) | [`AccessLevel`](https://www.adaptabletools.com/docs/reference/accesslevel.md)` \| ((defaultAccessLevelContext: `[`DefaultAccessLevelContext`](https://www.adaptabletools.com/docs/reference/defaultaccesslevelcontext.md)`) => `[`AccessLevel`](https://www.adaptabletools.com/docs/reference/accesslevel.md)`)` | AccessLevel used by modules that do not define their own default (via<br/>`Module.getDefaultAccessLevel()`). Can be a hardcoded value or a function.<br/><br/>Note: some modules override the per-module default (e.g. State Management defaults to<br/>`Hidden` unless explicitly entitled). Setting this to `Full` does not force those modules<br/>visible — use `moduleEntitlements` to opt them in. | &#39;Full&#39; |
| [moduleEntitlements](https://www.adaptabletools.com/docs/reference/entitlementoptions.md#moduleentitlements) | [`Entitlement`](https://www.adaptabletools.com/docs/reference/entitlement.md)`[] \| ((entitlementContext: `[`EntitlementContext`](https://www.adaptabletools.com/docs/reference/entitlementcontext.md)`) => `[`AccessLevel`](https://www.adaptabletools.com/docs/reference/accesslevel.md)` \| undefined)` | Returns either collection of `Entitlements`, or a function to invoke when an Entitlement is required |   |

`defaultAccessLevel` is an [`AccessLevel`](https://www.adaptabletools.com/docs/reference/accesslevel.md):

[See API: accesslevel](https://www.adaptabletools.com/docs/reference/accesslevel.md)

`moduleEntitlements` entries are an [`Entitlement`](https://www.adaptabletools.com/docs/reference/entitlement.md):

| Property | Type | Description |
| --- | --- | --- |
| [accessLevel](https://www.adaptabletools.com/docs/reference/entitlement.md#accesslevel) | [`AccessLevel`](https://www.adaptabletools.com/docs/reference/accesslevel.md) | Access Level for an Entitlement; options are: `Full` `ReadOnly` `Hidden` |
| [adaptableModule](https://www.adaptabletools.com/docs/reference/entitlement.md#adaptablemodule) | [`AdaptableModule`](https://www.adaptabletools.com/docs/reference/adaptablemodule.md) | Name of Adaptable Module that has the Entitlement applied |

`adaptableModule` is an [`AdaptableModule`](https://www.adaptabletools.com/docs/reference/adaptablemodule.md):

[See API: adaptablemodule](https://www.adaptabletools.com/docs/reference/adaptablemodule.md)

<hr/>

## Entitlement API

| Method | Returns | Description |
| --- | --- | --- |
| [getEntitlementAccessLevelForModule(adaptableModule)](https://www.adaptabletools.com/docs/reference/entitlementapi.md#getentitlementaccesslevelformodule) | [`AccessLevel`](https://www.adaptabletools.com/docs/reference/accesslevel.md) | Returns Access Level of a Module |
| [isModuleFullEntitlement(adaptableModule)](https://www.adaptabletools.com/docs/reference/entitlementapi.md#ismodulefullentitlement) | `boolean` | Is Module Full |
| [isModuleHiddenEntitlement(adaptableModule)](https://www.adaptabletools.com/docs/reference/entitlementapi.md#ismodulehiddenentitlement) | `boolean` | Is Module Hidden |
| [isModuleReadOnlyEntitlement(adaptableModule)](https://www.adaptabletools.com/docs/reference/entitlementapi.md#ismodulereadonlyentitlement) | `boolean` | Is Module ReadOnly |
| [isObjectReadonly(object)](https://www.adaptabletools.com/docs/reference/entitlementapi.md#isobjectreadonly) | `boolean` | Is the Adaptable Object ReadOnly |
