# IRPCNamedACLs.GetNamedACLs

Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Vault API](https://developer.m-files.com/APIs/gRPC-API/vault/index.md) > [Named access control lists](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCNamedACLs/index.md)

HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCNamedACLs/GetNamedACLs/

Badges: `Vault API / standard` `read` `session or assertion` `idempotent` `returns metadata structure version`

Gets the named ACLs of the given types that the calling user is allowed to see.

- **Service:** [Named access control lists](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCNamedACLs/index.md) `MFiles.IRPCNamedACLs`
- **gRPC method:** `/MFiles.IRPCNamedACLs/GetNamedACLs`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-named-acls`
- **Request:** [`GetNamedACLsRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCNamedACLs/GetNamedACLs/index.md#request)
- **Response:** [`GetNamedACLsResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCNamedACLs/GetNamedACLs/index.md#response)
- **Book and level:** Vault API, standard
- **Kind:** read
- **Session:** Required: a session (mfiles-session-id-bin metadata) or a session assertion (x-mf-session-assertion metadata).
- **Idempotent:** yes
- **Returns metadata structure version:** yes (in the mfiles-metadata-version-bin trailer)
- **Streaming:** none (unary)

<a id="remarks"></a>

## Remarks

- Requires a vault session. No special vault rights are needed; named ACLs that the user is not
  allowed to see are left out.
- `types` is a bit mask of [NACLType](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.NACLType/index.md) values and must not be 0: with 0
  the call succeeds but returns nothing. Use 1 (`NACLTYPE_NORMAL`) for the named ACLs that users
  can select, 2 (`NACLTYPE_INTERNAL`) for those that the vault uses for internal purposes,
  or 3 for both.
- Built-in named ACLs have negative IDs, for example -1 "Full control for all internal users"
  and -20 "Only for me". They are returned only with `include_builtin`.
- "Current user" entries in the returned ACLs are replaced with the calling user, so "Only for
  me" contains the caller's own user ID.
- Names are in the session's vault language when translations exist. The order of the results
  is not specified.
- Cacheable: the response carries the metadata structure version trailer, see
  [Metadata structure version and caching](https://developer.m-files.com/APIs/gRPC-API/concepts/metadata-structure-version-and-caching/index.md).

<a id="request"></a>

## Request: GetNamedACLsRequest

> Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.

| Field | Type | Description |
|---|---|---|
| `include_builtin` | `bool` | True to include the built-in named ACLs (negative IDs), such as "Only for me". They cannot be modified. |
| `types` | `uint32` | Bit mask of [NACLType](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.NACLType/index.md) values: 1 for normal, 2 for internal, 3 for both. 0 returns nothing. |

<a id="response"></a>

## Response: GetNamedACLsResponse

> Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page. Fields marked (recursive) refer to a type already on their path.

| Field | Type | Description |
|---|---|---|
| `named_acls[]` | repeated [`NamedACL`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.NamedACL/index.md) | The named ACLs; see [NamedACL](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.NamedACL/index.md). `acl_for_objects` is the permission set that the named ACL applies to objects. |
| `named_acls[].id` | `int32` | Named ACL ID. |
| `named_acls[].name` | `string` | The name of the named ACL. |
| `named_acls[].type` | [`NACLType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.NACLType/index.md) | The type of the NACL. Values: `NACLTYPE_NONE` (0), `NACLTYPE_NORMAL` (1), `NACLTYPE_INTERNAL` (2). |
| `named_acls[].acl_for_objects` | [`AccessControlList`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlList/index.md) | The predefined permissions. This defines the ACL which this named ACL encapsulates. |
| `named_acls[].acl_for_objects.checked_out_to_user` | `int32` | Specifies the ID of the user who has extended rights because of the checkout operation performed by her. 0 if such user does not exist. |
| `named_acls[].acl_for_objects.is_fully_authoritative` | `bool` | Specifies whether this access control list is set to ignore the secondary permissions that come from the latest checked in version. |
| `named_acls[].acl_for_objects.custom_component` | [`AccessControlListComponent`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponent/index.md) | Accesses the custom component of this ACL. |
| `named_acls[].acl_for_objects.restrictive_components[]` | repeated [`AccessControlListComponentMapEntry`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponentMapEntry/index.md) | Accesses the restrictive automatic components of this ACL. |
| `named_acls[].acl_for_objects.secondary_access_control_list` | [`AccessControlList`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlList/index.md) (recursive) | Secondary ACL used for latest version ACL. Not used for access check if null. |
| `named_acls[].acl_for_objects.additive_components[]` | repeated [`AccessControlListComponentMapEntry`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponentMapEntry/index.md) | Accesses the additive automatic components of this ACL. |
| `named_acls[].guid` | `string` | GUID for the NACL. |
