/**
* Nsmf_PDUSession
* SMF PDU Session Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. 
*
* The version of the OpenAPI document: 1.1.0.alpha-1
* 
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/


#include "SmContextUpdatedData.h"

namespace oai {
namespace smf_server {
namespace model {

SmContextUpdatedData::SmContextUpdatedData()
{
    m_UpCnxStateIsSet = false;
    m_HoStateIsSet = false;
    m_ReleaseEbiListIsSet = false;
    m_AllocatedEbiListIsSet = false;
    m_ModifiedEbiListIsSet = false;
    m_N1SmMsgIsSet = false;
    m_N2SmInfoIsSet = false;
    m_N2SmInfoTypeIsSet = false;
    m_EpsBearerSetupIsSet = false;
    m_DataForwarding = false;
    m_DataForwardingIsSet = false;
    m_CauseIsSet = false;
    
}

SmContextUpdatedData::~SmContextUpdatedData()
{
}

void SmContextUpdatedData::validate()
{
    // TODO: implement validation
}

void to_json(nlohmann::json& j, const SmContextUpdatedData& o)
{
    j = nlohmann::json();
    if(o.upCnxStateIsSet())
        j["upCnxState"] = o.m_UpCnxState;
    if(o.hoStateIsSet())
        j["hoState"] = o.m_HoState;
    if(o.releaseEbiListIsSet())
        j["releaseEbiList"] = o.m_ReleaseEbiList;
    if(o.allocatedEbiListIsSet())
        j["allocatedEbiList"] = o.m_AllocatedEbiList;
    if(o.modifiedEbiListIsSet())
        j["modifiedEbiList"] = o.m_ModifiedEbiList;
    if(o.n1SmMsgIsSet())
        j["n1SmMsg"] = o.m_N1SmMsg;
    if(o.n2SmInfoIsSet())
        j["n2SmInfo"] = o.m_N2SmInfo;
    if(o.n2SmInfoTypeIsSet())
        j["n2SmInfoType"] = o.m_N2SmInfoType;
    if(o.epsBearerSetupIsSet())
        j["epsBearerSetup"] = o.m_EpsBearerSetup;
    if(o.dataForwardingIsSet())
        j["dataForwarding"] = o.m_DataForwarding;
    if(o.causeIsSet())
        j["cause"] = o.m_Cause;
}

void from_json(const nlohmann::json& j, SmContextUpdatedData& o)
{
    if(j.find("upCnxState") != j.end())
    {
        j.at("upCnxState").get_to(o.m_UpCnxState);
        o.m_UpCnxStateIsSet = true;
    } 
    if(j.find("hoState") != j.end())
    {
        j.at("hoState").get_to(o.m_HoState);
        o.m_HoStateIsSet = true;
    } 
    if(j.find("releaseEbiList") != j.end())
    {
        j.at("releaseEbiList").get_to(o.m_ReleaseEbiList);
        o.m_ReleaseEbiListIsSet = true;
    } 
    if(j.find("allocatedEbiList") != j.end())
    {
        j.at("allocatedEbiList").get_to(o.m_AllocatedEbiList);
        o.m_AllocatedEbiListIsSet = true;
    } 
    if(j.find("modifiedEbiList") != j.end())
    {
        j.at("modifiedEbiList").get_to(o.m_ModifiedEbiList);
        o.m_ModifiedEbiListIsSet = true;
    } 
    if(j.find("n1SmMsg") != j.end())
    {
        j.at("n1SmMsg").get_to(o.m_N1SmMsg);
        o.m_N1SmMsgIsSet = true;
    } 
    if(j.find("n2SmInfo") != j.end())
    {
        j.at("n2SmInfo").get_to(o.m_N2SmInfo);
        o.m_N2SmInfoIsSet = true;
    } 
    if(j.find("n2SmInfoType") != j.end())
    {
        j.at("n2SmInfoType").get_to(o.m_N2SmInfoType);
        o.m_N2SmInfoTypeIsSet = true;
    } 
    if(j.find("epsBearerSetup") != j.end())
    {
        j.at("epsBearerSetup").get_to(o.m_EpsBearerSetup);
        o.m_EpsBearerSetupIsSet = true;
    } 
    if(j.find("dataForwarding") != j.end())
    {
        j.at("dataForwarding").get_to(o.m_DataForwarding);
        o.m_DataForwardingIsSet = true;
    } 
    if(j.find("cause") != j.end())
    {
        j.at("cause").get_to(o.m_Cause);
        o.m_CauseIsSet = true;
    } 
}

UpCnxState SmContextUpdatedData::getUpCnxState() const
{
    return m_UpCnxState;
}
void SmContextUpdatedData::setUpCnxState(UpCnxState const& value)
{
    m_UpCnxState = value;
    m_UpCnxStateIsSet = true;
}
bool SmContextUpdatedData::upCnxStateIsSet() const
{
    return m_UpCnxStateIsSet;
}
void SmContextUpdatedData::unsetUpCnxState()
{
    m_UpCnxStateIsSet = false;
}
HoState SmContextUpdatedData::getHoState() const
{
    return m_HoState;
}
void SmContextUpdatedData::setHoState(HoState const& value)
{
    m_HoState = value;
    m_HoStateIsSet = true;
}
bool SmContextUpdatedData::hoStateIsSet() const
{
    return m_HoStateIsSet;
}
void SmContextUpdatedData::unsetHoState()
{
    m_HoStateIsSet = false;
}
std::vector<int32_t>& SmContextUpdatedData::getReleaseEbiList()
{
    return m_ReleaseEbiList;
}
bool SmContextUpdatedData::releaseEbiListIsSet() const
{
    return m_ReleaseEbiListIsSet;
}
void SmContextUpdatedData::unsetReleaseEbiList()
{
    m_ReleaseEbiListIsSet = false;
}
std::vector<EbiArpMapping>& SmContextUpdatedData::getAllocatedEbiList()
{
    return m_AllocatedEbiList;
}
bool SmContextUpdatedData::allocatedEbiListIsSet() const
{
    return m_AllocatedEbiListIsSet;
}
void SmContextUpdatedData::unsetAllocatedEbiList()
{
    m_AllocatedEbiListIsSet = false;
}
std::vector<EbiArpMapping>& SmContextUpdatedData::getModifiedEbiList()
{
    return m_ModifiedEbiList;
}
bool SmContextUpdatedData::modifiedEbiListIsSet() const
{
    return m_ModifiedEbiListIsSet;
}
void SmContextUpdatedData::unsetModifiedEbiList()
{
    m_ModifiedEbiListIsSet = false;
}
RefToBinaryData SmContextUpdatedData::getN1SmMsg() const
{
    return m_N1SmMsg;
}
void SmContextUpdatedData::setN1SmMsg(RefToBinaryData const& value)
{
    m_N1SmMsg = value;
    m_N1SmMsgIsSet = true;
}
bool SmContextUpdatedData::n1SmMsgIsSet() const
{
    return m_N1SmMsgIsSet;
}
void SmContextUpdatedData::unsetN1SmMsg()
{
    m_N1SmMsgIsSet = false;
}
RefToBinaryData SmContextUpdatedData::getN2SmInfo() const
{
    return m_N2SmInfo;
}
void SmContextUpdatedData::setN2SmInfo(RefToBinaryData const& value)
{
    m_N2SmInfo = value;
    m_N2SmInfoIsSet = true;
}
bool SmContextUpdatedData::n2SmInfoIsSet() const
{
    return m_N2SmInfoIsSet;
}
void SmContextUpdatedData::unsetN2SmInfo()
{
    m_N2SmInfoIsSet = false;
}
N2SmInfoType SmContextUpdatedData::getN2SmInfoType() const
{
    return m_N2SmInfoType;
}
void SmContextUpdatedData::setN2SmInfoType(N2SmInfoType const& value)
{
    m_N2SmInfoType = value;
    m_N2SmInfoTypeIsSet = true;
}
bool SmContextUpdatedData::n2SmInfoTypeIsSet() const
{
    return m_N2SmInfoTypeIsSet;
}
void SmContextUpdatedData::unsetN2SmInfoType()
{
    m_N2SmInfoTypeIsSet = false;
}
std::vector<std::string>& SmContextUpdatedData::getEpsBearerSetup()
{
    return m_EpsBearerSetup;
}
bool SmContextUpdatedData::epsBearerSetupIsSet() const
{
    return m_EpsBearerSetupIsSet;
}
void SmContextUpdatedData::unsetEpsBearerSetup()
{
    m_EpsBearerSetupIsSet = false;
}
bool SmContextUpdatedData::isDataForwarding() const
{
    return m_DataForwarding;
}
void SmContextUpdatedData::setDataForwarding(bool const value)
{
    m_DataForwarding = value;
    m_DataForwardingIsSet = true;
}
bool SmContextUpdatedData::dataForwardingIsSet() const
{
    return m_DataForwardingIsSet;
}
void SmContextUpdatedData::unsetDataForwarding()
{
    m_DataForwardingIsSet = false;
}
Cause SmContextUpdatedData::getCause() const
{
    return m_Cause;
}
void SmContextUpdatedData::setCause(Cause const& value)
{
    m_Cause = value;
    m_CauseIsSet = true;
}
bool SmContextUpdatedData::causeIsSet() const
{
    return m_CauseIsSet;
}
void SmContextUpdatedData::unsetCause()
{
    m_CauseIsSet = false;
}

}
}
}

