# IRPCNamedACLsAdmin.ModifyNamedACL

Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Administration API](https://developer.m-files.com/APIs/gRPC-API/admin/index.md) > [Named access control list administration](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCNamedACLsAdmin/index.md)

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

Badges: `Administration API / specialized` `admin` `session` `idempotent`

Changes a named ACL, and optionally the permissions of the objects that use it.

- **Service:** [Named access control list administration](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCNamedACLsAdmin/index.md) `MFiles.IRPCNamedACLsAdmin`
- **gRPC method:** `/MFiles.IRPCNamedACLsAdmin/ModifyNamedACL`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/modify-named-acl`
- **Request:** [`ModifyNamedACLRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCNamedACLsAdmin/ModifyNamedACL/index.md#request)
- **Response:** [`ModifyNamedACLResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCNamedACLsAdmin/ModifyNamedACL/index.md#response)
- **Book and level:** Administration API, specialized
- **Kind:** admin
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** yes
- **Returns metadata structure version:** no
- **Streaming:** none (unary)

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

## Remarks

- Requires the vault rights `change_metadata_structure` and `license_allows_modifications`.
- When objects must get new permissions, the server starts a background task and returns before
  it completes; `task_idchange_objects` identifies it.
- The type cannot be changed, and the name must stay unique. A named ACL used in automatic
  permissions cannot contain a "current user" entry.
- Send the complete named ACL: read it with
  [GetNamedACLsForAdmin](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCNamedACLsAdmin/GetNamedACLsForAdmin/index.md) first.

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

## Request: ModifyNamedACLRequest

> 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_acladmin` | [`NamedACLAdmin`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.NamedACLAdmin/index.md) | The complete new data; `named_acl.id` identifies the named ACL. |
| `named_acladmin.named_acl` | [`NamedACL`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.NamedACL/index.md) | Basic data. |
| `named_acladmin.named_acl.id` | `int32` | Named ACL ID. |
| `named_acladmin.named_acl.name` | `string` | The name of the named ACL. |
| `named_acladmin.named_acl.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_acladmin.named_acl.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_acladmin.named_acl.guid` | `string` | GUID for the NACL. |
| `named_acladmin.acl` | [`AccessControlList`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlList/index.md) | The permissions of this named ACL. This defines which users can see this named ACL, for example. |
| `named_acladmin.acl.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_acladmin.acl.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_acladmin.acl.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_acladmin.acl.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_acladmin.acl.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_acladmin.acl.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_acladmin.aliases` | `string` | Semicolon-separated list of semantic aliases. |
| `maintain_links` | `bool` | True to apply the change to the objects that use the named ACL. False to leave their permissions as they are and remove their link to the named ACL. |
| `allow_propagation` | `bool` | True to allow the change to reach the objects as `maintain_links` says. False to fail the call instead if any object would be affected. |

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

## Response: ModifyNamedACLResponse

> 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 |
|---|---|---|
| `putf8sznamedacladmin` | [`NamedACLAdmin`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.NamedACLAdmin/index.md) | The stored named ACL. |
| `putf8sznamedacladmin.named_acl` | [`NamedACL`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.NamedACL/index.md) | Basic data. |
| `putf8sznamedacladmin.named_acl.id` | `int32` | Named ACL ID. |
| `putf8sznamedacladmin.named_acl.name` | `string` | The name of the named ACL. |
| `putf8sznamedacladmin.named_acl.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). |
| `putf8sznamedacladmin.named_acl.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. |
| `putf8sznamedacladmin.named_acl.guid` | `string` | GUID for the NACL. |
| `putf8sznamedacladmin.acl` | [`AccessControlList`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlList/index.md) | The permissions of this named ACL. This defines which users can see this named ACL, for example. |
| `putf8sznamedacladmin.acl.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. |
| `putf8sznamedacladmin.acl.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. |
| `putf8sznamedacladmin.acl.custom_component` | [`AccessControlListComponent`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponent/index.md) | Accesses the custom component of this ACL. |
| `putf8sznamedacladmin.acl.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. |
| `putf8sznamedacladmin.acl.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. |
| `putf8sznamedacladmin.acl.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. |
| `putf8sznamedacladmin.aliases` | `string` | Semicolon-separated list of semantic aliases. |
| `task_idchange_objects` | `int64` | The ID of the background task that updates the objects, or -1 if no objects needed changes. |

<a id="related"></a>

## Related methods

- [GetNamedACLsForAdmin](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCNamedACLsAdmin/GetNamedACLsForAdmin/index.md): Gets the named ACLs of the given types, including the ACLs that control who sees them.
