code: def submit_unseal_key(self, key=None, reset=False, migrate=False):
          
  
          params = {
              'migrate': migrate,
          }
          if not reset and key is not None:
              params['key'] = key
          elif reset:
              params['reset'] = reset
  
          api_path = '/v1/sys/unseal'
          response = self._adapter.put(
              url=api_path,
              json=params,
          )
          return response.json()
docs: Enter a single master key share to progress the unsealing of the Vault.
  
          If the threshold number of master key shares is reached, Vault will attempt to unseal the Vault. Otherwise, this
          API must be called multiple times until that threshold is met.
  
          Either the key or reset parameter must be provided; if both are provided, reset takes precedence.
  
          Supported methods:
              PUT: /sys/unseal. Produces: 200 application/json
  
          :param key: Specifies a single master key share. This is required unless reset is true.
          :type key: str | unicode
          :param reset: Specifies if previously-provided unseal keys are discarded and the unseal process is reset.
          :type reset: bool
          :param migrate: Available in 1.0 Beta - Used to migrate the seal from shamir to autoseal or autoseal to shamir.
              Must be provided on all unseal key calls.
          :type: migrate: bool
          :return: The JSON response of the request.
          :rtype: dict