#include "AccessAndMobilitySubscriptionData.h"

namespace oai::udr::model {

AccessAndMobilitySubscriptionData::AccessAndMobilitySubscriptionData() {
  m_SupportedFeatures = "";
  m_SupportedFeaturesIsSet = false;
  m_GpsisIsSet = false;
  m_InternalGroupIdsIsSet = false;
  m_SharedVnGroupDataIdsIsSet = false;
  m_SubscribedUeAmbrIsSet = false;
  m_NssaiIsSet = false;
  m_RatRestrictionsIsSet = false;
  m_ForbiddenAreasIsSet = false;
  m_ServiceAreaRestrictionIsSet = false;
  m_CoreNetworkTypeRestrictionsIsSet = false;
  m_RfspIndex = 0;
  m_RfspIndexIsSet = false;
  m_SubsRegTimer = 0;
  m_SubsRegTimerIsSet = false;
  m_UeUsageType = 0;
  m_UeUsageTypeIsSet = false;
  m_MpsPriority = false;
  m_MpsPriorityIsSet = false;
  m_McsPriority = false;
  m_McsPriorityIsSet = false;
  m_ActiveTime = 0;
  m_ActiveTimeIsSet = false;
  m_SorInfoIsSet = false;
  m_SorInfoExpectInd = false;
  m_SorInfoExpectIndIsSet = false;
  m_SorafRetrieval = false;
  m_SorafRetrievalIsSet = false;
  m_SorUpdateIndicatorListIsSet = false;
  m_UpuInfoIsSet = false;
  m_MicoAllowed = false;
  m_MicoAllowedIsSet = false;
  m_SharedAmDataIdsIsSet = false;
  m_OdbPacketServicesIsSet = false;
  m_SubscribedDnnListIsSet = false;
  m_ServiceGapTime = 0;
  m_ServiceGapTimeIsSet = false;
  m_MdtUserConsentIsSet = false;
  m_MdtConfigurationIsSet = false;
  m_TraceDataIsSet = false;
  m_CagDataIsSet = false;
  m_StnSr = "";
  m_StnSrIsSet = false;
  m_CMsisdn = "";
  m_CMsisdnIsSet = false;
  m_NbIoTUePriority = 0;
  m_NbIoTUePriorityIsSet = false;
  m_NssaiInclusionAllowed = false;
  m_NssaiInclusionAllowedIsSet = false;
  m_RgWirelineCharacteristicsIsSet = false;
  m_EcRestrictionDataWbIsSet = false;
  m_EcRestrictionDataNb = false;
  m_EcRestrictionDataNbIsSet = false;
  m_ExpectedUeBehaviourListIsSet = false;
  m_PrimaryRatRestrictionsIsSet = false;
  m_SecondaryRatRestrictionsIsSet = false;
  m_EdrxParametersListIsSet = false;
  m_PtwParametersListIsSet = false;
  m_IabOperationAllowed = false;
  m_IabOperationAllowedIsSet = false;
  m_WirelineForbiddenAreasIsSet = false;
  m_WirelineServiceAreaRestrictionIsSet = false;
}

AccessAndMobilitySubscriptionData::~AccessAndMobilitySubscriptionData() {}

void AccessAndMobilitySubscriptionData::validate() {

}

void to_json(nlohmann::json &j, const AccessAndMobilitySubscriptionData &o) {
  j = nlohmann::json();
  if (o.supportedFeaturesIsSet())
    j["supportedFeatures"] = o.m_SupportedFeatures;
  if (o.gpsisIsSet() || !o.m_Gpsis.empty())
    j["gpsis"] = o.m_Gpsis;
  if (o.internalGroupIdsIsSet() || !o.m_InternalGroupIds.empty())
    j["internalGroupIds"] = o.m_InternalGroupIds;
  if (o.sharedVnGroupDataIdsIsSet() || !o.m_SharedVnGroupDataIds.empty())
    j["sharedVnGroupDataIds"] = o.m_SharedVnGroupDataIds;
  if (o.subscribedUeAmbrIsSet())
    j["subscribedUeAmbr"] = o.m_SubscribedUeAmbr;
  if (o.nssaiIsSet())
    j["nssai"] = o.m_Nssai;
  if (o.ratRestrictionsIsSet() || !o.m_RatRestrictions.empty())
    j["ratRestrictions"] = o.m_RatRestrictions;
  if (o.forbiddenAreasIsSet() || !o.m_ForbiddenAreas.empty())
    j["forbiddenAreas"] = o.m_ForbiddenAreas;
  if (o.serviceAreaRestrictionIsSet())
    j["serviceAreaRestriction"] = o.m_ServiceAreaRestriction;
  if (o.coreNetworkTypeRestrictionsIsSet() ||
      !o.m_CoreNetworkTypeRestrictions.empty())
    j["coreNetworkTypeRestrictions"] = o.m_CoreNetworkTypeRestrictions;
  if (o.rfspIndexIsSet())
    j["rfspIndex"] = o.m_RfspIndex;
  if (o.subsRegTimerIsSet())
    j["subsRegTimer"] = o.m_SubsRegTimer;
  if (o.ueUsageTypeIsSet())
    j["ueUsageType"] = o.m_UeUsageType;
  if (o.mpsPriorityIsSet())
    j["mpsPriority"] = o.m_MpsPriority;
  if (o.mcsPriorityIsSet())
    j["mcsPriority"] = o.m_McsPriority;
  if (o.activeTimeIsSet())
    j["activeTime"] = o.m_ActiveTime;
  if (o.sorInfoIsSet())
    j["sorInfo"] = o.m_SorInfo;
  if (o.sorInfoExpectIndIsSet())
    j["sorInfoExpectInd"] = o.m_SorInfoExpectInd;
  if (o.sorafRetrievalIsSet())
    j["sorafRetrieval"] = o.m_SorafRetrieval;
  if (o.sorUpdateIndicatorListIsSet() || !o.m_SorUpdateIndicatorList.empty())
    j["sorUpdateIndicatorList"] = o.m_SorUpdateIndicatorList;
  if (o.upuInfoIsSet())
    j["upuInfo"] = o.m_UpuInfo;
  if (o.micoAllowedIsSet())
    j["micoAllowed"] = o.m_MicoAllowed;
  if (o.sharedAmDataIdsIsSet() || !o.m_SharedAmDataIds.empty())
    j["sharedAmDataIds"] = o.m_SharedAmDataIds;
  if (o.odbPacketServicesIsSet())
    j["odbPacketServices"] = o.m_OdbPacketServices;

  if (o.serviceGapTimeIsSet())
    j["serviceGapTime"] = o.m_ServiceGapTime;
  if (o.mdtUserConsentIsSet())
    j["mdtUserConsent"] = o.m_MdtUserConsent;
  if (o.mdtConfigurationIsSet())
    j["mdtConfiguration"] = o.m_MdtConfiguration;
  if (o.traceDataIsSet())
    j["traceData"] = o.m_TraceData;
  if (o.cagDataIsSet())
    j["cagData"] = o.m_CagData;
  if (o.stnSrIsSet())
    j["stnSr"] = o.m_StnSr;
  if (o.cMsisdnIsSet())
    j["cMsisdn"] = o.m_CMsisdn;
  if (o.nbIoTUePriorityIsSet())
    j["nbIoTUePriority"] = o.m_NbIoTUePriority;
  if (o.nssaiInclusionAllowedIsSet())
    j["nssaiInclusionAllowed"] = o.m_NssaiInclusionAllowed;
  if (o.rgWirelineCharacteristicsIsSet())
    j["rgWirelineCharacteristics"] = o.m_RgWirelineCharacteristics;
  if (o.ecRestrictionDataWbIsSet())
    j["ecRestrictionDataWb"] = o.m_EcRestrictionDataWb;
  if (o.ecRestrictionDataNbIsSet())
    j["ecRestrictionDataNb"] = o.m_EcRestrictionDataNb;
  if (o.expectedUeBehaviourListIsSet())
    j["expectedUeBehaviourList"] = o.m_ExpectedUeBehaviourList;
  if (o.primaryRatRestrictionsIsSet() || !o.m_PrimaryRatRestrictions.empty())
    j["primaryRatRestrictions"] = o.m_PrimaryRatRestrictions;
  if (o.secondaryRatRestrictionsIsSet() ||
      !o.m_SecondaryRatRestrictions.empty())
    j["secondaryRatRestrictions"] = o.m_SecondaryRatRestrictions;
  if (o.edrxParametersListIsSet() || !o.m_EdrxParametersList.empty())
    j["edrxParametersList"] = o.m_EdrxParametersList;
  if (o.ptwParametersListIsSet() || !o.m_PtwParametersList.empty())
    j["ptwParametersList"] = o.m_PtwParametersList;
  if (o.iabOperationAllowedIsSet())
    j["iabOperationAllowed"] = o.m_IabOperationAllowed;
  if (o.wirelineForbiddenAreasIsSet() || !o.m_WirelineForbiddenAreas.empty())
    j["wirelineForbiddenAreas"] = o.m_WirelineForbiddenAreas;
  if (o.wirelineServiceAreaRestrictionIsSet())
    j["wirelineServiceAreaRestriction"] = o.m_WirelineServiceAreaRestriction;
}

void from_json(const nlohmann::json &j, AccessAndMobilitySubscriptionData &o) {
  if (j.find("supportedFeatures") != j.end()) {
    j.at("supportedFeatures").get_to(o.m_SupportedFeatures);
    o.m_SupportedFeaturesIsSet = true;
  }
  if (j.find("gpsis") != j.end()) {
    j.at("gpsis").get_to(o.m_Gpsis);
    o.m_GpsisIsSet = true;
  }
  if (j.find("internalGroupIds") != j.end()) {
    j.at("internalGroupIds").get_to(o.m_InternalGroupIds);
    o.m_InternalGroupIdsIsSet = true;
  }
  if (j.find("sharedVnGroupDataIds") != j.end()) {
    j.at("sharedVnGroupDataIds").get_to(o.m_SharedVnGroupDataIds);
    o.m_SharedVnGroupDataIdsIsSet = true;
  }
  if (j.find("subscribedUeAmbr") != j.end()) {
    j.at("subscribedUeAmbr").get_to(o.m_SubscribedUeAmbr);
    o.m_SubscribedUeAmbrIsSet = true;
  }
  if (j.find("nssai") != j.end()) {
    j.at("nssai").get_to(o.m_Nssai);
    o.m_NssaiIsSet = true;
  }
  if (j.find("ratRestrictions") != j.end()) {
    j.at("ratRestrictions").get_to(o.m_RatRestrictions);
    o.m_RatRestrictionsIsSet = true;
  }
  if (j.find("forbiddenAreas") != j.end()) {
    j.at("forbiddenAreas").get_to(o.m_ForbiddenAreas);
    o.m_ForbiddenAreasIsSet = true;
  }
  if (j.find("serviceAreaRestriction") != j.end()) {
    j.at("serviceAreaRestriction").get_to(o.m_ServiceAreaRestriction);
    o.m_ServiceAreaRestrictionIsSet = true;
  }
  if (j.find("coreNetworkTypeRestrictions") != j.end()) {
    j.at("coreNetworkTypeRestrictions").get_to(o.m_CoreNetworkTypeRestrictions);
    o.m_CoreNetworkTypeRestrictionsIsSet = true;
  }
  if (j.find("rfspIndex") != j.end()) {
    j.at("rfspIndex").get_to(o.m_RfspIndex);
    o.m_RfspIndexIsSet = true;
  }
  if (j.find("subsRegTimer") != j.end()) {
    j.at("subsRegTimer").get_to(o.m_SubsRegTimer);
    o.m_SubsRegTimerIsSet = true;
  }
  if (j.find("ueUsageType") != j.end()) {
    j.at("ueUsageType").get_to(o.m_UeUsageType);
    o.m_UeUsageTypeIsSet = true;
  }
  if (j.find("mpsPriority") != j.end()) {
    j.at("mpsPriority").get_to(o.m_MpsPriority);
    o.m_MpsPriorityIsSet = true;
  }
  if (j.find("mcsPriority") != j.end()) {
    j.at("mcsPriority").get_to(o.m_McsPriority);
    o.m_McsPriorityIsSet = true;
  }
  if (j.find("activeTime") != j.end()) {
    j.at("activeTime").get_to(o.m_ActiveTime);
    o.m_ActiveTimeIsSet = true;
  }
  if (j.find("sorInfo") != j.end()) {
    j.at("sorInfo").get_to(o.m_SorInfo);
    o.m_SorInfoIsSet = true;
  }
  if (j.find("sorInfoExpectInd") != j.end()) {
    j.at("sorInfoExpectInd").get_to(o.m_SorInfoExpectInd);
    o.m_SorInfoExpectIndIsSet = true;
  }
  if (j.find("sorafRetrieval") != j.end()) {
    j.at("sorafRetrieval").get_to(o.m_SorafRetrieval);
    o.m_SorafRetrievalIsSet = true;
  }
  if (j.find("sorUpdateIndicatorList") != j.end()) {
    j.at("sorUpdateIndicatorList").get_to(o.m_SorUpdateIndicatorList);
    o.m_SorUpdateIndicatorListIsSet = true;
  }
  if (j.find("upuInfo") != j.end()) {
    j.at("upuInfo").get_to(o.m_UpuInfo);
    o.m_UpuInfoIsSet = true;
  }
  if (j.find("micoAllowed") != j.end()) {
    j.at("micoAllowed").get_to(o.m_MicoAllowed);
    o.m_MicoAllowedIsSet = true;
  }
  if (j.find("sharedAmDataIds") != j.end()) {
    j.at("sharedAmDataIds").get_to(o.m_SharedAmDataIds);
    o.m_SharedAmDataIdsIsSet = true;
  }
  if (j.find("odbPacketServices") != j.end()) {
    j.at("odbPacketServices").get_to(o.m_OdbPacketServices);
    o.m_OdbPacketServicesIsSet = true;
  }
  if (j.find("subscribedDnnList") != j.end()) {

  }
  if (j.find("serviceGapTime") != j.end()) {
    j.at("serviceGapTime").get_to(o.m_ServiceGapTime);
    o.m_ServiceGapTimeIsSet = true;
  }
  if (j.find("mdtUserConsent") != j.end()) {
    j.at("mdtUserConsent").get_to(o.m_MdtUserConsent);
    o.m_MdtUserConsentIsSet = true;
  }
  if (j.find("mdtConfiguration") != j.end()) {
    j.at("mdtConfiguration").get_to(o.m_MdtConfiguration);
    o.m_MdtConfigurationIsSet = true;
  }
  if (j.find("traceData") != j.end()) {
    j.at("traceData").get_to(o.m_TraceData);
    o.m_TraceDataIsSet = true;
  }
  if (j.find("cagData") != j.end()) {
    j.at("cagData").get_to(o.m_CagData);
    o.m_CagDataIsSet = true;
  }
  if (j.find("stnSr") != j.end()) {
    j.at("stnSr").get_to(o.m_StnSr);
    o.m_StnSrIsSet = true;
  }
  if (j.find("cMsisdn") != j.end()) {
    j.at("cMsisdn").get_to(o.m_CMsisdn);
    o.m_CMsisdnIsSet = true;
  }
  if (j.find("nbIoTUePriority") != j.end()) {
    j.at("nbIoTUePriority").get_to(o.m_NbIoTUePriority);
    o.m_NbIoTUePriorityIsSet = true;
  }
  if (j.find("nssaiInclusionAllowed") != j.end()) {
    j.at("nssaiInclusionAllowed").get_to(o.m_NssaiInclusionAllowed);
    o.m_NssaiInclusionAllowedIsSet = true;
  }
  if (j.find("rgWirelineCharacteristics") != j.end()) {
    j.at("rgWirelineCharacteristics").get_to(o.m_RgWirelineCharacteristics);
    o.m_RgWirelineCharacteristicsIsSet = true;
  }
  if (j.find("ecRestrictionDataWb") != j.end()) {
    j.at("ecRestrictionDataWb").get_to(o.m_EcRestrictionDataWb);
    o.m_EcRestrictionDataWbIsSet = true;
  }
  if (j.find("ecRestrictionDataNb") != j.end()) {
    j.at("ecRestrictionDataNb").get_to(o.m_EcRestrictionDataNb);
    o.m_EcRestrictionDataNbIsSet = true;
  }
  if (j.find("expectedUeBehaviourList") != j.end()) {
    j.at("expectedUeBehaviourList").get_to(o.m_ExpectedUeBehaviourList);
    o.m_ExpectedUeBehaviourListIsSet = true;
  }
  if (j.find("primaryRatRestrictions") != j.end()) {
    j.at("primaryRatRestrictions").get_to(o.m_PrimaryRatRestrictions);
    o.m_PrimaryRatRestrictionsIsSet = true;
  }
  if (j.find("secondaryRatRestrictions") != j.end()) {
    j.at("secondaryRatRestrictions").get_to(o.m_SecondaryRatRestrictions);
    o.m_SecondaryRatRestrictionsIsSet = true;
  }
  if (j.find("edrxParametersList") != j.end()) {
    j.at("edrxParametersList").get_to(o.m_EdrxParametersList);
    o.m_EdrxParametersListIsSet = true;
  }
  if (j.find("ptwParametersList") != j.end()) {
    j.at("ptwParametersList").get_to(o.m_PtwParametersList);
    o.m_PtwParametersListIsSet = true;
  }
  if (j.find("iabOperationAllowed") != j.end()) {
    j.at("iabOperationAllowed").get_to(o.m_IabOperationAllowed);
    o.m_IabOperationAllowedIsSet = true;
  }
  if (j.find("wirelineForbiddenAreas") != j.end()) {
    j.at("wirelineForbiddenAreas").get_to(o.m_WirelineForbiddenAreas);
    o.m_WirelineForbiddenAreasIsSet = true;
  }
  if (j.find("wirelineServiceAreaRestriction") != j.end()) {
    j.at("wirelineServiceAreaRestriction")
        .get_to(o.m_WirelineServiceAreaRestriction);
    o.m_WirelineServiceAreaRestrictionIsSet = true;
  }
}

std::string AccessAndMobilitySubscriptionData::getSupportedFeatures() const {
  return m_SupportedFeatures;
}
void AccessAndMobilitySubscriptionData::setSupportedFeatures(
    std::string const &value) {
  m_SupportedFeatures = value;
  m_SupportedFeaturesIsSet = true;
}
bool AccessAndMobilitySubscriptionData::supportedFeaturesIsSet() const {
  return m_SupportedFeaturesIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSupportedFeatures() {
  m_SupportedFeaturesIsSet = false;
}
std::vector<std::string> &AccessAndMobilitySubscriptionData::getGpsis() {
  return m_Gpsis;
}
void AccessAndMobilitySubscriptionData::setGpsis(
    std::vector<std::string> const &value) {
  m_Gpsis = value;
  m_GpsisIsSet = true;
}
bool AccessAndMobilitySubscriptionData::gpsisIsSet() const {
  return m_GpsisIsSet;
}
void AccessAndMobilitySubscriptionData::unsetGpsis() { m_GpsisIsSet = false; }
std::vector<std::string> &
AccessAndMobilitySubscriptionData::getInternalGroupIds() {
  return m_InternalGroupIds;
}
void AccessAndMobilitySubscriptionData::setInternalGroupIds(
    std::vector<std::string> const &value) {
  m_InternalGroupIds = value;
  m_InternalGroupIdsIsSet = true;
}
bool AccessAndMobilitySubscriptionData::internalGroupIdsIsSet() const {
  return m_InternalGroupIdsIsSet;
}
void AccessAndMobilitySubscriptionData::unsetInternalGroupIds() {
  m_InternalGroupIdsIsSet = false;
}
std::map<std::string, std::string> &
AccessAndMobilitySubscriptionData::getSharedVnGroupDataIds() {
  return m_SharedVnGroupDataIds;
}
void AccessAndMobilitySubscriptionData::setSharedVnGroupDataIds(
    std::map<std::string, std::string> const &value) {
  m_SharedVnGroupDataIds = value;
  m_SharedVnGroupDataIdsIsSet = true;
}
bool AccessAndMobilitySubscriptionData::sharedVnGroupDataIdsIsSet() const {
  return m_SharedVnGroupDataIdsIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSharedVnGroupDataIds() {
  m_SharedVnGroupDataIdsIsSet = false;
}
AmbrRm AccessAndMobilitySubscriptionData::getSubscribedUeAmbr() const {
  return m_SubscribedUeAmbr;
}
void AccessAndMobilitySubscriptionData::setSubscribedUeAmbr(
    AmbrRm const &value) {
  m_SubscribedUeAmbr = value;
  m_SubscribedUeAmbrIsSet = true;
}
bool AccessAndMobilitySubscriptionData::subscribedUeAmbrIsSet() const {
  return m_SubscribedUeAmbrIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSubscribedUeAmbr() {
  m_SubscribedUeAmbrIsSet = false;
}
Nssai AccessAndMobilitySubscriptionData::getNssai() const { return m_Nssai; }
void AccessAndMobilitySubscriptionData::setNssai(Nssai const &value) {
  m_Nssai = value;
  m_NssaiIsSet = true;
}
bool AccessAndMobilitySubscriptionData::nssaiIsSet() const {
  return m_NssaiIsSet;
}
void AccessAndMobilitySubscriptionData::unsetNssai() { m_NssaiIsSet = false; }
std::vector<RatType> &AccessAndMobilitySubscriptionData::getRatRestrictions() {
  return m_RatRestrictions;
}
void AccessAndMobilitySubscriptionData::setRatRestrictions(
    std::vector<RatType> const &value) {
  m_RatRestrictions = value;
  m_RatRestrictionsIsSet = true;
}
bool AccessAndMobilitySubscriptionData::ratRestrictionsIsSet() const {
  return m_RatRestrictionsIsSet;
}
void AccessAndMobilitySubscriptionData::unsetRatRestrictions() {
  m_RatRestrictionsIsSet = false;
}
std::vector<Area> &AccessAndMobilitySubscriptionData::getForbiddenAreas() {
  return m_ForbiddenAreas;
}
void AccessAndMobilitySubscriptionData::setForbiddenAreas(
    std::vector<Area> const &value) {
  m_ForbiddenAreas = value;
  m_ForbiddenAreasIsSet = true;
}
bool AccessAndMobilitySubscriptionData::forbiddenAreasIsSet() const {
  return m_ForbiddenAreasIsSet;
}
void AccessAndMobilitySubscriptionData::unsetForbiddenAreas() {
  m_ForbiddenAreasIsSet = false;
}
ServiceAreaRestriction
AccessAndMobilitySubscriptionData::getServiceAreaRestriction() const {
  return m_ServiceAreaRestriction;
}
void AccessAndMobilitySubscriptionData::setServiceAreaRestriction(
    ServiceAreaRestriction const &value) {
  m_ServiceAreaRestriction = value;
  m_ServiceAreaRestrictionIsSet = true;
}
bool AccessAndMobilitySubscriptionData::serviceAreaRestrictionIsSet() const {
  return m_ServiceAreaRestrictionIsSet;
}
void AccessAndMobilitySubscriptionData::unsetServiceAreaRestriction() {
  m_ServiceAreaRestrictionIsSet = false;
}
std::vector<CoreNetworkType> &
AccessAndMobilitySubscriptionData::getCoreNetworkTypeRestrictions() {
  return m_CoreNetworkTypeRestrictions;
}
void AccessAndMobilitySubscriptionData::setCoreNetworkTypeRestrictions(
    std::vector<CoreNetworkType> const &value) {
  m_CoreNetworkTypeRestrictions = value;
  m_CoreNetworkTypeRestrictionsIsSet = true;
}
bool AccessAndMobilitySubscriptionData::coreNetworkTypeRestrictionsIsSet()
    const {
  return m_CoreNetworkTypeRestrictionsIsSet;
}
void AccessAndMobilitySubscriptionData::unsetCoreNetworkTypeRestrictions() {
  m_CoreNetworkTypeRestrictionsIsSet = false;
}
int32_t AccessAndMobilitySubscriptionData::getRfspIndex() const {
  return m_RfspIndex;
}
void AccessAndMobilitySubscriptionData::setRfspIndex(int32_t const value) {
  m_RfspIndex = value;
  m_RfspIndexIsSet = true;
}
bool AccessAndMobilitySubscriptionData::rfspIndexIsSet() const {
  return m_RfspIndexIsSet;
}
void AccessAndMobilitySubscriptionData::unsetRfspIndex() {
  m_RfspIndexIsSet = false;
}
int32_t AccessAndMobilitySubscriptionData::getSubsRegTimer() const {
  return m_SubsRegTimer;
}
void AccessAndMobilitySubscriptionData::setSubsRegTimer(int32_t const value) {
  m_SubsRegTimer = value;
  m_SubsRegTimerIsSet = true;
}
bool AccessAndMobilitySubscriptionData::subsRegTimerIsSet() const {
  return m_SubsRegTimerIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSubsRegTimer() {
  m_SubsRegTimerIsSet = false;
}
int32_t AccessAndMobilitySubscriptionData::getUeUsageType() const {
  return m_UeUsageType;
}
void AccessAndMobilitySubscriptionData::setUeUsageType(int32_t const value) {
  m_UeUsageType = value;
  m_UeUsageTypeIsSet = true;
}
bool AccessAndMobilitySubscriptionData::ueUsageTypeIsSet() const {
  return m_UeUsageTypeIsSet;
}
void AccessAndMobilitySubscriptionData::unsetUeUsageType() {
  m_UeUsageTypeIsSet = false;
}
bool AccessAndMobilitySubscriptionData::isMpsPriority() const {
  return m_MpsPriority;
}
void AccessAndMobilitySubscriptionData::setMpsPriority(bool const value) {
  m_MpsPriority = value;
  m_MpsPriorityIsSet = true;
}
bool AccessAndMobilitySubscriptionData::mpsPriorityIsSet() const {
  return m_MpsPriorityIsSet;
}
void AccessAndMobilitySubscriptionData::unsetMpsPriority() {
  m_MpsPriorityIsSet = false;
}
bool AccessAndMobilitySubscriptionData::isMcsPriority() const {
  return m_McsPriority;
}
void AccessAndMobilitySubscriptionData::setMcsPriority(bool const value) {
  m_McsPriority = value;
  m_McsPriorityIsSet = true;
}
bool AccessAndMobilitySubscriptionData::mcsPriorityIsSet() const {
  return m_McsPriorityIsSet;
}
void AccessAndMobilitySubscriptionData::unsetMcsPriority() {
  m_McsPriorityIsSet = false;
}
int32_t AccessAndMobilitySubscriptionData::getActiveTime() const {
  return m_ActiveTime;
}
void AccessAndMobilitySubscriptionData::setActiveTime(int32_t const value) {
  m_ActiveTime = value;
  m_ActiveTimeIsSet = true;
}
bool AccessAndMobilitySubscriptionData::activeTimeIsSet() const {
  return m_ActiveTimeIsSet;
}
void AccessAndMobilitySubscriptionData::unsetActiveTime() {
  m_ActiveTimeIsSet = false;
}
SorInfo AccessAndMobilitySubscriptionData::getSorInfo() const {
  return m_SorInfo;
}
void AccessAndMobilitySubscriptionData::setSorInfo(SorInfo const &value) {
  m_SorInfo = value;
  m_SorInfoIsSet = true;
}
bool AccessAndMobilitySubscriptionData::sorInfoIsSet() const {
  return m_SorInfoIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSorInfo() {
  m_SorInfoIsSet = false;
}
bool AccessAndMobilitySubscriptionData::isSorInfoExpectInd() const {
  return m_SorInfoExpectInd;
}
void AccessAndMobilitySubscriptionData::setSorInfoExpectInd(bool const value) {
  m_SorInfoExpectInd = value;
  m_SorInfoExpectIndIsSet = true;
}
bool AccessAndMobilitySubscriptionData::sorInfoExpectIndIsSet() const {
  return m_SorInfoExpectIndIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSorInfoExpectInd() {
  m_SorInfoExpectIndIsSet = false;
}
bool AccessAndMobilitySubscriptionData::isSorafRetrieval() const {
  return m_SorafRetrieval;
}
void AccessAndMobilitySubscriptionData::setSorafRetrieval(bool const value) {
  m_SorafRetrieval = value;
  m_SorafRetrievalIsSet = true;
}
bool AccessAndMobilitySubscriptionData::sorafRetrievalIsSet() const {
  return m_SorafRetrievalIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSorafRetrieval() {
  m_SorafRetrievalIsSet = false;
}
std::vector<SorUpdateIndicator> &
AccessAndMobilitySubscriptionData::getSorUpdateIndicatorList() {
  return m_SorUpdateIndicatorList;
}
void AccessAndMobilitySubscriptionData::setSorUpdateIndicatorList(
    std::vector<SorUpdateIndicator> const &value) {
  m_SorUpdateIndicatorList = value;
  m_SorUpdateIndicatorListIsSet = true;
}
bool AccessAndMobilitySubscriptionData::sorUpdateIndicatorListIsSet() const {
  return m_SorUpdateIndicatorListIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSorUpdateIndicatorList() {
  m_SorUpdateIndicatorListIsSet = false;
}
UpuInfo AccessAndMobilitySubscriptionData::getUpuInfo() const {
  return m_UpuInfo;
}
void AccessAndMobilitySubscriptionData::setUpuInfo(UpuInfo const &value) {
  m_UpuInfo = value;
  m_UpuInfoIsSet = true;
}
bool AccessAndMobilitySubscriptionData::upuInfoIsSet() const {
  return m_UpuInfoIsSet;
}
void AccessAndMobilitySubscriptionData::unsetUpuInfo() {
  m_UpuInfoIsSet = false;
}
bool AccessAndMobilitySubscriptionData::isMicoAllowed() const {
  return m_MicoAllowed;
}
void AccessAndMobilitySubscriptionData::setMicoAllowed(bool const value) {
  m_MicoAllowed = value;
  m_MicoAllowedIsSet = true;
}
bool AccessAndMobilitySubscriptionData::micoAllowedIsSet() const {
  return m_MicoAllowedIsSet;
}
void AccessAndMobilitySubscriptionData::unsetMicoAllowed() {
  m_MicoAllowedIsSet = false;
}
std::vector<std::string> &
AccessAndMobilitySubscriptionData::getSharedAmDataIds() {
  return m_SharedAmDataIds;
}
void AccessAndMobilitySubscriptionData::setSharedAmDataIds(
    std::vector<std::string> const &value) {
  m_SharedAmDataIds = value;
  m_SharedAmDataIdsIsSet = true;
}
bool AccessAndMobilitySubscriptionData::sharedAmDataIdsIsSet() const {
  return m_SharedAmDataIdsIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSharedAmDataIds() {
  m_SharedAmDataIdsIsSet = false;
}
OdbPacketServices
AccessAndMobilitySubscriptionData::getOdbPacketServices() const {
  return m_OdbPacketServices;
}
void AccessAndMobilitySubscriptionData::setOdbPacketServices(
    OdbPacketServices const &value) {
  m_OdbPacketServices = value;
  m_OdbPacketServicesIsSet = true;
}
bool AccessAndMobilitySubscriptionData::odbPacketServicesIsSet() const {
  return m_OdbPacketServicesIsSet;
}
void AccessAndMobilitySubscriptionData::unsetOdbPacketServices() {
  m_OdbPacketServicesIsSet = false;
}

bool AccessAndMobilitySubscriptionData::subscribedDnnListIsSet() const {
  return m_SubscribedDnnListIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSubscribedDnnList() {
  m_SubscribedDnnListIsSet = false;
}
int32_t AccessAndMobilitySubscriptionData::getServiceGapTime() const {
  return m_ServiceGapTime;
}
void AccessAndMobilitySubscriptionData::setServiceGapTime(int32_t const value) {
  m_ServiceGapTime = value;
  m_ServiceGapTimeIsSet = true;
}
bool AccessAndMobilitySubscriptionData::serviceGapTimeIsSet() const {
  return m_ServiceGapTimeIsSet;
}
void AccessAndMobilitySubscriptionData::unsetServiceGapTime() {
  m_ServiceGapTimeIsSet = false;
}
MdtUserConsent AccessAndMobilitySubscriptionData::getMdtUserConsent() const {
  return m_MdtUserConsent;
}
void AccessAndMobilitySubscriptionData::setMdtUserConsent(
    MdtUserConsent const &value) {
  m_MdtUserConsent = value;
  m_MdtUserConsentIsSet = true;
}
bool AccessAndMobilitySubscriptionData::mdtUserConsentIsSet() const {
  return m_MdtUserConsentIsSet;
}
void AccessAndMobilitySubscriptionData::unsetMdtUserConsent() {
  m_MdtUserConsentIsSet = false;
}
MdtConfiguration
AccessAndMobilitySubscriptionData::getMdtConfiguration() const {
  return m_MdtConfiguration;
}
void AccessAndMobilitySubscriptionData::setMdtConfiguration(
    MdtConfiguration const &value) {
  m_MdtConfiguration = value;
  m_MdtConfigurationIsSet = true;
}
bool AccessAndMobilitySubscriptionData::mdtConfigurationIsSet() const {
  return m_MdtConfigurationIsSet;
}
void AccessAndMobilitySubscriptionData::unsetMdtConfiguration() {
  m_MdtConfigurationIsSet = false;
}
TraceData AccessAndMobilitySubscriptionData::getTraceData() const {
  return m_TraceData;
}
void AccessAndMobilitySubscriptionData::setTraceData(TraceData const &value) {
  m_TraceData = value;
  m_TraceDataIsSet = true;
}
bool AccessAndMobilitySubscriptionData::traceDataIsSet() const {
  return m_TraceDataIsSet;
}
void AccessAndMobilitySubscriptionData::unsetTraceData() {
  m_TraceDataIsSet = false;
}
CagData AccessAndMobilitySubscriptionData::getCagData() const {
  return m_CagData;
}
void AccessAndMobilitySubscriptionData::setCagData(CagData const &value) {
  m_CagData = value;
  m_CagDataIsSet = true;
}
bool AccessAndMobilitySubscriptionData::cagDataIsSet() const {
  return m_CagDataIsSet;
}
void AccessAndMobilitySubscriptionData::unsetCagData() {
  m_CagDataIsSet = false;
}
std::string AccessAndMobilitySubscriptionData::getStnSr() const {
  return m_StnSr;
}
void AccessAndMobilitySubscriptionData::setStnSr(std::string const &value) {
  m_StnSr = value;
  m_StnSrIsSet = true;
}
bool AccessAndMobilitySubscriptionData::stnSrIsSet() const {
  return m_StnSrIsSet;
}
void AccessAndMobilitySubscriptionData::unsetStnSr() { m_StnSrIsSet = false; }
std::string AccessAndMobilitySubscriptionData::getCMsisdn() const {
  return m_CMsisdn;
}
void AccessAndMobilitySubscriptionData::setCMsisdn(std::string const &value) {
  m_CMsisdn = value;
  m_CMsisdnIsSet = true;
}
bool AccessAndMobilitySubscriptionData::cMsisdnIsSet() const {
  return m_CMsisdnIsSet;
}
void AccessAndMobilitySubscriptionData::unsetCMsisdn() {
  m_CMsisdnIsSet = false;
}
int32_t AccessAndMobilitySubscriptionData::getNbIoTUePriority() const {
  return m_NbIoTUePriority;
}
void AccessAndMobilitySubscriptionData::setNbIoTUePriority(
    int32_t const value) {
  m_NbIoTUePriority = value;
  m_NbIoTUePriorityIsSet = true;
}
bool AccessAndMobilitySubscriptionData::nbIoTUePriorityIsSet() const {
  return m_NbIoTUePriorityIsSet;
}
void AccessAndMobilitySubscriptionData::unsetNbIoTUePriority() {
  m_NbIoTUePriorityIsSet = false;
}
bool AccessAndMobilitySubscriptionData::isNssaiInclusionAllowed() const {
  return m_NssaiInclusionAllowed;
}
void AccessAndMobilitySubscriptionData::setNssaiInclusionAllowed(
    bool const value) {
  m_NssaiInclusionAllowed = value;
  m_NssaiInclusionAllowedIsSet = true;
}
bool AccessAndMobilitySubscriptionData::nssaiInclusionAllowedIsSet() const {
  return m_NssaiInclusionAllowedIsSet;
}
void AccessAndMobilitySubscriptionData::unsetNssaiInclusionAllowed() {
  m_NssaiInclusionAllowedIsSet = false;
}
std::string
AccessAndMobilitySubscriptionData::getRgWirelineCharacteristics() const {
  return m_RgWirelineCharacteristics;
}
void AccessAndMobilitySubscriptionData::setRgWirelineCharacteristics(
    std::string const &value) {
  m_RgWirelineCharacteristics = value;
  m_RgWirelineCharacteristicsIsSet = true;
}
bool AccessAndMobilitySubscriptionData::rgWirelineCharacteristicsIsSet() const {
  return m_RgWirelineCharacteristicsIsSet;
}
void AccessAndMobilitySubscriptionData::unsetRgWirelineCharacteristics() {
  m_RgWirelineCharacteristicsIsSet = false;
}
EcRestrictionDataWb
AccessAndMobilitySubscriptionData::getEcRestrictionDataWb() const {
  return m_EcRestrictionDataWb;
}
void AccessAndMobilitySubscriptionData::setEcRestrictionDataWb(
    EcRestrictionDataWb const &value) {
  m_EcRestrictionDataWb = value;
  m_EcRestrictionDataWbIsSet = true;
}
bool AccessAndMobilitySubscriptionData::ecRestrictionDataWbIsSet() const {
  return m_EcRestrictionDataWbIsSet;
}
void AccessAndMobilitySubscriptionData::unsetEcRestrictionDataWb() {
  m_EcRestrictionDataWbIsSet = false;
}
bool AccessAndMobilitySubscriptionData::isEcRestrictionDataNb() const {
  return m_EcRestrictionDataNb;
}
void AccessAndMobilitySubscriptionData::setEcRestrictionDataNb(
    bool const value) {
  m_EcRestrictionDataNb = value;
  m_EcRestrictionDataNbIsSet = true;
}
bool AccessAndMobilitySubscriptionData::ecRestrictionDataNbIsSet() const {
  return m_EcRestrictionDataNbIsSet;
}
void AccessAndMobilitySubscriptionData::unsetEcRestrictionDataNb() {
  m_EcRestrictionDataNbIsSet = false;
}
ExpectedUeBehaviourData
AccessAndMobilitySubscriptionData::getExpectedUeBehaviourList() const {
  return m_ExpectedUeBehaviourList;
}
void AccessAndMobilitySubscriptionData::setExpectedUeBehaviourList(
    ExpectedUeBehaviourData const &value) {
  m_ExpectedUeBehaviourList = value;
  m_ExpectedUeBehaviourListIsSet = true;
}
bool AccessAndMobilitySubscriptionData::expectedUeBehaviourListIsSet() const {
  return m_ExpectedUeBehaviourListIsSet;
}
void AccessAndMobilitySubscriptionData::unsetExpectedUeBehaviourList() {
  m_ExpectedUeBehaviourListIsSet = false;
}
std::vector<RatType> &
AccessAndMobilitySubscriptionData::getPrimaryRatRestrictions() {
  return m_PrimaryRatRestrictions;
}
void AccessAndMobilitySubscriptionData::setPrimaryRatRestrictions(
    std::vector<RatType> const &value) {
  m_PrimaryRatRestrictions = value;
  m_PrimaryRatRestrictionsIsSet = true;
}
bool AccessAndMobilitySubscriptionData::primaryRatRestrictionsIsSet() const {
  return m_PrimaryRatRestrictionsIsSet;
}
void AccessAndMobilitySubscriptionData::unsetPrimaryRatRestrictions() {
  m_PrimaryRatRestrictionsIsSet = false;
}
std::vector<RatType> &
AccessAndMobilitySubscriptionData::getSecondaryRatRestrictions() {
  return m_SecondaryRatRestrictions;
}
void AccessAndMobilitySubscriptionData::setSecondaryRatRestrictions(
    std::vector<RatType> const &value) {
  m_SecondaryRatRestrictions = value;
  m_SecondaryRatRestrictionsIsSet = true;
}
bool AccessAndMobilitySubscriptionData::secondaryRatRestrictionsIsSet() const {
  return m_SecondaryRatRestrictionsIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSecondaryRatRestrictions() {
  m_SecondaryRatRestrictionsIsSet = false;
}
std::vector<EdrxParameters> &
AccessAndMobilitySubscriptionData::getEdrxParametersList() {
  return m_EdrxParametersList;
}
void AccessAndMobilitySubscriptionData::setEdrxParametersList(
    std::vector<EdrxParameters> const &value) {
  m_EdrxParametersList = value;
  m_EdrxParametersListIsSet = true;
}
bool AccessAndMobilitySubscriptionData::edrxParametersListIsSet() const {
  return m_EdrxParametersListIsSet;
}
void AccessAndMobilitySubscriptionData::unsetEdrxParametersList() {
  m_EdrxParametersListIsSet = false;
}
std::vector<PtwParameters> &
AccessAndMobilitySubscriptionData::getPtwParametersList() {
  return m_PtwParametersList;
}
void AccessAndMobilitySubscriptionData::setPtwParametersList(
    std::vector<PtwParameters> const &value) {
  m_PtwParametersList = value;
  m_PtwParametersListIsSet = true;
}
bool AccessAndMobilitySubscriptionData::ptwParametersListIsSet() const {
  return m_PtwParametersListIsSet;
}
void AccessAndMobilitySubscriptionData::unsetPtwParametersList() {
  m_PtwParametersListIsSet = false;
}
bool AccessAndMobilitySubscriptionData::isIabOperationAllowed() const {
  return m_IabOperationAllowed;
}
void AccessAndMobilitySubscriptionData::setIabOperationAllowed(
    bool const value) {
  m_IabOperationAllowed = value;
  m_IabOperationAllowedIsSet = true;
}
bool AccessAndMobilitySubscriptionData::iabOperationAllowedIsSet() const {
  return m_IabOperationAllowedIsSet;
}
void AccessAndMobilitySubscriptionData::unsetIabOperationAllowed() {
  m_IabOperationAllowedIsSet = false;
}
std::vector<WirelineArea> &
AccessAndMobilitySubscriptionData::getWirelineForbiddenAreas() {
  return m_WirelineForbiddenAreas;
}
void AccessAndMobilitySubscriptionData::setWirelineForbiddenAreas(
    std::vector<WirelineArea> const &value) {
  m_WirelineForbiddenAreas = value;
  m_WirelineForbiddenAreasIsSet = true;
}
bool AccessAndMobilitySubscriptionData::wirelineForbiddenAreasIsSet() const {
  return m_WirelineForbiddenAreasIsSet;
}
void AccessAndMobilitySubscriptionData::unsetWirelineForbiddenAreas() {
  m_WirelineForbiddenAreasIsSet = false;
}
WirelineServiceAreaRestriction
AccessAndMobilitySubscriptionData::getWirelineServiceAreaRestriction() const {
  return m_WirelineServiceAreaRestriction;
}
void AccessAndMobilitySubscriptionData::setWirelineServiceAreaRestriction(
    WirelineServiceAreaRestriction const &value) {
  m_WirelineServiceAreaRestriction = value;
  m_WirelineServiceAreaRestrictionIsSet = true;
}
bool AccessAndMobilitySubscriptionData::wirelineServiceAreaRestrictionIsSet()
    const {
  return m_WirelineServiceAreaRestrictionIsSet;
}
void AccessAndMobilitySubscriptionData::unsetWirelineServiceAreaRestriction() {
  m_WirelineServiceAreaRestrictionIsSet = false;
}

}
/*
 * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The OpenAirInterface Software Alliance licenses this file to You under
 * the OAI Public License, Version 1.1  (the "License"); you may not use this
 * file except in compliance with the License. You may obtain a copy of the
 * License at
 *
 *      http://www.openairinterface.org/?page_id=698
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *-------------------------------------------------------------------------------
 * For more information about the OpenAirInterface (OAI) Software Alliance:
 *      contact@openairinterface.org
 */
/**
 * Nudr_DataRepository API OpenAPI file
 * Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
 * ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
 *
 * The version of the OpenAPI document: 2.1.2
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator
 * (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
 * the class manually.
 */

#include "AccessAndMobilitySubscriptionData.h"

namespace oai::udr::model {

AccessAndMobilitySubscriptionData::AccessAndMobilitySubscriptionData() {
  m_SupportedFeatures = "";
  m_SupportedFeaturesIsSet = false;
  m_GpsisIsSet = false;
  m_InternalGroupIdsIsSet = false;
  m_SharedVnGroupDataIdsIsSet = false;
  m_SubscribedUeAmbrIsSet = false;
  m_NssaiIsSet = false;
  m_RatRestrictionsIsSet = false;
  m_ForbiddenAreasIsSet = false;
  m_ServiceAreaRestrictionIsSet = false;
  m_CoreNetworkTypeRestrictionsIsSet = false;
  m_RfspIndex = 0;
  m_RfspIndexIsSet = false;
  m_SubsRegTimer = 0;
  m_SubsRegTimerIsSet = false;
  m_UeUsageType = 0;
  m_UeUsageTypeIsSet = false;
  m_MpsPriority = false;
  m_MpsPriorityIsSet = false;
  m_McsPriority = false;
  m_McsPriorityIsSet = false;
  m_ActiveTime = 0;
  m_ActiveTimeIsSet = false;
  m_SorInfoIsSet = false;
  m_SorInfoExpectInd = false;
  m_SorInfoExpectIndIsSet = false;
  m_SorafRetrieval = false;
  m_SorafRetrievalIsSet = false;
  m_SorUpdateIndicatorListIsSet = false;
  m_UpuInfoIsSet = false;
  m_MicoAllowed = false;
  m_MicoAllowedIsSet = false;
  m_SharedAmDataIdsIsSet = false;
  m_OdbPacketServicesIsSet = false;
  m_SubscribedDnnListIsSet = false;
  m_ServiceGapTime = 0;
  m_ServiceGapTimeIsSet = false;
  m_MdtUserConsentIsSet = false;
  m_MdtConfigurationIsSet = false;
  m_TraceDataIsSet = false;
  m_CagDataIsSet = false;
  m_StnSr = "";
  m_StnSrIsSet = false;
  m_CMsisdn = "";
  m_CMsisdnIsSet = false;
  m_NbIoTUePriority = 0;
  m_NbIoTUePriorityIsSet = false;
  m_NssaiInclusionAllowed = false;
  m_NssaiInclusionAllowedIsSet = false;
  m_RgWirelineCharacteristicsIsSet = false;
  m_EcRestrictionDataWbIsSet = false;
  m_EcRestrictionDataNb = false;
  m_EcRestrictionDataNbIsSet = false;
  m_ExpectedUeBehaviourListIsSet = false;
  m_PrimaryRatRestrictionsIsSet = false;
  m_SecondaryRatRestrictionsIsSet = false;
  m_EdrxParametersListIsSet = false;
  m_PtwParametersListIsSet = false;
  m_IabOperationAllowed = false;
  m_IabOperationAllowedIsSet = false;
  m_WirelineForbiddenAreasIsSet = false;
  m_WirelineServiceAreaRestrictionIsSet = false;
}

AccessAndMobilitySubscriptionData::~AccessAndMobilitySubscriptionData() {}

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

void to_json(nlohmann::json &j, const AccessAndMobilitySubscriptionData &o) {
  j = nlohmann::json();
  if (o.supportedFeaturesIsSet())
    j["supportedFeatures"] = o.m_SupportedFeatures;
  if (o.gpsisIsSet() || !o.m_Gpsis.empty())
    j["gpsis"] = o.m_Gpsis;
  if (o.internalGroupIdsIsSet() || !o.m_InternalGroupIds.empty())
    j["internalGroupIds"] = o.m_InternalGroupIds;
  if (o.sharedVnGroupDataIdsIsSet() || !o.m_SharedVnGroupDataIds.empty())
    j["sharedVnGroupDataIds"] = o.m_SharedVnGroupDataIds;
  if (o.subscribedUeAmbrIsSet())
    j["subscribedUeAmbr"] = o.m_SubscribedUeAmbr;
  if (o.nssaiIsSet())
    j["nssai"] = o.m_Nssai;
  if (o.ratRestrictionsIsSet() || !o.m_RatRestrictions.empty())
    j["ratRestrictions"] = o.m_RatRestrictions;
  if (o.forbiddenAreasIsSet() || !o.m_ForbiddenAreas.empty())
    j["forbiddenAreas"] = o.m_ForbiddenAreas;
  if (o.serviceAreaRestrictionIsSet())
    j["serviceAreaRestriction"] = o.m_ServiceAreaRestriction;
  if (o.coreNetworkTypeRestrictionsIsSet() ||
      !o.m_CoreNetworkTypeRestrictions.empty())
    j["coreNetworkTypeRestrictions"] = o.m_CoreNetworkTypeRestrictions;
  if (o.rfspIndexIsSet())
    j["rfspIndex"] = o.m_RfspIndex;
  if (o.subsRegTimerIsSet())
    j["subsRegTimer"] = o.m_SubsRegTimer;
  if (o.ueUsageTypeIsSet())
    j["ueUsageType"] = o.m_UeUsageType;
  if (o.mpsPriorityIsSet())
    j["mpsPriority"] = o.m_MpsPriority;
  if (o.mcsPriorityIsSet())
    j["mcsPriority"] = o.m_McsPriority;
  if (o.activeTimeIsSet())
    j["activeTime"] = o.m_ActiveTime;
  if (o.sorInfoIsSet())
    j["sorInfo"] = o.m_SorInfo;
  if (o.sorInfoExpectIndIsSet())
    j["sorInfoExpectInd"] = o.m_SorInfoExpectInd;
  if (o.sorafRetrievalIsSet())
    j["sorafRetrieval"] = o.m_SorafRetrieval;
  if (o.sorUpdateIndicatorListIsSet() || !o.m_SorUpdateIndicatorList.empty())
    j["sorUpdateIndicatorList"] = o.m_SorUpdateIndicatorList;
  if (o.upuInfoIsSet())
    j["upuInfo"] = o.m_UpuInfo;
  if (o.micoAllowedIsSet())
    j["micoAllowed"] = o.m_MicoAllowed;
  if (o.sharedAmDataIdsIsSet() || !o.m_SharedAmDataIds.empty())
    j["sharedAmDataIds"] = o.m_SharedAmDataIds;
  if (o.odbPacketServicesIsSet())
    j["odbPacketServices"] = o.m_OdbPacketServices;
  //    if(o.subscribedDnnListIsSet() || !o.m_SubscribedDnnList.empty())
  //        j["subscribedDnnList"] = o.m_SubscribedDnnList;
  if (o.serviceGapTimeIsSet())
    j["serviceGapTime"] = o.m_ServiceGapTime;
  if (o.mdtUserConsentIsSet())
    j["mdtUserConsent"] = o.m_MdtUserConsent;
  if (o.mdtConfigurationIsSet())
    j["mdtConfiguration"] = o.m_MdtConfiguration;
  if (o.traceDataIsSet())
    j["traceData"] = o.m_TraceData;
  if (o.cagDataIsSet())
    j["cagData"] = o.m_CagData;
  if (o.stnSrIsSet())
    j["stnSr"] = o.m_StnSr;
  if (o.cMsisdnIsSet())
    j["cMsisdn"] = o.m_CMsisdn;
  if (o.nbIoTUePriorityIsSet())
    j["nbIoTUePriority"] = o.m_NbIoTUePriority;
  if (o.nssaiInclusionAllowedIsSet())
    j["nssaiInclusionAllowed"] = o.m_NssaiInclusionAllowed;
  if (o.rgWirelineCharacteristicsIsSet())
    j["rgWirelineCharacteristics"] = o.m_RgWirelineCharacteristics;
  if (o.ecRestrictionDataWbIsSet())
    j["ecRestrictionDataWb"] = o.m_EcRestrictionDataWb;
  if (o.ecRestrictionDataNbIsSet())
    j["ecRestrictionDataNb"] = o.m_EcRestrictionDataNb;
  if (o.expectedUeBehaviourListIsSet())
    j["expectedUeBehaviourList"] = o.m_ExpectedUeBehaviourList;
  if (o.primaryRatRestrictionsIsSet() || !o.m_PrimaryRatRestrictions.empty())
    j["primaryRatRestrictions"] = o.m_PrimaryRatRestrictions;
  if (o.secondaryRatRestrictionsIsSet() ||
      !o.m_SecondaryRatRestrictions.empty())
    j["secondaryRatRestrictions"] = o.m_SecondaryRatRestrictions;
  if (o.edrxParametersListIsSet() || !o.m_EdrxParametersList.empty())
    j["edrxParametersList"] = o.m_EdrxParametersList;
  if (o.ptwParametersListIsSet() || !o.m_PtwParametersList.empty())
    j["ptwParametersList"] = o.m_PtwParametersList;
  if (o.iabOperationAllowedIsSet())
    j["iabOperationAllowed"] = o.m_IabOperationAllowed;
  if (o.wirelineForbiddenAreasIsSet() || !o.m_WirelineForbiddenAreas.empty())
    j["wirelineForbiddenAreas"] = o.m_WirelineForbiddenAreas;
  if (o.wirelineServiceAreaRestrictionIsSet())
    j["wirelineServiceAreaRestriction"] = o.m_WirelineServiceAreaRestriction;
}

void from_json(const nlohmann::json &j, AccessAndMobilitySubscriptionData &o) {
  if (j.find("supportedFeatures") != j.end()) {
    j.at("supportedFeatures").get_to(o.m_SupportedFeatures);
    o.m_SupportedFeaturesIsSet = true;
  }
  if (j.find("gpsis") != j.end()) {
    j.at("gpsis").get_to(o.m_Gpsis);
    o.m_GpsisIsSet = true;
  }
  if (j.find("internalGroupIds") != j.end()) {
    j.at("internalGroupIds").get_to(o.m_InternalGroupIds);
    o.m_InternalGroupIdsIsSet = true;
  }
  if (j.find("sharedVnGroupDataIds") != j.end()) {
    j.at("sharedVnGroupDataIds").get_to(o.m_SharedVnGroupDataIds);
    o.m_SharedVnGroupDataIdsIsSet = true;
  }
  if (j.find("subscribedUeAmbr") != j.end()) {
    j.at("subscribedUeAmbr").get_to(o.m_SubscribedUeAmbr);
    o.m_SubscribedUeAmbrIsSet = true;
  }
  if (j.find("nssai") != j.end()) {
    j.at("nssai").get_to(o.m_Nssai);
    o.m_NssaiIsSet = true;
  }
  if (j.find("ratRestrictions") != j.end()) {
    j.at("ratRestrictions").get_to(o.m_RatRestrictions);
    o.m_RatRestrictionsIsSet = true;
  }
  if (j.find("forbiddenAreas") != j.end()) {
    j.at("forbiddenAreas").get_to(o.m_ForbiddenAreas);
    o.m_ForbiddenAreasIsSet = true;
  }
  if (j.find("serviceAreaRestriction") != j.end()) {
    j.at("serviceAreaRestriction").get_to(o.m_ServiceAreaRestriction);
    o.m_ServiceAreaRestrictionIsSet = true;
  }
  if (j.find("coreNetworkTypeRestrictions") != j.end()) {
    j.at("coreNetworkTypeRestrictions").get_to(o.m_CoreNetworkTypeRestrictions);
    o.m_CoreNetworkTypeRestrictionsIsSet = true;
  }
  if (j.find("rfspIndex") != j.end()) {
    j.at("rfspIndex").get_to(o.m_RfspIndex);
    o.m_RfspIndexIsSet = true;
  }
  if (j.find("subsRegTimer") != j.end()) {
    j.at("subsRegTimer").get_to(o.m_SubsRegTimer);
    o.m_SubsRegTimerIsSet = true;
  }
  if (j.find("ueUsageType") != j.end()) {
    j.at("ueUsageType").get_to(o.m_UeUsageType);
    o.m_UeUsageTypeIsSet = true;
  }
  if (j.find("mpsPriority") != j.end()) {
    j.at("mpsPriority").get_to(o.m_MpsPriority);
    o.m_MpsPriorityIsSet = true;
  }
  if (j.find("mcsPriority") != j.end()) {
    j.at("mcsPriority").get_to(o.m_McsPriority);
    o.m_McsPriorityIsSet = true;
  }
  if (j.find("activeTime") != j.end()) {
    j.at("activeTime").get_to(o.m_ActiveTime);
    o.m_ActiveTimeIsSet = true;
  }
  if (j.find("sorInfo") != j.end()) {
    j.at("sorInfo").get_to(o.m_SorInfo);
    o.m_SorInfoIsSet = true;
  }
  if (j.find("sorInfoExpectInd") != j.end()) {
    j.at("sorInfoExpectInd").get_to(o.m_SorInfoExpectInd);
    o.m_SorInfoExpectIndIsSet = true;
  }
  if (j.find("sorafRetrieval") != j.end()) {
    j.at("sorafRetrieval").get_to(o.m_SorafRetrieval);
    o.m_SorafRetrievalIsSet = true;
  }
  if (j.find("sorUpdateIndicatorList") != j.end()) {
    j.at("sorUpdateIndicatorList").get_to(o.m_SorUpdateIndicatorList);
    o.m_SorUpdateIndicatorListIsSet = true;
  }
  if (j.find("upuInfo") != j.end()) {
    j.at("upuInfo").get_to(o.m_UpuInfo);
    o.m_UpuInfoIsSet = true;
  }
  if (j.find("micoAllowed") != j.end()) {
    j.at("micoAllowed").get_to(o.m_MicoAllowed);
    o.m_MicoAllowedIsSet = true;
  }
  if (j.find("sharedAmDataIds") != j.end()) {
    j.at("sharedAmDataIds").get_to(o.m_SharedAmDataIds);
    o.m_SharedAmDataIdsIsSet = true;
  }
  if (j.find("odbPacketServices") != j.end()) {
    j.at("odbPacketServices").get_to(o.m_OdbPacketServices);
    o.m_OdbPacketServicesIsSet = true;
  }
  if (j.find("subscribedDnnList") != j.end()) {
    //        j.at("subscribedDnnList").get_to(o.m_SubscribedDnnList);
    //        o.m_SubscribedDnnListIsSet = true;
  }
  if (j.find("serviceGapTime") != j.end()) {
    j.at("serviceGapTime").get_to(o.m_ServiceGapTime);
    o.m_ServiceGapTimeIsSet = true;
  }
  if (j.find("mdtUserConsent") != j.end()) {
    j.at("mdtUserConsent").get_to(o.m_MdtUserConsent);
    o.m_MdtUserConsentIsSet = true;
  }
  if (j.find("mdtConfiguration") != j.end()) {
    j.at("mdtConfiguration").get_to(o.m_MdtConfiguration);
    o.m_MdtConfigurationIsSet = true;
  }
  if (j.find("traceData") != j.end()) {
    j.at("traceData").get_to(o.m_TraceData);
    o.m_TraceDataIsSet = true;
  }
  if (j.find("cagData") != j.end()) {
    j.at("cagData").get_to(o.m_CagData);
    o.m_CagDataIsSet = true;
  }
  if (j.find("stnSr") != j.end()) {
    j.at("stnSr").get_to(o.m_StnSr);
    o.m_StnSrIsSet = true;
  }
  if (j.find("cMsisdn") != j.end()) {
    j.at("cMsisdn").get_to(o.m_CMsisdn);
    o.m_CMsisdnIsSet = true;
  }
  if (j.find("nbIoTUePriority") != j.end()) {
    j.at("nbIoTUePriority").get_to(o.m_NbIoTUePriority);
    o.m_NbIoTUePriorityIsSet = true;
  }
  if (j.find("nssaiInclusionAllowed") != j.end()) {
    j.at("nssaiInclusionAllowed").get_to(o.m_NssaiInclusionAllowed);
    o.m_NssaiInclusionAllowedIsSet = true;
  }
  if (j.find("rgWirelineCharacteristics") != j.end()) {
    j.at("rgWirelineCharacteristics").get_to(o.m_RgWirelineCharacteristics);
    o.m_RgWirelineCharacteristicsIsSet = true;
  }
  if (j.find("ecRestrictionDataWb") != j.end()) {
    j.at("ecRestrictionDataWb").get_to(o.m_EcRestrictionDataWb);
    o.m_EcRestrictionDataWbIsSet = true;
  }
  if (j.find("ecRestrictionDataNb") != j.end()) {
    j.at("ecRestrictionDataNb").get_to(o.m_EcRestrictionDataNb);
    o.m_EcRestrictionDataNbIsSet = true;
  }
  if (j.find("expectedUeBehaviourList") != j.end()) {
    j.at("expectedUeBehaviourList").get_to(o.m_ExpectedUeBehaviourList);
    o.m_ExpectedUeBehaviourListIsSet = true;
  }
  if (j.find("primaryRatRestrictions") != j.end()) {
    j.at("primaryRatRestrictions").get_to(o.m_PrimaryRatRestrictions);
    o.m_PrimaryRatRestrictionsIsSet = true;
  }
  if (j.find("secondaryRatRestrictions") != j.end()) {
    j.at("secondaryRatRestrictions").get_to(o.m_SecondaryRatRestrictions);
    o.m_SecondaryRatRestrictionsIsSet = true;
  }
  if (j.find("edrxParametersList") != j.end()) {
    j.at("edrxParametersList").get_to(o.m_EdrxParametersList);
    o.m_EdrxParametersListIsSet = true;
  }
  if (j.find("ptwParametersList") != j.end()) {
    j.at("ptwParametersList").get_to(o.m_PtwParametersList);
    o.m_PtwParametersListIsSet = true;
  }
  if (j.find("iabOperationAllowed") != j.end()) {
    j.at("iabOperationAllowed").get_to(o.m_IabOperationAllowed);
    o.m_IabOperationAllowedIsSet = true;
  }
  if (j.find("wirelineForbiddenAreas") != j.end()) {
    j.at("wirelineForbiddenAreas").get_to(o.m_WirelineForbiddenAreas);
    o.m_WirelineForbiddenAreasIsSet = true;
  }
  if (j.find("wirelineServiceAreaRestriction") != j.end()) {
    j.at("wirelineServiceAreaRestriction")
        .get_to(o.m_WirelineServiceAreaRestriction);
    o.m_WirelineServiceAreaRestrictionIsSet = true;
  }
}

std::string AccessAndMobilitySubscriptionData::getSupportedFeatures() const {
  return m_SupportedFeatures;
}
void AccessAndMobilitySubscriptionData::setSupportedFeatures(
    std::string const &value) {
  m_SupportedFeatures = value;
  m_SupportedFeaturesIsSet = true;
}
bool AccessAndMobilitySubscriptionData::supportedFeaturesIsSet() const {
  return m_SupportedFeaturesIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSupportedFeatures() {
  m_SupportedFeaturesIsSet = false;
}
std::vector<std::string> &AccessAndMobilitySubscriptionData::getGpsis() {
  return m_Gpsis;
}
void AccessAndMobilitySubscriptionData::setGpsis(
    std::vector<std::string> const &value) {
  m_Gpsis = value;
  m_GpsisIsSet = true;
}
bool AccessAndMobilitySubscriptionData::gpsisIsSet() const {
  return m_GpsisIsSet;
}
void AccessAndMobilitySubscriptionData::unsetGpsis() { m_GpsisIsSet = false; }
std::vector<std::string> &
AccessAndMobilitySubscriptionData::getInternalGroupIds() {
  return m_InternalGroupIds;
}
void AccessAndMobilitySubscriptionData::setInternalGroupIds(
    std::vector<std::string> const &value) {
  m_InternalGroupIds = value;
  m_InternalGroupIdsIsSet = true;
}
bool AccessAndMobilitySubscriptionData::internalGroupIdsIsSet() const {
  return m_InternalGroupIdsIsSet;
}
void AccessAndMobilitySubscriptionData::unsetInternalGroupIds() {
  m_InternalGroupIdsIsSet = false;
}
std::map<std::string, std::string> &
AccessAndMobilitySubscriptionData::getSharedVnGroupDataIds() {
  return m_SharedVnGroupDataIds;
}
void AccessAndMobilitySubscriptionData::setSharedVnGroupDataIds(
    std::map<std::string, std::string> const &value) {
  m_SharedVnGroupDataIds = value;
  m_SharedVnGroupDataIdsIsSet = true;
}
bool AccessAndMobilitySubscriptionData::sharedVnGroupDataIdsIsSet() const {
  return m_SharedVnGroupDataIdsIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSharedVnGroupDataIds() {
  m_SharedVnGroupDataIdsIsSet = false;
}
AmbrRm AccessAndMobilitySubscriptionData::getSubscribedUeAmbr() const {
  return m_SubscribedUeAmbr;
}
void AccessAndMobilitySubscriptionData::setSubscribedUeAmbr(
    AmbrRm const &value) {
  m_SubscribedUeAmbr = value;
  m_SubscribedUeAmbrIsSet = true;
}
bool AccessAndMobilitySubscriptionData::subscribedUeAmbrIsSet() const {
  return m_SubscribedUeAmbrIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSubscribedUeAmbr() {
  m_SubscribedUeAmbrIsSet = false;
}
Nssai AccessAndMobilitySubscriptionData::getNssai() const { return m_Nssai; }
void AccessAndMobilitySubscriptionData::setNssai(Nssai const &value) {
  m_Nssai = value;
  m_NssaiIsSet = true;
}
bool AccessAndMobilitySubscriptionData::nssaiIsSet() const {
  return m_NssaiIsSet;
}
void AccessAndMobilitySubscriptionData::unsetNssai() { m_NssaiIsSet = false; }
std::vector<RatType> &AccessAndMobilitySubscriptionData::getRatRestrictions() {
  return m_RatRestrictions;
}
void AccessAndMobilitySubscriptionData::setRatRestrictions(
    std::vector<RatType> const &value) {
  m_RatRestrictions = value;
  m_RatRestrictionsIsSet = true;
}
bool AccessAndMobilitySubscriptionData::ratRestrictionsIsSet() const {
  return m_RatRestrictionsIsSet;
}
void AccessAndMobilitySubscriptionData::unsetRatRestrictions() {
  m_RatRestrictionsIsSet = false;
}
std::vector<Area> &AccessAndMobilitySubscriptionData::getForbiddenAreas() {
  return m_ForbiddenAreas;
}
void AccessAndMobilitySubscriptionData::setForbiddenAreas(
    std::vector<Area> const &value) {
  m_ForbiddenAreas = value;
  m_ForbiddenAreasIsSet = true;
}
bool AccessAndMobilitySubscriptionData::forbiddenAreasIsSet() const {
  return m_ForbiddenAreasIsSet;
}
void AccessAndMobilitySubscriptionData::unsetForbiddenAreas() {
  m_ForbiddenAreasIsSet = false;
}
ServiceAreaRestriction
AccessAndMobilitySubscriptionData::getServiceAreaRestriction() const {
  return m_ServiceAreaRestriction;
}
void AccessAndMobilitySubscriptionData::setServiceAreaRestriction(
    ServiceAreaRestriction const &value) {
  m_ServiceAreaRestriction = value;
  m_ServiceAreaRestrictionIsSet = true;
}
bool AccessAndMobilitySubscriptionData::serviceAreaRestrictionIsSet() const {
  return m_ServiceAreaRestrictionIsSet;
}
void AccessAndMobilitySubscriptionData::unsetServiceAreaRestriction() {
  m_ServiceAreaRestrictionIsSet = false;
}
std::vector<CoreNetworkType> &
AccessAndMobilitySubscriptionData::getCoreNetworkTypeRestrictions() {
  return m_CoreNetworkTypeRestrictions;
}
void AccessAndMobilitySubscriptionData::setCoreNetworkTypeRestrictions(
    std::vector<CoreNetworkType> const &value) {
  m_CoreNetworkTypeRestrictions = value;
  m_CoreNetworkTypeRestrictionsIsSet = true;
}
bool AccessAndMobilitySubscriptionData::coreNetworkTypeRestrictionsIsSet()
    const {
  return m_CoreNetworkTypeRestrictionsIsSet;
}
void AccessAndMobilitySubscriptionData::unsetCoreNetworkTypeRestrictions() {
  m_CoreNetworkTypeRestrictionsIsSet = false;
}
int32_t AccessAndMobilitySubscriptionData::getRfspIndex() const {
  return m_RfspIndex;
}
void AccessAndMobilitySubscriptionData::setRfspIndex(int32_t const value) {
  m_RfspIndex = value;
  m_RfspIndexIsSet = true;
}
bool AccessAndMobilitySubscriptionData::rfspIndexIsSet() const {
  return m_RfspIndexIsSet;
}
void AccessAndMobilitySubscriptionData::unsetRfspIndex() {
  m_RfspIndexIsSet = false;
}
int32_t AccessAndMobilitySubscriptionData::getSubsRegTimer() const {
  return m_SubsRegTimer;
}
void AccessAndMobilitySubscriptionData::setSubsRegTimer(int32_t const value) {
  m_SubsRegTimer = value;
  m_SubsRegTimerIsSet = true;
}
bool AccessAndMobilitySubscriptionData::subsRegTimerIsSet() const {
  return m_SubsRegTimerIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSubsRegTimer() {
  m_SubsRegTimerIsSet = false;
}
int32_t AccessAndMobilitySubscriptionData::getUeUsageType() const {
  return m_UeUsageType;
}
void AccessAndMobilitySubscriptionData::setUeUsageType(int32_t const value) {
  m_UeUsageType = value;
  m_UeUsageTypeIsSet = true;
}
bool AccessAndMobilitySubscriptionData::ueUsageTypeIsSet() const {
  return m_UeUsageTypeIsSet;
}
void AccessAndMobilitySubscriptionData::unsetUeUsageType() {
  m_UeUsageTypeIsSet = false;
}
bool AccessAndMobilitySubscriptionData::isMpsPriority() const {
  return m_MpsPriority;
}
void AccessAndMobilitySubscriptionData::setMpsPriority(bool const value) {
  m_MpsPriority = value;
  m_MpsPriorityIsSet = true;
}
bool AccessAndMobilitySubscriptionData::mpsPriorityIsSet() const {
  return m_MpsPriorityIsSet;
}
void AccessAndMobilitySubscriptionData::unsetMpsPriority() {
  m_MpsPriorityIsSet = false;
}
bool AccessAndMobilitySubscriptionData::isMcsPriority() const {
  return m_McsPriority;
}
void AccessAndMobilitySubscriptionData::setMcsPriority(bool const value) {
  m_McsPriority = value;
  m_McsPriorityIsSet = true;
}
bool AccessAndMobilitySubscriptionData::mcsPriorityIsSet() const {
  return m_McsPriorityIsSet;
}
void AccessAndMobilitySubscriptionData::unsetMcsPriority() {
  m_McsPriorityIsSet = false;
}
int32_t AccessAndMobilitySubscriptionData::getActiveTime() const {
  return m_ActiveTime;
}
void AccessAndMobilitySubscriptionData::setActiveTime(int32_t const value) {
  m_ActiveTime = value;
  m_ActiveTimeIsSet = true;
}
bool AccessAndMobilitySubscriptionData::activeTimeIsSet() const {
  return m_ActiveTimeIsSet;
}
void AccessAndMobilitySubscriptionData::unsetActiveTime() {
  m_ActiveTimeIsSet = false;
}
SorInfo AccessAndMobilitySubscriptionData::getSorInfo() const {
  return m_SorInfo;
}
void AccessAndMobilitySubscriptionData::setSorInfo(SorInfo const &value) {
  m_SorInfo = value;
  m_SorInfoIsSet = true;
}
bool AccessAndMobilitySubscriptionData::sorInfoIsSet() const {
  return m_SorInfoIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSorInfo() {
  m_SorInfoIsSet = false;
}
bool AccessAndMobilitySubscriptionData::isSorInfoExpectInd() const {
  return m_SorInfoExpectInd;
}
void AccessAndMobilitySubscriptionData::setSorInfoExpectInd(bool const value) {
  m_SorInfoExpectInd = value;
  m_SorInfoExpectIndIsSet = true;
}
bool AccessAndMobilitySubscriptionData::sorInfoExpectIndIsSet() const {
  return m_SorInfoExpectIndIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSorInfoExpectInd() {
  m_SorInfoExpectIndIsSet = false;
}
bool AccessAndMobilitySubscriptionData::isSorafRetrieval() const {
  return m_SorafRetrieval;
}
void AccessAndMobilitySubscriptionData::setSorafRetrieval(bool const value) {
  m_SorafRetrieval = value;
  m_SorafRetrievalIsSet = true;
}
bool AccessAndMobilitySubscriptionData::sorafRetrievalIsSet() const {
  return m_SorafRetrievalIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSorafRetrieval() {
  m_SorafRetrievalIsSet = false;
}
std::vector<SorUpdateIndicator> &
AccessAndMobilitySubscriptionData::getSorUpdateIndicatorList() {
  return m_SorUpdateIndicatorList;
}
void AccessAndMobilitySubscriptionData::setSorUpdateIndicatorList(
    std::vector<SorUpdateIndicator> const &value) {
  m_SorUpdateIndicatorList = value;
  m_SorUpdateIndicatorListIsSet = true;
}
bool AccessAndMobilitySubscriptionData::sorUpdateIndicatorListIsSet() const {
  return m_SorUpdateIndicatorListIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSorUpdateIndicatorList() {
  m_SorUpdateIndicatorListIsSet = false;
}
UpuInfo AccessAndMobilitySubscriptionData::getUpuInfo() const {
  return m_UpuInfo;
}
void AccessAndMobilitySubscriptionData::setUpuInfo(UpuInfo const &value) {
  m_UpuInfo = value;
  m_UpuInfoIsSet = true;
}
bool AccessAndMobilitySubscriptionData::upuInfoIsSet() const {
  return m_UpuInfoIsSet;
}
void AccessAndMobilitySubscriptionData::unsetUpuInfo() {
  m_UpuInfoIsSet = false;
}
bool AccessAndMobilitySubscriptionData::isMicoAllowed() const {
  return m_MicoAllowed;
}
void AccessAndMobilitySubscriptionData::setMicoAllowed(bool const value) {
  m_MicoAllowed = value;
  m_MicoAllowedIsSet = true;
}
bool AccessAndMobilitySubscriptionData::micoAllowedIsSet() const {
  return m_MicoAllowedIsSet;
}
void AccessAndMobilitySubscriptionData::unsetMicoAllowed() {
  m_MicoAllowedIsSet = false;
}
std::vector<std::string> &
AccessAndMobilitySubscriptionData::getSharedAmDataIds() {
  return m_SharedAmDataIds;
}
void AccessAndMobilitySubscriptionData::setSharedAmDataIds(
    std::vector<std::string> const &value) {
  m_SharedAmDataIds = value;
  m_SharedAmDataIdsIsSet = true;
}
bool AccessAndMobilitySubscriptionData::sharedAmDataIdsIsSet() const {
  return m_SharedAmDataIdsIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSharedAmDataIds() {
  m_SharedAmDataIdsIsSet = false;
}
OdbPacketServices
AccessAndMobilitySubscriptionData::getOdbPacketServices() const {
  return m_OdbPacketServices;
}
void AccessAndMobilitySubscriptionData::setOdbPacketServices(
    OdbPacketServices const &value) {
  m_OdbPacketServices = value;
  m_OdbPacketServicesIsSet = true;
}
bool AccessAndMobilitySubscriptionData::odbPacketServicesIsSet() const {
  return m_OdbPacketServicesIsSet;
}
void AccessAndMobilitySubscriptionData::unsetOdbPacketServices() {
  m_OdbPacketServicesIsSet = false;
}
// std::vector<AnyOfstringstring>&
// AccessAndMobilitySubscriptionData::getSubscribedDnnList()
//{
//    return m_SubscribedDnnList;
//}
// void
// AccessAndMobilitySubscriptionData::setSubscribedDnnList(std::vector<AnyOfstringstring>
// const& value)
//{
//    m_SubscribedDnnList = value;
//    m_SubscribedDnnListIsSet = true;
//}
bool AccessAndMobilitySubscriptionData::subscribedDnnListIsSet() const {
  return m_SubscribedDnnListIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSubscribedDnnList() {
  m_SubscribedDnnListIsSet = false;
}
int32_t AccessAndMobilitySubscriptionData::getServiceGapTime() const {
  return m_ServiceGapTime;
}
void AccessAndMobilitySubscriptionData::setServiceGapTime(int32_t const value) {
  m_ServiceGapTime = value;
  m_ServiceGapTimeIsSet = true;
}
bool AccessAndMobilitySubscriptionData::serviceGapTimeIsSet() const {
  return m_ServiceGapTimeIsSet;
}
void AccessAndMobilitySubscriptionData::unsetServiceGapTime() {
  m_ServiceGapTimeIsSet = false;
}
MdtUserConsent AccessAndMobilitySubscriptionData::getMdtUserConsent() const {
  return m_MdtUserConsent;
}
void AccessAndMobilitySubscriptionData::setMdtUserConsent(
    MdtUserConsent const &value) {
  m_MdtUserConsent = value;
  m_MdtUserConsentIsSet = true;
}
bool AccessAndMobilitySubscriptionData::mdtUserConsentIsSet() const {
  return m_MdtUserConsentIsSet;
}
void AccessAndMobilitySubscriptionData::unsetMdtUserConsent() {
  m_MdtUserConsentIsSet = false;
}
MdtConfiguration
AccessAndMobilitySubscriptionData::getMdtConfiguration() const {
  return m_MdtConfiguration;
}
void AccessAndMobilitySubscriptionData::setMdtConfiguration(
    MdtConfiguration const &value) {
  m_MdtConfiguration = value;
  m_MdtConfigurationIsSet = true;
}
bool AccessAndMobilitySubscriptionData::mdtConfigurationIsSet() const {
  return m_MdtConfigurationIsSet;
}
void AccessAndMobilitySubscriptionData::unsetMdtConfiguration() {
  m_MdtConfigurationIsSet = false;
}
TraceData AccessAndMobilitySubscriptionData::getTraceData() const {
  return m_TraceData;
}
void AccessAndMobilitySubscriptionData::setTraceData(TraceData const &value) {
  m_TraceData = value;
  m_TraceDataIsSet = true;
}
bool AccessAndMobilitySubscriptionData::traceDataIsSet() const {
  return m_TraceDataIsSet;
}
void AccessAndMobilitySubscriptionData::unsetTraceData() {
  m_TraceDataIsSet = false;
}
CagData AccessAndMobilitySubscriptionData::getCagData() const {
  return m_CagData;
}
void AccessAndMobilitySubscriptionData::setCagData(CagData const &value) {
  m_CagData = value;
  m_CagDataIsSet = true;
}
bool AccessAndMobilitySubscriptionData::cagDataIsSet() const {
  return m_CagDataIsSet;
}
void AccessAndMobilitySubscriptionData::unsetCagData() {
  m_CagDataIsSet = false;
}
std::string AccessAndMobilitySubscriptionData::getStnSr() const {
  return m_StnSr;
}
void AccessAndMobilitySubscriptionData::setStnSr(std::string const &value) {
  m_StnSr = value;
  m_StnSrIsSet = true;
}
bool AccessAndMobilitySubscriptionData::stnSrIsSet() const {
  return m_StnSrIsSet;
}
void AccessAndMobilitySubscriptionData::unsetStnSr() { m_StnSrIsSet = false; }
std::string AccessAndMobilitySubscriptionData::getCMsisdn() const {
  return m_CMsisdn;
}
void AccessAndMobilitySubscriptionData::setCMsisdn(std::string const &value) {
  m_CMsisdn = value;
  m_CMsisdnIsSet = true;
}
bool AccessAndMobilitySubscriptionData::cMsisdnIsSet() const {
  return m_CMsisdnIsSet;
}
void AccessAndMobilitySubscriptionData::unsetCMsisdn() {
  m_CMsisdnIsSet = false;
}
int32_t AccessAndMobilitySubscriptionData::getNbIoTUePriority() const {
  return m_NbIoTUePriority;
}
void AccessAndMobilitySubscriptionData::setNbIoTUePriority(
    int32_t const value) {
  m_NbIoTUePriority = value;
  m_NbIoTUePriorityIsSet = true;
}
bool AccessAndMobilitySubscriptionData::nbIoTUePriorityIsSet() const {
  return m_NbIoTUePriorityIsSet;
}
void AccessAndMobilitySubscriptionData::unsetNbIoTUePriority() {
  m_NbIoTUePriorityIsSet = false;
}
bool AccessAndMobilitySubscriptionData::isNssaiInclusionAllowed() const {
  return m_NssaiInclusionAllowed;
}
void AccessAndMobilitySubscriptionData::setNssaiInclusionAllowed(
    bool const value) {
  m_NssaiInclusionAllowed = value;
  m_NssaiInclusionAllowedIsSet = true;
}
bool AccessAndMobilitySubscriptionData::nssaiInclusionAllowedIsSet() const {
  return m_NssaiInclusionAllowedIsSet;
}
void AccessAndMobilitySubscriptionData::unsetNssaiInclusionAllowed() {
  m_NssaiInclusionAllowedIsSet = false;
}
std::string
AccessAndMobilitySubscriptionData::getRgWirelineCharacteristics() const {
  return m_RgWirelineCharacteristics;
}
void AccessAndMobilitySubscriptionData::setRgWirelineCharacteristics(
    std::string const &value) {
  m_RgWirelineCharacteristics = value;
  m_RgWirelineCharacteristicsIsSet = true;
}
bool AccessAndMobilitySubscriptionData::rgWirelineCharacteristicsIsSet() const {
  return m_RgWirelineCharacteristicsIsSet;
}
void AccessAndMobilitySubscriptionData::unsetRgWirelineCharacteristics() {
  m_RgWirelineCharacteristicsIsSet = false;
}
EcRestrictionDataWb
AccessAndMobilitySubscriptionData::getEcRestrictionDataWb() const {
  return m_EcRestrictionDataWb;
}
void AccessAndMobilitySubscriptionData::setEcRestrictionDataWb(
    EcRestrictionDataWb const &value) {
  m_EcRestrictionDataWb = value;
  m_EcRestrictionDataWbIsSet = true;
}
bool AccessAndMobilitySubscriptionData::ecRestrictionDataWbIsSet() const {
  return m_EcRestrictionDataWbIsSet;
}
void AccessAndMobilitySubscriptionData::unsetEcRestrictionDataWb() {
  m_EcRestrictionDataWbIsSet = false;
}
bool AccessAndMobilitySubscriptionData::isEcRestrictionDataNb() const {
  return m_EcRestrictionDataNb;
}
void AccessAndMobilitySubscriptionData::setEcRestrictionDataNb(
    bool const value) {
  m_EcRestrictionDataNb = value;
  m_EcRestrictionDataNbIsSet = true;
}
bool AccessAndMobilitySubscriptionData::ecRestrictionDataNbIsSet() const {
  return m_EcRestrictionDataNbIsSet;
}
void AccessAndMobilitySubscriptionData::unsetEcRestrictionDataNb() {
  m_EcRestrictionDataNbIsSet = false;
}
ExpectedUeBehaviourData
AccessAndMobilitySubscriptionData::getExpectedUeBehaviourList() const {
  return m_ExpectedUeBehaviourList;
}
void AccessAndMobilitySubscriptionData::setExpectedUeBehaviourList(
    ExpectedUeBehaviourData const &value) {
  m_ExpectedUeBehaviourList = value;
  m_ExpectedUeBehaviourListIsSet = true;
}
bool AccessAndMobilitySubscriptionData::expectedUeBehaviourListIsSet() const {
  return m_ExpectedUeBehaviourListIsSet;
}
void AccessAndMobilitySubscriptionData::unsetExpectedUeBehaviourList() {
  m_ExpectedUeBehaviourListIsSet = false;
}
std::vector<RatType> &
AccessAndMobilitySubscriptionData::getPrimaryRatRestrictions() {
  return m_PrimaryRatRestrictions;
}
void AccessAndMobilitySubscriptionData::setPrimaryRatRestrictions(
    std::vector<RatType> const &value) {
  m_PrimaryRatRestrictions = value;
  m_PrimaryRatRestrictionsIsSet = true;
}
bool AccessAndMobilitySubscriptionData::primaryRatRestrictionsIsSet() const {
  return m_PrimaryRatRestrictionsIsSet;
}
void AccessAndMobilitySubscriptionData::unsetPrimaryRatRestrictions() {
  m_PrimaryRatRestrictionsIsSet = false;
}
std::vector<RatType> &
AccessAndMobilitySubscriptionData::getSecondaryRatRestrictions() {
  return m_SecondaryRatRestrictions;
}
void AccessAndMobilitySubscriptionData::setSecondaryRatRestrictions(
    std::vector<RatType> const &value) {
  m_SecondaryRatRestrictions = value;
  m_SecondaryRatRestrictionsIsSet = true;
}
bool AccessAndMobilitySubscriptionData::secondaryRatRestrictionsIsSet() const {
  return m_SecondaryRatRestrictionsIsSet;
}
void AccessAndMobilitySubscriptionData::unsetSecondaryRatRestrictions() {
  m_SecondaryRatRestrictionsIsSet = false;
}
std::vector<EdrxParameters> &
AccessAndMobilitySubscriptionData::getEdrxParametersList() {
  return m_EdrxParametersList;
}
void AccessAndMobilitySubscriptionData::setEdrxParametersList(
    std::vector<EdrxParameters> const &value) {
  m_EdrxParametersList = value;
  m_EdrxParametersListIsSet = true;
}
bool AccessAndMobilitySubscriptionData::edrxParametersListIsSet() const {
  return m_EdrxParametersListIsSet;
}
void AccessAndMobilitySubscriptionData::unsetEdrxParametersList() {
  m_EdrxParametersListIsSet = false;
}
std::vector<PtwParameters> &
AccessAndMobilitySubscriptionData::getPtwParametersList() {
  return m_PtwParametersList;
}
void AccessAndMobilitySubscriptionData::setPtwParametersList(
    std::vector<PtwParameters> const &value) {
  m_PtwParametersList = value;
  m_PtwParametersListIsSet = true;
}
bool AccessAndMobilitySubscriptionData::ptwParametersListIsSet() const {
  return m_PtwParametersListIsSet;
}
void AccessAndMobilitySubscriptionData::unsetPtwParametersList() {
  m_PtwParametersListIsSet = false;
}
bool AccessAndMobilitySubscriptionData::isIabOperationAllowed() const {
  return m_IabOperationAllowed;
}
void AccessAndMobilitySubscriptionData::setIabOperationAllowed(
    bool const value) {
  m_IabOperationAllowed = value;
  m_IabOperationAllowedIsSet = true;
}
bool AccessAndMobilitySubscriptionData::iabOperationAllowedIsSet() const {
  return m_IabOperationAllowedIsSet;
}
void AccessAndMobilitySubscriptionData::unsetIabOperationAllowed() {
  m_IabOperationAllowedIsSet = false;
}
std::vector<WirelineArea> &
AccessAndMobilitySubscriptionData::getWirelineForbiddenAreas() {
  return m_WirelineForbiddenAreas;
}
void AccessAndMobilitySubscriptionData::setWirelineForbiddenAreas(
    std::vector<WirelineArea> const &value) {
  m_WirelineForbiddenAreas = value;
  m_WirelineForbiddenAreasIsSet = true;
}
bool AccessAndMobilitySubscriptionData::wirelineForbiddenAreasIsSet() const {
  return m_WirelineForbiddenAreasIsSet;
}
void AccessAndMobilitySubscriptionData::unsetWirelineForbiddenAreas() {
  m_WirelineForbiddenAreasIsSet = false;
}
WirelineServiceAreaRestriction
AccessAndMobilitySubscriptionData::getWirelineServiceAreaRestriction() const {
  return m_WirelineServiceAreaRestriction;
}
void AccessAndMobilitySubscriptionData::setWirelineServiceAreaRestriction(
    WirelineServiceAreaRestriction const &value) {
  m_WirelineServiceAreaRestriction = value;
  m_WirelineServiceAreaRestrictionIsSet = true;
}
bool AccessAndMobilitySubscriptionData::wirelineServiceAreaRestrictionIsSet()
    const {
  return m_WirelineServiceAreaRestrictionIsSet;
}
void AccessAndMobilitySubscriptionData::unsetWirelineServiceAreaRestriction() {
  m_WirelineServiceAreaRestrictionIsSet = false;
}

} // namespace oai::udr::model
