> ## 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.UserManagementServiceFutureStub

> A stub to allow clients to do ListenableFuture-style rpc calls to service UserManagementService. 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.UserManagementServiceFutureStub

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

**Signature**

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
public static final class UserManagementServiceGrpc.UserManagementServiceFutureStub extends io.grpc.stub.AbstractFutureStub<UserManagementServiceGrpc.UserManagementServiceFutureStub>
```

**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.UserManagementServiceFutureStub.html#build%28io.grpc.Channel,io.grpc.CallOptions%29)                                                                                     | `build(Channel, CallOptions)`                                                                       | `3.5.6`    | -          | -       |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.UserManagementServiceFutureStub.html#createUser%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.CreateUserRequest%29)                                     | `createUser(UserManagementServiceOuterClass.CreateUserRequest)`                                     | `3.5.6`    | -          | -       |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.UserManagementServiceFutureStub.html#deleteUser%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.DeleteUserRequest%29)                                     | `deleteUser(UserManagementServiceOuterClass.DeleteUserRequest)`                                     | `3.5.6`    | -          | -       |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.UserManagementServiceFutureStub.html#getUser%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.GetUserRequest%29)                                           | `getUser(UserManagementServiceOuterClass.GetUserRequest)`                                           | `3.5.6`    | -          | -       |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.UserManagementServiceFutureStub.html#grantUserRights%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.GrantUserRightsRequest%29)                           | `grantUserRights(UserManagementServiceOuterClass.GrantUserRightsRequest)`                           | `3.5.6`    | -          | -       |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.UserManagementServiceFutureStub.html#listUserRights%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.ListUserRightsRequest%29)                             | `listUserRights(UserManagementServiceOuterClass.ListUserRightsRequest)`                             | `3.5.6`    | -          | -       |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.UserManagementServiceFutureStub.html#listUsers%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.ListUsersRequest%29)                                       | `listUsers(UserManagementServiceOuterClass.ListUsersRequest)`                                       | `3.5.6`    | -          | -       |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.UserManagementServiceFutureStub.html#revokeUserRights%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.RevokeUserRightsRequest%29)                         | `revokeUserRights(UserManagementServiceOuterClass.RevokeUserRightsRequest)`                         | `3.5.6`    | -          | -       |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.UserManagementServiceFutureStub.html#updateUser%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.UpdateUserRequest%29)                                     | `updateUser(UserManagementServiceOuterClass.UpdateUserRequest)`                                     | `3.5.6`    | -          | -       |
| [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.6/com/daml/ledger/api/v2/admin/UserManagementServiceGrpc.UserManagementServiceFutureStub.html#updateUserIdentityProviderId%28com.daml.ledger.api.v2.admin.UserManagementServiceOuterClass.UpdateUserIdentityProviderIdRequest%29) | `updateUserIdentityProviderId(UserManagementServiceOuterClass.UpdateUserIdentityProviderIdRequest)` | `3.5.6`    | -          | -       |
