auth :: %{user: binary, password: binary} | %{access_token: binary}
t :: %Ehee.Credential{auth: auth}
new(auth) :: t