/**
* Namf_Communication
* AMF Communication 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 "N1N2MessageTransferReqData.h"

namespace oai {
namespace amf {
namespace model {

N1N2MessageTransferReqData::N1N2MessageTransferReqData()
{
    m_N1MessageContainerIsSet = false;
    m_N2InfoContainerIsSet = false;
    m_SkipInd = false;
    m_SkipIndIsSet = false;
    m_LastMsgIndication = false;
    m_LastMsgIndicationIsSet = false;
    m_PduSessionId = 0;
    m_PduSessionIdIsSet = false;
    m_LcsCorrelationId = "";
    m_LcsCorrelationIdIsSet = false;
    m_Ppi = 0;
    m_PpiIsSet = false;
    m_ArpIsSet = false;
    m__5qi = 0;
    m__5qiIsSet = false;
    m_N1n2FailureTxfNotifURI = "";
    m_N1n2FailureTxfNotifURIIsSet = false;
    m_SmfReallocationInd = false;
    m_SmfReallocationIndIsSet = false;
    m_AreaOfValidityIsSet = false;
    m_SupportedFeatures = "";
    m_SupportedFeaturesIsSet = false;
    
}

N1N2MessageTransferReqData::~N1N2MessageTransferReqData()
{
}

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

void to_json(nlohmann::json& j, const N1N2MessageTransferReqData& o)
{
    j = nlohmann::json();
    if(o.n1MessageContainerIsSet())
        j["n1MessageContainer"] = o.m_N1MessageContainer;
    if(o.n2InfoContainerIsSet())
        j["n2InfoContainer"] = o.m_N2InfoContainer;
    if(o.skipIndIsSet())
        j["skipInd"] = o.m_SkipInd;
    if(o.lastMsgIndicationIsSet())
        j["lastMsgIndication"] = o.m_LastMsgIndication;
    if(o.pduSessionIdIsSet())
        j["pduSessionId"] = o.m_PduSessionId;
    if(o.lcsCorrelationIdIsSet())
        j["lcsCorrelationId"] = o.m_LcsCorrelationId;
    if(o.ppiIsSet())
        j["ppi"] = o.m_Ppi;
    if(o.arpIsSet())
        j["arp"] = o.m_Arp;
    if(o._5qiIsSet())
        j["5qi"] = o.m__5qi;
    if(o.n1n2FailureTxfNotifURIIsSet())
        j["n1n2FailureTxfNotifURI"] = o.m_N1n2FailureTxfNotifURI;
    if(o.smfReallocationIndIsSet())
        j["smfReallocationInd"] = o.m_SmfReallocationInd;
    if(o.areaOfValidityIsSet())
        j["areaOfValidity"] = o.m_AreaOfValidity;
    if(o.supportedFeaturesIsSet())
        j["supportedFeatures"] = o.m_SupportedFeatures;
}

void from_json(const nlohmann::json& j, N1N2MessageTransferReqData& o)
{
    if(j.find("n1MessageContainer") != j.end())
    {
        //j.at("n1MessageContainer").get_to(o.m_N1MessageContainer);
        //o.m_N1MessageContainerIsSet = true;
    } 
    if(j.find("n2InfoContainer") != j.end())
    {
        //j.at("n2InfoContainer").get_to(o.m_N2InfoContainer);
        //o.m_N2InfoContainerIsSet = true;
    } 
    if(j.find("skipInd") != j.end())
    {
        j.at("skipInd").get_to(o.m_SkipInd);
        o.m_SkipIndIsSet = true;
    } 
    if(j.find("lastMsgIndication") != j.end())
    {
        j.at("lastMsgIndication").get_to(o.m_LastMsgIndication);
        o.m_LastMsgIndicationIsSet = true;
    } 
    if(j.find("pduSessionId") != j.end())
    {
        j.at("pduSessionId").get_to(o.m_PduSessionId);
        o.m_PduSessionIdIsSet = true;
    } 
    if(j.find("lcsCorrelationId") != j.end())
    {
        j.at("lcsCorrelationId").get_to(o.m_LcsCorrelationId);
        o.m_LcsCorrelationIdIsSet = true;
    } 
    if(j.find("ppi") != j.end())
    {
        j.at("ppi").get_to(o.m_Ppi);
        o.m_PpiIsSet = true;
    } 
    if(j.find("arp") != j.end())
    {
        j.at("arp").get_to(o.m_Arp);
        o.m_ArpIsSet = true;
    } 
    if(j.find("5qi") != j.end())
    {
        j.at("5qi").get_to(o.m__5qi);
        o.m__5qiIsSet = true;
    } 
    if(j.find("n1n2FailureTxfNotifURI") != j.end())
    {
        j.at("n1n2FailureTxfNotifURI").get_to(o.m_N1n2FailureTxfNotifURI);
        o.m_N1n2FailureTxfNotifURIIsSet = true;
    } 
    if(j.find("smfReallocationInd") != j.end())
    {
        j.at("smfReallocationInd").get_to(o.m_SmfReallocationInd);
        o.m_SmfReallocationIndIsSet = true;
    } 
    if(j.find("areaOfValidity") != j.end())
    {
        j.at("areaOfValidity").get_to(o.m_AreaOfValidity);
        o.m_AreaOfValidityIsSet = true;
    } 
    if(j.find("supportedFeatures") != j.end())
    {
        j.at("supportedFeatures").get_to(o.m_SupportedFeatures);
        o.m_SupportedFeaturesIsSet = true;
    } 
}

N1MessageContainer N1N2MessageTransferReqData::getN1MessageContainer() const
{
    return m_N1MessageContainer;
}
void N1N2MessageTransferReqData::setN1MessageContainer(N1MessageContainer const& value)
{
    m_N1MessageContainer = value;
    m_N1MessageContainerIsSet = true;
}
bool N1N2MessageTransferReqData::n1MessageContainerIsSet() const
{
    return m_N1MessageContainerIsSet;
}
void N1N2MessageTransferReqData::unsetN1MessageContainer()
{
    m_N1MessageContainerIsSet = false;
}
N2InfoContainer N1N2MessageTransferReqData::getN2InfoContainer() const
{
    return m_N2InfoContainer;
}
void N1N2MessageTransferReqData::setN2InfoContainer(N2InfoContainer const& value)
{
    m_N2InfoContainer = value;
    m_N2InfoContainerIsSet = true;
}
bool N1N2MessageTransferReqData::n2InfoContainerIsSet() const
{
    return m_N2InfoContainerIsSet;
}
void N1N2MessageTransferReqData::unsetN2InfoContainer()
{
    m_N2InfoContainerIsSet = false;
}
bool N1N2MessageTransferReqData::isSkipInd() const
{
    return m_SkipInd;
}
void N1N2MessageTransferReqData::setSkipInd(bool const value)
{
    m_SkipInd = value;
    m_SkipIndIsSet = true;
}
bool N1N2MessageTransferReqData::skipIndIsSet() const
{
    return m_SkipIndIsSet;
}
void N1N2MessageTransferReqData::unsetSkipInd()
{
    m_SkipIndIsSet = false;
}
bool N1N2MessageTransferReqData::isLastMsgIndication() const
{
    return m_LastMsgIndication;
}
void N1N2MessageTransferReqData::setLastMsgIndication(bool const value)
{
    m_LastMsgIndication = value;
    m_LastMsgIndicationIsSet = true;
}
bool N1N2MessageTransferReqData::lastMsgIndicationIsSet() const
{
    return m_LastMsgIndicationIsSet;
}
void N1N2MessageTransferReqData::unsetLastMsgIndication()
{
    m_LastMsgIndicationIsSet = false;
}
int32_t N1N2MessageTransferReqData::getPduSessionId() const
{
    return m_PduSessionId;
}
void N1N2MessageTransferReqData::setPduSessionId(int32_t const value)
{
    m_PduSessionId = value;
    m_PduSessionIdIsSet = true;
}
bool N1N2MessageTransferReqData::pduSessionIdIsSet() const
{
    return m_PduSessionIdIsSet;
}
void N1N2MessageTransferReqData::unsetPduSessionId()
{
    m_PduSessionIdIsSet = false;
}
std::string N1N2MessageTransferReqData::getLcsCorrelationId() const
{
    return m_LcsCorrelationId;
}
void N1N2MessageTransferReqData::setLcsCorrelationId(std::string const& value)
{
    m_LcsCorrelationId = value;
    m_LcsCorrelationIdIsSet = true;
}
bool N1N2MessageTransferReqData::lcsCorrelationIdIsSet() const
{
    return m_LcsCorrelationIdIsSet;
}
void N1N2MessageTransferReqData::unsetLcsCorrelationId()
{
    m_LcsCorrelationIdIsSet = false;
}
int32_t N1N2MessageTransferReqData::getPpi() const
{
    return m_Ppi;
}
void N1N2MessageTransferReqData::setPpi(int32_t const value)
{
    m_Ppi = value;
    m_PpiIsSet = true;
}
bool N1N2MessageTransferReqData::ppiIsSet() const
{
    return m_PpiIsSet;
}
void N1N2MessageTransferReqData::unsetPpi()
{
    m_PpiIsSet = false;
}
Arp N1N2MessageTransferReqData::getArp() const
{
    return m_Arp;
}
void N1N2MessageTransferReqData::setArp(Arp const& value)
{
    m_Arp = value;
    m_ArpIsSet = true;
}
bool N1N2MessageTransferReqData::arpIsSet() const
{
    return m_ArpIsSet;
}
void N1N2MessageTransferReqData::unsetArp()
{
    m_ArpIsSet = false;
}
int32_t N1N2MessageTransferReqData::get5qi() const
{
    return m__5qi;
}
void N1N2MessageTransferReqData::set5qi(int32_t const value)
{
    m__5qi = value;
    m__5qiIsSet = true;
}
bool N1N2MessageTransferReqData::_5qiIsSet() const
{
    return m__5qiIsSet;
}
void N1N2MessageTransferReqData::unset_5qi()
{
    m__5qiIsSet = false;
}
std::string N1N2MessageTransferReqData::getN1n2FailureTxfNotifURI() const
{
    return m_N1n2FailureTxfNotifURI;
}
void N1N2MessageTransferReqData::setN1n2FailureTxfNotifURI(std::string const& value)
{
    m_N1n2FailureTxfNotifURI = value;
    m_N1n2FailureTxfNotifURIIsSet = true;
}
bool N1N2MessageTransferReqData::n1n2FailureTxfNotifURIIsSet() const
{
    return m_N1n2FailureTxfNotifURIIsSet;
}
void N1N2MessageTransferReqData::unsetN1n2FailureTxfNotifURI()
{
    m_N1n2FailureTxfNotifURIIsSet = false;
}
bool N1N2MessageTransferReqData::isSmfReallocationInd() const
{
    return m_SmfReallocationInd;
}
void N1N2MessageTransferReqData::setSmfReallocationInd(bool const value)
{
    m_SmfReallocationInd = value;
    m_SmfReallocationIndIsSet = true;
}
bool N1N2MessageTransferReqData::smfReallocationIndIsSet() const
{
    return m_SmfReallocationIndIsSet;
}
void N1N2MessageTransferReqData::unsetSmfReallocationInd()
{
    m_SmfReallocationIndIsSet = false;
}
AreaOfValidity N1N2MessageTransferReqData::getAreaOfValidity() const
{
    return m_AreaOfValidity;
}
void N1N2MessageTransferReqData::setAreaOfValidity(AreaOfValidity const& value)
{
    m_AreaOfValidity = value;
    m_AreaOfValidityIsSet = true;
}
bool N1N2MessageTransferReqData::areaOfValidityIsSet() const
{
    return m_AreaOfValidityIsSet;
}
void N1N2MessageTransferReqData::unsetAreaOfValidity()
{
    m_AreaOfValidityIsSet = false;
}
std::string N1N2MessageTransferReqData::getSupportedFeatures() const
{
    return m_SupportedFeatures;
}
void N1N2MessageTransferReqData::setSupportedFeatures(std::string const& value)
{
    m_SupportedFeatures = value;
    m_SupportedFeaturesIsSet = true;
}
bool N1N2MessageTransferReqData::supportedFeaturesIsSet() const
{
    return m_SupportedFeaturesIsSet;
}
void N1N2MessageTransferReqData::unsetSupportedFeatures()
{
    m_SupportedFeaturesIsSet = false;
}

}
}
}

