def unwrap(wrapper)
      client.with_token(wrapper) do |client|
        json = client.get("/v1/cubbyhole/response")
        secret = Secret.decode(json)

        # If there is nothing in the cubbyhole, return early.
        if secret.nil? || secret.data.nil? || secret.data[:response].nil?
          return nil
        end

        # Extract the response and parse it into a new secret.
        json = JSON.parse(secret.data[:response], symbolize_names: true)
        secret = Secret.decode(json)
        return secret
      end
    rescue HTTPError => e
      return nil if e.code == 404
      raise
    end
def unwrap(wrapper)
      client.with_token(wrapper) do |client|
        json = client.get("/v1/cubbyhole/response")
        secret = Secret.decode(json)

        # If there is nothing in the cubbyhole, return early.
        if secret.nil? || secret.data.nil? || secret.data[:response].nil?
          return nil
        end

        # Extract the response and parse it into a new secret.
        json = JSON.parse(secret.data[:response], symbolize_names: true)
        secret = Secret.decode(json)
        return secret
      end
    rescue HTTPError => e
      return nil if e.code == 404
      raise
    end
Unwrap the data stored against the given token. If the secret does not
 exist, `nil` will be returned.

 @example
   Vault.logical.unwrap("f363dba8-25a7-08c5-430c-00b2367124e6") #=> #<Vault::Secret lease_id="">

 @param [String] wrapper
   the token to use when unwrapping the value

 @return [Secret, nil]