chromium/ios/chrome/browser/policy/model/device_management_service_configuration_ios.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 IOS_CHROME_BROWSER_POLICY_MODEL_DEVICE_MANAGEMENT_SERVICE_CONFIGURATION_IOS_H_
#define IOS_CHROME_BROWSER_POLICY_MODEL_DEVICE_MANAGEMENT_SERVICE_CONFIGURATION_IOS_H_

#include <string>

#include "components/policy/core/common/cloud/device_management_service.h"

namespace policy {

// The iOS implementation of the device management service configuration that is
// used to create device management service instances.
class DeviceManagementServiceConfigurationIOS
    : public DeviceManagementService::Configuration {
 public:
  DeviceManagementServiceConfigurationIOS(
      const std::string& dm_server_url,
      const std::string& realtime_reporting_server_url,
      const std::string& encrypted_reporting_server_url);
  DeviceManagementServiceConfigurationIOS(
      const DeviceManagementServiceConfigurationIOS&) = delete;
  DeviceManagementServiceConfigurationIOS& operator=(
      const DeviceManagementServiceConfigurationIOS&) = delete;
  ~DeviceManagementServiceConfigurationIOS() override;

  // DeviceManagementService::Configuration implementation.
  std::string GetDMServerUrl() const override;
  std::string GetAgentParameter() const override;
  std::string GetPlatformParameter() const override;
  std::string GetRealtimeReportingServerUrl() const override;
  std::string GetEncryptedReportingServerUrl() const override;
  std::string GetReportingConnectorServerUrl(
      content::BrowserContext* context) const override;

 private:
  const std::string dm_server_url_;
  const std::string realtime_reporting_server_url_;
  const std::string encrypted_reporting_server_url_;
};

}  // namespace policy

#endif  // IOS_CHROME_BROWSER_POLICY_MODEL_DEVICE_MANAGEMENT_SERVICE_CONFIGURATION_IOS_H_