# IRPCVaultsAdmin.UpdateVault

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

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

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

Changes the definition of a vault: name and other registration data, data folders, database,
file data storage and vault variables.

- **Service:** [Vault management](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCVaultsAdmin/index.md) `MFiles.IRPCVaultsAdmin`
- **gRPC method:** `/MFiles.IRPCVaultsAdmin/UpdateVault`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/update-vault`
- **Request:** [`UpdateVaultRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCVaultsAdmin/UpdateVault/index.md#request)
- **Response:** [`UpdateVaultResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCVaultsAdmin/UpdateVault/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 system administrator server role (server right `manage_vaults`), or a vault
  session with full control of the vault. Without `manage_vaults`, changing the GUID, the data
  folders, the database or the file data storage fails with "Access denied", and so does
  changing vault variables reserved for system administrators.
- The name, description, icon and vault variables change without interrupting users. Changing
  the GUID, the data folders, the database or the file data storage can take the vault offline,
  disconnecting open sessions.
- Changing the database engine (for example from Firebird to Microsoft SQL Server) or the file
  data storage of a SQL Server vault starts a background migration job: `task_id` is its ID
  (follow it as described in the service overview), or -1 if no migration started.

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

## Request: UpdateVaultRequest

> 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 |
|---|---|---|
| `guid` | `string` | The GUID of the vault to change. |
| `vault_info` | [`Vault`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.Vault/index.md) | The new definition. A `vault_info.vault.guid` different from `guid` changes the vault's GUID. An empty `vault_info.database_info.database_name` leaves the database settings unchanged. |
| `vault_info.vault` | [`VaultBasic`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.VaultBasic/index.md) | Basic data. |
| `vault_info.vault.guid` | `string` | The vault GUID, in braces and upper case. Use it as `LoginData.vault_guid`. |
| `vault_info.vault.display_name` | `string` | The vault name shown to users. |
| `vault_info.vault.tooltip` | `string` | Optional description. Often empty. |
| `vault_info.vault.icon` | `bytes` | The vault icon in .ico format, or empty. |
| `vault_info.vault.dns_names` | [`StringArray`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.StringArray/index.md) | Host names configured for the vault, if any. |
| `vault_info.main_data_folder` | `string` | The main physical folder of this vault on the server (e.g. C:\Program Files\M-Files\Server Vaults\MyVault). |
| `vault_info.additional_data_folders[]` | repeated [`AdditionalFolder`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AdditionalFolder/index.md) | The specification of the additional file data folders. |
| `vault_info.additional_data_folders[].path` | `string` | Path (e.g. "\\servername\sharename\folder"). |
| `vault_info.additional_data_folders[].limit_in_mb` | `uint32` | Data limit in megabytes or zero if no limit. |
| `vault_info.additional_data_folders[].impersonation` | [`Impersonation`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.Impersonation/index.md) | Impersonation information for accessing the folder. |
| `vault_info.database_info` | [`SQLDatabase`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.SQLDatabase/index.md) | The vault's SQL database. |
| `vault_info.database_info.engine` | [`DBEngine`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.DBEngine/index.md) | Database engine identification. Values: `DBENGINE_NONE` (0), `DBENGINE_FIREBIRD` (1), `DBENGINE_MS_SQL_SERVER` (2). |
| `vault_info.database_info.server_name` | `string` | The data source i.e. the database server name where the vault's database is residing. This is specified for data service DB engines only. It is empty or unset for embedded databases such as Firebird Embedded. |
| `vault_info.database_info.database_name` | `string` | The catalog i.e. the database name where the vault's data is residing. Allows the database name to differ from the vault display name. This is not specified in the Firebird case. |
| `vault_info.database_info.system_admin_impersonation` | [`Impersonation`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.Impersonation/index.md) | Impersonation information for accessing the database engine for administrative purposes. This contains SYSDBA (System Database Administrator) user name and password. If unset, the default user name and password are used. |
| `vault_info.database_info.basic_user_impersonation` | [`Impersonation`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.Impersonation/index.md) | Impersonation information for accessing the database engine in basic user operations that do not modify the database structure. This contains DB user name and password. If unset, the default user name and password are used. |
| `vault_info.file_data_storage` | [`FileDataStorage`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.FileDataStorage/index.md) | Identifies file data storage to use. Typically specifies that the file data storage is determined automatically. Values: `FILE_DATA_STORAGE_DEFAULT` (0), `FILE_DATA_STORAGE_DISK` (1), `FILE_DATA_STORAGE_DATABASE` (2), `FILE_DATA_STORAGE_EXTERNAL` (3), `FILE_DATA_STORAGE_MASTER` (4). |
| `vault_info.file_data_connection_string` | `string` | The connection string that identifies the location, protocol, and credentials for the file data storage of this vault. For example, this might specify a storage account, a protocol, and a container name for Azure's BLOB Services. Can be unset or empty. |
| `vault_variables[]` | repeated [`VaultVariable`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.VaultVariable/index.md) | Vault variables to set. |
| `vault_variables[].name` | `string` | The name of the vault variable. |
| `vault_variables[].value` | `bytes` | The value of the variable in a serialized format. |
| `update_only_registration_data` | `bool` | True to change only the vault's registration on the server (name, locations, database and storage settings): `vault_variables` are not applied and the definition is not validated in full. False to apply `vault_variables` too. |

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

## Response: UpdateVaultResponse

> 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 |
|---|---|---|
| `task_id` | `int32` | The ID of the server-level migration job, or -1 if no migration started. |
