# IRPCVault.GetServerRoles

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) > [Vault information](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCVault/index.md)

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

Badges: `Vault API / core` `read` `session` `idempotent`

Gets the multi-server roles this server has with the vault.

- **Service:** [Vault information](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCVault/index.md) `MFiles.IRPCVault`
- **gRPC method:** `/MFiles.IRPCVault/GetServerRoles`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-server-roles`
- **Request:** [`GetServerRolesRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCVault/GetServerRoles/index.md#request)
- **Response:** [`GetServerRolesResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCVault/GetServerRoles/index.md#response)
- **Book and level:** Vault API, core
- **Kind:** read
- **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

Used by M-Files in multi-server deployments to see which background roles this server runs for
the vault; applications rarely need it.

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

## Request: GetServerRolesRequest

No fields.

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

## Response: GetServerRolesResponse

> 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 |
|---|---|---|
| `server_roles` | [`MultiServerRoles`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.MultiServerRoles/index.md) | Receives the server roles struct. |
| `server_roles.role_vdelta` | `bool` | This server takes care of VDelta generation. |
| `server_roles.role_external_sync` | `bool` | Server takes care of external object type synchronization. |
| `server_roles.role_state_change` | `bool` | Server takes care of automatic state changes. |
| `server_roles.role_ext_file_mon` | `bool` | Server takes care of exteral file and mail synchronization operations. |
| `server_roles.role_notification_generation` | `bool` | Server takes care of sending notifications. |
| `server_roles.role_scheduled_jobs` | `bool` | Server takes care of running scheduled jobs. |
| `server_roles.role_user_group_sync` | `bool` | Server takes care of user group synchronization. |
| `server_roles.role_nightly_maintenance` | `bool` | Server takes care of nightly maintenance operations. |
| `server_roles.role_async_tasks` | `bool` | Server takes care of processing background tasks. |
| `server_roles.role_optimize_and_indexing` | `bool` | Server takes care of optimization and indexing operations. |
| `server_roles.role_data_export` | `bool` | Server takes care of data export. |
| `server_roles.role_analytics_processing` | `bool` | Server takes care of MFAnalytics processing for the vault. |
| `server_roles.role_remove_conflict_object` | `bool` | Server takes care of removing conflict object operation. |
| `server_roles.role_cleanup` | `bool` | True, if server takes care of cleanup operations. |
| `server_roles.role_master_storage_version_monitor` | `bool` | True, if server does automatic versioning for Master Storage live changes. |
| `server_roles.role_master_storage_sync` | `bool` | True, if server runs the master storage synchronization operations. |
| `server_roles.role_ipaas_notification` | `bool` | True, if server runs the Integration Platform as a Service notification processing operations. |
