1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 30ec8b83dSEd Tanous #pragma once 40ec8b83dSEd Tanous #include <nlohmann/json.hpp> 50ec8b83dSEd Tanous 60ec8b83dSEd Tanous namespace virtual_media 70ec8b83dSEd Tanous { 80ec8b83dSEd Tanous // clang-format off 90ec8b83dSEd Tanous 100ec8b83dSEd Tanous enum class MediaType{ 110ec8b83dSEd Tanous Invalid, 120ec8b83dSEd Tanous CD, 130ec8b83dSEd Tanous Floppy, 140ec8b83dSEd Tanous USBStick, 150ec8b83dSEd Tanous DVD, 160ec8b83dSEd Tanous }; 170ec8b83dSEd Tanous 180ec8b83dSEd Tanous enum class ConnectedVia{ 190ec8b83dSEd Tanous Invalid, 200ec8b83dSEd Tanous NotConnected, 210ec8b83dSEd Tanous URI, 220ec8b83dSEd Tanous Applet, 230ec8b83dSEd Tanous Oem, 240ec8b83dSEd Tanous }; 250ec8b83dSEd Tanous 260ec8b83dSEd Tanous enum class TransferProtocolType{ 270ec8b83dSEd Tanous Invalid, 280ec8b83dSEd Tanous CIFS, 290ec8b83dSEd Tanous FTP, 300ec8b83dSEd Tanous SFTP, 310ec8b83dSEd Tanous HTTP, 320ec8b83dSEd Tanous HTTPS, 330ec8b83dSEd Tanous NFS, 340ec8b83dSEd Tanous SCP, 350ec8b83dSEd Tanous TFTP, 360ec8b83dSEd Tanous OEM, 370ec8b83dSEd Tanous }; 380ec8b83dSEd Tanous 390ec8b83dSEd Tanous enum class TransferMethod{ 400ec8b83dSEd Tanous Invalid, 410ec8b83dSEd Tanous Stream, 420ec8b83dSEd Tanous Upload, 430ec8b83dSEd Tanous }; 440ec8b83dSEd Tanous 45a8d8f9d8SEd Tanous enum class EjectPolicy{ 46a8d8f9d8SEd Tanous Invalid, 47a8d8f9d8SEd Tanous OnPowerOff, 48a8d8f9d8SEd Tanous Session, 49a8d8f9d8SEd Tanous Timed, 50a8d8f9d8SEd Tanous AfterUse, 51a8d8f9d8SEd Tanous Persistent, 52a8d8f9d8SEd Tanous }; 53a8d8f9d8SEd Tanous 540ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MediaType, { 550ec8b83dSEd Tanous {MediaType::Invalid, "Invalid"}, 560ec8b83dSEd Tanous {MediaType::CD, "CD"}, 570ec8b83dSEd Tanous {MediaType::Floppy, "Floppy"}, 580ec8b83dSEd Tanous {MediaType::USBStick, "USBStick"}, 590ec8b83dSEd Tanous {MediaType::DVD, "DVD"}, 600ec8b83dSEd Tanous }); 610ec8b83dSEd Tanous 620ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ConnectedVia, { 630ec8b83dSEd Tanous {ConnectedVia::Invalid, "Invalid"}, 640ec8b83dSEd Tanous {ConnectedVia::NotConnected, "NotConnected"}, 650ec8b83dSEd Tanous {ConnectedVia::URI, "URI"}, 660ec8b83dSEd Tanous {ConnectedVia::Applet, "Applet"}, 670ec8b83dSEd Tanous {ConnectedVia::Oem, "Oem"}, 680ec8b83dSEd Tanous }); 690ec8b83dSEd Tanous 700ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(TransferProtocolType, { 710ec8b83dSEd Tanous {TransferProtocolType::Invalid, "Invalid"}, 720ec8b83dSEd Tanous {TransferProtocolType::CIFS, "CIFS"}, 730ec8b83dSEd Tanous {TransferProtocolType::FTP, "FTP"}, 740ec8b83dSEd Tanous {TransferProtocolType::SFTP, "SFTP"}, 750ec8b83dSEd Tanous {TransferProtocolType::HTTP, "HTTP"}, 760ec8b83dSEd Tanous {TransferProtocolType::HTTPS, "HTTPS"}, 770ec8b83dSEd Tanous {TransferProtocolType::NFS, "NFS"}, 780ec8b83dSEd Tanous {TransferProtocolType::SCP, "SCP"}, 790ec8b83dSEd Tanous {TransferProtocolType::TFTP, "TFTP"}, 800ec8b83dSEd Tanous {TransferProtocolType::OEM, "OEM"}, 810ec8b83dSEd Tanous }); 820ec8b83dSEd Tanous 830ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(TransferMethod, { 840ec8b83dSEd Tanous {TransferMethod::Invalid, "Invalid"}, 850ec8b83dSEd Tanous {TransferMethod::Stream, "Stream"}, 860ec8b83dSEd Tanous {TransferMethod::Upload, "Upload"}, 870ec8b83dSEd Tanous }); 880ec8b83dSEd Tanous 89a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(EjectPolicy, { 90a8d8f9d8SEd Tanous {EjectPolicy::Invalid, "Invalid"}, 91a8d8f9d8SEd Tanous {EjectPolicy::OnPowerOff, "OnPowerOff"}, 92a8d8f9d8SEd Tanous {EjectPolicy::Session, "Session"}, 93a8d8f9d8SEd Tanous {EjectPolicy::Timed, "Timed"}, 94a8d8f9d8SEd Tanous {EjectPolicy::AfterUse, "AfterUse"}, 95a8d8f9d8SEd Tanous {EjectPolicy::Persistent, "Persistent"}, 96a8d8f9d8SEd Tanous }); 97a8d8f9d8SEd Tanous 980ec8b83dSEd Tanous } 990ec8b83dSEd Tanous // clang-format on 100