> ## Documentation Index
> Fetch the complete documentation index at: https://cantonfoundation-update-ref-tables.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# UserManagementServiceGrpc.AsyncService

> Service to manage users and their rights for interacting with the Ledger API served by a participant node. The authorization rules for its RPCs are specified on the ``<RpcName>Request`` messages as boolean expressions over these facts: 1. ``HasRight(r)`` denoting whether the authenticated user has right ``r`` and 2. ``IsAuthenticatedUser(uid)`` denoting whether ``uid`` is the empty string or equal to the id of the authenticated user. 3. ``IsAuthenticatedIdentityProviderAdmin(idp)`` denoting whether ``idp`` is equal to the ``identity_provider_id`` of the authenticated user and the user has an IdentityProviderAdmin right. If `user_id` is set to the empty string (the default), then the data for the authenticated user will be retrieved. If `identity_provider_id` is set to an empty string, then it's effectively set to the value of access token's 'iss' field if that is provided. If `identity_provider_id` remains an empty string, the default identity provider will be assumed. The fields of request messages (and sub-messages) are marked either as ``Optional`` or ``Required``: 1. ``Optional`` denoting the client may leave the field unset when sending a request. 2. ``Required`` denoting the client must set the field to a non-default value when sending a request. A user resource consists of: 1. a set of properties represented by the ``User`` message, 2. a set of user rights, where each right is represented by the ``Right`` message. A user resource, once it has been created, can be modified. In order to update the properties represented by the ``User`` message use the ``UpdateUser`` RPC. The only fields that can be modified are those marked as ``Modifiable``. In order to grant or revoke user rights use ``GrantRights' and ``RevokeRights`` RPCs.

## UserManagementServiceGrpc.AsyncService

Upstream docs: [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.AsyncService.html)

**Signature**

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
public static interface UserManagementServiceGrpc.AsyncService
```

**Members**

| Docs                                                                                                                                                                                                                                                                                                | Member                                                                                                                                                                                    | Introduced | Deprecated | Removed |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ---------- | ------- |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.AsyncService.html#createUser%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.CreateUserRequest,io.grpc.stub.StreamObserver%29)                                     | `createUser(UserManagementServiceOuterClass.CreateUserRequest, StreamObserver<UserManagementServiceOuterClass.CreateUserResponse>)`                                                       | `3.5.6`    | -          | -       |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.AsyncService.html#deleteUser%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.DeleteUserRequest,io.grpc.stub.StreamObserver%29)                                     | `deleteUser(UserManagementServiceOuterClass.DeleteUserRequest, StreamObserver<UserManagementServiceOuterClass.DeleteUserResponse>)`                                                       | `3.5.6`    | -          | -       |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.AsyncService.html#getUser%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.GetUserRequest,io.grpc.stub.StreamObserver%29)                                           | `getUser(UserManagementServiceOuterClass.GetUserRequest, StreamObserver<UserManagementServiceOuterClass.GetUserResponse>)`                                                                | `3.5.6`    | -          | -       |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.AsyncService.html#grantUserRights%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.GrantUserRightsRequest,io.grpc.stub.StreamObserver%29)                           | `grantUserRights(UserManagementServiceOuterClass.GrantUserRightsRequest, StreamObserver<UserManagementServiceOuterClass.GrantUserRightsResponse>)`                                        | `3.5.6`    | -          | -       |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.AsyncService.html#listUserRights%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.ListUserRightsRequest,io.grpc.stub.StreamObserver%29)                             | `listUserRights(UserManagementServiceOuterClass.ListUserRightsRequest, StreamObserver<UserManagementServiceOuterClass.ListUserRightsResponse>)`                                           | `3.5.6`    | -          | -       |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.AsyncService.html#listUsers%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.ListUsersRequest,io.grpc.stub.StreamObserver%29)                                       | `listUsers(UserManagementServiceOuterClass.ListUsersRequest, StreamObserver<UserManagementServiceOuterClass.ListUsersResponse>)`                                                          | `3.5.6`    | -          | -       |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.AsyncService.html#revokeUserRights%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.RevokeUserRightsRequest,io.grpc.stub.StreamObserver%29)                         | `revokeUserRights(UserManagementServiceOuterClass.RevokeUserRightsRequest, StreamObserver<UserManagementServiceOuterClass.RevokeUserRightsResponse>)`                                     | `3.5.6`    | -          | -       |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.AsyncService.html#updateUser%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.UpdateUserRequest,io.grpc.stub.StreamObserver%29)                                     | `updateUser(UserManagementServiceOuterClass.UpdateUserRequest, StreamObserver<UserManagementServiceOuterClass.UpdateUserResponse>)`                                                       | `3.5.6`    | -          | -       |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.AsyncService.html#updateUserIdentityProviderId%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.UpdateUserIdentityProviderIdRequest,io.grpc.stub.StreamObserver%29) | `updateUserIdentityProviderId(UserManagementServiceOuterClass.UpdateUserIdentityProviderIdRequest, StreamObserver<UserManagementServiceOuterClass.UpdateUserIdentityProviderIdResponse>)` | `3.5.6`    | -          | -       |
