/*
 * Copyright (C) 2018 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#pragma once

#include <string>
#include <vector>

#include "cuttlefish/result/result.h"

namespace cuttlefish {
namespace vm_manager {

// Represents an action required to configure the host for Cuttlefish.
struct HostConfigurationAction {
  // The command to execute to automatically apply the fix, expressed a list of
  // strings that can be given to execvp.
  //
  // If empty, manual intervention is required.
  std::vector<std::string> command;
  // A human-readable description of the purpose of this action or the issue it
  // fixes.
  std::string description;
};

Result<std::vector<HostConfigurationAction>> ValidateHostConfiguration();

} // namespace vm_manager
} // namespace cuttlefish

