code: def rekey(self, key, nonce=None, recovery_key=False):
          
          params = {
              'key': key,
          }
  
          if nonce is not None:
              params['nonce'] = nonce
  
          api_path = '/v1/sys/rekey/update'
          if recovery_key:
              api_path = '/v1/sys/rekey-recovery-key/update'
          response = self._adapter.put(
              url=api_path,
              json=params,
          )
          return response.json()
docs: Enter a single recovery key share to progress the rekey of the Vault.
  
          If the threshold number of recovery key shares is reached, Vault will complete the rekey. Otherwise, this API
          must be called multiple times until that threshold is met. The rekey nonce operation must be provided with each
          call.
  
          Supported methods:
              PUT: /sys/rekey/update. Produces: 200 application/json
              PUT: /sys/rekey-recovery-key/update. Produces: 200 application/json
  
          :param key: Specifies a single recovery share key.
          :type key: str | unicode
          :param nonce: Specifies the nonce of the rekey operation.
          :type nonce: str | unicode
          :param recovery_key: If true, send requests to "rekey-recovery-key" instead of "rekey" api path.
          :type recovery_key: bool
          :return: The JSON response of the request.
          :rtype: dict