/**
* 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 "UeN1N2InfoSubscriptionCreateData.h"

namespace oai {
namespace amf {
namespace model {

UeN1N2InfoSubscriptionCreateData::UeN1N2InfoSubscriptionCreateData()
{
    m_N2InformationClassIsSet = false;
    m_N2NotifyCallbackUri = "";
    m_N2NotifyCallbackUriIsSet = false;
    m_N1MessageClassIsSet = false;
    m_N1NotifyCallbackUri = "";
    m_N1NotifyCallbackUriIsSet = false;
    m_NfId = "";
    m_NfIdIsSet = false;
    m_SupportedFeatures = "";
    m_SupportedFeaturesIsSet = false;
    
}

UeN1N2InfoSubscriptionCreateData::~UeN1N2InfoSubscriptionCreateData()
{
}

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

void to_json(nlohmann::json& j, const UeN1N2InfoSubscriptionCreateData& o)
{
    j = nlohmann::json();
    if(o.n2InformationClassIsSet())
        j["n2InformationClass"] = o.m_N2InformationClass;
    if(o.n2NotifyCallbackUriIsSet())
        j["n2NotifyCallbackUri"] = o.m_N2NotifyCallbackUri;
    if(o.n1MessageClassIsSet())
        j["n1MessageClass"] = o.m_N1MessageClass;
    if(o.n1NotifyCallbackUriIsSet())
        j["n1NotifyCallbackUri"] = o.m_N1NotifyCallbackUri;
    if(o.nfIdIsSet())
        j["nfId"] = o.m_NfId;
    if(o.supportedFeaturesIsSet())
        j["supportedFeatures"] = o.m_SupportedFeatures;
}

void from_json(const nlohmann::json& j, UeN1N2InfoSubscriptionCreateData& o)
{
    if(j.find("n2InformationClass") != j.end())
    {
        j.at("n2InformationClass").get_to(o.m_N2InformationClass);
        o.m_N2InformationClassIsSet = true;
    } 
    if(j.find("n2NotifyCallbackUri") != j.end())
    {
        j.at("n2NotifyCallbackUri").get_to(o.m_N2NotifyCallbackUri);
        o.m_N2NotifyCallbackUriIsSet = true;
    } 
    if(j.find("n1MessageClass") != j.end())
    {
        j.at("n1MessageClass").get_to(o.m_N1MessageClass);
        o.m_N1MessageClassIsSet = true;
    } 
    if(j.find("n1NotifyCallbackUri") != j.end())
    {
        j.at("n1NotifyCallbackUri").get_to(o.m_N1NotifyCallbackUri);
        o.m_N1NotifyCallbackUriIsSet = true;
    } 
    if(j.find("nfId") != j.end())
    {
        j.at("nfId").get_to(o.m_NfId);
        o.m_NfIdIsSet = true;
    } 
    if(j.find("supportedFeatures") != j.end())
    {
        j.at("supportedFeatures").get_to(o.m_SupportedFeatures);
        o.m_SupportedFeaturesIsSet = true;
    } 
}

N2InformationClass UeN1N2InfoSubscriptionCreateData::getN2InformationClass() const
{
    return m_N2InformationClass;
}
void UeN1N2InfoSubscriptionCreateData::setN2InformationClass(N2InformationClass const& value)
{
    m_N2InformationClass = value;
    m_N2InformationClassIsSet = true;
}
bool UeN1N2InfoSubscriptionCreateData::n2InformationClassIsSet() const
{
    return m_N2InformationClassIsSet;
}
void UeN1N2InfoSubscriptionCreateData::unsetN2InformationClass()
{
    m_N2InformationClassIsSet = false;
}
std::string UeN1N2InfoSubscriptionCreateData::getN2NotifyCallbackUri() const
{
    return m_N2NotifyCallbackUri;
}
void UeN1N2InfoSubscriptionCreateData::setN2NotifyCallbackUri(std::string const& value)
{
    m_N2NotifyCallbackUri = value;
    m_N2NotifyCallbackUriIsSet = true;
}
bool UeN1N2InfoSubscriptionCreateData::n2NotifyCallbackUriIsSet() const
{
    return m_N2NotifyCallbackUriIsSet;
}
void UeN1N2InfoSubscriptionCreateData::unsetN2NotifyCallbackUri()
{
    m_N2NotifyCallbackUriIsSet = false;
}
N1MessageClass UeN1N2InfoSubscriptionCreateData::getN1MessageClass() const
{
    return m_N1MessageClass;
}
void UeN1N2InfoSubscriptionCreateData::setN1MessageClass(N1MessageClass const& value)
{
    m_N1MessageClass = value;
    m_N1MessageClassIsSet = true;
}
bool UeN1N2InfoSubscriptionCreateData::n1MessageClassIsSet() const
{
    return m_N1MessageClassIsSet;
}
void UeN1N2InfoSubscriptionCreateData::unsetN1MessageClass()
{
    m_N1MessageClassIsSet = false;
}
std::string UeN1N2InfoSubscriptionCreateData::getN1NotifyCallbackUri() const
{
    return m_N1NotifyCallbackUri;
}
void UeN1N2InfoSubscriptionCreateData::setN1NotifyCallbackUri(std::string const& value)
{
    m_N1NotifyCallbackUri = value;
    m_N1NotifyCallbackUriIsSet = true;
}
bool UeN1N2InfoSubscriptionCreateData::n1NotifyCallbackUriIsSet() const
{
    return m_N1NotifyCallbackUriIsSet;
}
void UeN1N2InfoSubscriptionCreateData::unsetN1NotifyCallbackUri()
{
    m_N1NotifyCallbackUriIsSet = false;
}
std::string UeN1N2InfoSubscriptionCreateData::getNfId() const
{
    return m_NfId;
}
void UeN1N2InfoSubscriptionCreateData::setNfId(std::string const& value)
{
    m_NfId = value;
    m_NfIdIsSet = true;
}
bool UeN1N2InfoSubscriptionCreateData::nfIdIsSet() const
{
    return m_NfIdIsSet;
}
void UeN1N2InfoSubscriptionCreateData::unsetNfId()
{
    m_NfIdIsSet = false;
}
std::string UeN1N2InfoSubscriptionCreateData::getSupportedFeatures() const
{
    return m_SupportedFeatures;
}
void UeN1N2InfoSubscriptionCreateData::setSupportedFeatures(std::string const& value)
{
    m_SupportedFeatures = value;
    m_SupportedFeaturesIsSet = true;
}
bool UeN1N2InfoSubscriptionCreateData::supportedFeaturesIsSet() const
{
    return m_SupportedFeaturesIsSet;
}
void UeN1N2InfoSubscriptionCreateData::unsetSupportedFeatures()
{
    m_SupportedFeaturesIsSet = false;
}

}
}
}

