MongoDB\Driver\ClientEncryption::rewrapManyDataKey

Rewraps data keys

&reftitle.description; final public `object` `MongoDB\Driver\ClientEncryption::rewrapManyDataKey` ``array``object```filter` ``array``null```options`&null;

Rewraps (i.e. decrypts and re-encrypts) zero or more data keys in the key vault collection that match the given `filter`.

If the `"provider"` option is not specified, matching data keys will be rewrapped with their current KMS provider. Otherwise, matching data keys will be re-encrypted according to the specified `"provider"` and `"masterKey"` options.

&reftitle.parameters;
&mongodb.parameter.filter;

`options`

- ## RewrapManyDataKey options

  Option | Type | Description
  provider | `string` | The KMS provider (e.g. `"local"`, `"aws"`) that will be used to re-encrypt the matched data keys. If a KMS provider is not specified, matched data keys will be re-encrypted with their current KMS provider.
  masterKey | `array` | The masterKey identifies a KMS-specific key used to encrypt the new data key. This option should not be specified without the `"provider"` option. This option is required if `"provider"` is specified and not `"local"`. &mongodb.option.encryption.masterKey-options-by-provider;

&reftitle.returnvalues;

Returns an object, which will have an optional `bulkWriteResult` property containing the result of the internal `bulkWrite` operation as an object. If no data keys matched the filter or the write was unacknowledged, the `bulkWriteResult` property will be &null;.

&reftitle.errors;

&mongodb.throws.std;
- Throws `MongoDB\Driver\Exception\EncryptionException` if an error occurs while decrypting or re-encrypting a data key.
- Throws `MongoDB\Driver\Exception\RuntimeException` on other errors.