chromium/google_apis/gaia/gaia_config.h

// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef GOOGLE_APIS_GAIA_GAIA_CONFIG_H_
#define GOOGLE_APIS_GAIA_GAIA_CONFIG_H_

#include <memory>
#include <string>
#include <string_view>

#include "base/component_export.h"
#include "base/gtest_prod_util.h"
#include "base/values.h"
#include "google_apis/google_api_keys.h"

class GURL;

namespace base {
class CommandLine;
class FilePath;
}  // namespace base

// Class representing a configuration for Gaia URLs and Google API keys.
// Parses a JSON config file specified by |switches::kGaiaConfigPath| or
// |switches::kGaiaConfigContents| and provides convenient getters for reading
// this config.
//
// The config is represented by a JSON object with the following structure:
// {
//   "urls": {
//     "gaia_url": {
//       "url": "https://accounts.example.com"
//     },
//     ...
//   },
//   "api_keys": {
//     "GOOGLE_CLIENT_ID_MAIN": "example_key",
//     ...
//   }
// }
class COMPONENT_EXPORT(GOOGLE_APIS) GaiaConfig {};

#endif  // GOOGLE_APIS_GAIA_GAIA_CONFIG_H_