def app_id(app_id, user_id, options = {})
      payload = { app_id: app_id, user_id: user_id }.merge(options)
      json = client.post("/v1/auth/app-id/login", JSON.fast_generate(payload))
      secret = Secret.decode(json)
      client.token = secret.auth.client_token
      return secret
    end
def app_id(app_id, user_id, options = {})
      payload = { app_id: app_id, user_id: user_id }.merge(options)
      json = client.post("/v1/auth/app-id/login", JSON.fast_generate(payload))
      secret = Secret.decode(json)
      client.token = secret.auth.client_token
      return secret
    end
Authenticate via the "app-id" authentication method. If authentication is
 successful, the resulting token will be stored on the client and used for
 future requests.

 @example
   Vault.auth.app_id(
     "aeece56e-3f9b-40c3-8f85-781d3e9a8f68",
     "3b87be76-95cf-493a-a61b-7d5fc70870ad",
   ) #=> #<Vault::Secret lease_id="">

 @example with a custom mount point
   Vault.auth.app_id(
     "aeece56e-3f9b-40c3-8f85-781d3e9a8f68",
     "3b87be76-95cf-493a-a61b-7d5fc70870ad",
     mount: "new-app-id",
   )

 @param [String] app_id
 @param [String] user_id
 @param [Hash] options
   additional options to pass to the authentication call, such as a custom
   mount point

 @return [Secret]