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

namespace oai {
namespace amf {
namespace model {

EutraLocation::EutraLocation()
{
    m_AgeOfLocationInformation = 0;
    m_AgeOfLocationInformationIsSet = false;
    m_UeLocationTimestamp = "";
    m_UeLocationTimestampIsSet = false;
    m_GeographicalInformation = "";
    m_GeographicalInformationIsSet = false;
    m_GeodeticInformation = "";
    m_GeodeticInformationIsSet = false;
    m_GlobalNgenbIdIsSet = false;
    
}

EutraLocation::~EutraLocation()
{
}

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

void to_json(nlohmann::json& j, const EutraLocation& o)
{
    j = nlohmann::json();
    j["tai"] = o.m_Tai;
    j["ecgi"] = o.m_Ecgi;
    if(o.ageOfLocationInformationIsSet())
        j["ageOfLocationInformation"] = o.m_AgeOfLocationInformation;
    if(o.ueLocationTimestampIsSet())
        j["ueLocationTimestamp"] = o.m_UeLocationTimestamp;
    if(o.geographicalInformationIsSet())
        j["geographicalInformation"] = o.m_GeographicalInformation;
    if(o.geodeticInformationIsSet())
        j["geodeticInformation"] = o.m_GeodeticInformation;
    if(o.globalNgenbIdIsSet())
        j["globalNgenbId"] = o.m_GlobalNgenbId;
}

void from_json(const nlohmann::json& j, EutraLocation& o)
{
    j.at("tai").get_to(o.m_Tai);
    j.at("ecgi").get_to(o.m_Ecgi);
    if(j.find("ageOfLocationInformation") != j.end())
    {
        j.at("ageOfLocationInformation").get_to(o.m_AgeOfLocationInformation);
        o.m_AgeOfLocationInformationIsSet = true;
    } 
    if(j.find("ueLocationTimestamp") != j.end())
    {
        j.at("ueLocationTimestamp").get_to(o.m_UeLocationTimestamp);
        o.m_UeLocationTimestampIsSet = true;
    } 
    if(j.find("geographicalInformation") != j.end())
    {
        j.at("geographicalInformation").get_to(o.m_GeographicalInformation);
        o.m_GeographicalInformationIsSet = true;
    } 
    if(j.find("geodeticInformation") != j.end())
    {
        j.at("geodeticInformation").get_to(o.m_GeodeticInformation);
        o.m_GeodeticInformationIsSet = true;
    } 
    if(j.find("globalNgenbId") != j.end())
    {
        j.at("globalNgenbId").get_to(o.m_GlobalNgenbId);
        o.m_GlobalNgenbIdIsSet = true;
    } 
}

Tai EutraLocation::getTai() const
{
    return m_Tai;
}
void EutraLocation::setTai(Tai const& value)
{
    m_Tai = value;
    
}
Ecgi EutraLocation::getEcgi() const
{
    return m_Ecgi;
}
void EutraLocation::setEcgi(Ecgi const& value)
{
    m_Ecgi = value;
    
}
int32_t EutraLocation::getAgeOfLocationInformation() const
{
    return m_AgeOfLocationInformation;
}
void EutraLocation::setAgeOfLocationInformation(int32_t const value)
{
    m_AgeOfLocationInformation = value;
    m_AgeOfLocationInformationIsSet = true;
}
bool EutraLocation::ageOfLocationInformationIsSet() const
{
    return m_AgeOfLocationInformationIsSet;
}
void EutraLocation::unsetAgeOfLocationInformation()
{
    m_AgeOfLocationInformationIsSet = false;
}
std::string EutraLocation::getUeLocationTimestamp() const
{
    return m_UeLocationTimestamp;
}
void EutraLocation::setUeLocationTimestamp(std::string const& value)
{
    m_UeLocationTimestamp = value;
    m_UeLocationTimestampIsSet = true;
}
bool EutraLocation::ueLocationTimestampIsSet() const
{
    return m_UeLocationTimestampIsSet;
}
void EutraLocation::unsetUeLocationTimestamp()
{
    m_UeLocationTimestampIsSet = false;
}
std::string EutraLocation::getGeographicalInformation() const
{
    return m_GeographicalInformation;
}
void EutraLocation::setGeographicalInformation(std::string const& value)
{
    m_GeographicalInformation = value;
    m_GeographicalInformationIsSet = true;
}
bool EutraLocation::geographicalInformationIsSet() const
{
    return m_GeographicalInformationIsSet;
}
void EutraLocation::unsetGeographicalInformation()
{
    m_GeographicalInformationIsSet = false;
}
std::string EutraLocation::getGeodeticInformation() const
{
    return m_GeodeticInformation;
}
void EutraLocation::setGeodeticInformation(std::string const& value)
{
    m_GeodeticInformation = value;
    m_GeodeticInformationIsSet = true;
}
bool EutraLocation::geodeticInformationIsSet() const
{
    return m_GeodeticInformationIsSet;
}
void EutraLocation::unsetGeodeticInformation()
{
    m_GeodeticInformationIsSet = false;
}
GlobalRanNodeId EutraLocation::getGlobalNgenbId() const
{
    return m_GlobalNgenbId;
}
void EutraLocation::setGlobalNgenbId(GlobalRanNodeId const& value)
{
    m_GlobalNgenbId = value;
    m_GlobalNgenbIdIsSet = true;
}
bool EutraLocation::globalNgenbIdIsSet() const
{
    return m_GlobalNgenbIdIsSet;
}
void EutraLocation::unsetGlobalNgenbId()
{
    m_GlobalNgenbIdIsSet = false;
}

}
}
}

