// Thish file is generated by /tools/codegen
// DO NOT EDIT IT.

// clang-format off

//  To parse this JSON data, first install
//
//      json.hpp  https://github.com/nlohmann/json
//
//  Then include this file, and then do
//
//     Config.hpp data = nlohmann::json::parse(jsonString);

#pragma once

#include <optional>
#include <nlohmann/json.hpp>
#include "ocppi/runtime/config/types/helper.hpp"

#include "ocppi/runtime/config/types/Hooks.hpp"
#include "ocppi/runtime/config/types/Linux.hpp"
#include "ocppi/runtime/config/types/Mount.hpp"
#include "ocppi/runtime/config/types/Process.hpp"
#include "ocppi/runtime/config/types/Root.hpp"
#include "ocppi/runtime/config/types/Solaris.hpp"
#include "ocppi/runtime/config/types/Vm.hpp"
#include "ocppi/runtime/config/types/Windows.hpp"
#include "ocppi/runtime/config/types/Zos.hpp"

namespace ocppi {
namespace runtime {
namespace config {
namespace types {
/**
* Open Container Initiative Runtime Specification Container Configuration Schema
*/

using nlohmann::json;

/**
* Open Container Initiative Runtime Specification Container Configuration Schema
*/
struct Config {
std::optional<std::map<std::string, std::string>> annotations;
std::optional<std::string> domainname;
std::optional<Hooks> hooks;
std::optional<std::string> hostname;
std::optional<Linux> linux_;
std::optional<std::vector<Mount>> mounts;
std::string ociVersion;
std::optional<Process> process;
/**
* Configures the container's root filesystem.
*/
std::optional<Root> root;
std::optional<Solaris> solaris;
std::optional<Vm> vm;
std::optional<Windows> windows;
std::optional<Zos> zos;
};
}
}
}
}

// clang-format on
