#ifndef PRODUCTION_BORG_MGMT_NODE_PROXY_SAFEPOWER_SAFEPOWER_AGENT_BMC_REDFISH_H_
#define PRODUCTION_BORG_MGMT_NODE_PROXY_SAFEPOWER_SAFEPOWER_AGENT_BMC_REDFISH_H_

#include <cstdint>

#include "absl/functional/any_invocable.h"
#include "absl/status/statusor.h"
#include "absl/strings/string_view.h"
#include "nlohmann/json_fwd.hpp"

namespace safepower_agent {

namespace Redfish {

void Get(absl::string_view target,
         absl::AnyInvocable<void(absl::StatusOr<nlohmann::json>) &&> callback,
         absl::string_view ip = "127.0.0.1", uint16_t port = 80);

}  // namespace Redfish

}  // namespace safepower_agent

#endif  // PRODUCTION_BORG_MGMT_NODE_PROXY_SAFEPOWER_SAFEPOWER_AGENT_BMC_REDFISH_H_
