summaryrefslogtreecommitdiff
path: root/redfish-core/include/generated/enums/endpoint.hpp
blob: 77b17db6234a0d176e2601b5c3c6da60124bac1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// SPDX-License-Identifier: Apache-2.0
// SPDX-FileCopyrightText: Copyright OpenBMC Authors
#pragma once
#include <nlohmann/json.hpp>

namespace endpoint
{
// clang-format off

enum class EntityType{
    Invalid,
    StorageInitiator,
    RootComplex,
    NetworkController,
    Drive,
    StorageExpander,
    DisplayController,
    Bridge,
    Processor,
    Volume,
    AccelerationFunction,
    MediaController,
    MemoryChunk,
    Switch,
    FabricBridge,
    Manager,
    StorageSubsystem,
    Memory,
    CXLDevice,
};

enum class EntityRole{
    Invalid,
    Initiator,
    Target,
    Both,
};

NLOHMANN_JSON_SERIALIZE_ENUM(EntityType, {
    {EntityType::Invalid, "Invalid"},
    {EntityType::StorageInitiator, "StorageInitiator"},
    {EntityType::RootComplex, "RootComplex"},
    {EntityType::NetworkController, "NetworkController"},
    {EntityType::Drive, "Drive"},
    {EntityType::StorageExpander, "StorageExpander"},
    {EntityType::DisplayController, "DisplayController"},
    {EntityType::Bridge, "Bridge"},
    {EntityType::Processor, "Processor"},
    {EntityType::Volume, "Volume"},
    {EntityType::AccelerationFunction, "AccelerationFunction"},
    {EntityType::MediaController, "MediaController"},
    {EntityType::MemoryChunk, "MemoryChunk"},
    {EntityType::Switch, "Switch"},
    {EntityType::FabricBridge, "FabricBridge"},
    {EntityType::Manager, "Manager"},
    {EntityType::StorageSubsystem, "StorageSubsystem"},
    {EntityType::Memory, "Memory"},
    {EntityType::CXLDevice, "CXLDevice"},
});

NLOHMANN_JSON_SERIALIZE_ENUM(EntityRole, {
    {EntityRole::Invalid, "Invalid"},
    {EntityRole::Initiator, "Initiator"},
    {EntityRole::Target, "Target"},
    {EntityRole::Both, "Both"},
});

// clang-format on
} // namespace endpoint