# mongoc_client_enable_auto_encryption()

## Synopsis

    bool
    mongoc_client_enable_auto_encryption (mongoc_client_t *client,
                                          mongoc_auto_encryption_opts_t* opts,
                                          bson_error_t* error);

Enable automatic client side encryption on a mongoc_client_t. Requires libmongoc to be built with support for Client-Side Field Level Encryption. See the guide for Using Client-Side Field Level Encryption.

Automatic encryption is an enterprise only feature that only applies to operations on a collection. Automatic encryption is not supported for operations on a database or view, and operations that are not bypassed will result in error. To bypass automatic encryption for all operations, bypass automatic encryption with mongoc_auto_encryption_opts_set_bypass_auto_encryption() in `opts`.

Automatic encryption requires the authenticated user to have the listCollections privilege action.

Enabling automatic encryption reduces the maximum message size and may have a negative performance impact.

Only applies to a single-threaded mongoc_client_t. To use with client pools, see mongoc_client_pool_enable_auto_encryption().

## Parameters

- `client`: A mongoc_client_t.

- `opts`: A required mongoc_auto_encryption_opts_t.

- `error`: A `bson_error_t` which is set on error.

## Returns

True on success. False on error. On error, `error` is set.

See also

mongoc_auto_encryption_opts_t
mongoc_client_pool_enable_auto_encryption()
The guide for Using Client-Side Field Level Encryption for libmongoc
The MongoDB Manual for Client-Side Field Level Encryption