Go authentication

anon, err := eveiac.NewClient(eveiac.Config{URL: url, CAPEM: caPEM})
if err != nil {
    return err
}
session, err := anon.Login(ctx, eveiac.LoginRequest{Username: "admin", Password: "secret"})
if err != nil {
    return err
}
token := ""
if session != nil && session.Token != nil {
    token = *session.Token
}
client, err := eveiac.NewClient(eveiac.Config{URL: url, Token: token, CAPEM: caPEM})

GetHealth does not require a token. IsAuthError(err) detects authentication failures.

AgentError has Status, Code, Message, and Data.