# Functions
GetLogEntryMessage gets the message body of a LogEntry based on what kind of payload it is If it's JSON, we look for the `message` field since the other fields will be added as labels.
GetLogLabels flattens a log entry's labels + resource labels into a map.
GetLogLevel maps the string value of a LogSeverity to one supported by Grafana.
NewClient creates a new Client using jsonCreds for authentication.
NewClient creates a new Clients using GCE metadata for authentication.
NewClient creates a new Clients using service account impersonation.
# Interfaces
API implements the methods we need to query logs and list projects from GCP.