xref: /openbmc/bmcweb/features/redfish/include/generated/enums/ip_addresses.hpp (revision 40e9b92ec19acffb46f83a6e55b18974da5d708e)
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 ip_addresses
70ec8b83dSEd Tanous {
80ec8b83dSEd Tanous // clang-format off
90ec8b83dSEd Tanous 
100ec8b83dSEd Tanous enum class IPv4AddressOrigin{
110ec8b83dSEd Tanous     Invalid,
120ec8b83dSEd Tanous     Static,
130ec8b83dSEd Tanous     DHCP,
140ec8b83dSEd Tanous     BOOTP,
150ec8b83dSEd Tanous     IPv4LinkLocal,
160ec8b83dSEd Tanous };
170ec8b83dSEd Tanous 
180ec8b83dSEd Tanous enum class IPv6AddressOrigin{
190ec8b83dSEd Tanous     Invalid,
200ec8b83dSEd Tanous     Static,
210ec8b83dSEd Tanous     DHCPv6,
220ec8b83dSEd Tanous     LinkLocal,
230ec8b83dSEd Tanous     SLAAC,
240ec8b83dSEd Tanous };
250ec8b83dSEd Tanous 
260ec8b83dSEd Tanous enum class AddressState{
270ec8b83dSEd Tanous     Invalid,
280ec8b83dSEd Tanous     Preferred,
290ec8b83dSEd Tanous     Deprecated,
300ec8b83dSEd Tanous     Tentative,
310ec8b83dSEd Tanous     Failed,
320ec8b83dSEd Tanous };
330ec8b83dSEd Tanous 
340ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(IPv4AddressOrigin, {
350ec8b83dSEd Tanous     {IPv4AddressOrigin::Invalid, "Invalid"},
360ec8b83dSEd Tanous     {IPv4AddressOrigin::Static, "Static"},
370ec8b83dSEd Tanous     {IPv4AddressOrigin::DHCP, "DHCP"},
380ec8b83dSEd Tanous     {IPv4AddressOrigin::BOOTP, "BOOTP"},
390ec8b83dSEd Tanous     {IPv4AddressOrigin::IPv4LinkLocal, "IPv4LinkLocal"},
400ec8b83dSEd Tanous });
410ec8b83dSEd Tanous 
420ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(IPv6AddressOrigin, {
430ec8b83dSEd Tanous     {IPv6AddressOrigin::Invalid, "Invalid"},
440ec8b83dSEd Tanous     {IPv6AddressOrigin::Static, "Static"},
450ec8b83dSEd Tanous     {IPv6AddressOrigin::DHCPv6, "DHCPv6"},
460ec8b83dSEd Tanous     {IPv6AddressOrigin::LinkLocal, "LinkLocal"},
470ec8b83dSEd Tanous     {IPv6AddressOrigin::SLAAC, "SLAAC"},
480ec8b83dSEd Tanous });
490ec8b83dSEd Tanous 
500ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AddressState, {
510ec8b83dSEd Tanous     {AddressState::Invalid, "Invalid"},
520ec8b83dSEd Tanous     {AddressState::Preferred, "Preferred"},
530ec8b83dSEd Tanous     {AddressState::Deprecated, "Deprecated"},
540ec8b83dSEd Tanous     {AddressState::Tentative, "Tentative"},
550ec8b83dSEd Tanous     {AddressState::Failed, "Failed"},
560ec8b83dSEd Tanous });
570ec8b83dSEd Tanous 
580ec8b83dSEd Tanous }
590ec8b83dSEd Tanous // clang-format on
60