Commit 5ff8b7f4 authored by Tien-Thinh Nguyen's avatar Tien-Thinh Nguyen

Code cleanup API server

parent 40faab75
/**
* Nsmf_PDUSession
* SMF PDU Session Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
#include "IndividualPDUSessionHSMFApi.h"
......@@ -38,77 +39,76 @@ void IndividualPDUSessionHSMFApi::setupRoutes() {
Routes::Post(
*router,
base + smf_cfg.sbi_api_version + "/pdu-sessions/:pduSessionRef/release",
Routes::bind(&IndividualPDUSessionHSMFApi::release_pdu_session_handler,
this));
Routes::bind(
&IndividualPDUSessionHSMFApi::release_pdu_session_handler, this));
Routes::Post(
*router,
base + smf_cfg.sbi_api_version + "/pdu-sessions/:pduSessionRef/modify",
Routes::bind(&IndividualPDUSessionHSMFApi::update_pdu_session_handler,
this));
Routes::bind(
&IndividualPDUSessionHSMFApi::update_pdu_session_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(
Routes::bind(
&IndividualPDUSessionHSMFApi::individual_pdu_session_hsmf_api_default_handler,
router->addCustomHandler(Routes::bind(
&IndividualPDUSessionHSMFApi::
individual_pdu_session_hsmf_api_default_handler,
this));
}
void IndividualPDUSessionHSMFApi::release_pdu_session_handler(
const Pistache::Rest::Request &request,
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response) {
// Getting the path params
auto pduSessionRef = request.param(":pduSessionRef").as<std::string>();
// Getting the body param
ReleaseData releaseData = { };
ReleaseData releaseData = {};
try {
nlohmann::json::parse(request.body()).get_to(releaseData);
this->release_pdu_session(pduSessionRef, releaseData, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
} catch (nlohmann::detail::exception& e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (std::exception &e) {
//send a 500 error
} catch (std::exception& e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void IndividualPDUSessionHSMFApi::update_pdu_session_handler(
const Pistache::Rest::Request &request,
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response) {
// Getting the path params
auto pduSessionRef = request.param(":pduSessionRef").as<std::string>();
// Getting the body param
HsmfUpdateData hsmfUpdateData = { };
HsmfUpdateData hsmfUpdateData = {};
try {
nlohmann::json::parse(request.body()).get_to(hsmfUpdateData);
this->update_pdu_session(pduSessionRef, hsmfUpdateData, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
} catch (nlohmann::detail::exception& e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (std::exception &e) {
//send a 500 error
} catch (std::exception& e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void IndividualPDUSessionHSMFApi::individual_pdu_session_hsmf_api_default_handler(
const Pistache::Rest::Request&, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found,
"The requested method does not exist");
}
}
}
void IndividualPDUSessionHSMFApi::
individual_pdu_session_hsmf_api_default_handler(
const Pistache::Rest::Request&,
Pistache::Http::ResponseWriter response) {
response.send(
Pistache::Http::Code::Not_Found, "The requested method does not exist");
}
} // namespace api
} // namespace smf_server
} // namespace oai
/**
* Nsmf_PDUSession
* SMF PDU Session Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* IndividualPDUSessionHSMFApi.h
*
......@@ -39,8 +41,7 @@ using namespace oai::smf_server::model;
class IndividualPDUSessionHSMFApi {
public:
IndividualPDUSessionHSMFApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~IndividualPDUSessionHSMFApi() {
}
virtual ~IndividualPDUSessionHSMFApi() {}
void init();
const std::string base = "/nsmf-pdusession/";
......@@ -48,12 +49,14 @@ class IndividualPDUSessionHSMFApi {
private:
void setupRoutes();
void release_pdu_session_handler(const Pistache::Rest::Request &request,
void release_pdu_session_handler(
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response);
void update_pdu_session_handler(const Pistache::Rest::Request &request,
void update_pdu_session_handler(
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response);
void individual_pdu_session_hsmf_api_default_handler(
const Pistache::Rest::Request &request,
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
......@@ -65,10 +68,11 @@ class IndividualPDUSessionHSMFApi {
///
/// </remarks>
/// <param name="pduSessionRef">PDU session reference</param>
/// <param name="releaseData">representation of the data to be sent to H-SMF when releasing the PDU session (optional)</param>
/// <param name="releaseData">representation of the data to be sent to H-SMF
/// when releasing the PDU session (optional)</param>
virtual void release_pdu_session(
const std::string &pduSessionRef, const ReleaseData &releaseData,
Pistache::Http::ResponseWriter &response) = 0;
const std::string& pduSessionRef, const ReleaseData& releaseData,
Pistache::Http::ResponseWriter& response) = 0;
/// <summary>
/// Update (initiated by V-SMF)
......@@ -77,16 +81,15 @@ class IndividualPDUSessionHSMFApi {
///
/// </remarks>
/// <param name="pduSessionRef">PDU session reference</param>
/// <param name="hsmfUpdateData">representation of the updates to apply to the PDU session</param>
virtual void update_pdu_session(const std::string &pduSessionRef,
const HsmfUpdateData &hsmfUpdateData,
Pistache::Http::ResponseWriter &response) = 0;
/// <param name="hsmfUpdateData">representation of the updates to apply to the
/// PDU session</param>
virtual void update_pdu_session(
const std::string& pduSessionRef, const HsmfUpdateData& hsmfUpdateData,
Pistache::Http::ResponseWriter& response) = 0;
};
}
}
}
} // namespace api
} // namespace smf_server
} // namespace oai
#endif /* IndividualPDUSessionHSMFApi_H_ */
/**
* Nsmf_PDUSession
* SMF PDU Session Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
......@@ -15,9 +16,9 @@
* 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
* 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
*
......@@ -68,50 +69,51 @@ void IndividualSMContextApi::setupRoutes() {
using namespace Pistache::Rest;
Routes::Post(
*router, base + smf_cfg.sbi_api_version + "/sm-contexts/:smContextRef/release",
*router,
base + smf_cfg.sbi_api_version + "/sm-contexts/:smContextRef/release",
Routes::bind(&IndividualSMContextApi::release_sm_context_handler, this));
Routes::Post(
*router, base + smf_cfg.sbi_api_version + "/sm-contexts/:smContextRef/retrieve",
*router,
base + smf_cfg.sbi_api_version + "/sm-contexts/:smContextRef/retrieve",
Routes::bind(&IndividualSMContextApi::retrieve_sm_context_handler, this));
Routes::Post(
*router, base + smf_cfg.sbi_api_version + "/sm-contexts/:smContextRef/modify",
*router,
base + smf_cfg.sbi_api_version + "/sm-contexts/:smContextRef/modify",
Routes::bind(&IndividualSMContextApi::update_sm_context_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(
Routes::bind(
router->addCustomHandler(Routes::bind(
&IndividualSMContextApi::individual_sm_context_api_default_handler,
this));
}
void IndividualSMContextApi::release_sm_context_handler(
const Pistache::Rest::Request &request,
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response) {
Logger::smf_api_server().debug("");
Logger::smf_api_server().info(
"Received a SM context Release request from AMF.");
Logger::smf_api_server().debug("Request body: %s\n", request.body().c_str());
SmContextReleaseMessage smContextReleaseMessage = { };
SmContextReleaseMessage smContextReleaseMessage = {};
//simple parser
mime_parser sp = { };
// simple parser
mime_parser sp = {};
sp.parse(request.body());
std::vector<mime_part> parts = { };
std::vector<mime_part> parts = {};
sp.get_mime_parts(parts);
uint8_t size = parts.size();
Logger::smf_api_server().debug("Number of MIME parts %d", size);
// Getting the body param
SmContextReleaseData smContextReleaseData = { };
SmContextReleaseData smContextReleaseData = {};
try {
if (size > 0) {
nlohmann::json::parse(parts[0].body.c_str()).get_to(smContextReleaseData);
} else {
nlohmann::json::parse(request.body().c_str()).get_to(
smContextReleaseData);
nlohmann::json::parse(request.body().c_str())
.get_to(smContextReleaseData);
}
smContextReleaseMessage.setJsonData(smContextReleaseData);
......@@ -127,68 +129,66 @@ void IndividualSMContextApi::release_sm_context_handler(
auto smContextRef = request.param(":smContextRef").as<std::string>();
this->release_sm_context(smContextRef, smContextReleaseMessage, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
} catch (nlohmann::detail::exception& e) {
// send a 400 error
Logger::smf_api_server().warn(
"Error in parsing json (error: %s), send a msg with a 400 error code to AMF",
"Error in parsing json (error: %s), send a msg with a 400 error code "
"to AMF",
e.what());
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (std::exception &e) {
//send a 500 error
} catch (std::exception& e) {
// send a 500 error
Logger::smf_api_server().warn(
"Error (%s ), send a msg with a 500 error code to AMF", e.what());
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void IndividualSMContextApi::retrieve_sm_context_handler(
const Pistache::Rest::Request &request,
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response) {
// Getting the path params
auto smContextRef = request.param(":smContextRef").as<std::string>();
// Getting the body param
SmContextRetrieveData smContextRetrieveData = { };
SmContextRetrieveData smContextRetrieveData = {};
try {
nlohmann::json::parse(request.body()).get_to(smContextRetrieveData);
this->retrieve_sm_context(smContextRef, smContextRetrieveData, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
} catch (nlohmann::detail::exception& e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (std::exception &e) {
//send a 500 error
} catch (std::exception& e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void IndividualSMContextApi::update_sm_context_handler(
const Pistache::Rest::Request &request,
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response) {
Logger::smf_api_server().debug("");
Logger::smf_api_server().info(
"Received a SM context update request from AMF.");
Logger::smf_api_server().debug("Request body: %s\n", request.body().c_str());
SmContextUpdateMessage smContextUpdateMessage = { };
SmContextUpdateMessage smContextUpdateMessage = {};
//simple parser
mime_parser sp = { };
// simple parser
mime_parser sp = {};
sp.parse(request.body());
std::vector<mime_part> parts = { };
std::vector<mime_part> parts = {};
sp.get_mime_parts(parts);
uint8_t size = parts.size();
Logger::smf_api_server().debug("Number of MIME parts %d", size);
// Getting the body param
SmContextUpdateData smContextUpdateData = { };
SmContextUpdateData smContextUpdateData = {};
try {
if (size > 0) {
nlohmann::json::parse(parts[0].body.c_str()).get_to(smContextUpdateData);
......@@ -202,8 +202,8 @@ void IndividualSMContextApi::update_sm_context_handler(
if (parts[i].content_type.compare("application/vnd.3gpp.5gnas") == 0) {
smContextUpdateMessage.setBinaryDataN1SmMessage(parts[i].body);
Logger::smf_api_server().debug("N1 SM message is set");
} else if (parts[i].content_type.compare("application/vnd.3gpp.ngap")
== 0) {
} else if (
parts[i].content_type.compare("application/vnd.3gpp.ngap") == 0) {
smContextUpdateMessage.setBinaryDataN2SmInformation(parts[i].body);
Logger::smf_api_server().debug("N2 SM information is set");
}
......@@ -213,15 +213,16 @@ void IndividualSMContextApi::update_sm_context_handler(
auto smContextRef = request.param(":smContextRef").as<std::string>();
this->update_sm_context(smContextRef, smContextUpdateMessage, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
} catch (nlohmann::detail::exception& e) {
// send a 400 error
Logger::smf_api_server().warn(
"Error in parsing json (error: %s), send a msg with a 400 error code to AMF",
"Error in parsing json (error: %s), send a msg with a 400 error code "
"to AMF",
e.what());
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (std::exception &e) {
//send a 500 error
} catch (std::exception& e) {
// send a 500 error
Logger::smf_api_server().warn(
"Error (%s ), send a msg with a 500 error code to AMF", e.what());
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
......@@ -231,11 +232,10 @@ void IndividualSMContextApi::update_sm_context_handler(
void IndividualSMContextApi::individual_sm_context_api_default_handler(
const Pistache::Rest::Request&, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found,
"The requested method does not exist");
}
}
}
response.send(
Pistache::Http::Code::Not_Found, "The requested method does not exist");
}
} // namespace api
} // namespace smf_server
} // namespace oai
/**
* Nsmf_PDUSession
* SMF PDU Session Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* 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.
*/
/*
* IndividualSMContextApi.h
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
......@@ -20,9 +16,9 @@
* 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
* 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
*
......@@ -36,6 +32,12 @@
* contact@openairinterface.org
*/
/*
* IndividualSMContextApi.h
*
*
*/
#ifndef IndividualSMContextApi_H_
#define IndividualSMContextApi_H_
......@@ -67,8 +69,7 @@ using namespace oai::smf_server::model;
class IndividualSMContextApi {
public:
IndividualSMContextApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~IndividualSMContextApi() {
}
virtual ~IndividualSMContextApi() {}
void init();
const std::string base = "/nsmf-pdusession/";
......@@ -76,14 +77,17 @@ class IndividualSMContextApi {
private:
void setupRoutes();
void release_sm_context_handler(const Pistache::Rest::Request &request,
void release_sm_context_handler(
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response);
void retrieve_sm_context_handler(const Pistache::Rest::Request &request,
void retrieve_sm_context_handler(
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response);
void update_sm_context_handler(const Pistache::Rest::Request &request,
void update_sm_context_handler(
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response);
void individual_sm_context_api_default_handler(
const Pistache::Rest::Request &request,
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
......@@ -95,11 +99,12 @@ class IndividualSMContextApi {
///
/// </remarks>
/// <param name="smContextRef">SM context reference</param>
/// <param name="smContextReleaseData">representation of the data to be sent to the SMF when releasing the SM context (optional)</param>
/// <param name="smContextReleaseData">representation of the data to be sent
/// to the SMF when releasing the SM context (optional)</param>
virtual void release_sm_context(
const std::string &smContextRef,
const SmContextReleaseMessage &smContextReleaseMessage,
Pistache::Http::ResponseWriter &response) = 0;
const std::string& smContextRef,
const SmContextReleaseMessage& smContextReleaseMessage,
Pistache::Http::ResponseWriter& response) = 0;
/// <summary>
/// Retrieve SM Context
......@@ -108,11 +113,12 @@ class IndividualSMContextApi {
///
/// </remarks>
/// <param name="smContextRef">SM context reference</param>
/// <param name="smContextRetrieveData">parameters used to retrieve the SM context (optional)</param>
/// <param name="smContextRetrieveData">parameters used to retrieve the SM
/// context (optional)</param>
virtual void retrieve_sm_context(
const std::string &smContextRef,
const SmContextRetrieveData &smContextRetrieveData,
Pistache::Http::ResponseWriter &response) = 0;
const std::string& smContextRef,
const SmContextRetrieveData& smContextRetrieveData,
Pistache::Http::ResponseWriter& response) = 0;
/// <summary>
/// Update SM Context
......@@ -121,17 +127,16 @@ class IndividualSMContextApi {
///
/// </remarks>
/// <param name="smContextRef">SM context reference</param>
/// <param name="smContextUpdateData">representation of the updates to apply to the SM context</param>
/// <param name="smContextUpdateData">representation of the updates to apply
/// to the SM context</param>
virtual void update_sm_context(
const std::string &smContextRef,
const SmContextUpdateMessage &smContextUpdateMessage,
Pistache::Http::ResponseWriter &response) = 0;
const std::string& smContextRef,
const SmContextUpdateMessage& smContextUpdateMessage,
Pistache::Http::ResponseWriter& response) = 0;
};
}
}
}
} // namespace api
} // namespace smf_server
} // namespace oai
#endif /* IndividualSMContextApi_H_ */
/**
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
* Nsmf_EventExposure
* Session Management Event Exposure 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 "IndividualSubscriptionDocumentApi.h"
#include "Helpers.h"
......@@ -23,7 +24,8 @@ namespace api {
using namespace oai::smf_server::helpers;
using namespace oai::smf_server::model;
IndividualSubscriptionDocumentApi::IndividualSubscriptionDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
IndividualSubscriptionDocumentApi::IndividualSubscriptionDocumentApi(
std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
......@@ -34,55 +36,77 @@ void IndividualSubscriptionDocumentApi::init() {
void IndividualSubscriptionDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
Routes::Delete(*router, base + smf_cfg.sbi_api_version + "/subscriptions/:subId", Routes::bind(&IndividualSubscriptionDocumentApi::delete_individual_subcription_handler, this));
Routes::Get(*router, base + smf_cfg.sbi_api_version + "/subscriptions/:subId", Routes::bind(&IndividualSubscriptionDocumentApi::get_individual_subcription_handler, this));
Routes::Put(*router, base + smf_cfg.sbi_api_version + "/subscriptions/:subId", Routes::bind(&IndividualSubscriptionDocumentApi::replace_individual_subcription_handler, this));
Routes::Delete(
*router, base + smf_cfg.sbi_api_version + "/subscriptions/:subId",
Routes::bind(
&IndividualSubscriptionDocumentApi::
delete_individual_subcription_handler,
this));
Routes::Get(
*router, base + smf_cfg.sbi_api_version + "/subscriptions/:subId",
Routes::bind(
&IndividualSubscriptionDocumentApi::
get_individual_subcription_handler,
this));
Routes::Put(
*router, base + smf_cfg.sbi_api_version + "/subscriptions/:subId",
Routes::bind(
&IndividualSubscriptionDocumentApi::
replace_individual_subcription_handler,
this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&IndividualSubscriptionDocumentApi::individual_subscription_document_api_default_handler, this));
router->addCustomHandler(Routes::bind(
&IndividualSubscriptionDocumentApi::
individual_subscription_document_api_default_handler,
this));
}
void IndividualSubscriptionDocumentApi::delete_individual_subcription_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
void IndividualSubscriptionDocumentApi::delete_individual_subcription_handler(
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response) {
// Getting the path params
auto subId = request.param(":subId").as<std::string>();
try {
this->delete_individual_subcription(subId, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
} catch (nlohmann::detail::exception& e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
} catch (Pistache::Http::HttpError& e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
} catch (std::exception& e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void IndividualSubscriptionDocumentApi::get_individual_subcription_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
void IndividualSubscriptionDocumentApi::get_individual_subcription_handler(
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response) {
// Getting the path params
auto subId = request.param(":subId").as<std::string>();
try {
this->get_individual_subcription(subId, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
} catch (nlohmann::detail::exception& e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
} catch (Pistache::Http::HttpError& e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
} catch (std::exception& e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void IndividualSubscriptionDocumentApi::replace_individual_subcription_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
void IndividualSubscriptionDocumentApi::replace_individual_subcription_handler(
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response) {
// Getting the path params
auto subId = request.param(":subId").as<std::string>();
......@@ -93,26 +117,28 @@ void IndividualSubscriptionDocumentApi::replace_individual_subcription_handler(c
try {
nlohmann::json::parse(request.body()).get_to(nsmfEventExposure);
this->replace_individual_subcription(subId, nsmfEventExposure, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
} catch (nlohmann::detail::exception& e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
} catch (Pistache::Http::HttpError& e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
} catch (std::exception& e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void IndividualSubscriptionDocumentApi::individual_subscription_document_api_default_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found, "The requested method does not exist");
}
}
}
void IndividualSubscriptionDocumentApi::
individual_subscription_document_api_default_handler(
const Pistache::Rest::Request&,
Pistache::Http::ResponseWriter response) {
response.send(
Pistache::Http::Code::Not_Found, "The requested method does not exist");
}
} // namespace api
} // namespace smf_server
} // namespace oai
/**
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
/*
* IndividualSubscriptionDocumentApi.h
*
......@@ -18,13 +20,11 @@
#ifndef IndividualSubscriptionDocumentApi_H_
#define IndividualSubscriptionDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include "NsmfEventExposure.h"
#include "ProblemDetails.h"
#include <string>
......@@ -36,20 +36,28 @@ namespace api {
using namespace oai::smf_server::model;
class IndividualSubscriptionDocumentApi {
public:
public:
IndividualSubscriptionDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~IndividualSubscriptionDocumentApi() {}
void init();
const std::string base = "/nsmf_event-exposure/";
private:
private:
void setupRoutes();
void delete_individual_subcription_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void get_individual_subcription_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void replace_individual_subcription_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void individual_subscription_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void delete_individual_subcription_handler(
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response);
void get_individual_subcription_handler(
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response);
void replace_individual_subcription_handler(
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response);
void individual_subscription_document_api_default_handler(
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
......@@ -60,7 +68,8 @@ private:
///
/// </remarks>
/// <param name="subId">Event Subscription ID</param>
virtual void delete_individual_subcription(const std::string &subId, Pistache::Http::ResponseWriter &response) = 0;
virtual void delete_individual_subcription(
const std::string& subId, Pistache::Http::ResponseWriter& response) = 0;
/// <summary>
/// Read an individual subscription for event notifications from the SMF
......@@ -69,7 +78,8 @@ private:
///
/// </remarks>
/// <param name="subId">Event Subscription ID</param>
virtual void get_individual_subcription(const std::string &subId, Pistache::Http::ResponseWriter &response) = 0;
virtual void get_individual_subcription(
const std::string& subId, Pistache::Http::ResponseWriter& response) = 0;
/// <summary>
/// Replace an individual subscription for event notifications from the SMF
......@@ -79,13 +89,13 @@ private:
/// </remarks>
/// <param name="subId">Event Subscription ID</param>
/// <param name="nsmfEventExposure"></param>
virtual void replace_individual_subcription(const std::string &subId, const NsmfEventExposure &nsmfEventExposure, Pistache::Http::ResponseWriter &response) = 0;
virtual void replace_individual_subcription(
const std::string& subId, const NsmfEventExposure& nsmfEventExposure,
Pistache::Http::ResponseWriter& response) = 0;
};
}
}
}
} // namespace api
} // namespace smf_server
} // namespace oai
#endif /* IndividualSubscriptionDocumentApi_H_ */
/**
* Nsmf_EventExposure
* Session Management Event Exposure Service. © 2019, 3GPP Organizational
* Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
/*
* 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
*
* The version of the OpenAPI document: 1.1.0.alpha-1
* http://www.openairinterface.org/?page_id=698
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
* 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
*/
#include "NFStatusNotifyApi.h"
......
/**
* Nsmf_EventExposure
* Session Management Event Exposure 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
/*
* 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
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
* 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
*/
/*
* NFStatusNotifyApi.h
*
......
/**
* Nsmf_PDUSession
* SMF PDU Session Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
#include "PDUSessionsCollectionApi.h"
......@@ -40,16 +41,14 @@ void PDUSessionsCollectionApi::setupRoutes() {
Routes::bind(&PDUSessionsCollectionApi::post_pdu_sessions_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(
Routes::bind(
router->addCustomHandler(Routes::bind(
&PDUSessionsCollectionApi::pdu_sessions_collection_api_default_handler,
this));
}
void PDUSessionsCollectionApi::post_pdu_sessions_handler(
const Pistache::Rest::Request &request,
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response) {
// Getting the body param
PduSessionCreateData pduSessionCreateData;
......@@ -57,25 +56,23 @@ void PDUSessionsCollectionApi::post_pdu_sessions_handler(
try {
nlohmann::json::parse(request.body()).get_to(pduSessionCreateData);
this->post_pdu_sessions(pduSessionCreateData, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
} catch (nlohmann::detail::exception& e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (std::exception &e) {
//send a 500 error
} catch (std::exception& e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void PDUSessionsCollectionApi::pdu_sessions_collection_api_default_handler(
const Pistache::Rest::Request&, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found,
"The requested method does not exist");
}
}
}
response.send(
Pistache::Http::Code::Not_Found, "The requested method does not exist");
}
} // namespace api
} // namespace smf_server
} // namespace oai
/**
* Nsmf_PDUSession
* SMF PDU Session Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* PDUSessionsCollectionApi.h
*
......@@ -37,8 +39,7 @@ using namespace oai::smf_server::model;
class PDUSessionsCollectionApi {
public:
PDUSessionsCollectionApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~PDUSessionsCollectionApi() {
}
virtual ~PDUSessionsCollectionApi() {}
void init();
const std::string base = "/nsmf-pdusession/";
......@@ -46,10 +47,11 @@ class PDUSessionsCollectionApi {
private:
void setupRoutes();
void post_pdu_sessions_handler(const Pistache::Rest::Request &request,
void post_pdu_sessions_handler(
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response);
void pdu_sessions_collection_api_default_handler(
const Pistache::Rest::Request &request,
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
......@@ -60,16 +62,15 @@ class PDUSessionsCollectionApi {
/// <remarks>
///
/// </remarks>
/// <param name="pduSessionCreateData">representation of the PDU session to be created in the H-SMF</param>
/// <param name="pduSessionCreateData">representation of the PDU session to be
/// created in the H-SMF</param>
virtual void post_pdu_sessions(
const PduSessionCreateData &pduSessionCreateData,
Pistache::Http::ResponseWriter &response) = 0;
const PduSessionCreateData& pduSessionCreateData,
Pistache::Http::ResponseWriter& response) = 0;
};
}
}
}
} // namespace api
} // namespace smf_server
} // namespace oai
#endif /* PDUSessionsCollectionApi_H_ */
/**
* Nsmf_PDUSession
* SMF PDU Session Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
......@@ -15,9 +16,9 @@
* 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
* 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
*
......@@ -72,41 +73,39 @@ void SMContextsCollectionApi::setupRoutes() {
Routes::bind(&SMContextsCollectionApi::post_sm_contexts_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(
Routes::bind(
router->addCustomHandler(Routes::bind(
&SMContextsCollectionApi::sm_contexts_collection_api_default_handler,
this));
}
void SMContextsCollectionApi::post_sm_contexts_handler(
const Pistache::Rest::Request &request,
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response) {
Logger::smf_api_server().debug("");
Logger::smf_api_server().info(
"Received a SM context create request from AMF.");
SmContextMessage smContextMessage = { };
SmContextCreateData smContextCreateData = { };
SmContextMessage smContextMessage = {};
SmContextCreateData smContextCreateData = {};
//simple parser
mime_parser sp = { };
// simple parser
mime_parser sp = {};
sp.parse(request.body());
std::vector<mime_part> parts = { };
std::vector<mime_part> parts = {};
sp.get_mime_parts(parts);
uint8_t size = parts.size();
Logger::smf_api_server().debug("Number of MIME parts %d", size);
//at least 2 parts for Json data and N1 (+ N2)
// at least 2 parts for Json data and N1 (+ N2)
if (size < 2) {
response.send(Pistache::Http::Code::Bad_Request);
return;
}
//step 2. process the request
// step 2. process the request
try {
nlohmann::json::parse(parts[0].body.c_str()).get_to(smContextCreateData);
smContextMessage.setJsonData(smContextCreateData);
//must include N1 NAS msg
// must include N1 NAS msg
if (parts[1].content_type.compare("application/vnd.3gpp.5gnas") == 0) {
smContextMessage.setBinaryDataN1SmMessage(parts[1].body);
} else {
......@@ -116,14 +115,14 @@ void SMContextsCollectionApi::post_sm_contexts_handler(
this->post_sm_contexts(smContextMessage, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
Logger::smf_api_server().warn("Can not parse the json data (error: %s)!",
e.what());
} catch (nlohmann::detail::exception& e) {
// send a 400 error
Logger::smf_api_server().warn(
"Can not parse the json data (error: %s)!", e.what());
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (std::exception &e) {
//send a 500 error
} catch (std::exception& e) {
// send a 500 error
Logger::smf_api_server().warn("Error: %s!", e.what());
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
......@@ -132,11 +131,10 @@ void SMContextsCollectionApi::post_sm_contexts_handler(
void SMContextsCollectionApi::sm_contexts_collection_api_default_handler(
const Pistache::Rest::Request&, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found,
"The requested method does not exist");
}
}
}
response.send(
Pistache::Http::Code::Not_Found, "The requested method does not exist");
}
} // namespace api
} // namespace smf_server
} // namespace oai
/**
* Nsmf_PDUSession
* SMF PDU Session Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* 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.
*/
/*
* SMContextsCollectionApi.h
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
......@@ -20,9 +16,9 @@
* 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
* 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
*
......@@ -36,6 +32,12 @@
* contact@openairinterface.org
*/
/*
* SMContextsCollectionApi.h
*
*
*/
#ifndef SMContextsCollectionApi_H_
#define SMContextsCollectionApi_H_
......@@ -58,8 +60,7 @@ using namespace oai::smf_server::model;
class SMContextsCollectionApi {
public:
SMContextsCollectionApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~SMContextsCollectionApi() {
}
virtual ~SMContextsCollectionApi() {}
void init();
const std::string base = "/nsmf-pdusession/";
......@@ -67,10 +68,11 @@ class SMContextsCollectionApi {
private:
void setupRoutes();
void post_sm_contexts_handler(const Pistache::Rest::Request &request,
void post_sm_contexts_handler(
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response);
void sm_contexts_collection_api_default_handler(
const Pistache::Rest::Request &request,
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
......@@ -82,14 +84,13 @@ class SMContextsCollectionApi {
///
/// </remarks>
/// <param name="smContextMessage"></param>
virtual void post_sm_contexts(const SmContextMessage &smContextMessage,
Pistache::Http::ResponseWriter &response) = 0;
virtual void post_sm_contexts(
const SmContextMessage& smContextMessage,
Pistache::Http::ResponseWriter& response) = 0;
};
}
}
}
} // namespace api
} // namespace smf_server
} // namespace oai
#endif /* SMContextsCollectionApi_H_ */
/**
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
* Nsmf_EventExposure
* Session Management Event Exposure 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 "SubscriptionsCollectionApi.h"
#include "Helpers.h"
......@@ -23,7 +24,8 @@ namespace api {
using namespace oai::smf_server::helpers;
using namespace oai::smf_server::model;
SubscriptionsCollectionApi::SubscriptionsCollectionApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
SubscriptionsCollectionApi::SubscriptionsCollectionApi(
std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
......@@ -34,14 +36,21 @@ void SubscriptionsCollectionApi::init() {
void SubscriptionsCollectionApi::setupRoutes() {
using namespace Pistache::Rest;
Routes::Post(*router, base + smf_cfg.sbi_api_version + "/subscriptions", Routes::bind(&SubscriptionsCollectionApi::create_individual_subcription_handler, this));
Routes::Post(
*router, base + smf_cfg.sbi_api_version + "/subscriptions",
Routes::bind(
&SubscriptionsCollectionApi::create_individual_subcription_handler,
this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&SubscriptionsCollectionApi::subscriptions_collection_api_default_handler, this));
router->addCustomHandler(Routes::bind(
&SubscriptionsCollectionApi::subscriptions_collection_api_default_handler,
this));
}
void SubscriptionsCollectionApi::create_individual_subcription_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
void SubscriptionsCollectionApi::create_individual_subcription_handler(
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response) {
// Getting the body param
NsmfEventExposure nsmfEventExposure;
......@@ -49,26 +58,26 @@ void SubscriptionsCollectionApi::create_individual_subcription_handler(const Pis
try {
nlohmann::json::parse(request.body()).get_to(nsmfEventExposure);
this->create_individual_subcription(nsmfEventExposure, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
} catch (nlohmann::detail::exception& e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
} catch (Pistache::Http::HttpError& e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
} catch (std::exception& e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void SubscriptionsCollectionApi::subscriptions_collection_api_default_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found, "The requested method does not exist");
}
}
}
void SubscriptionsCollectionApi::subscriptions_collection_api_default_handler(
const Pistache::Rest::Request&, Pistache::Http::ResponseWriter response) {
response.send(
Pistache::Http::Code::Not_Found, "The requested method does not exist");
}
} // namespace api
} // namespace smf_server
} // namespace oai
/**
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
/*
* SubscriptionsCollectionApi.h
*
......@@ -18,13 +20,11 @@
#ifndef SubscriptionsCollectionApi_H_
#define SubscriptionsCollectionApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include "NsmfEventExposure.h"
#include "ProblemDetails.h"
......@@ -35,18 +35,22 @@ namespace api {
using namespace oai::smf_server::model;
class SubscriptionsCollectionApi {
public:
public:
SubscriptionsCollectionApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~SubscriptionsCollectionApi() {}
void init();
const std::string base = "/nsmf_event-exposure/";
private:
private:
void setupRoutes();
void create_individual_subcription_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void subscriptions_collection_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void create_individual_subcription_handler(
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response);
void subscriptions_collection_api_default_handler(
const Pistache::Rest::Request& request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
......@@ -57,13 +61,13 @@ private:
///
/// </remarks>
/// <param name="nsmfEventExposure"></param>
virtual void create_individual_subcription(const NsmfEventExposure &nsmfEventExposure, Pistache::Http::ResponseWriter &response) = 0;
virtual void create_individual_subcription(
const NsmfEventExposure& nsmfEventExposure,
Pistache::Http::ResponseWriter& response) = 0;
};
}
}
}
} // namespace api
} // namespace smf_server
} // namespace oai
#endif /* SubscriptionsCollectionApi_H_ */
/**
* Nsmf_PDUSession
* SMF PDU Session Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* 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
*/
#include "IndividualPDUSessionHSMFApiImpl.h"
......@@ -19,30 +41,29 @@ namespace api {
using namespace oai::smf_server::model;
IndividualPDUSessionHSMFApiImpl::IndividualPDUSessionHSMFApiImpl(
std::shared_ptr<Pistache::Rest::Router> rtr, smf::smf_app *smf_app_inst,
std::shared_ptr<Pistache::Rest::Router> rtr, smf::smf_app* smf_app_inst,
std::string address)
:
IndividualPDUSessionHSMFApi(rtr),
: IndividualPDUSessionHSMFApi(rtr),
m_smf_app(smf_app_inst),
m_address(address) {
}
m_address(address) {}
void IndividualPDUSessionHSMFApiImpl::release_pdu_session(
const std::string &pduSessionRef, const ReleaseData &releaseData,
Pistache::Http::ResponseWriter &response) {
const std::string& pduSessionRef, const ReleaseData& releaseData,
Pistache::Http::ResponseWriter& response) {
Logger::smf_api_server().info("release_pdu_session...");
response.send(Pistache::Http::Code::Not_Implemented,
response.send(
Pistache::Http::Code::Not_Implemented,
"Release_pdu_session API has not been implemented yet!\n");
}
void IndividualPDUSessionHSMFApiImpl::update_pdu_session(
const std::string &pduSessionRef, const HsmfUpdateData &hsmfUpdateData,
Pistache::Http::ResponseWriter &response) {
const std::string& pduSessionRef, const HsmfUpdateData& hsmfUpdateData,
Pistache::Http::ResponseWriter& response) {
Logger::smf_api_server().info("update_pdu_session...");
response.send(Pistache::Http::Code::Not_Implemented,
response.send(
Pistache::Http::Code::Not_Implemented,
"Update_pdu_session API has not been implemented yet!\n");
}
}
}
}
} // namespace api
} // namespace smf_server
} // namespace oai
/**
* Nsmf_PDUSession
* SMF PDU Session Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* 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
*/
/*
......@@ -42,28 +64,28 @@ namespace api {
using namespace oai::smf_server::model;
class IndividualPDUSessionHSMFApiImpl :
public oai::smf_server::api::IndividualPDUSessionHSMFApi {
class IndividualPDUSessionHSMFApiImpl
: public oai::smf_server::api::IndividualPDUSessionHSMFApi {
public:
IndividualPDUSessionHSMFApiImpl(std::shared_ptr<Pistache::Rest::Router>,
smf::smf_app *smf_app_inst,
IndividualPDUSessionHSMFApiImpl(
std::shared_ptr<Pistache::Rest::Router>, smf::smf_app* smf_app_inst,
std::string address);
~IndividualPDUSessionHSMFApiImpl() {
}
~IndividualPDUSessionHSMFApiImpl() {}
void release_pdu_session(
const std::string& pduSessionRef, const ReleaseData& releaseData,
Pistache::Http::ResponseWriter& response);
void update_pdu_session(
const std::string& pduSessionRef, const HsmfUpdateData& hsmfUpdateData,
Pistache::Http::ResponseWriter& response);
void release_pdu_session(const std::string &pduSessionRef,
const ReleaseData &releaseData,
Pistache::Http::ResponseWriter &response);
void update_pdu_session(const std::string &pduSessionRef,
const HsmfUpdateData &hsmfUpdateData,
Pistache::Http::ResponseWriter &response);
private:
smf::smf_app *m_smf_app;
smf::smf_app* m_smf_app;
std::string m_address;
};
}
}
}
} // namespace api
} // namespace smf_server
} // namespace oai
#endif
/**
* Nsmf_PDUSession
* SMF PDU Session Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* IndividualSMContextApiImpl.h
*
*
*/
/*
* 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
* 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
*
......@@ -36,6 +32,12 @@
* contact@openairinterface.org
*/
/*
* IndividualSMContextApiImpl.h
*
*
*/
#ifndef INDIVIDUAL_SM_CONTEXT_API_IMPL_H_
#define INDIVIDUAL_SM_CONTEXT_API_IMPL_H_
......@@ -66,36 +68,39 @@ namespace api {
using namespace oai::smf_server::model;
class IndividualSMContextApiImpl :
public oai::smf_server::api::IndividualSMContextApi {
class IndividualSMContextApiImpl
: public oai::smf_server::api::IndividualSMContextApi {
public:
IndividualSMContextApiImpl(std::shared_ptr<Pistache::Rest::Router>,
smf::smf_app *smf_app_inst, std::string address);
~IndividualSMContextApiImpl() {
}
IndividualSMContextApiImpl(
std::shared_ptr<Pistache::Rest::Router>, smf::smf_app* smf_app_inst,
std::string address);
~IndividualSMContextApiImpl() {}
void release_sm_context(
const std::string &smContextRef,
const SmContextReleaseMessage &smContextReleaseMessage,
Pistache::Http::ResponseWriter &response);
void retrieve_sm_context(const std::string &smContextRef,
const SmContextRetrieveData &smContextRetrieveData,
Pistache::Http::ResponseWriter &response);
void update_sm_context(const std::string &smContextRef,
const SmContextUpdateMessage &smContextUpdateMessage,
Pistache::Http::ResponseWriter &response);
const std::string& smContextRef,
const SmContextReleaseMessage& smContextReleaseMessage,
Pistache::Http::ResponseWriter& response);
void retrieve_sm_context(
const std::string& smContextRef,
const SmContextRetrieveData& smContextRetrieveData,
Pistache::Http::ResponseWriter& response);
void update_sm_context(
const std::string& smContextRef,
const SmContextUpdateMessage& smContextUpdateMessage,
Pistache::Http::ResponseWriter& response);
private:
smf::smf_app *m_smf_app;
smf::smf_app* m_smf_app;
std::string m_address;
protected:
static uint64_t generate_promise_id() {
return util::uint_uid_generator<uint64_t>::get_instance().get_uid();
}
};
}
}
}
} // namespace api
} // namespace smf_server
} // namespace oai
#endif
/**
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
/*
* 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
*/
#include "IndividualSubscriptionDocumentApiImpl.h"
......@@ -19,31 +42,40 @@ namespace api {
using namespace oai::smf_server::model;
IndividualSubscriptionDocumentApiImpl::IndividualSubscriptionDocumentApiImpl(
std::shared_ptr<Pistache::Rest::Router> rtr, smf::smf_app *smf_app_inst,
std::shared_ptr<Pistache::Rest::Router> rtr, smf::smf_app* smf_app_inst,
std::string address)
:
IndividualSubscriptionDocumentApi(rtr),
: IndividualSubscriptionDocumentApi(rtr),
m_smf_app(smf_app_inst),
m_address(address) {
}
m_address(address) {}
void IndividualSubscriptionDocumentApiImpl::delete_individual_subcription(const std::string &subId, Pistache::Http::ResponseWriter &response) {
Logger::smf_api_server().info("IndividualSubscriptionDocumentApiImpl::delete_individual_subcription...");
response.send(Pistache::Http::Code::Not_Implemented,
void IndividualSubscriptionDocumentApiImpl::delete_individual_subcription(
const std::string& subId, Pistache::Http::ResponseWriter& response) {
Logger::smf_api_server().info(
"IndividualSubscriptionDocumentApiImpl::delete_individual_subcription.."
".");
response.send(
Pistache::Http::Code::Not_Implemented,
"delete_individual_subcription API has not been implemented yet!\n");
}
void IndividualSubscriptionDocumentApiImpl::get_individual_subcription(const std::string &subId, Pistache::Http::ResponseWriter &response) {
Logger::smf_api_server().info("IndividualSubscriptionDocumentApiImpl::get_individual_subcription...");
response.send(Pistache::Http::Code::Not_Implemented,
void IndividualSubscriptionDocumentApiImpl::get_individual_subcription(
const std::string& subId, Pistache::Http::ResponseWriter& response) {
Logger::smf_api_server().info(
"IndividualSubscriptionDocumentApiImpl::get_individual_subcription...");
response.send(
Pistache::Http::Code::Not_Implemented,
"get_individual_subcription API has not been implemented yet!\n");
}
void IndividualSubscriptionDocumentApiImpl::replace_individual_subcription(const std::string &subId, const NsmfEventExposure &nsmfEventExposure, Pistache::Http::ResponseWriter &response) {
Logger::smf_api_server().info("IndividualSubscriptionDocumentApiImpl::replace_individual_subcription...");
response.send(Pistache::Http::Code::Not_Implemented,
void IndividualSubscriptionDocumentApiImpl::replace_individual_subcription(
const std::string& subId, const NsmfEventExposure& nsmfEventExposure,
Pistache::Http::ResponseWriter& response) {
Logger::smf_api_server().info(
"IndividualSubscriptionDocumentApiImpl::replace_individual_subcription.."
".");
response.send(
Pistache::Http::Code::Not_Implemented,
"replace_individual_subcription API has not been implemented yet!\n");
}
}
}
}
} // namespace api
} // namespace smf_server
} // namespace oai
/**
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
/*
* IndividualSubscriptionDocumentApiImpl.h
*
*
*/
* 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
*/
/*
* 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
*/
/*
* IndividualSubscriptionDocumentApiImpl.h
*
*
*/
#ifndef INDIVIDUAL_SUBSCRIPTION_DOCUMENT_API_IMPL_H_
#define INDIVIDUAL_SUBSCRIPTION_DOCUMENT_API_IMPL_H_
#include <pistache/endpoint.h>
#include <pistache/http.h>
#include <pistache/router.h>
......@@ -40,25 +82,29 @@ namespace api {
using namespace oai::smf_server::model;
class IndividualSubscriptionDocumentApiImpl : public oai::smf_server::api::IndividualSubscriptionDocumentApi {
public:
IndividualSubscriptionDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router>,
smf::smf_app *smf_app_inst, std::string address);
class IndividualSubscriptionDocumentApiImpl
: public oai::smf_server::api::IndividualSubscriptionDocumentApi {
public:
IndividualSubscriptionDocumentApiImpl(
std::shared_ptr<Pistache::Rest::Router>, smf::smf_app* smf_app_inst,
std::string address);
~IndividualSubscriptionDocumentApiImpl() {}
void delete_individual_subcription(const std::string &subId, Pistache::Http::ResponseWriter &response);
void get_individual_subcription(const std::string &subId, Pistache::Http::ResponseWriter &response);
void replace_individual_subcription(const std::string &subId, const NsmfEventExposure &nsmfEventExposure, Pistache::Http::ResponseWriter &response);
void delete_individual_subcription(
const std::string& subId, Pistache::Http::ResponseWriter& response);
void get_individual_subcription(
const std::string& subId, Pistache::Http::ResponseWriter& response);
void replace_individual_subcription(
const std::string& subId, const NsmfEventExposure& nsmfEventExposure,
Pistache::Http::ResponseWriter& response);
private:
smf::smf_app *m_smf_app;
private:
smf::smf_app* m_smf_app;
std::string m_address;
};
}
}
}
} // namespace api
} // namespace smf_server
} // namespace oai
#endif
......@@ -11,6 +11,27 @@
* the class manually.
*/
/*
* 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
*/
#include "NFStatusNotifyApiImpl.h"
#include "logger.hpp"
......
......@@ -17,6 +17,28 @@
*
*/
/*
* 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
*/
#ifndef NF_STATUS_NOTIFY_API_IMPL_H_
#define NF_STATUS_NOTIFY_API_IMPL_H_
......
/**
* Nsmf_PDUSession
* SMF PDU Session Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* 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
*/
#include "PDUSessionsCollectionApiImpl.h"
namespace oai {
......@@ -19,24 +42,21 @@ namespace api {
using namespace oai::smf_server::model;
PDUSessionsCollectionApiImpl::PDUSessionsCollectionApiImpl(
std::shared_ptr<Pistache::Rest::Router> rtr, smf::smf_app *smf_app_inst,
std::shared_ptr<Pistache::Rest::Router> rtr, smf::smf_app* smf_app_inst,
std::string address)
:
PDUSessionsCollectionApi(rtr),
: PDUSessionsCollectionApi(rtr),
m_smf_app(smf_app_inst),
m_address(address) {
}
m_address(address) {}
void PDUSessionsCollectionApiImpl::post_pdu_sessions(
const PduSessionCreateData &pduSessionCreateData,
Pistache::Http::ResponseWriter &response) {
const PduSessionCreateData& pduSessionCreateData,
Pistache::Http::ResponseWriter& response) {
Logger::smf_api_server().info("post_pdu_sessions...");
response.send(Pistache::Http::Code::Not_Implemented,
response.send(
Pistache::Http::Code::Not_Implemented,
"Post_pdu_sessions API has not been implemented yet!\n");
}
}
}
}
} // namespace api
} // namespace smf_server
} // namespace oai
/**
* Nsmf_PDUSession
* SMF PDU Session Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* 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
*/
/*
......@@ -40,23 +62,25 @@ namespace api {
using namespace oai::smf_server::model;
class PDUSessionsCollectionApiImpl :
public oai::smf_server::api::PDUSessionsCollectionApi {
class PDUSessionsCollectionApiImpl
: public oai::smf_server::api::PDUSessionsCollectionApi {
public:
PDUSessionsCollectionApiImpl(std::shared_ptr<Pistache::Rest::Router>,
smf::smf_app *smf_app_inst, std::string address);
~PDUSessionsCollectionApiImpl() {
}
PDUSessionsCollectionApiImpl(
std::shared_ptr<Pistache::Rest::Router>, smf::smf_app* smf_app_inst,
std::string address);
~PDUSessionsCollectionApiImpl() {}
void post_pdu_sessions(
const PduSessionCreateData& pduSessionCreateData,
Pistache::Http::ResponseWriter& response);
void post_pdu_sessions(const PduSessionCreateData &pduSessionCreateData,
Pistache::Http::ResponseWriter &response);
private:
smf::smf_app *m_smf_app;
smf::smf_app* m_smf_app;
std::string m_address;
};
}
}
}
} // namespace api
} // namespace smf_server
} // namespace oai
#endif
This diff is collapsed.
/**
* Nsmf_PDUSession
* SMF PDU Session Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* SMContextsCollectionApiImpl.h
*
*
*/
/*
* 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
* 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
*
......@@ -36,6 +32,12 @@
* contact@openairinterface.org
*/
/*
* SMContextsCollectionApiImpl.h
*
*
*/
#ifndef SM_CONTEXTS_COLLECTION_API_IMPL_H_
#define SM_CONTEXTS_COLLECTION_API_IMPL_H_
......@@ -60,28 +62,30 @@ namespace api {
using namespace oai::smf_server::model;
class SMContextsCollectionApiImpl :
public oai::smf_server::api::SMContextsCollectionApi {
class SMContextsCollectionApiImpl
: public oai::smf_server::api::SMContextsCollectionApi {
public:
SMContextsCollectionApiImpl(std::shared_ptr<Pistache::Rest::Router>,
smf::smf_app *smf_app_inst, std::string address);
~SMContextsCollectionApiImpl() {
}
SMContextsCollectionApiImpl(
std::shared_ptr<Pistache::Rest::Router>, smf::smf_app* smf_app_inst,
std::string address);
~SMContextsCollectionApiImpl() {}
void post_sm_contexts(
const SmContextMessage& smContextMessage,
Pistache::Http::ResponseWriter& response);
void post_sm_contexts(const SmContextMessage &smContextMessage,
Pistache::Http::ResponseWriter &response);
private:
smf::smf_app *m_smf_app;
smf::smf_app* m_smf_app;
std::string m_address;
protected:
static uint64_t generate_promise_id() {
return util::uint_uid_generator<uint64_t>::get_instance().get_uid();
}
};
}
}
}
} // namespace api
} // namespace smf_server
} // namespace oai
#endif
/**
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
/*
* 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
*/
#include "SubscriptionsCollectionApiImpl.h"
......@@ -27,28 +49,26 @@ namespace api {
using namespace oai::smf_server::model;
SubscriptionsCollectionApiImpl::SubscriptionsCollectionApiImpl(
std::shared_ptr<Pistache::Rest::Router> rtr, smf::smf_app *smf_app_inst,
std::shared_ptr<Pistache::Rest::Router> rtr, smf::smf_app* smf_app_inst,
std::string address)
:
SubscriptionsCollectionApi(rtr),
: SubscriptionsCollectionApi(rtr),
m_smf_app(smf_app_inst),
m_address(address) {
}
m_address(address) {}
void SubscriptionsCollectionApiImpl::create_individual_subcription(
const NsmfEventExposure &nsmfEventExposure,
Pistache::Http::ResponseWriter &response) {
const NsmfEventExposure& nsmfEventExposure,
Pistache::Http::ResponseWriter& response) {
Logger::smf_api_server().info(
"SubscriptionsCollectionApiImpl::create_individual_subcription...");
//Step1. Create a message and store the necessary information
// Step1. Create a message and store the necessary information
Logger::smf_api_server().debug(
"Create a Event Exposure message and store the necessary information");
smf::event_exposure_msg event_exposure = { };
smf::event_exposure_msg event_exposure = {};
//Supi
// Supi
if (nsmfEventExposure.supiIsSet()) {
supi_t supi = { .length = 0 };
supi_t supi = {.length = 0};
std::size_t pos = nsmfEventExposure.getSupi().find("-");
std::string supi_str = nsmfEventExposure.getSupi().substr(pos + 1);
std::string supi_prefix = nsmfEventExposure.getSupi().substr(0, pos);
......@@ -56,60 +76,60 @@ void SubscriptionsCollectionApiImpl::create_individual_subcription(
event_exposure.set_supi(supi);
event_exposure.set_supi_prefix(supi_prefix);
Logger::smf_api_server().debug("SUPI %s, SUPI Prefix %s, IMSI %s",
nsmfEventExposure.getSupi().c_str(),
Logger::smf_api_server().debug(
"SUPI %s, SUPI Prefix %s, IMSI %s", nsmfEventExposure.getSupi().c_str(),
supi_prefix.c_str(), supi_str.c_str());
}
//PDU session ID
// PDU session ID
if (nsmfEventExposure.pduSeIdIsSet()) {
Logger::smf_api_server().debug("PDU Session ID %d",
nsmfEventExposure.getPduSeId());
Logger::smf_api_server().debug(
"PDU Session ID %d", nsmfEventExposure.getPduSeId());
event_exposure.set_pdu_session_id(nsmfEventExposure.getPduSeId());
}
event_exposure.set_notif_id(nsmfEventExposure.getNotifId()); //NotifId
event_exposure.set_notif_uri(nsmfEventExposure.getNotifUri()); //NotifUri
event_exposure.set_notif_id(nsmfEventExposure.getNotifId()); // NotifId
event_exposure.set_notif_uri(nsmfEventExposure.getNotifUri()); // NotifUri
//EventSubscription: TODO
event_subscription_t event_subscription = { };
// EventSubscription: TODO
event_subscription_t event_subscription = {};
event_subscription.smf_event = smf_event_t::SMF_EVENT_PDU_SES_REL;
std::vector<event_subscription_t> event_subscriptions = { };
std::vector<event_subscription_t> event_subscriptions = {};
event_subscriptions.push_back(event_subscription);
event_exposure.set_event_subs(event_subscriptions);
//std::vector<EventSubscription> eventSubscriptions;
//for (auto it: nsmfEventExposure.getEventSubs()){
//event_subscription.smf_event = it.getEvent();
//getDnaiChgType
//event_subscriptions.push_back(event_subscription);
// std::vector<EventSubscription> eventSubscriptions;
// for (auto it: nsmfEventExposure.getEventSubs()){
// event_subscription.smf_event = it.getEvent();
// getDnaiChgType
// event_subscriptions.push_back(event_subscription);
//}
//Step 2. Handle the message in smf_app
std::shared_ptr<itti_sbi_event_exposure_request> itti_msg = std::make_shared
< itti_sbi_event_exposure_request > (TASK_SMF_N11, TASK_SMF_APP);
// Step 2. Handle the message in smf_app
std::shared_ptr<itti_sbi_event_exposure_request> itti_msg =
std::make_shared<itti_sbi_event_exposure_request>(
TASK_SMF_N11, TASK_SMF_APP);
itti_msg->event_exposure = event_exposure;
itti_msg->http_version = 1;
evsub_id_t sub_id = m_smf_app->handle_event_exposure_subscription(itti_msg);
//send response
nlohmann::json json_data = { };
// send response
nlohmann::json json_data = {};
to_json(json_data, nsmfEventExposure);
if (sub_id != -1) {
json_data["subId"] = std::to_string(sub_id);
response.headers().add < Pistache::Http::Header::Location
> (m_address + base + smf_cfg.sbi_api_version + "/nsmf_event-exposure/"
+ std::to_string(sub_id)); //Location header
response.headers().add<Pistache::Http::Header::Location>(
m_address + base + smf_cfg.sbi_api_version + "/nsmf_event-exposure/" +
std::to_string(sub_id)); // Location header
}
response.headers().add < Pistache::Http::Header::ContentType
> (Pistache::Http::Mime::MediaType("application/json"));
response.headers().add<Pistache::Http::Header::ContentType>(
Pistache::Http::Mime::MediaType("application/json"));
response.send(Pistache::Http::Code(201), json_data.dump().c_str());
}
}
}
}
} // namespace api
} // namespace smf_server
} // namespace oai
/**
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
/*
* SubscriptionsCollectionApiImpl.h
*
*
*/
* 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
*/
/*
* SubscriptionsCollectionApiImpl.h
*
*
*/
#ifndef SUBSCRIPTIONS_COLLECTION_API_IMPL_H_
#define SUBSCRIPTIONS_COLLECTION_API_IMPL_H_
#include <pistache/endpoint.h>
#include <pistache/http.h>
#include <pistache/router.h>
......@@ -39,27 +60,30 @@ namespace api {
using namespace oai::smf_server::model;
class SubscriptionsCollectionApiImpl : public oai::smf_server::api::SubscriptionsCollectionApi {
public:
SubscriptionsCollectionApiImpl(std::shared_ptr<Pistache::Rest::Router>,
smf::smf_app *smf_app_inst, std::string address);
class SubscriptionsCollectionApiImpl
: public oai::smf_server::api::SubscriptionsCollectionApi {
public:
SubscriptionsCollectionApiImpl(
std::shared_ptr<Pistache::Rest::Router>, smf::smf_app* smf_app_inst,
std::string address);
~SubscriptionsCollectionApiImpl() {}
void create_individual_subcription(const NsmfEventExposure &nsmfEventExposure, Pistache::Http::ResponseWriter &response);
void create_individual_subcription(
const NsmfEventExposure& nsmfEventExposure,
Pistache::Http::ResponseWriter& response);
private:
smf::smf_app *m_smf_app;
private:
smf::smf_app* m_smf_app;
std::string m_address;
protected:
protected:
static uint64_t generate_promise_id() {
return util::uint_uid_generator<uint64_t>::get_instance().get_uid();
}
};
}
}
}
} // namespace api
} // namespace smf_server
} // namespace oai
#endif
/**
* 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.
*/
* 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 "AccessType.h"
......@@ -17,31 +17,20 @@ namespace oai {
namespace smf_server {
namespace model {
AccessType::AccessType()
{
AccessType::AccessType() {}
}
AccessType::~AccessType() {}
AccessType::~AccessType()
{
}
void AccessType::validate()
{
void AccessType::validate() {
// TODO: implement validation
}
void to_json(nlohmann::json& j, const AccessType& o)
{
void to_json(nlohmann::json& j, const AccessType& o) {
j = nlohmann::json();
}
void from_json(const nlohmann::json& j, AccessType& o)
{
}
}
}
}
void from_json(const nlohmann::json& j, AccessType& o) {}
} // namespace model
} // namespace smf_server
} // namespace oai
/**
* 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.
*/
* 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.
*/
/*
* AccessType.h
*
......@@ -18,7 +19,6 @@
#ifndef AccessType_H_
#define AccessType_H_
#include <nlohmann/json.hpp>
namespace oai {
......@@ -28,9 +28,8 @@ namespace model {
/// <summary>
///
/// </summary>
class AccessType
{
public:
class AccessType {
public:
AccessType();
virtual ~AccessType();
......@@ -39,14 +38,14 @@ public:
/////////////////////////////////////////////
/// AccessType members
friend void to_json(nlohmann::json& j, const AccessType& o);
friend void from_json(const nlohmann::json& j, AccessType& o);
protected:
protected:
};
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
#endif /* AccessType_H_ */
/**
* 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.
*/
* 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 "AdditionalQosFlowInfo.h"
......@@ -17,31 +17,20 @@ namespace oai {
namespace smf_server {
namespace model {
AdditionalQosFlowInfo::AdditionalQosFlowInfo()
{
AdditionalQosFlowInfo::AdditionalQosFlowInfo() {}
}
AdditionalQosFlowInfo::~AdditionalQosFlowInfo() {}
AdditionalQosFlowInfo::~AdditionalQosFlowInfo()
{
}
void AdditionalQosFlowInfo::validate()
{
void AdditionalQosFlowInfo::validate() {
// TODO: implement validation
}
void to_json(nlohmann::json& j, const AdditionalQosFlowInfo& o)
{
void to_json(nlohmann::json& j, const AdditionalQosFlowInfo& o) {
j = nlohmann::json();
}
void from_json(const nlohmann::json& j, AdditionalQosFlowInfo& o)
{
}
}
}
}
void from_json(const nlohmann::json& j, AdditionalQosFlowInfo& o) {}
} // namespace model
} // namespace smf_server
} // namespace oai
/**
* 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.
*/
* 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.
*/
/*
* AdditionalQosFlowInfo.h
*
......@@ -18,7 +19,6 @@
#ifndef AdditionalQosFlowInfo_H_
#define AdditionalQosFlowInfo_H_
#include <nlohmann/json.hpp>
namespace oai {
......@@ -28,9 +28,8 @@ namespace model {
/// <summary>
///
/// </summary>
class AdditionalQosFlowInfo
{
public:
class AdditionalQosFlowInfo {
public:
AdditionalQosFlowInfo();
virtual ~AdditionalQosFlowInfo();
......@@ -39,14 +38,14 @@ public:
/////////////////////////////////////////////
/// AdditionalQosFlowInfo members
friend void to_json(nlohmann::json& j, const AdditionalQosFlowInfo& o);
friend void from_json(const nlohmann::json& j, AdditionalQosFlowInfo& o);
protected:
protected:
};
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
#endif /* AdditionalQosFlowInfo_H_ */
/**
* 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.
*/
* 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 "Ambr.h"
......@@ -17,55 +17,41 @@ namespace oai {
namespace smf_server {
namespace model {
Ambr::Ambr()
{
Ambr::Ambr() {
m_Uplink = "";
m_Downlink = "";
}
Ambr::~Ambr()
{
}
Ambr::~Ambr() {}
void Ambr::validate()
{
void Ambr::validate() {
// TODO: implement validation
}
void to_json(nlohmann::json& j, const Ambr& o)
{
void to_json(nlohmann::json& j, const Ambr& o) {
j = nlohmann::json();
j["uplink"] = o.m_Uplink;
j["downlink"] = o.m_Downlink;
}
void from_json(const nlohmann::json& j, Ambr& o)
{
void from_json(const nlohmann::json& j, Ambr& o) {
j.at("uplink").get_to(o.m_Uplink);
j.at("downlink").get_to(o.m_Downlink);
}
std::string Ambr::getUplink() const
{
std::string Ambr::getUplink() const {
return m_Uplink;
}
void Ambr::setUplink(std::string const& value)
{
void Ambr::setUplink(std::string const& value) {
m_Uplink = value;
}
std::string Ambr::getDownlink() const
{
std::string Ambr::getDownlink() const {
return m_Downlink;
}
void Ambr::setDownlink(std::string const& value)
{
void Ambr::setDownlink(std::string const& value) {
m_Downlink = value;
}
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
/**
* 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.
*/
* 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.
*/
/*
* Ambr.h
*
......@@ -18,7 +19,6 @@
#ifndef Ambr_H_
#define Ambr_H_
#include <string>
#include <nlohmann/json.hpp>
......@@ -29,9 +29,8 @@ namespace model {
/// <summary>
///
/// </summary>
class Ambr
{
public:
class Ambr {
public:
Ambr();
virtual ~Ambr();
......@@ -53,15 +52,15 @@ public:
friend void to_json(nlohmann::json& j, const Ambr& o);
friend void from_json(const nlohmann::json& j, Ambr& o);
protected:
protected:
std::string m_Uplink;
std::string m_Downlink;
};
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
#endif /* Ambr_H_ */
/**
* 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.
*/
* 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 "Arp.h"
......@@ -17,65 +17,48 @@ namespace oai {
namespace smf_server {
namespace model {
Arp::Arp()
{
Arp::Arp() {
m_PriorityLevel = 0;
}
Arp::~Arp()
{
}
Arp::~Arp() {}
void Arp::validate()
{
void Arp::validate() {
// TODO: implement validation
}
void to_json(nlohmann::json& j, const Arp& o)
{
void to_json(nlohmann::json& j, const Arp& o) {
j = nlohmann::json();
j["priorityLevel"] = o.m_PriorityLevel;
j["preemptCap"] = o.m_PreemptCap;
j["preemptVuln"] = o.m_PreemptVuln;
}
void from_json(const nlohmann::json& j, Arp& o)
{
void from_json(const nlohmann::json& j, Arp& o) {
j.at("priorityLevel").get_to(o.m_PriorityLevel);
j.at("preemptCap").get_to(o.m_PreemptCap);
j.at("preemptVuln").get_to(o.m_PreemptVuln);
}
int32_t Arp::getPriorityLevel() const
{
int32_t Arp::getPriorityLevel() const {
return m_PriorityLevel;
}
void Arp::setPriorityLevel(int32_t const value)
{
void Arp::setPriorityLevel(int32_t const value) {
m_PriorityLevel = value;
}
PreemptionCapability Arp::getPreemptCap() const
{
PreemptionCapability Arp::getPreemptCap() const {
return m_PreemptCap;
}
void Arp::setPreemptCap(PreemptionCapability const& value)
{
void Arp::setPreemptCap(PreemptionCapability const& value) {
m_PreemptCap = value;
}
PreemptionVulnerability Arp::getPreemptVuln() const
{
PreemptionVulnerability Arp::getPreemptVuln() const {
return m_PreemptVuln;
}
void Arp::setPreemptVuln(PreemptionVulnerability const& value)
{
void Arp::setPreemptVuln(PreemptionVulnerability const& value) {
m_PreemptVuln = value;
}
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
/**
* 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.
*/
* 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.
*/
/*
* Arp.h
*
......@@ -18,7 +19,6 @@
#ifndef Arp_H_
#define Arp_H_
#include "PreemptionCapability.h"
#include "PreemptionVulnerability.h"
#include <nlohmann/json.hpp>
......@@ -30,9 +30,8 @@ namespace model {
/// <summary>
///
/// </summary>
class Arp
{
public:
class Arp {
public:
Arp();
virtual ~Arp();
......@@ -59,17 +58,17 @@ public:
friend void to_json(nlohmann::json& j, const Arp& o);
friend void from_json(const nlohmann::json& j, Arp& o);
protected:
protected:
int32_t m_PriorityLevel;
PreemptionCapability m_PreemptCap;
PreemptionVulnerability m_PreemptVuln;
};
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
#endif /* Arp_H_ */
/**
* NRF NFManagement Service
* NRF NFManagement Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* NRF NFManagement 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
#include "AtsssCapability.h"
......@@ -21,25 +22,21 @@ AtsssCapability::AtsssCapability() {
m_AtsssLLIsSet = false;
m_Mptcp = false;
m_MptcpIsSet = false;
}
AtsssCapability::~AtsssCapability() {
}
AtsssCapability::~AtsssCapability() {}
void AtsssCapability::validate() {
// TODO: implement validation
}
void to_json(nlohmann::json &j, const AtsssCapability &o) {
void to_json(nlohmann::json& j, const AtsssCapability& o) {
j = nlohmann::json();
if (o.atsssLLIsSet())
j["atsssLL"] = o.m_AtsssLL;
if (o.mptcpIsSet())
j["mptcp"] = o.m_Mptcp;
if (o.atsssLLIsSet()) j["atsssLL"] = o.m_AtsssLL;
if (o.mptcpIsSet()) j["mptcp"] = o.m_Mptcp;
}
void from_json(const nlohmann::json &j, AtsssCapability &o) {
void from_json(const nlohmann::json& j, AtsssCapability& o) {
if (j.find("atsssLL") != j.end()) {
j.at("atsssLL").get_to(o.m_AtsssLL);
o.m_AtsssLLIsSet = true;
......@@ -77,7 +74,6 @@ void AtsssCapability::unsetMptcp() {
m_MptcpIsSet = false;
}
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
/**
* NRF NFManagement Service
* NRF NFManagement Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* NRF NFManagement 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* AtsssCapability.h
......@@ -52,8 +53,9 @@ class AtsssCapability {
bool mptcpIsSet() const;
void unsetMptcp();
friend void to_json(nlohmann::json &j, const AtsssCapability &o);
friend void from_json(const nlohmann::json &j, AtsssCapability &o);
friend void to_json(nlohmann::json& j, const AtsssCapability& o);
friend void from_json(const nlohmann::json& j, AtsssCapability& o);
protected:
bool m_AtsssLL;
bool m_AtsssLLIsSet;
......@@ -61,8 +63,8 @@ class AtsssCapability {
bool m_MptcpIsSet;
};
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
#endif /* AtsssCapability_H_ */
/**
* 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.
*/
* 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 "BackupAmfInfo.h"
......@@ -17,63 +17,47 @@ namespace oai {
namespace smf_server {
namespace model {
BackupAmfInfo::BackupAmfInfo()
{
BackupAmfInfo::BackupAmfInfo() {
m_BackupAmf = "";
m_GuamiListIsSet = false;
}
BackupAmfInfo::~BackupAmfInfo()
{
}
BackupAmfInfo::~BackupAmfInfo() {}
void BackupAmfInfo::validate()
{
void BackupAmfInfo::validate() {
// TODO: implement validation
}
void to_json(nlohmann::json& j, const BackupAmfInfo& o)
{
void to_json(nlohmann::json& j, const BackupAmfInfo& o) {
j = nlohmann::json();
j["backupAmf"] = o.m_BackupAmf;
if(o.guamiListIsSet())
j["guamiList"] = o.m_GuamiList;
if (o.guamiListIsSet()) j["guamiList"] = o.m_GuamiList;
}
void from_json(const nlohmann::json& j, BackupAmfInfo& o)
{
void from_json(const nlohmann::json& j, BackupAmfInfo& o) {
j.at("backupAmf").get_to(o.m_BackupAmf);
if(j.find("guamiList") != j.end())
{
if (j.find("guamiList") != j.end()) {
j.at("guamiList").get_to(o.m_GuamiList);
o.m_GuamiListIsSet = true;
}
}
std::string BackupAmfInfo::getBackupAmf() const
{
std::string BackupAmfInfo::getBackupAmf() const {
return m_BackupAmf;
}
void BackupAmfInfo::setBackupAmf(std::string const& value)
{
void BackupAmfInfo::setBackupAmf(std::string const& value) {
m_BackupAmf = value;
}
std::vector<Guami>& BackupAmfInfo::getGuamiList()
{
std::vector<Guami>& BackupAmfInfo::getGuamiList() {
return m_GuamiList;
}
bool BackupAmfInfo::guamiListIsSet() const
{
bool BackupAmfInfo::guamiListIsSet() const {
return m_GuamiListIsSet;
}
void BackupAmfInfo::unsetGuamiList()
{
void BackupAmfInfo::unsetGuamiList() {
m_GuamiListIsSet = false;
}
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
/**
* 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.
*/
* 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.
*/
/*
* BackupAmfInfo.h
*
......@@ -18,7 +19,6 @@
#ifndef BackupAmfInfo_H_
#define BackupAmfInfo_H_
#include <string>
#include <vector>
#include "Guami.h"
......@@ -31,9 +31,8 @@ namespace model {
/// <summary>
///
/// </summary>
class BackupAmfInfo
{
public:
class BackupAmfInfo {
public:
BackupAmfInfo();
virtual ~BackupAmfInfo();
......@@ -56,15 +55,16 @@ public:
friend void to_json(nlohmann::json& j, const BackupAmfInfo& o);
friend void from_json(const nlohmann::json& j, BackupAmfInfo& o);
protected:
protected:
std::string m_BackupAmf;
std::vector<Guami> m_GuamiList;
bool m_GuamiListIsSet;
};
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
#endif /* BackupAmfInfo_H_ */
/**
* 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.
*/
* 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 "Cause.h"
......@@ -17,31 +17,20 @@ namespace oai {
namespace smf_server {
namespace model {
Cause::Cause()
{
Cause::Cause() {}
}
Cause::~Cause() {}
Cause::~Cause()
{
}
void Cause::validate()
{
void Cause::validate() {
// TODO: implement validation
}
void to_json(nlohmann::json& j, const Cause& o)
{
void to_json(nlohmann::json& j, const Cause& o) {
j = nlohmann::json();
}
void from_json(const nlohmann::json& j, Cause& o)
{
}
}
}
}
void from_json(const nlohmann::json& j, Cause& o) {}
} // namespace model
} // namespace smf_server
} // namespace oai
/**
* 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.
*/
* 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.
*/
/*
* Cause.h
*
* Possible values are - REL_DUE_TO_HO - EPS_FALLBACK - REL_DUE_TO_UP_SEC - DNN_CONGESTION - S_NSSAI_CONGESTION - REL_DUE_TO_REACTIVATION - 5G_AN_NOT_RESPONDING - REL_DUE_TO_SLICE_NOT_AVAILABLE - REL_DUE_TO_DUPLICATE_SESSION_ID - PDU_SESSION_STATUS_MISMATCH - HO_FAILURE - INSUFFICIENT_UP_RESOURCES - PDU_SESSION_HANDED_OVER
* Possible values are - REL_DUE_TO_HO - EPS_FALLBACK - REL_DUE_TO_UP_SEC -
* DNN_CONGESTION - S_NSSAI_CONGESTION - REL_DUE_TO_REACTIVATION -
* 5G_AN_NOT_RESPONDING - REL_DUE_TO_SLICE_NOT_AVAILABLE -
* REL_DUE_TO_DUPLICATE_SESSION_ID - PDU_SESSION_STATUS_MISMATCH - HO_FAILURE -
* INSUFFICIENT_UP_RESOURCES - PDU_SESSION_HANDED_OVER
*/
#ifndef Cause_H_
#define Cause_H_
#include <nlohmann/json.hpp>
namespace oai {
......@@ -26,11 +30,14 @@ namespace smf_server {
namespace model {
/// <summary>
/// Possible values are - REL_DUE_TO_HO - EPS_FALLBACK - REL_DUE_TO_UP_SEC - DNN_CONGESTION - S_NSSAI_CONGESTION - REL_DUE_TO_REACTIVATION - 5G_AN_NOT_RESPONDING - REL_DUE_TO_SLICE_NOT_AVAILABLE - REL_DUE_TO_DUPLICATE_SESSION_ID - PDU_SESSION_STATUS_MISMATCH - HO_FAILURE - INSUFFICIENT_UP_RESOURCES - PDU_SESSION_HANDED_OVER
/// Possible values are - REL_DUE_TO_HO - EPS_FALLBACK - REL_DUE_TO_UP_SEC -
/// DNN_CONGESTION - S_NSSAI_CONGESTION - REL_DUE_TO_REACTIVATION -
/// 5G_AN_NOT_RESPONDING - REL_DUE_TO_SLICE_NOT_AVAILABLE -
/// REL_DUE_TO_DUPLICATE_SESSION_ID - PDU_SESSION_STATUS_MISMATCH - HO_FAILURE -
/// INSUFFICIENT_UP_RESOURCES - PDU_SESSION_HANDED_OVER
/// </summary>
class Cause
{
public:
class Cause {
public:
Cause();
virtual ~Cause();
......@@ -39,14 +46,14 @@ public:
/////////////////////////////////////////////
/// Cause members
friend void to_json(nlohmann::json& j, const Cause& o);
friend void from_json(const nlohmann::json& j, Cause& o);
protected:
protected:
};
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
#endif /* Cause_H_ */
/**
* NRF NFManagement Service
* NRF NFManagement Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* NRF NFManagement 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
#include "ChangeItem.h"
......@@ -22,29 +23,24 @@ ChangeItem::ChangeItem() {
m_FromIsSet = false;
m_OrigValueIsSet = false;
m_NewValueIsSet = false;
}
ChangeItem::~ChangeItem() {
}
ChangeItem::~ChangeItem() {}
void ChangeItem::validate() {
// TODO: implement validation
}
void to_json(nlohmann::json &j, const ChangeItem &o) {
void to_json(nlohmann::json& j, const ChangeItem& o) {
j = nlohmann::json();
j["op"] = o.m_Op;
j["path"] = o.m_Path;
if (o.fromIsSet())
j["from"] = o.m_From;
if (o.origValueIsSet())
j["origValue"] = o.m_OrigValue;
if (o.newValueIsSet())
j["newValue"] = o.m_NewValue;
if (o.fromIsSet()) j["from"] = o.m_From;
if (o.origValueIsSet()) j["origValue"] = o.m_OrigValue;
if (o.newValueIsSet()) j["newValue"] = o.m_NewValue;
}
void from_json(const nlohmann::json &j, ChangeItem &o) {
void from_json(const nlohmann::json& j, ChangeItem& o) {
j.at("op").get_to(o.m_Op);
j.at("path").get_to(o.m_Path);
if (j.find("from") != j.end()) {
......@@ -64,19 +60,19 @@ void from_json(const nlohmann::json &j, ChangeItem &o) {
ChangeType ChangeItem::getOp() const {
return m_Op;
}
void ChangeItem::setOp(ChangeType const &value) {
void ChangeItem::setOp(ChangeType const& value) {
m_Op = value;
}
std::string ChangeItem::getPath() const {
return m_Path;
}
void ChangeItem::setPath(std::string const &value) {
void ChangeItem::setPath(std::string const& value) {
m_Path = value;
}
std::string ChangeItem::getFrom() const {
return m_From;
}
void ChangeItem::setFrom(std::string const &value) {
void ChangeItem::setFrom(std::string const& value) {
m_From = value;
m_FromIsSet = true;
}
......@@ -89,7 +85,7 @@ void ChangeItem::unsetFrom() {
std::string ChangeItem::getOrigValue() const {
return m_OrigValue;
}
void ChangeItem::setOrigValue(std::string const &value) {
void ChangeItem::setOrigValue(std::string const& value) {
m_OrigValue = value;
m_OrigValueIsSet = true;
}
......@@ -102,7 +98,7 @@ void ChangeItem::unsetOrigValue() {
std::string ChangeItem::getNewValue() const {
return m_NewValue;
}
void ChangeItem::setNewValue(std::string const &value) {
void ChangeItem::setNewValue(std::string const& value) {
m_NewValue = value;
m_NewValueIsSet = true;
}
......@@ -113,7 +109,6 @@ void ChangeItem::unsetNewValue() {
m_NewValueIsSet = false;
}
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
/**
* NRF NFManagement Service
* NRF NFManagement Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* NRF NFManagement 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* ChangeItem.h
......@@ -44,36 +45,37 @@ class ChangeItem {
///
/// </summary>
ChangeType getOp() const;
void setOp(ChangeType const &value);
void setOp(ChangeType const& value);
/// <summary>
///
/// </summary>
std::string getPath() const;
void setPath(std::string const &value);
void setPath(std::string const& value);
/// <summary>
///
/// </summary>
std::string getFrom() const;
void setFrom(std::string const &value);
void setFrom(std::string const& value);
bool fromIsSet() const;
void unsetFrom();
/// <summary>
///
/// </summary>
std::string getOrigValue() const;
void setOrigValue(std::string const &value);
void setOrigValue(std::string const& value);
bool origValueIsSet() const;
void unsetOrigValue();
/// <summary>
///
/// </summary>
std::string getNewValue() const;
void setNewValue(std::string const &value);
void setNewValue(std::string const& value);
bool newValueIsSet() const;
void unsetNewValue();
friend void to_json(nlohmann::json &j, const ChangeItem &o);
friend void from_json(const nlohmann::json &j, ChangeItem &o);
friend void to_json(nlohmann::json& j, const ChangeItem& o);
friend void from_json(const nlohmann::json& j, ChangeItem& o);
protected:
ChangeType m_Op;
......@@ -87,8 +89,8 @@ class ChangeItem {
bool m_NewValueIsSet;
};
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
#endif /* ChangeItem_H_ */
/**
* NRF NFManagement Service
* NRF NFManagement Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* NRF NFManagement 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
#include "ChangeType.h"
......@@ -16,25 +17,20 @@ namespace oai {
namespace smf_server {
namespace model {
ChangeType::ChangeType() {
ChangeType::ChangeType() {}
}
ChangeType::~ChangeType() {
}
ChangeType::~ChangeType() {}
void ChangeType::validate() {
// TODO: implement validation
}
void to_json(nlohmann::json &j, const ChangeType &o) {
void to_json(nlohmann::json& j, const ChangeType& o) {
j = nlohmann::json();
}
void from_json(const nlohmann::json &j, ChangeType &o) {
}
}
}
}
void from_json(const nlohmann::json& j, ChangeType& o) {}
} // namespace model
} // namespace smf_server
} // namespace oai
/**
* NRF NFManagement Service
* NRF NFManagement Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
* NRF NFManagement 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.
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* ChangeType.h
......@@ -37,13 +38,14 @@ class ChangeType {
/////////////////////////////////////////////
/// ChangeType members
friend void to_json(nlohmann::json &j, const ChangeType &o);
friend void from_json(const nlohmann::json &j, ChangeType &o);
friend void to_json(nlohmann::json& j, const ChangeType& o);
friend void from_json(const nlohmann::json& j, ChangeType& o);
protected:
};
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
#endif /* ChangeType_H_ */
/**
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
* Nsmf_EventExposure
* Session Management Event Exposure 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 "DddStatus.h"
......@@ -17,31 +17,20 @@ namespace oai {
namespace smf_server {
namespace model {
DddStatus::DddStatus()
{
DddStatus::DddStatus() {}
}
DddStatus::~DddStatus() {}
DddStatus::~DddStatus()
{
}
void DddStatus::validate()
{
void DddStatus::validate() {
// TODO: implement validation
}
void to_json(nlohmann::json& j, const DddStatus& o)
{
void to_json(nlohmann::json& j, const DddStatus& o) {
j = nlohmann::json();
}
void from_json(const nlohmann::json& j, DddStatus& o)
{
}
}
}
}
void from_json(const nlohmann::json& j, DddStatus& o) {}
} // namespace model
} // namespace smf_server
} // namespace oai
/**
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
/*
* DddStatus.h
*
* Possible values are - BUFFERED: The downlink data are buffered. - TRANSMITTED: The downlink data are transmitted - DISCARDED: The downlink data are discarded.
* Possible values are - BUFFERED: The downlink data are buffered. -
* TRANSMITTED: The downlink data are transmitted - DISCARDED: The downlink data
* are discarded.
*/
#ifndef DddStatus_H_
#define DddStatus_H_
#include <nlohmann/json.hpp>
namespace oai {
......@@ -26,11 +28,12 @@ namespace smf_server {
namespace model {
/// <summary>
/// Possible values are - BUFFERED: The downlink data are buffered. - TRANSMITTED: The downlink data are transmitted - DISCARDED: The downlink data are discarded.
/// Possible values are - BUFFERED: The downlink data are buffered. -
/// TRANSMITTED: The downlink data are transmitted - DISCARDED: The downlink
/// data are discarded.
/// </summary>
class DddStatus
{
public:
class DddStatus {
public:
DddStatus();
virtual ~DddStatus();
......@@ -39,14 +42,14 @@ public:
/////////////////////////////////////////////
/// DddStatus members
friend void to_json(nlohmann::json& j, const DddStatus& o);
friend void from_json(const nlohmann::json& j, DddStatus& o);
protected:
protected:
};
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
#endif /* DddStatus_H_ */
/**
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
* Nsmf_EventExposure
* Session Management Event Exposure 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 "DddTrafficDescriptor.h"
......@@ -17,108 +17,82 @@ namespace oai {
namespace smf_server {
namespace model {
DddTrafficDescriptor::DddTrafficDescriptor()
{
DddTrafficDescriptor::DddTrafficDescriptor() {
m_Ipv4Addr = "";
m_Ipv4AddrIsSet = false;
m_Ipv6AddrIsSet = false;
m_Port = 0;
m_PortIsSet = false;
}
DddTrafficDescriptor::~DddTrafficDescriptor()
{
}
DddTrafficDescriptor::~DddTrafficDescriptor() {}
void DddTrafficDescriptor::validate()
{
void DddTrafficDescriptor::validate() {
// TODO: implement validation
}
void to_json(nlohmann::json& j, const DddTrafficDescriptor& o)
{
void to_json(nlohmann::json& j, const DddTrafficDescriptor& o) {
j = nlohmann::json();
if(o.ipv4AddrIsSet())
j["ipv4Addr"] = o.m_Ipv4Addr;
if(o.ipv6AddrIsSet())
j["ipv6Addr"] = o.m_Ipv6Addr;
if(o.portIsSet())
j["port"] = o.m_Port;
if (o.ipv4AddrIsSet()) j["ipv4Addr"] = o.m_Ipv4Addr;
if (o.ipv6AddrIsSet()) j["ipv6Addr"] = o.m_Ipv6Addr;
if (o.portIsSet()) j["port"] = o.m_Port;
}
void from_json(const nlohmann::json& j, DddTrafficDescriptor& o)
{
if(j.find("ipv4Addr") != j.end())
{
void from_json(const nlohmann::json& j, DddTrafficDescriptor& o) {
if (j.find("ipv4Addr") != j.end()) {
j.at("ipv4Addr").get_to(o.m_Ipv4Addr);
o.m_Ipv4AddrIsSet = true;
}
if(j.find("ipv6Addr") != j.end())
{
if (j.find("ipv6Addr") != j.end()) {
j.at("ipv6Addr").get_to(o.m_Ipv6Addr);
o.m_Ipv6AddrIsSet = true;
}
if(j.find("port") != j.end())
{
if (j.find("port") != j.end()) {
j.at("port").get_to(o.m_Port);
o.m_PortIsSet = true;
}
}
std::string DddTrafficDescriptor::getIpv4Addr() const
{
std::string DddTrafficDescriptor::getIpv4Addr() const {
return m_Ipv4Addr;
}
void DddTrafficDescriptor::setIpv4Addr(std::string const& value)
{
void DddTrafficDescriptor::setIpv4Addr(std::string const& value) {
m_Ipv4Addr = value;
m_Ipv4AddrIsSet = true;
}
bool DddTrafficDescriptor::ipv4AddrIsSet() const
{
bool DddTrafficDescriptor::ipv4AddrIsSet() const {
return m_Ipv4AddrIsSet;
}
void DddTrafficDescriptor::unsetIpv4Addr()
{
void DddTrafficDescriptor::unsetIpv4Addr() {
m_Ipv4AddrIsSet = false;
}
Ipv6Addr DddTrafficDescriptor::getIpv6Addr() const
{
Ipv6Addr DddTrafficDescriptor::getIpv6Addr() const {
return m_Ipv6Addr;
}
void DddTrafficDescriptor::setIpv6Addr(Ipv6Addr const& value)
{
void DddTrafficDescriptor::setIpv6Addr(Ipv6Addr const& value) {
m_Ipv6Addr = value;
m_Ipv6AddrIsSet = true;
}
bool DddTrafficDescriptor::ipv6AddrIsSet() const
{
bool DddTrafficDescriptor::ipv6AddrIsSet() const {
return m_Ipv6AddrIsSet;
}
void DddTrafficDescriptor::unsetIpv6Addr()
{
void DddTrafficDescriptor::unsetIpv6Addr() {
m_Ipv6AddrIsSet = false;
}
int32_t DddTrafficDescriptor::getPort() const
{
int32_t DddTrafficDescriptor::getPort() const {
return m_Port;
}
void DddTrafficDescriptor::setPort(int32_t const value)
{
void DddTrafficDescriptor::setPort(int32_t const value) {
m_Port = value;
m_PortIsSet = true;
}
bool DddTrafficDescriptor::portIsSet() const
{
bool DddTrafficDescriptor::portIsSet() const {
return m_PortIsSet;
}
void DddTrafficDescriptor::unsetPort()
{
void DddTrafficDescriptor::unsetPort() {
m_PortIsSet = false;
}
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
/**
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
/*
* DddTrafficDescriptor.h
*
......@@ -18,7 +19,6 @@
#ifndef DddTrafficDescriptor_H_
#define DddTrafficDescriptor_H_
#include <string>
#include "Ipv6Addr.h"
#include <nlohmann/json.hpp>
......@@ -30,9 +30,8 @@ namespace model {
/// <summary>
///
/// </summary>
class DddTrafficDescriptor
{
public:
class DddTrafficDescriptor {
public:
DddTrafficDescriptor();
virtual ~DddTrafficDescriptor();
......@@ -65,7 +64,8 @@ public:
friend void to_json(nlohmann::json& j, const DddTrafficDescriptor& o);
friend void from_json(const nlohmann::json& j, DddTrafficDescriptor& o);
protected:
protected:
std::string m_Ipv4Addr;
bool m_Ipv4AddrIsSet;
Ipv6Addr m_Ipv6Addr;
......@@ -74,8 +74,8 @@ protected:
bool m_PortIsSet;
};
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
#endif /* DddTrafficDescriptor_H_ */
/**
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
* Nsmf_EventExposure
* Session Management Event Exposure 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 "DnaiChangeType.h"
......@@ -17,31 +17,20 @@ namespace oai {
namespace smf_server {
namespace model {
DnaiChangeType::DnaiChangeType()
{
DnaiChangeType::DnaiChangeType() {}
}
DnaiChangeType::~DnaiChangeType() {}
DnaiChangeType::~DnaiChangeType()
{
}
void DnaiChangeType::validate()
{
void DnaiChangeType::validate() {
// TODO: implement validation
}
void to_json(nlohmann::json& j, const DnaiChangeType& o)
{
void to_json(nlohmann::json& j, const DnaiChangeType& o) {
j = nlohmann::json();
}
void from_json(const nlohmann::json& j, DnaiChangeType& o)
{
}
}
}
}
void from_json(const nlohmann::json& j, DnaiChangeType& o) {}
} // namespace model
} // namespace smf_server
} // namespace oai
/**
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
* Nsmf_EventExposure
* Session Management Event Exposure 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.
*/
/*
* DnaiChangeType.h
*
* Possible values are - EARLY: Early notification of UP path reconfiguration. - EARLY_LATE: Early and late notification of UP path reconfiguration. This value shall only be present in the subscription to the DNAI change event. - LATE: Late notification of UP path reconfiguration.
* Possible values are - EARLY: Early notification of UP path reconfiguration. -
* EARLY_LATE: Early and late notification of UP path reconfiguration. This
* value shall only be present in the subscription to the DNAI change event. -
* LATE: Late notification of UP path reconfiguration.
*/
#ifndef DnaiChangeType_H_
#define DnaiChangeType_H_
#include <nlohmann/json.hpp>
namespace oai {
......@@ -26,11 +29,13 @@ namespace smf_server {
namespace model {
/// <summary>
/// Possible values are - EARLY: Early notification of UP path reconfiguration. - EARLY_LATE: Early and late notification of UP path reconfiguration. This value shall only be present in the subscription to the DNAI change event. - LATE: Late notification of UP path reconfiguration.
/// Possible values are - EARLY: Early notification of UP path reconfiguration.
/// - EARLY_LATE: Early and late notification of UP path reconfiguration. This
/// value shall only be present in the subscription to the DNAI change event. -
/// LATE: Late notification of UP path reconfiguration.
/// </summary>
class DnaiChangeType
{
public:
class DnaiChangeType {
public:
DnaiChangeType();
virtual ~DnaiChangeType();
......@@ -39,14 +44,14 @@ public:
/////////////////////////////////////////////
/// DnaiChangeType members
friend void to_json(nlohmann::json& j, const DnaiChangeType& o);
friend void from_json(const nlohmann::json& j, DnaiChangeType& o);
protected:
protected:
};
}
}
}
} // namespace model
} // namespace smf_server
} // namespace oai
#endif /* DnaiChangeType_H_ */
/**
* 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.
*/
* 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 "DnnSelectionMode.h"
......@@ -17,31 +17,20 @@ namespace oai {
namespace smf_server {
namespace model {
DnnSelectionMode::DnnSelectionMode()
{
DnnSelectionMode::DnnSelectionMode() {}
}
DnnSelectionMode::~DnnSelectionMode() {}
DnnSelectionMode::~DnnSelectionMode()
{
}
void DnnSelectionMode::validate()
{
void DnnSelectionMode::validate() {
// TODO: implement validation
}
void to_json(nlohmann::json& j, const DnnSelectionMode& o)
{
void to_json(nlohmann::json& j, const DnnSelectionMode& o) {
j = nlohmann::json();
}
void from_json(const nlohmann::json& j, DnnSelectionMode& o)
{
}
}
}
}
void from_json(const nlohmann::json& j, DnnSelectionMode& o) {}
} // namespace model
} // namespace smf_server
} // namespace oai
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment