chromium/chrome/browser/enterprise/connectors/device_trust/key_management/core/network/fetcher/win_network_fetcher.h

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

#ifndef CHROME_BROWSER_ENTERPRISE_CONNECTORS_DEVICE_TRUST_KEY_MANAGEMENT_CORE_NETWORK_FETCHER_WIN_NETWORK_FETCHER_H_
#define CHROME_BROWSER_ENTERPRISE_CONNECTORS_DEVICE_TRUST_KEY_MANAGEMENT_CORE_NETWORK_FETCHER_WIN_NETWORK_FETCHER_H_

#include "base/functional/callback.h"

class GURL;

namespace enterprise_connectors {

// Interface for the object in charge of issuing a windows key network upload
// request.
class WinNetworkFetcher {
 public:
  // Network request completion callback. The single argument is the response
  // code of the network request.
  using FetchCompletedCallback = base::OnceCallback<void(int)>;

  virtual ~WinNetworkFetcher() = default;

  // Sends a DeviceManagementRequest to the DM server and returns the HTTP
  // response to the `callback`.
  virtual void Fetch(FetchCompletedCallback callback) = 0;
};

}  // namespace enterprise_connectors

#endif  // CHROME_BROWSER_ENTERPRISE_CONNECTORS_DEVICE_TRUST_KEY_MANAGEMENT_CORE_NETWORK_FETCHER_WIN_NETWORK_FETCHER_H_