Commit 4cbe461a authored by Tien-Thinh Nguyen's avatar Tien-Thinh Nguyen

Remove local test

parent f47a5519
...@@ -2,5 +2,5 @@ ...@@ -2,5 +2,5 @@
## v1.0.0 -- September 2020 ## ## v1.0.0 -- September 2020 ##
* Initial release * Initial release, SMF can handle basic PDU session-related procedures e.g., session establishment request, session modification and session release.
...@@ -74,6 +74,5 @@ openair-cn5g-smf ...@@ -74,6 +74,5 @@ openair-cn5g-smf
├── oai_smf: SMF main directory, contains the "main" CMakeLists.txt file. ├── oai_smf: SMF main directory, contains the "main" CMakeLists.txt file.
├── pfcp: Generic PFCP stack implementation. ├── pfcp: Generic PFCP stack implementation.
├── smf_app: SMF network functions procedures and contexts. ├── smf_app: SMF network functions procedures and contexts.
├── test: Minimal implementation for AMF, UDM network functions for testing purpose.
└── udp : UDP server implementation. └── udp : UDP server implementation.
</pre> </pre>
...@@ -12,8 +12,8 @@ SMF_CONF[@INSTANCE@]=$INSTANCE ...@@ -12,8 +12,8 @@ SMF_CONF[@INSTANCE@]=$INSTANCE
SMF_CONF[@PREFIX@]=$PREFIX SMF_CONF[@PREFIX@]=$PREFIX
SMF_CONF[@PID_DIRECTORY@]='/var/run' SMF_CONF[@PID_DIRECTORY@]='/var/run'
SMF_CONF[@SMF_INTERFACE_NAME_FOR_N4@]='wlo1' SMF_CONF[@SMF_INTERFACE_NAME_FOR_N4@]='enx0050b6f4b8f0'
SMF_CONF[@SMF_INTERFACE_NAME_FOR_SBI@]='wlo1' SMF_CONF[@SMF_INTERFACE_NAME_FOR_SBI@]='enx0050b6f4b8f0'
SMF_CONF[@SMF_INTERFACE_PORT_FOR_SBI@]='80' SMF_CONF[@SMF_INTERFACE_PORT_FOR_SBI@]='80'
SMF_CONF[@SMF_INTERFACE_HTTP2_PORT_FOR_SBI@]='9090' SMF_CONF[@SMF_INTERFACE_HTTP2_PORT_FOR_SBI@]='9090'
...@@ -27,7 +27,7 @@ SMF_CONF[@AMF_IPV4_ADDRESS@]='192.168.122.183' ...@@ -27,7 +27,7 @@ SMF_CONF[@AMF_IPV4_ADDRESS@]='192.168.122.183'
SMF_CONF[@AMF_PORT@]='80' SMF_CONF[@AMF_PORT@]='80'
SMF_CONF[@AMF_API_VERSION@]='v1' SMF_CONF[@AMF_API_VERSION@]='v1'
SMF_CONF[@UPF_IPV4_ADDRESS@]='192.168.122.151' SMF_CONF[@UPF_IPV4_ADDRESS@]='192.168.12.245'
SMF_CONF[@NRF_IPV4_ADDRESS@]='192.168.1.23' SMF_CONF[@NRF_IPV4_ADDRESS@]='192.168.1.23'
SMF_CONF[@NRF_PORT@]='8080' SMF_CONF[@NRF_PORT@]='8080'
......
...@@ -118,7 +118,7 @@ SMF = ...@@ -118,7 +118,7 @@ SMF =
{ NSSAI_SST = 222, NSSAI_SD = "123", DNN = "default", DEFAULT_SESSION_TYPE = "IPV4", DEFAULT_SSC_MODE = 1, { NSSAI_SST = 222, NSSAI_SD = "123", DNN = "default", DEFAULT_SESSION_TYPE = "IPV4", DEFAULT_SSC_MODE = 1,
QOS_PROFILE_5QI = 6, QOS_PROFILE_PRIORITY_LEVEL = 1, QOS_PROFILE_ARP_PRIORITY_LEVEL = 1, QOS_PROFILE_ARP_PREEMPTCAP = "NOT_PREEMPT", QOS_PROFILE_5QI = 6, QOS_PROFILE_PRIORITY_LEVEL = 1, QOS_PROFILE_ARP_PRIORITY_LEVEL = 1, QOS_PROFILE_ARP_PREEMPTCAP = "NOT_PREEMPT",
QOS_PROFILE_ARP_PREEMPTVULN = "NOT_PREEMPTABLE", SESSION_AMBR_UL = "20Mbps", SESSION_AMBR_DL = "22Mbps"}, QOS_PROFILE_ARP_PREEMPTVULN = "NOT_PREEMPTABLE", SESSION_AMBR_UL = "20Mbps", SESSION_AMBR_DL = "22Mbps"},
{ NSSAI_SST = 111; NSSAI_SD = "321", DNN = "oai", DEFAULT_SESSION_TYPE = "IPV4", DEFAULT_SSC_MODE = 1, { NSSAI_SST = 111; NSSAI_SD = "124", DNN = "oai", DEFAULT_SESSION_TYPE = "IPV4", DEFAULT_SSC_MODE = 1,
QOS_PROFILE_5QI = 7, QOS_PROFILE_PRIORITY_LEVEL = 1, QOS_PROFILE_ARP_PRIORITY_LEVEL = 1, QOS_PROFILE_ARP_PREEMPTCAP = "NOT_PREEMPT", QOS_PROFILE_5QI = 7, QOS_PROFILE_PRIORITY_LEVEL = 1, QOS_PROFILE_ARP_PRIORITY_LEVEL = 1, QOS_PROFILE_ARP_PREEMPTCAP = "NOT_PREEMPT",
QOS_PROFILE_ARP_PREEMPTVULN = "NOT_PREEMPTABLE", SESSION_AMBR_UL = "10Mbps", SESSION_AMBR_DL = "11Mbps"} QOS_PROFILE_ARP_PREEMPTVULN = "NOT_PREEMPTABLE", SESSION_AMBR_UL = "10Mbps", SESSION_AMBR_DL = "11Mbps"}
); );
......
cmake_minimum_required (VERSION 3.2)
project(amf-server)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pg -g3" )
include_directories(model)
include_directories(api)
include_directories(impl)
file(GLOB SRCS
${CMAKE_CURRENT_SOURCE_DIR}/api/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/impl/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/model/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
)
add_executable(${PROJECT_NAME} ${SRCS} )
#add_dependencies(${PROJECT_NAME} PISTACHE NLOHMANN)
target_link_libraries(${PROJECT_NAME} pistache pthread)
# REST API Server for Namf_Communication
## Overview
This API Server was generated by the [OpenAPI Generator](https://openapi-generator.tech) project.
It uses the [Pistache](https://github.com/oktal/pistache) Framework.
## Files organization
The Pistache C++ REST server generator creates three folders:
- `api`: This folder contains the handlers for each method specified in the OpenAPI definition. Every handler extracts
the path and body parameters (if any) from the requests and tries to parse and possibly validate them.
Once this step is completed, the main API class calls the corresponding abstract method that should be implemented
by the developer (a basic implementation is provided under the `impl` folder)
- `impl`: As written above, the implementation folder contains, for each API, the corresponding implementation class,
which extends the main API class and implements the abstract methods.
Every method receives the path and body parameters as constant reference variables and a reference to the response
object, that should be filled with the right response and sent at the end of the method with the command:
response.send(returnCode, responseBody, [mimeType])
- `model`: This folder contains the corresponding class for every object schema found in the OpenAPI specification.
The main folder contains also a file with a main that can be used to start the server.
Of course, is you should customize this file based on your needs
## Installation
First of all, you need to download and install the libraries listed [here](#libraries-required).
Once the libraries are installed, in order to compile and run the server please follow the steps below:
```bash
mkdir build
cd build
cmake ..
make
```
Once compiled run the server:
```bash
cd build
./api-server
```
## Libraries required
- [pistache](http://pistache.io/quickstart)
- [JSON for Modern C++](https://github.com/nlohmann/json/#integration): Please download the `json.hpp` file and
put it under the model/nlohmann folder
## Namespaces
oai.amf.api
oai.amf.model
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "pistache/endpoint.h"
#include "pistache/http.h"
#include "pistache/router.h"
#ifdef __linux__
#include <vector>
#include <signal.h>
#include <unistd.h>
#endif
#include "IndividualSubscriptionDocumentApiImpl.h"
#include "IndividualUeContextDocumentApiImpl.h"
#include "N1N2IndividualSubscriptionDocumentApiImpl.h"
#include "N1N2MessageCollectionDocumentApiImpl.h"
#include "N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApiImpl.h"
#include "NonUEN2MessageNotificationIndividualSubscriptionDocumentApiImpl.h"
#include "NonUEN2MessagesCollectionDocumentApiImpl.h"
#include "NonUEN2MessagesSubscriptionsCollectionDocumentApiImpl.h"
#include "SubscriptionsCollectionDocumentApiImpl.h"
#define PISTACHE_SERVER_THREADS 2
#define PISTACHE_SERVER_MAX_PAYLOAD 32768
static Pistache::Http::Endpoint *httpEndpoint;
#ifdef __linux__
static void sigHandler(int sig){
switch(sig){
case SIGINT:
case SIGQUIT:
case SIGTERM:
case SIGHUP:
default:
httpEndpoint->shutdown();
break;
}
exit(0);
}
static void setUpUnixSignals(std::vector<int> quitSignals) {
sigset_t blocking_mask;
sigemptyset(&blocking_mask);
for (auto sig : quitSignals)
sigaddset(&blocking_mask, sig);
struct sigaction sa;
sa.sa_handler = sigHandler;
sa.sa_mask = blocking_mask;
sa.sa_flags = 0;
for (auto sig : quitSignals)
sigaction(sig, &sa, nullptr);
}
#endif
using namespace oai::amf::api;
int main(int argc, char* argv[]) {
#ifdef __linux__
std::vector<int> sigs{SIGQUIT, SIGINT, SIGTERM, SIGHUP};
setUpUnixSignals(sigs);
#endif
std::string amf_ip_address;
if ((argc != 1) && (argc != 3)) {
std::cout << "Error: Usage is " <<std::endl;
std::cout << " " << argv[0] << " [ -i www.xxx.yy.zz ]" <<std::endl;
return -1;
}
if (argc == 1) {
amf_ip_address.append(std::string("192.168.28.3"));
} else {
int opt = 0;
while ((opt = getopt(argc, argv, "i:")) != -1) {
switch(opt) {
case 'i':
amf_ip_address.append(optarg);
break;
default:
std::cout << "Error: Usage is " <<std::endl;
std::cout << " " << argv[0] << " [ -i www.xxx.yy.zz ]" <<std::endl;
return -1;
break;
}
}
}
Pistache::Address addr(amf_ip_address, Pistache::Port(80));
httpEndpoint = new Pistache::Http::Endpoint((addr));
auto router = std::make_shared<Pistache::Rest::Router>();
auto opts = Pistache::Http::Endpoint::options()
.threads(PISTACHE_SERVER_THREADS);
opts.flags(Pistache::Tcp::Options::ReuseAddr);
opts.maxPayload(PISTACHE_SERVER_MAX_PAYLOAD);
httpEndpoint->init(opts);
IndividualSubscriptionDocumentApiImpl IndividualSubscriptionDocumentApiserver(router);
IndividualSubscriptionDocumentApiserver.init();
IndividualUeContextDocumentApiImpl IndividualUeContextDocumentApiserver(router);
IndividualUeContextDocumentApiserver.init();
N1N2IndividualSubscriptionDocumentApiImpl N1N2IndividualSubscriptionDocumentApiserver(router);
N1N2IndividualSubscriptionDocumentApiserver.init();
N1N2MessageCollectionDocumentApiImpl N1N2MessageCollectionDocumentApiserver(router);
N1N2MessageCollectionDocumentApiserver.init();
N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApiImpl N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApiserver(router);
N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApiserver.init();
NonUEN2MessageNotificationIndividualSubscriptionDocumentApiImpl NonUEN2MessageNotificationIndividualSubscriptionDocumentApiserver(router);
NonUEN2MessageNotificationIndividualSubscriptionDocumentApiserver.init();
NonUEN2MessagesCollectionDocumentApiImpl NonUEN2MessagesCollectionDocumentApiserver(router);
NonUEN2MessagesCollectionDocumentApiserver.init();
NonUEN2MessagesSubscriptionsCollectionDocumentApiImpl NonUEN2MessagesSubscriptionsCollectionDocumentApiserver(router);
NonUEN2MessagesSubscriptionsCollectionDocumentApiserver.init();
SubscriptionsCollectionDocumentApiImpl SubscriptionsCollectionDocumentApiserver(router);
SubscriptionsCollectionDocumentApiserver.init();
std::cout << "AMF server is listening on address: " << amf_ip_address.c_str() << std::endl;
httpEndpoint->setHandler(router->handler());
httpEndpoint->serve();
httpEndpoint->shutdown();
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "IndividualSubscriptionDocumentApi.h"
#include "Helpers.h"
namespace oai {
namespace amf {
namespace api {
using namespace org::openapitools::server::helpers;
using namespace oai::amf::model;
IndividualSubscriptionDocumentApi::IndividualSubscriptionDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void IndividualSubscriptionDocumentApi::init() {
setupRoutes();
}
void IndividualSubscriptionDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
Routes::Put(*router, base + "/subscriptions/:subscriptionId", Routes::bind(&IndividualSubscriptionDocumentApi::a_mf_status_change_subscribe_modfy_handler, this));
Routes::Delete(*router, base + "/subscriptions/:subscriptionId", Routes::bind(&IndividualSubscriptionDocumentApi::a_mf_status_change_un_subscribe_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&IndividualSubscriptionDocumentApi::individual_subscription_document_api_default_handler, this));
}
void IndividualSubscriptionDocumentApi::a_mf_status_change_subscribe_modfy_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto subscriptionId = request.param(":subscriptionId").as<std::string>();
// Getting the body param
SubscriptionData subscriptionData;
try {
nlohmann::json::parse(request.body()).get_to(subscriptionData);
this->a_mf_status_change_subscribe_modfy(subscriptionId, subscriptionData, response);
} 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
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void IndividualSubscriptionDocumentApi::a_mf_status_change_un_subscribe_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto subscriptionId = request.param(":subscriptionId").as<std::string>();
try {
this->a_mf_status_change_un_subscribe(subscriptionId, response);
} 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
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");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* IndividualSubscriptionDocumentApi.h
*
*
*/
#ifndef IndividualSubscriptionDocumentApi_H_
#define IndividualSubscriptionDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include "ProblemDetails.h"
#include "SubscriptionData.h"
#include <string>
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class IndividualSubscriptionDocumentApi {
public:
IndividualSubscriptionDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~IndividualSubscriptionDocumentApi() {}
void init();
const std::string base = "/namf-comm/v1";
private:
void setupRoutes();
void a_mf_status_change_subscribe_modfy_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void a_mf_status_change_un_subscribe_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;
/// <summary>
/// Namf_Communication AMF Status Change Subscribe Modify service Operation
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="subscriptionId">AMF Status Change Subscription Identifier</param>
/// <param name="subscriptionData"></param>
virtual void a_mf_status_change_subscribe_modfy(const std::string &subscriptionId, const SubscriptionData &subscriptionData, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Namf_Communication AMF Status Change UnSubscribe service Operation
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="subscriptionId">AMF Status Change Subscription Identifier</param>
virtual void a_mf_status_change_un_subscribe(const std::string &subscriptionId, Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
#endif /* IndividualSubscriptionDocumentApi_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "IndividualUeContextDocumentApi.h"
#include "Helpers.h"
namespace oai {
namespace amf {
namespace api {
using namespace org::openapitools::server::helpers;
using namespace oai::amf::model;
IndividualUeContextDocumentApi::IndividualUeContextDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void IndividualUeContextDocumentApi::init() {
setupRoutes();
}
void IndividualUeContextDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
Routes::Put(*router, base + "/ue-contexts/:ueContextId", Routes::bind(&IndividualUeContextDocumentApi::create_ue_context_handler, this));
Routes::Post(*router, base + "/ue-contexts/:ueContextId/assign-ebi", Routes::bind(&IndividualUeContextDocumentApi::e_bi_assignment_handler, this));
Routes::Post(*router, base + "/ue-contexts/:ueContextId/transfer-update", Routes::bind(&IndividualUeContextDocumentApi::registration_status_update_handler, this));
Routes::Post(*router, base + "/ue-contexts/:ueContextId/release", Routes::bind(&IndividualUeContextDocumentApi::release_ue_context_handler, this));
Routes::Post(*router, base + "/ue-contexts/:ueContextId/transfer", Routes::bind(&IndividualUeContextDocumentApi::u_e_context_transfer_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&IndividualUeContextDocumentApi::individual_ue_context_document_api_default_handler, this));
}
void IndividualUeContextDocumentApi::create_ue_context_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueContextId = request.param(":ueContextId").as<std::string>();
// Getting the body param
Inline_object inlineObject;
try {
nlohmann::json::parse(request.body()).get_to(inlineObject);
this->create_ue_context(ueContextId, inlineObject, response);
} 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
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void IndividualUeContextDocumentApi::e_bi_assignment_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueContextId = request.param(":ueContextId").as<std::string>();
// Getting the body param
AssignEbiData assignEbiData;
try {
nlohmann::json::parse(request.body()).get_to(assignEbiData);
this->e_bi_assignment(ueContextId, assignEbiData, response);
} 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
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void IndividualUeContextDocumentApi::registration_status_update_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueContextId = request.param(":ueContextId").as<std::string>();
// Getting the body param
UeRegStatusUpdateReqData ueRegStatusUpdateReqData;
try {
nlohmann::json::parse(request.body()).get_to(ueRegStatusUpdateReqData);
this->registration_status_update(ueContextId, ueRegStatusUpdateReqData, response);
} 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
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void IndividualUeContextDocumentApi::release_ue_context_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueContextId = request.param(":ueContextId").as<std::string>();
// Getting the body param
UEContextRelease uEContextRelease;
try {
nlohmann::json::parse(request.body()).get_to(uEContextRelease);
this->release_ue_context(ueContextId, uEContextRelease, response);
} 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
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void IndividualUeContextDocumentApi::u_e_context_transfer_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueContextId = request.param(":ueContextId").as<std::string>();
// Getting the body param
UeContextTransferReqData ueContextTransferReqData;
try {
nlohmann::json::parse(request.body()).get_to(ueContextTransferReqData);
this->u_e_context_transfer(ueContextId, ueContextTransferReqData, response);
} 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
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void IndividualUeContextDocumentApi::individual_ue_context_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");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* IndividualUeContextDocumentApi.h
*
*
*/
#ifndef IndividualUeContextDocumentApi_H_
#define IndividualUeContextDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include "AssignEbiData.h"
#include "AssignEbiError.h"
#include "AssignedEbiData.h"
#include "Inline_object.h"
#include "ProblemDetails.h"
#include "UEContextRelease.h"
#include "UeContextCreateError.h"
#include "UeContextCreatedData.h"
#include "UeContextTransferReqData.h"
#include "UeContextTransferRspData.h"
#include "UeRegStatusUpdateReqData.h"
#include "UeRegStatusUpdateRspData.h"
#include <string>
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class IndividualUeContextDocumentApi {
public:
IndividualUeContextDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~IndividualUeContextDocumentApi() {}
void init();
const std::string base = "/namf-comm/v1";
private:
void setupRoutes();
void create_ue_context_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void e_bi_assignment_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void registration_status_update_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void release_ue_context_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void u_e_context_transfer_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void individual_ue_context_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Namf_Communication CreateUEContext service Operation
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueContextId">UE Context Identifier</param>
/// <param name="inlineObject"></param>
virtual void create_ue_context(const std::string &ueContextId, const Inline_object &inlineObject, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Namf_Communication EBI Assignment service Operation
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueContextId">UE Context Identifier</param>
/// <param name="assignEbiData"></param>
virtual void e_bi_assignment(const std::string &ueContextId, const AssignEbiData &assignEbiData, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Namf_Communication RegistrationStatusUpdate service Operation
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueContextId">UE Context Identifier</param>
/// <param name="ueRegStatusUpdateReqData"></param>
virtual void registration_status_update(const std::string &ueContextId, const UeRegStatusUpdateReqData &ueRegStatusUpdateReqData, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Namf_Communication ReleaseUEContext service Operation
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueContextId">UE Context Identifier</param>
/// <param name="uEContextRelease"></param>
virtual void release_ue_context(const std::string &ueContextId, const UEContextRelease &uEContextRelease, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Namf_Communication UEContextTransfer service Operation
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueContextId">UE Context Identifier</param>
/// <param name="ueContextTransferReqData"></param>
virtual void u_e_context_transfer(const std::string &ueContextId, const UeContextTransferReqData &ueContextTransferReqData, Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
#endif /* IndividualUeContextDocumentApi_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "N1N2IndividualSubscriptionDocumentApi.h"
#include "Helpers.h"
namespace oai {
namespace amf {
namespace api {
using namespace org::openapitools::server::helpers;
using namespace oai::amf::model;
N1N2IndividualSubscriptionDocumentApi::N1N2IndividualSubscriptionDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void N1N2IndividualSubscriptionDocumentApi::init() {
setupRoutes();
}
void N1N2IndividualSubscriptionDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
Routes::Delete(*router, base + "/ue-contexts/:ueContextId/n1-n2-messages/subscriptions/:subscriptionId", Routes::bind(&N1N2IndividualSubscriptionDocumentApi::n1_n2_message_un_subscribe_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&N1N2IndividualSubscriptionDocumentApi::n1_n2_individual_subscription_document_api_default_handler, this));
}
void N1N2IndividualSubscriptionDocumentApi::n1_n2_message_un_subscribe_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueContextId = request.param(":ueContextId").as<std::string>();
auto subscriptionId = request.param(":subscriptionId").as<std::string>();
try {
this->n1_n2_message_un_subscribe(ueContextId, subscriptionId, response);
} 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
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void N1N2IndividualSubscriptionDocumentApi::n1_n2_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");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* N1N2IndividualSubscriptionDocumentApi.h
*
*
*/
#ifndef N1N2IndividualSubscriptionDocumentApi_H_
#define N1N2IndividualSubscriptionDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include "ProblemDetails.h"
#include <string>
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class N1N2IndividualSubscriptionDocumentApi {
public:
N1N2IndividualSubscriptionDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~N1N2IndividualSubscriptionDocumentApi() {}
void init();
const std::string base = "/namf-comm/v1";
private:
void setupRoutes();
void n1_n2_message_un_subscribe_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void n1_n2_individual_subscription_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Namf_Communication N1N2 Message UnSubscribe (UE Specific) service Operation
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueContextId">UE Context Identifier</param>
/// <param name="subscriptionId">Subscription Identifier</param>
virtual void n1_n2_message_un_subscribe(const std::string &ueContextId, const std::string &subscriptionId, Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
#endif /* N1N2IndividualSubscriptionDocumentApi_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "N1N2MessageCollectionDocumentApi.h"
#include "Helpers.h"
namespace oai {
namespace amf {
namespace api {
using namespace org::openapitools::server::helpers;
using namespace oai::amf::model;
N1N2MessageCollectionDocumentApi::N1N2MessageCollectionDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void N1N2MessageCollectionDocumentApi::init() {
setupRoutes();
}
void N1N2MessageCollectionDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
Routes::Post(*router, base + "/ue-contexts/:ueContextId/n1-n2-messages", Routes::bind(&N1N2MessageCollectionDocumentApi::n1_n2_message_transfer_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&N1N2MessageCollectionDocumentApi::n1_n2_message_collection_document_api_default_handler, this));
}
void N1N2MessageCollectionDocumentApi::n1_n2_message_transfer_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueContextId = request.param(":ueContextId").as<std::string>();
std::cout <<"Received a N1N2MessageTrasfer request with ueID " << ueContextId.c_str()<<std::endl;
// Getting the body param
//N1N2MessageTransferReqData n1N2MessageTransferReqData;
nlohmann::json response_data;
response_data["cause"] = "N1_N2_TRANSFER_INITIATED";
response_data.dump().c_str();
response.headers().add<Pistache::Http::Header::ContentType>(Pistache::Http::Mime::MediaType("application/json"));
response.send(Pistache::Http::Code::Ok, response_data.dump().c_str());
/*
try {
nlohmann::json::parse(request.body()).get_to(n1N2MessageTransferReqData);
this->n1_n2_message_transfer(ueContextId, n1N2MessageTransferReqData, response);
} 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
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
*/
}
void N1N2MessageCollectionDocumentApi::n1_n2_message_collection_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");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* N1N2MessageCollectionDocumentApi.h
*
*
*/
#ifndef N1N2MessageCollectionDocumentApi_H_
#define N1N2MessageCollectionDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include "N1N2MessageTransferError.h"
#include "N1N2MessageTransferReqData.h"
#include "N1N2MessageTransferRspData.h"
#include "ProblemDetails.h"
#include "ProblemDetails_2.h"
#include <string>
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class N1N2MessageCollectionDocumentApi {
public:
N1N2MessageCollectionDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~N1N2MessageCollectionDocumentApi() {}
void init();
const std::string base = "/namf-comm/v1";
private:
void setupRoutes();
void n1_n2_message_transfer_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void n1_n2_message_collection_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Namf_Communication N1N2 Message Transfer (UE Specific) service Operation
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueContextId">UE Context Identifier</param>
/// <param name="n1N2MessageTransferReqData"></param>
virtual void n1_n2_message_transfer(const std::string &ueContextId, const N1N2MessageTransferReqData &n1N2MessageTransferReqData, Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
#endif /* N1N2MessageCollectionDocumentApi_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi.h"
#include "Helpers.h"
namespace oai {
namespace amf {
namespace api {
using namespace org::openapitools::server::helpers;
using namespace oai::amf::model;
N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi::N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi::init() {
setupRoutes();
}
void N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
Routes::Post(*router, base + "/ue-contexts/:ueContextId/n1-n2-messages/subscriptions", Routes::bind(&N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi::n1_n2_message_subscribe_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi::n1_n2_subscriptions_collection_for_individual_ue_contexts_document_api_default_handler, this));
}
void N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi::n1_n2_message_subscribe_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueContextId = request.param(":ueContextId").as<std::string>();
// Getting the body param
UeN1N2InfoSubscriptionCreateData ueN1N2InfoSubscriptionCreateData;
try {
nlohmann::json::parse(request.body()).get_to(ueN1N2InfoSubscriptionCreateData);
this->n1_n2_message_subscribe(ueContextId, ueN1N2InfoSubscriptionCreateData, response);
} 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
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi::n1_n2_subscriptions_collection_for_individual_ue_contexts_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");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi.h
*
*
*/
#ifndef N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi_H_
#define N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include "ProblemDetails.h"
#include "UeN1N2InfoSubscriptionCreateData.h"
#include "UeN1N2InfoSubscriptionCreatedData.h"
#include <string>
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi {
public:
N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi() {}
void init();
const std::string base = "/namf-comm/v1";
private:
void setupRoutes();
void n1_n2_message_subscribe_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void n1_n2_subscriptions_collection_for_individual_ue_contexts_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Namf_Communication N1N2 Message Subscribe (UE Specific) service Operation
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueContextId">UE Context Identifier</param>
/// <param name="ueN1N2InfoSubscriptionCreateData"></param>
virtual void n1_n2_message_subscribe(const std::string &ueContextId, const UeN1N2InfoSubscriptionCreateData &ueN1N2InfoSubscriptionCreateData, Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
#endif /* N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "NonUEN2MessageNotificationIndividualSubscriptionDocumentApi.h"
#include "Helpers.h"
namespace oai {
namespace amf {
namespace api {
using namespace org::openapitools::server::helpers;
using namespace oai::amf::model;
NonUEN2MessageNotificationIndividualSubscriptionDocumentApi::NonUEN2MessageNotificationIndividualSubscriptionDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void NonUEN2MessageNotificationIndividualSubscriptionDocumentApi::init() {
setupRoutes();
}
void NonUEN2MessageNotificationIndividualSubscriptionDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
Routes::Delete(*router, base + "/non-ue-n2-messages/subscriptions/:n2NotifySubscriptionId", Routes::bind(&NonUEN2MessageNotificationIndividualSubscriptionDocumentApi::non_ue_n2_info_un_subscribe_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&NonUEN2MessageNotificationIndividualSubscriptionDocumentApi::non_uen2_message_notification_individual_subscription_document_api_default_handler, this));
}
void NonUEN2MessageNotificationIndividualSubscriptionDocumentApi::non_ue_n2_info_un_subscribe_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto n2NotifySubscriptionId = request.param(":n2NotifySubscriptionId").as<std::string>();
try {
this->non_ue_n2_info_un_subscribe(n2NotifySubscriptionId, response);
} 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
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void NonUEN2MessageNotificationIndividualSubscriptionDocumentApi::non_uen2_message_notification_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");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* NonUEN2MessageNotificationIndividualSubscriptionDocumentApi.h
*
*
*/
#ifndef NonUEN2MessageNotificationIndividualSubscriptionDocumentApi_H_
#define NonUEN2MessageNotificationIndividualSubscriptionDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include "ProblemDetails.h"
#include <string>
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class NonUEN2MessageNotificationIndividualSubscriptionDocumentApi {
public:
NonUEN2MessageNotificationIndividualSubscriptionDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~NonUEN2MessageNotificationIndividualSubscriptionDocumentApi() {}
void init();
const std::string base = "/namf-comm/v1";
private:
void setupRoutes();
void non_ue_n2_info_un_subscribe_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void non_uen2_message_notification_individual_subscription_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Namf_Communication Non UE N2 Info UnSubscribe service Operation
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="n2NotifySubscriptionId">N2 info Subscription Identifier</param>
virtual void non_ue_n2_info_un_subscribe(const std::string &n2NotifySubscriptionId, Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
#endif /* NonUEN2MessageNotificationIndividualSubscriptionDocumentApi_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "NonUEN2MessagesCollectionDocumentApi.h"
#include "Helpers.h"
namespace oai {
namespace amf {
namespace api {
using namespace org::openapitools::server::helpers;
using namespace oai::amf::model;
NonUEN2MessagesCollectionDocumentApi::NonUEN2MessagesCollectionDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void NonUEN2MessagesCollectionDocumentApi::init() {
setupRoutes();
}
void NonUEN2MessagesCollectionDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
Routes::Post(*router, base + "/non-ue-n2-messages/transfer", Routes::bind(&NonUEN2MessagesCollectionDocumentApi::non_ue_n2_message_transfer_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&NonUEN2MessagesCollectionDocumentApi::non_uen2_messages_collection_document_api_default_handler, this));
}
void NonUEN2MessagesCollectionDocumentApi::non_ue_n2_message_transfer_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the body param
N2InformationTransferReqData n2InformationTransferReqData;
try {
nlohmann::json::parse(request.body()).get_to(n2InformationTransferReqData);
this->non_ue_n2_message_transfer(n2InformationTransferReqData, response);
} 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
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void NonUEN2MessagesCollectionDocumentApi::non_uen2_messages_collection_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");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* NonUEN2MessagesCollectionDocumentApi.h
*
*
*/
#ifndef NonUEN2MessagesCollectionDocumentApi_H_
#define NonUEN2MessagesCollectionDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include "N2InformationTransferError.h"
#include "N2InformationTransferReqData.h"
#include "N2InformationTransferRspData.h"
#include "ProblemDetails.h"
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class NonUEN2MessagesCollectionDocumentApi {
public:
NonUEN2MessagesCollectionDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~NonUEN2MessagesCollectionDocumentApi() {}
void init();
const std::string base = "/namf-comm/v1";
private:
void setupRoutes();
void non_ue_n2_message_transfer_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void non_uen2_messages_collection_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Namf_Communication Non UE N2 Message Transfer service Operation
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="n2InformationTransferReqData"></param>
virtual void non_ue_n2_message_transfer(const N2InformationTransferReqData &n2InformationTransferReqData, Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
#endif /* NonUEN2MessagesCollectionDocumentApi_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "NonUEN2MessagesSubscriptionsCollectionDocumentApi.h"
#include "Helpers.h"
namespace oai {
namespace amf {
namespace api {
using namespace org::openapitools::server::helpers;
using namespace oai::amf::model;
NonUEN2MessagesSubscriptionsCollectionDocumentApi::NonUEN2MessagesSubscriptionsCollectionDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void NonUEN2MessagesSubscriptionsCollectionDocumentApi::init() {
setupRoutes();
}
void NonUEN2MessagesSubscriptionsCollectionDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
Routes::Post(*router, base + "/non-ue-n2-messages/subscriptions", Routes::bind(&NonUEN2MessagesSubscriptionsCollectionDocumentApi::non_ue_n2_info_subscribe_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&NonUEN2MessagesSubscriptionsCollectionDocumentApi::non_uen2_messages_subscriptions_collection_document_api_default_handler, this));
}
void NonUEN2MessagesSubscriptionsCollectionDocumentApi::non_ue_n2_info_subscribe_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the body param
NonUeN2InfoSubscriptionCreateData nonUeN2InfoSubscriptionCreateData;
try {
nlohmann::json::parse(request.body()).get_to(nonUeN2InfoSubscriptionCreateData);
this->non_ue_n2_info_subscribe(nonUeN2InfoSubscriptionCreateData, response);
} 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
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void NonUEN2MessagesSubscriptionsCollectionDocumentApi::non_uen2_messages_subscriptions_collection_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");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* NonUEN2MessagesSubscriptionsCollectionDocumentApi.h
*
*
*/
#ifndef NonUEN2MessagesSubscriptionsCollectionDocumentApi_H_
#define NonUEN2MessagesSubscriptionsCollectionDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include "NonUeN2InfoSubscriptionCreateData.h"
#include "NonUeN2InfoSubscriptionCreatedData.h"
#include "ProblemDetails.h"
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class NonUEN2MessagesSubscriptionsCollectionDocumentApi {
public:
NonUEN2MessagesSubscriptionsCollectionDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~NonUEN2MessagesSubscriptionsCollectionDocumentApi() {}
void init();
const std::string base = "/namf-comm/v1";
private:
void setupRoutes();
void non_ue_n2_info_subscribe_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void non_uen2_messages_subscriptions_collection_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Namf_Communication Non UE N2 Info Subscribe service Operation
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="nonUeN2InfoSubscriptionCreateData"></param>
virtual void non_ue_n2_info_subscribe(const NonUeN2InfoSubscriptionCreateData &nonUeN2InfoSubscriptionCreateData, Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
#endif /* NonUEN2MessagesSubscriptionsCollectionDocumentApi_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "SubscriptionsCollectionDocumentApi.h"
#include "Helpers.h"
namespace oai {
namespace amf {
namespace api {
using namespace org::openapitools::server::helpers;
using namespace oai::amf::model;
SubscriptionsCollectionDocumentApi::SubscriptionsCollectionDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void SubscriptionsCollectionDocumentApi::init() {
setupRoutes();
}
void SubscriptionsCollectionDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
Routes::Post(*router, base + "/subscriptions", Routes::bind(&SubscriptionsCollectionDocumentApi::a_mf_status_change_subscribe_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&SubscriptionsCollectionDocumentApi::subscriptions_collection_document_api_default_handler, this));
}
void SubscriptionsCollectionDocumentApi::a_mf_status_change_subscribe_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the body param
SubscriptionData subscriptionData;
try {
nlohmann::json::parse(request.body()).get_to(subscriptionData);
this->a_mf_status_change_subscribe(subscriptionData, response);
} 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
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void SubscriptionsCollectionDocumentApi::subscriptions_collection_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");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* SubscriptionsCollectionDocumentApi.h
*
*
*/
#ifndef SubscriptionsCollectionDocumentApi_H_
#define SubscriptionsCollectionDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include "ProblemDetails.h"
#include "SubscriptionData.h"
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class SubscriptionsCollectionDocumentApi {
public:
SubscriptionsCollectionDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~SubscriptionsCollectionDocumentApi() {}
void init();
const std::string base = "/namf-comm/v1";
private:
void setupRoutes();
void a_mf_status_change_subscribe_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void subscriptions_collection_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Namf_Communication AMF Status Change Subscribe service Operation
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="subscriptionData"></param>
virtual void a_mf_status_change_subscribe(const SubscriptionData &subscriptionData, Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
#endif /* SubscriptionsCollectionDocumentApi_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "IndividualSubscriptionDocumentApiImpl.h"
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
IndividualSubscriptionDocumentApiImpl::IndividualSubscriptionDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router> rtr)
: IndividualSubscriptionDocumentApi(rtr)
{ }
void IndividualSubscriptionDocumentApiImpl::a_mf_status_change_subscribe_modfy(const std::string &subscriptionId, const SubscriptionData &subscriptionData, Pistache::Http::ResponseWriter &response) {
response.send(Pistache::Http::Code::Ok, "Do some magic\n");
}
void IndividualSubscriptionDocumentApiImpl::a_mf_status_change_un_subscribe(const std::string &subscriptionId, Pistache::Http::ResponseWriter &response) {
response.send(Pistache::Http::Code::Ok, "Do some magic\n");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* 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>
#include <memory>
#include <IndividualSubscriptionDocumentApi.h>
#include <pistache/optional.h>
#include "ProblemDetails.h"
#include "SubscriptionData.h"
#include <string>
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class IndividualSubscriptionDocumentApiImpl : public oai::amf::api::IndividualSubscriptionDocumentApi {
public:
IndividualSubscriptionDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router>);
~IndividualSubscriptionDocumentApiImpl() {}
void a_mf_status_change_subscribe_modfy(const std::string &subscriptionId, const SubscriptionData &subscriptionData, Pistache::Http::ResponseWriter &response);
void a_mf_status_change_un_subscribe(const std::string &subscriptionId, Pistache::Http::ResponseWriter &response);
};
}
}
}
#endif
\ No newline at end of file
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "IndividualUeContextDocumentApiImpl.h"
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
IndividualUeContextDocumentApiImpl::IndividualUeContextDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router> rtr)
: IndividualUeContextDocumentApi(rtr)
{ }
void IndividualUeContextDocumentApiImpl::create_ue_context(const std::string &ueContextId, const Inline_object &inlineObject, Pistache::Http::ResponseWriter &response) {
response.send(Pistache::Http::Code::Ok, "Do some magic\n");
}
void IndividualUeContextDocumentApiImpl::e_bi_assignment(const std::string &ueContextId, const AssignEbiData &assignEbiData, Pistache::Http::ResponseWriter &response) {
response.send(Pistache::Http::Code::Ok, "Do some magic\n");
}
void IndividualUeContextDocumentApiImpl::registration_status_update(const std::string &ueContextId, const UeRegStatusUpdateReqData &ueRegStatusUpdateReqData, Pistache::Http::ResponseWriter &response) {
response.send(Pistache::Http::Code::Ok, "Do some magic\n");
}
void IndividualUeContextDocumentApiImpl::release_ue_context(const std::string &ueContextId, const UEContextRelease &uEContextRelease, Pistache::Http::ResponseWriter &response) {
response.send(Pistache::Http::Code::Ok, "Do some magic\n");
}
void IndividualUeContextDocumentApiImpl::u_e_context_transfer(const std::string &ueContextId, const UeContextTransferReqData &ueContextTransferReqData, Pistache::Http::ResponseWriter &response) {
response.send(Pistache::Http::Code::Ok, "Do some magic\n");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* IndividualUeContextDocumentApiImpl.h
*
*
*/
#ifndef INDIVIDUAL_UE_CONTEXT_DOCUMENT_API_IMPL_H_
#define INDIVIDUAL_UE_CONTEXT_DOCUMENT_API_IMPL_H_
#include <pistache/endpoint.h>
#include <pistache/http.h>
#include <pistache/router.h>
#include <memory>
#include <IndividualUeContextDocumentApi.h>
#include <pistache/optional.h>
#include "AssignEbiData.h"
#include "AssignEbiError.h"
#include "AssignedEbiData.h"
#include "Inline_object.h"
#include "ProblemDetails.h"
#include "UEContextRelease.h"
#include "UeContextCreateError.h"
#include "UeContextCreatedData.h"
#include "UeContextTransferReqData.h"
#include "UeContextTransferRspData.h"
#include "UeRegStatusUpdateReqData.h"
#include "UeRegStatusUpdateRspData.h"
#include <string>
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class IndividualUeContextDocumentApiImpl : public oai::amf::api::IndividualUeContextDocumentApi {
public:
IndividualUeContextDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router>);
~IndividualUeContextDocumentApiImpl() {}
void create_ue_context(const std::string &ueContextId, const Inline_object &inlineObject, Pistache::Http::ResponseWriter &response);
void e_bi_assignment(const std::string &ueContextId, const AssignEbiData &assignEbiData, Pistache::Http::ResponseWriter &response);
void registration_status_update(const std::string &ueContextId, const UeRegStatusUpdateReqData &ueRegStatusUpdateReqData, Pistache::Http::ResponseWriter &response);
void release_ue_context(const std::string &ueContextId, const UEContextRelease &uEContextRelease, Pistache::Http::ResponseWriter &response);
void u_e_context_transfer(const std::string &ueContextId, const UeContextTransferReqData &ueContextTransferReqData, Pistache::Http::ResponseWriter &response);
};
}
}
}
#endif
\ No newline at end of file
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "N1N2IndividualSubscriptionDocumentApiImpl.h"
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
N1N2IndividualSubscriptionDocumentApiImpl::N1N2IndividualSubscriptionDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router> rtr)
: N1N2IndividualSubscriptionDocumentApi(rtr)
{ }
void N1N2IndividualSubscriptionDocumentApiImpl::n1_n2_message_un_subscribe(const std::string &ueContextId, const std::string &subscriptionId, Pistache::Http::ResponseWriter &response) {
response.send(Pistache::Http::Code::Ok, "Do some magic\n");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* N1N2IndividualSubscriptionDocumentApiImpl.h
*
*
*/
#ifndef N1_N2_INDIVIDUAL_SUBSCRIPTION_DOCUMENT_API_IMPL_H_
#define N1_N2_INDIVIDUAL_SUBSCRIPTION_DOCUMENT_API_IMPL_H_
#include <pistache/endpoint.h>
#include <pistache/http.h>
#include <pistache/router.h>
#include <memory>
#include <N1N2IndividualSubscriptionDocumentApi.h>
#include <pistache/optional.h>
#include "ProblemDetails.h"
#include <string>
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class N1N2IndividualSubscriptionDocumentApiImpl : public oai::amf::api::N1N2IndividualSubscriptionDocumentApi {
public:
N1N2IndividualSubscriptionDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router>);
~N1N2IndividualSubscriptionDocumentApiImpl() {}
void n1_n2_message_un_subscribe(const std::string &ueContextId, const std::string &subscriptionId, Pistache::Http::ResponseWriter &response);
};
}
}
}
#endif
\ No newline at end of file
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "N1N2MessageCollectionDocumentApiImpl.h"
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
N1N2MessageCollectionDocumentApiImpl::N1N2MessageCollectionDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router> rtr)
: N1N2MessageCollectionDocumentApi(rtr)
{ }
void N1N2MessageCollectionDocumentApiImpl::n1_n2_message_transfer(const std::string &ueContextId, const N1N2MessageTransferReqData &n1N2MessageTransferReqData, Pistache::Http::ResponseWriter &response) {
response.send(Pistache::Http::Code::Ok, "Do some magic\n");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* N1N2MessageCollectionDocumentApiImpl.h
*
*
*/
#ifndef N1_N2_MESSAGE_COLLECTION_DOCUMENT_API_IMPL_H_
#define N1_N2_MESSAGE_COLLECTION_DOCUMENT_API_IMPL_H_
#include <pistache/endpoint.h>
#include <pistache/http.h>
#include <pistache/router.h>
#include <memory>
#include <N1N2MessageCollectionDocumentApi.h>
#include <pistache/optional.h>
#include "N1N2MessageTransferError.h"
#include "N1N2MessageTransferReqData.h"
#include "N1N2MessageTransferRspData.h"
#include "ProblemDetails.h"
#include "ProblemDetails_2.h"
#include <string>
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class N1N2MessageCollectionDocumentApiImpl : public oai::amf::api::N1N2MessageCollectionDocumentApi {
public:
N1N2MessageCollectionDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router>);
~N1N2MessageCollectionDocumentApiImpl() {}
void n1_n2_message_transfer(const std::string &ueContextId, const N1N2MessageTransferReqData &n1N2MessageTransferReqData, Pistache::Http::ResponseWriter &response);
};
}
}
}
#endif
\ No newline at end of file
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApiImpl.h"
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApiImpl::N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router> rtr)
: N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi(rtr)
{ }
void N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApiImpl::n1_n2_message_subscribe(const std::string &ueContextId, const UeN1N2InfoSubscriptionCreateData &ueN1N2InfoSubscriptionCreateData, Pistache::Http::ResponseWriter &response) {
response.send(Pistache::Http::Code::Ok, "Do some magic\n");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApiImpl.h
*
*
*/
#ifndef N1_N2_SUBSCRIPTIONS_COLLECTION_FOR_INDIVIDUAL_UE_CONTEXTS_DOCUMENT_API_IMPL_H_
#define N1_N2_SUBSCRIPTIONS_COLLECTION_FOR_INDIVIDUAL_UE_CONTEXTS_DOCUMENT_API_IMPL_H_
#include <pistache/endpoint.h>
#include <pistache/http.h>
#include <pistache/router.h>
#include <memory>
#include <N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi.h>
#include <pistache/optional.h>
#include "ProblemDetails.h"
#include "UeN1N2InfoSubscriptionCreateData.h"
#include "UeN1N2InfoSubscriptionCreatedData.h"
#include <string>
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApiImpl : public oai::amf::api::N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApi {
public:
N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router>);
~N1N2SubscriptionsCollectionForIndividualUEContextsDocumentApiImpl() {}
void n1_n2_message_subscribe(const std::string &ueContextId, const UeN1N2InfoSubscriptionCreateData &ueN1N2InfoSubscriptionCreateData, Pistache::Http::ResponseWriter &response);
};
}
}
}
#endif
\ No newline at end of file
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "NonUEN2MessageNotificationIndividualSubscriptionDocumentApiImpl.h"
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
NonUEN2MessageNotificationIndividualSubscriptionDocumentApiImpl::NonUEN2MessageNotificationIndividualSubscriptionDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router> rtr)
: NonUEN2MessageNotificationIndividualSubscriptionDocumentApi(rtr)
{ }
void NonUEN2MessageNotificationIndividualSubscriptionDocumentApiImpl::non_ue_n2_info_un_subscribe(const std::string &n2NotifySubscriptionId, Pistache::Http::ResponseWriter &response) {
response.send(Pistache::Http::Code::Ok, "Do some magic\n");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* NonUEN2MessageNotificationIndividualSubscriptionDocumentApiImpl.h
*
*
*/
#ifndef NON_UEN2_MESSAGE_NOTIFICATION_INDIVIDUAL_SUBSCRIPTION_DOCUMENT_API_IMPL_H_
#define NON_UEN2_MESSAGE_NOTIFICATION_INDIVIDUAL_SUBSCRIPTION_DOCUMENT_API_IMPL_H_
#include <pistache/endpoint.h>
#include <pistache/http.h>
#include <pistache/router.h>
#include <memory>
#include <NonUEN2MessageNotificationIndividualSubscriptionDocumentApi.h>
#include <pistache/optional.h>
#include "ProblemDetails.h"
#include <string>
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class NonUEN2MessageNotificationIndividualSubscriptionDocumentApiImpl : public oai::amf::api::NonUEN2MessageNotificationIndividualSubscriptionDocumentApi {
public:
NonUEN2MessageNotificationIndividualSubscriptionDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router>);
~NonUEN2MessageNotificationIndividualSubscriptionDocumentApiImpl() {}
void non_ue_n2_info_un_subscribe(const std::string &n2NotifySubscriptionId, Pistache::Http::ResponseWriter &response);
};
}
}
}
#endif
\ No newline at end of file
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "NonUEN2MessagesCollectionDocumentApiImpl.h"
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
NonUEN2MessagesCollectionDocumentApiImpl::NonUEN2MessagesCollectionDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router> rtr)
: NonUEN2MessagesCollectionDocumentApi(rtr)
{ }
void NonUEN2MessagesCollectionDocumentApiImpl::non_ue_n2_message_transfer(const N2InformationTransferReqData &n2InformationTransferReqData, Pistache::Http::ResponseWriter &response) {
response.send(Pistache::Http::Code::Ok, "Do some magic\n");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* NonUEN2MessagesCollectionDocumentApiImpl.h
*
*
*/
#ifndef NON_UEN2_MESSAGES_COLLECTION_DOCUMENT_API_IMPL_H_
#define NON_UEN2_MESSAGES_COLLECTION_DOCUMENT_API_IMPL_H_
#include <pistache/endpoint.h>
#include <pistache/http.h>
#include <pistache/router.h>
#include <memory>
#include <NonUEN2MessagesCollectionDocumentApi.h>
#include <pistache/optional.h>
#include "N2InformationTransferError.h"
#include "N2InformationTransferReqData.h"
#include "N2InformationTransferRspData.h"
#include "ProblemDetails.h"
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class NonUEN2MessagesCollectionDocumentApiImpl : public oai::amf::api::NonUEN2MessagesCollectionDocumentApi {
public:
NonUEN2MessagesCollectionDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router>);
~NonUEN2MessagesCollectionDocumentApiImpl() {}
void non_ue_n2_message_transfer(const N2InformationTransferReqData &n2InformationTransferReqData, Pistache::Http::ResponseWriter &response);
};
}
}
}
#endif
\ No newline at end of file
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "NonUEN2MessagesSubscriptionsCollectionDocumentApiImpl.h"
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
NonUEN2MessagesSubscriptionsCollectionDocumentApiImpl::NonUEN2MessagesSubscriptionsCollectionDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router> rtr)
: NonUEN2MessagesSubscriptionsCollectionDocumentApi(rtr)
{ }
void NonUEN2MessagesSubscriptionsCollectionDocumentApiImpl::non_ue_n2_info_subscribe(const NonUeN2InfoSubscriptionCreateData &nonUeN2InfoSubscriptionCreateData, Pistache::Http::ResponseWriter &response) {
response.send(Pistache::Http::Code::Ok, "Do some magic\n");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* NonUEN2MessagesSubscriptionsCollectionDocumentApiImpl.h
*
*
*/
#ifndef NON_UEN2_MESSAGES_SUBSCRIPTIONS_COLLECTION_DOCUMENT_API_IMPL_H_
#define NON_UEN2_MESSAGES_SUBSCRIPTIONS_COLLECTION_DOCUMENT_API_IMPL_H_
#include <pistache/endpoint.h>
#include <pistache/http.h>
#include <pistache/router.h>
#include <memory>
#include <NonUEN2MessagesSubscriptionsCollectionDocumentApi.h>
#include <pistache/optional.h>
#include "NonUeN2InfoSubscriptionCreateData.h"
#include "NonUeN2InfoSubscriptionCreatedData.h"
#include "ProblemDetails.h"
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class NonUEN2MessagesSubscriptionsCollectionDocumentApiImpl : public oai::amf::api::NonUEN2MessagesSubscriptionsCollectionDocumentApi {
public:
NonUEN2MessagesSubscriptionsCollectionDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router>);
~NonUEN2MessagesSubscriptionsCollectionDocumentApiImpl() {}
void non_ue_n2_info_subscribe(const NonUeN2InfoSubscriptionCreateData &nonUeN2InfoSubscriptionCreateData, Pistache::Http::ResponseWriter &response);
};
}
}
}
#endif
\ No newline at end of file
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "SubscriptionsCollectionDocumentApiImpl.h"
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
SubscriptionsCollectionDocumentApiImpl::SubscriptionsCollectionDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router> rtr)
: SubscriptionsCollectionDocumentApi(rtr)
{ }
void SubscriptionsCollectionDocumentApiImpl::a_mf_status_change_subscribe(const SubscriptionData &subscriptionData, Pistache::Http::ResponseWriter &response) {
response.send(Pistache::Http::Code::Ok, "Do some magic\n");
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* SubscriptionsCollectionDocumentApiImpl.h
*
*
*/
#ifndef SUBSCRIPTIONS_COLLECTION_DOCUMENT_API_IMPL_H_
#define SUBSCRIPTIONS_COLLECTION_DOCUMENT_API_IMPL_H_
#include <pistache/endpoint.h>
#include <pistache/http.h>
#include <pistache/router.h>
#include <memory>
#include <SubscriptionsCollectionDocumentApi.h>
#include <pistache/optional.h>
#include "ProblemDetails.h"
#include "SubscriptionData.h"
namespace oai {
namespace amf {
namespace api {
using namespace oai::amf::model;
class SubscriptionsCollectionDocumentApiImpl : public oai::amf::api::SubscriptionsCollectionDocumentApi {
public:
SubscriptionsCollectionDocumentApiImpl(std::shared_ptr<Pistache::Rest::Router>);
~SubscriptionsCollectionDocumentApiImpl() {}
void a_mf_status_change_subscribe(const SubscriptionData &subscriptionData, Pistache::Http::ResponseWriter &response);
};
}
}
}
#endif
\ No newline at end of file
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "AccessType.h"
namespace oai {
namespace amf {
namespace model {
AccessType::AccessType()
{
}
AccessType::~AccessType()
{
}
void AccessType::validate()
{
// TODO: implement validation
}
void to_json(nlohmann::json& j, const AccessType& o)
{
j = nlohmann::json();
}
void from_json(const nlohmann::json& j, AccessType& o)
{
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* AccessType.h
*
*
*/
#ifndef AccessType_H_
#define AccessType_H_
#include <nlohmann/json.hpp>
namespace oai {
namespace amf {
namespace model {
/// <summary>
///
/// </summary>
class AccessType
{
public:
AccessType();
virtual ~AccessType();
void validate();
/////////////////////////////////////////////
/// AccessType members
friend void to_json(nlohmann::json& j, const AccessType& o);
friend void from_json(const nlohmann::json& j, AccessType& o);
protected:
};
}
}
}
#endif /* AccessType_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "AllowedNssai.h"
namespace oai {
namespace amf {
namespace model {
AllowedNssai::AllowedNssai()
{
}
AllowedNssai::~AllowedNssai()
{
}
void AllowedNssai::validate()
{
// TODO: implement validation
}
void to_json(nlohmann::json& j, const AllowedNssai& o)
{
j = nlohmann::json();
j["allowedSnssaiList"] = o.m_AllowedSnssaiList;
j["accessType"] = o.m_AccessType;
}
void from_json(const nlohmann::json& j, AllowedNssai& o)
{
j.at("allowedSnssaiList").get_to(o.m_AllowedSnssaiList);
j.at("accessType").get_to(o.m_AccessType);
}
std::vector<AllowedSnssai>& AllowedNssai::getAllowedSnssaiList()
{
return m_AllowedSnssaiList;
}
AccessType AllowedNssai::getAccessType() const
{
return m_AccessType;
}
void AllowedNssai::setAccessType(AccessType const& value)
{
m_AccessType = value;
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* AllowedNssai.h
*
*
*/
#ifndef AllowedNssai_H_
#define AllowedNssai_H_
#include <vector>
#include "AccessType.h"
#include "AllowedSnssai.h"
#include <nlohmann/json.hpp>
namespace oai {
namespace amf {
namespace model {
/// <summary>
///
/// </summary>
class AllowedNssai
{
public:
AllowedNssai();
virtual ~AllowedNssai();
void validate();
/////////////////////////////////////////////
/// AllowedNssai members
/// <summary>
///
/// </summary>
std::vector<AllowedSnssai>& getAllowedSnssaiList();
/// <summary>
///
/// </summary>
AccessType getAccessType() const;
void setAccessType(AccessType const& value);
friend void to_json(nlohmann::json& j, const AllowedNssai& o);
friend void from_json(const nlohmann::json& j, AllowedNssai& o);
protected:
std::vector<AllowedSnssai> m_AllowedSnssaiList;
AccessType m_AccessType;
};
}
}
}
#endif /* AllowedNssai_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "AllowedSnssai.h"
namespace oai {
namespace amf {
namespace model {
AllowedSnssai::AllowedSnssai()
{
m_NsiInformationListIsSet = false;
m_MappedHomeSnssaiIsSet = false;
}
AllowedSnssai::~AllowedSnssai()
{
}
void AllowedSnssai::validate()
{
// TODO: implement validation
}
void to_json(nlohmann::json& j, const AllowedSnssai& o)
{
j = nlohmann::json();
j["allowedSnssai"] = o.m_AllowedSnssai;
if(o.nsiInformationListIsSet())
j["nsiInformationList"] = o.m_NsiInformationList;
if(o.mappedHomeSnssaiIsSet())
j["mappedHomeSnssai"] = o.m_MappedHomeSnssai;
}
void from_json(const nlohmann::json& j, AllowedSnssai& o)
{
j.at("allowedSnssai").get_to(o.m_AllowedSnssai);
if(j.find("nsiInformationList") != j.end())
{
j.at("nsiInformationList").get_to(o.m_NsiInformationList);
o.m_NsiInformationListIsSet = true;
}
if(j.find("mappedHomeSnssai") != j.end())
{
j.at("mappedHomeSnssai").get_to(o.m_MappedHomeSnssai);
o.m_MappedHomeSnssaiIsSet = true;
}
}
Snssai AllowedSnssai::getAllowedSnssai() const
{
return m_AllowedSnssai;
}
void AllowedSnssai::setAllowedSnssai(Snssai const& value)
{
m_AllowedSnssai = value;
}
std::vector<NsiInformation>& AllowedSnssai::getNsiInformationList()
{
return m_NsiInformationList;
}
bool AllowedSnssai::nsiInformationListIsSet() const
{
return m_NsiInformationListIsSet;
}
void AllowedSnssai::unsetNsiInformationList()
{
m_NsiInformationListIsSet = false;
}
Snssai AllowedSnssai::getMappedHomeSnssai() const
{
return m_MappedHomeSnssai;
}
void AllowedSnssai::setMappedHomeSnssai(Snssai const& value)
{
m_MappedHomeSnssai = value;
m_MappedHomeSnssaiIsSet = true;
}
bool AllowedSnssai::mappedHomeSnssaiIsSet() const
{
return m_MappedHomeSnssaiIsSet;
}
void AllowedSnssai::unsetMappedHomeSnssai()
{
m_MappedHomeSnssaiIsSet = false;
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* AllowedSnssai.h
*
*
*/
#ifndef AllowedSnssai_H_
#define AllowedSnssai_H_
#include "NsiInformation.h"
#include "Snssai.h"
#include <vector>
#include <nlohmann/json.hpp>
namespace oai {
namespace amf {
namespace model {
/// <summary>
///
/// </summary>
class AllowedSnssai
{
public:
AllowedSnssai();
virtual ~AllowedSnssai();
void validate();
/////////////////////////////////////////////
/// AllowedSnssai members
/// <summary>
///
/// </summary>
Snssai getAllowedSnssai() const;
void setAllowedSnssai(Snssai const& value);
/// <summary>
///
/// </summary>
std::vector<NsiInformation>& getNsiInformationList();
bool nsiInformationListIsSet() const;
void unsetNsiInformationList();
/// <summary>
///
/// </summary>
Snssai getMappedHomeSnssai() const;
void setMappedHomeSnssai(Snssai const& value);
bool mappedHomeSnssaiIsSet() const;
void unsetMappedHomeSnssai();
friend void to_json(nlohmann::json& j, const AllowedSnssai& o);
friend void from_json(const nlohmann::json& j, AllowedSnssai& o);
protected:
Snssai m_AllowedSnssai;
std::vector<NsiInformation> m_NsiInformationList;
bool m_NsiInformationListIsSet;
Snssai m_MappedHomeSnssai;
bool m_MappedHomeSnssaiIsSet;
};
}
}
}
#endif /* AllowedSnssai_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "Ambr.h"
namespace oai {
namespace amf {
namespace model {
Ambr::Ambr()
{
m_Uplink = "";
m_Downlink = "";
}
Ambr::~Ambr()
{
}
void Ambr::validate()
{
// TODO: implement validation
}
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)
{
j.at("uplink").get_to(o.m_Uplink);
j.at("downlink").get_to(o.m_Downlink);
}
std::string Ambr::getUplink() const
{
return m_Uplink;
}
void Ambr::setUplink(std::string const& value)
{
m_Uplink = value;
}
std::string Ambr::getDownlink() const
{
return m_Downlink;
}
void Ambr::setDownlink(std::string const& value)
{
m_Downlink = value;
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* Ambr.h
*
*
*/
#ifndef Ambr_H_
#define Ambr_H_
#include <string>
#include <nlohmann/json.hpp>
namespace oai {
namespace amf {
namespace model {
/// <summary>
///
/// </summary>
class Ambr
{
public:
Ambr();
virtual ~Ambr();
void validate();
/////////////////////////////////////////////
/// Ambr members
/// <summary>
///
/// </summary>
std::string getUplink() const;
void setUplink(std::string const& value);
/// <summary>
///
/// </summary>
std::string getDownlink() const;
void setDownlink(std::string const& value);
friend void to_json(nlohmann::json& j, const Ambr& o);
friend void from_json(const nlohmann::json& j, Ambr& o);
protected:
std::string m_Uplink;
std::string m_Downlink;
};
}
}
}
#endif /* Ambr_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "AmfEvent.h"
namespace oai {
namespace amf {
namespace model {
AmfEvent::AmfEvent()
{
m_ImmediateFlag = false;
m_ImmediateFlagIsSet = false;
m_AreaListIsSet = false;
m_LocationFilterListIsSet = false;
m_RefId = 0;
m_RefIdIsSet = false;
}
AmfEvent::~AmfEvent()
{
}
void AmfEvent::validate()
{
// TODO: implement validation
}
void to_json(nlohmann::json& j, const AmfEvent& o)
{
j = nlohmann::json();
j["type"] = o.m_Type;
if(o.immediateFlagIsSet())
j["immediateFlag"] = o.m_ImmediateFlag;
if(o.areaListIsSet())
j["areaList"] = o.m_AreaList;
if(o.locationFilterListIsSet())
j["locationFilterList"] = o.m_LocationFilterList;
if(o.refIdIsSet())
j["refId"] = o.m_RefId;
}
void from_json(const nlohmann::json& j, AmfEvent& o)
{
j.at("type").get_to(o.m_Type);
if(j.find("immediateFlag") != j.end())
{
j.at("immediateFlag").get_to(o.m_ImmediateFlag);
o.m_ImmediateFlagIsSet = true;
}
if(j.find("areaList") != j.end())
{
j.at("areaList").get_to(o.m_AreaList);
o.m_AreaListIsSet = true;
}
if(j.find("locationFilterList") != j.end())
{
j.at("locationFilterList").get_to(o.m_LocationFilterList);
o.m_LocationFilterListIsSet = true;
}
if(j.find("refId") != j.end())
{
j.at("refId").get_to(o.m_RefId);
o.m_RefIdIsSet = true;
}
}
AmfEventType AmfEvent::getType() const
{
return m_Type;
}
void AmfEvent::setType(AmfEventType const& value)
{
m_Type = value;
}
bool AmfEvent::isImmediateFlag() const
{
return m_ImmediateFlag;
}
void AmfEvent::setImmediateFlag(bool const value)
{
m_ImmediateFlag = value;
m_ImmediateFlagIsSet = true;
}
bool AmfEvent::immediateFlagIsSet() const
{
return m_ImmediateFlagIsSet;
}
void AmfEvent::unsetImmediateFlag()
{
m_ImmediateFlagIsSet = false;
}
std::vector<AmfEventArea>& AmfEvent::getAreaList()
{
return m_AreaList;
}
bool AmfEvent::areaListIsSet() const
{
return m_AreaListIsSet;
}
void AmfEvent::unsetAreaList()
{
m_AreaListIsSet = false;
}
std::vector<LocationFilter>& AmfEvent::getLocationFilterList()
{
return m_LocationFilterList;
}
bool AmfEvent::locationFilterListIsSet() const
{
return m_LocationFilterListIsSet;
}
void AmfEvent::unsetLocationFilterList()
{
m_LocationFilterListIsSet = false;
}
int32_t AmfEvent::getRefId() const
{
return m_RefId;
}
void AmfEvent::setRefId(int32_t const value)
{
m_RefId = value;
m_RefIdIsSet = true;
}
bool AmfEvent::refIdIsSet() const
{
return m_RefIdIsSet;
}
void AmfEvent::unsetRefId()
{
m_RefIdIsSet = false;
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* AmfEvent.h
*
*
*/
#ifndef AmfEvent_H_
#define AmfEvent_H_
#include "LocationFilter.h"
#include "AmfEventArea.h"
#include <vector>
#include "AmfEventType.h"
#include <nlohmann/json.hpp>
namespace oai {
namespace amf {
namespace model {
/// <summary>
///
/// </summary>
class AmfEvent
{
public:
AmfEvent();
virtual ~AmfEvent();
void validate();
/////////////////////////////////////////////
/// AmfEvent members
/// <summary>
///
/// </summary>
AmfEventType getType() const;
void setType(AmfEventType const& value);
/// <summary>
///
/// </summary>
bool isImmediateFlag() const;
void setImmediateFlag(bool const value);
bool immediateFlagIsSet() const;
void unsetImmediateFlag();
/// <summary>
///
/// </summary>
std::vector<AmfEventArea>& getAreaList();
bool areaListIsSet() const;
void unsetAreaList();
/// <summary>
///
/// </summary>
std::vector<LocationFilter>& getLocationFilterList();
bool locationFilterListIsSet() const;
void unsetLocationFilterList();
/// <summary>
///
/// </summary>
int32_t getRefId() const;
void setRefId(int32_t const value);
bool refIdIsSet() const;
void unsetRefId();
friend void to_json(nlohmann::json& j, const AmfEvent& o);
friend void from_json(const nlohmann::json& j, AmfEvent& o);
protected:
AmfEventType m_Type;
bool m_ImmediateFlag;
bool m_ImmediateFlagIsSet;
std::vector<AmfEventArea> m_AreaList;
bool m_AreaListIsSet;
std::vector<LocationFilter> m_LocationFilterList;
bool m_LocationFilterListIsSet;
int32_t m_RefId;
bool m_RefIdIsSet;
};
}
}
}
#endif /* AmfEvent_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "AmfEventArea.h"
namespace oai {
namespace amf {
namespace model {
AmfEventArea::AmfEventArea()
{
m_PresenceInfoIsSet = false;
m_LadnInfoIsSet = false;
}
AmfEventArea::~AmfEventArea()
{
}
void AmfEventArea::validate()
{
// TODO: implement validation
}
void to_json(nlohmann::json& j, const AmfEventArea& o)
{
j = nlohmann::json();
if(o.presenceInfoIsSet())
j["presenceInfo"] = o.m_PresenceInfo;
if(o.ladnInfoIsSet())
j["ladnInfo"] = o.m_LadnInfo;
}
void from_json(const nlohmann::json& j, AmfEventArea& o)
{
if(j.find("presenceInfo") != j.end())
{
j.at("presenceInfo").get_to(o.m_PresenceInfo);
o.m_PresenceInfoIsSet = true;
}
if(j.find("ladnInfo") != j.end())
{
j.at("ladnInfo").get_to(o.m_LadnInfo);
o.m_LadnInfoIsSet = true;
}
}
PresenceInfo AmfEventArea::getPresenceInfo() const
{
return m_PresenceInfo;
}
void AmfEventArea::setPresenceInfo(PresenceInfo const& value)
{
m_PresenceInfo = value;
m_PresenceInfoIsSet = true;
}
bool AmfEventArea::presenceInfoIsSet() const
{
return m_PresenceInfoIsSet;
}
void AmfEventArea::unsetPresenceInfo()
{
m_PresenceInfoIsSet = false;
}
LadnInfo AmfEventArea::getLadnInfo() const
{
return m_LadnInfo;
}
void AmfEventArea::setLadnInfo(LadnInfo const& value)
{
m_LadnInfo = value;
m_LadnInfoIsSet = true;
}
bool AmfEventArea::ladnInfoIsSet() const
{
return m_LadnInfoIsSet;
}
void AmfEventArea::unsetLadnInfo()
{
m_LadnInfoIsSet = false;
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* AmfEventArea.h
*
*
*/
#ifndef AmfEventArea_H_
#define AmfEventArea_H_
#include "PresenceInfo.h"
#include "LadnInfo.h"
#include <nlohmann/json.hpp>
namespace oai {
namespace amf {
namespace model {
/// <summary>
///
/// </summary>
class AmfEventArea
{
public:
AmfEventArea();
virtual ~AmfEventArea();
void validate();
/////////////////////////////////////////////
/// AmfEventArea members
/// <summary>
///
/// </summary>
PresenceInfo getPresenceInfo() const;
void setPresenceInfo(PresenceInfo const& value);
bool presenceInfoIsSet() const;
void unsetPresenceInfo();
/// <summary>
///
/// </summary>
LadnInfo getLadnInfo() const;
void setLadnInfo(LadnInfo const& value);
bool ladnInfoIsSet() const;
void unsetLadnInfo();
friend void to_json(nlohmann::json& j, const AmfEventArea& o);
friend void from_json(const nlohmann::json& j, AmfEventArea& o);
protected:
PresenceInfo m_PresenceInfo;
bool m_PresenceInfoIsSet;
LadnInfo m_LadnInfo;
bool m_LadnInfoIsSet;
};
}
}
}
#endif /* AmfEventArea_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "AmfEventMode.h"
namespace oai {
namespace amf {
namespace model {
AmfEventMode::AmfEventMode()
{
m_MaxReports = 0;
m_MaxReportsIsSet = false;
m_Expiry = "";
m_ExpiryIsSet = false;
}
AmfEventMode::~AmfEventMode()
{
}
void AmfEventMode::validate()
{
// TODO: implement validation
}
void to_json(nlohmann::json& j, const AmfEventMode& o)
{
j = nlohmann::json();
j["trigger"] = o.m_Trigger;
if(o.maxReportsIsSet())
j["maxReports"] = o.m_MaxReports;
if(o.expiryIsSet())
j["expiry"] = o.m_Expiry;
}
void from_json(const nlohmann::json& j, AmfEventMode& o)
{
j.at("trigger").get_to(o.m_Trigger);
if(j.find("maxReports") != j.end())
{
j.at("maxReports").get_to(o.m_MaxReports);
o.m_MaxReportsIsSet = true;
}
if(j.find("expiry") != j.end())
{
j.at("expiry").get_to(o.m_Expiry);
o.m_ExpiryIsSet = true;
}
}
AmfEventTrigger AmfEventMode::getTrigger() const
{
return m_Trigger;
}
void AmfEventMode::setTrigger(AmfEventTrigger const& value)
{
m_Trigger = value;
}
int32_t AmfEventMode::getMaxReports() const
{
return m_MaxReports;
}
void AmfEventMode::setMaxReports(int32_t const value)
{
m_MaxReports = value;
m_MaxReportsIsSet = true;
}
bool AmfEventMode::maxReportsIsSet() const
{
return m_MaxReportsIsSet;
}
void AmfEventMode::unsetMaxReports()
{
m_MaxReportsIsSet = false;
}
std::string AmfEventMode::getExpiry() const
{
return m_Expiry;
}
void AmfEventMode::setExpiry(std::string const& value)
{
m_Expiry = value;
m_ExpiryIsSet = true;
}
bool AmfEventMode::expiryIsSet() const
{
return m_ExpiryIsSet;
}
void AmfEventMode::unsetExpiry()
{
m_ExpiryIsSet = false;
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* AmfEventMode.h
*
*
*/
#ifndef AmfEventMode_H_
#define AmfEventMode_H_
#include "AmfEventTrigger.h"
#include <string>
#include <nlohmann/json.hpp>
namespace oai {
namespace amf {
namespace model {
/// <summary>
///
/// </summary>
class AmfEventMode
{
public:
AmfEventMode();
virtual ~AmfEventMode();
void validate();
/////////////////////////////////////////////
/// AmfEventMode members
/// <summary>
///
/// </summary>
AmfEventTrigger getTrigger() const;
void setTrigger(AmfEventTrigger const& value);
/// <summary>
///
/// </summary>
int32_t getMaxReports() const;
void setMaxReports(int32_t const value);
bool maxReportsIsSet() const;
void unsetMaxReports();
/// <summary>
///
/// </summary>
std::string getExpiry() const;
void setExpiry(std::string const& value);
bool expiryIsSet() const;
void unsetExpiry();
friend void to_json(nlohmann::json& j, const AmfEventMode& o);
friend void from_json(const nlohmann::json& j, AmfEventMode& o);
protected:
AmfEventTrigger m_Trigger;
int32_t m_MaxReports;
bool m_MaxReportsIsSet;
std::string m_Expiry;
bool m_ExpiryIsSet;
};
}
}
}
#endif /* AmfEventMode_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "AmfEventSubscription.h"
namespace oai {
namespace amf {
namespace model {
AmfEventSubscription::AmfEventSubscription()
{
m_EventNotifyUri = "";
m_NotifyCorrelationId = "";
m_NfId = "";
m_SubsChangeNotifyUri = "";
m_SubsChangeNotifyUriIsSet = false;
m_SubsChangeNotifyCorrelationId = "";
m_SubsChangeNotifyCorrelationIdIsSet = false;
m_Supi = "";
m_SupiIsSet = false;
m_GroupId = "";
m_GroupIdIsSet = false;
m_Gpsi = "";
m_GpsiIsSet = false;
m_Pei = "";
m_PeiIsSet = false;
m_AnyUE = false;
m_AnyUEIsSet = false;
m_OptionsIsSet = false;
}
AmfEventSubscription::~AmfEventSubscription()
{
}
void AmfEventSubscription::validate()
{
// TODO: implement validation
}
void to_json(nlohmann::json& j, const AmfEventSubscription& o)
{
j = nlohmann::json();
j["eventList"] = o.m_EventList;
j["eventNotifyUri"] = o.m_EventNotifyUri;
j["notifyCorrelationId"] = o.m_NotifyCorrelationId;
j["nfId"] = o.m_NfId;
if(o.subsChangeNotifyUriIsSet())
j["subsChangeNotifyUri"] = o.m_SubsChangeNotifyUri;
if(o.subsChangeNotifyCorrelationIdIsSet())
j["subsChangeNotifyCorrelationId"] = o.m_SubsChangeNotifyCorrelationId;
if(o.supiIsSet())
j["supi"] = o.m_Supi;
if(o.groupIdIsSet())
j["groupId"] = o.m_GroupId;
if(o.gpsiIsSet())
j["gpsi"] = o.m_Gpsi;
if(o.peiIsSet())
j["pei"] = o.m_Pei;
if(o.anyUEIsSet())
j["anyUE"] = o.m_AnyUE;
if(o.optionsIsSet())
j["options"] = o.m_Options;
}
void from_json(const nlohmann::json& j, AmfEventSubscription& o)
{
j.at("eventList").get_to(o.m_EventList);
j.at("eventNotifyUri").get_to(o.m_EventNotifyUri);
j.at("notifyCorrelationId").get_to(o.m_NotifyCorrelationId);
j.at("nfId").get_to(o.m_NfId);
if(j.find("subsChangeNotifyUri") != j.end())
{
j.at("subsChangeNotifyUri").get_to(o.m_SubsChangeNotifyUri);
o.m_SubsChangeNotifyUriIsSet = true;
}
if(j.find("subsChangeNotifyCorrelationId") != j.end())
{
j.at("subsChangeNotifyCorrelationId").get_to(o.m_SubsChangeNotifyCorrelationId);
o.m_SubsChangeNotifyCorrelationIdIsSet = true;
}
if(j.find("supi") != j.end())
{
j.at("supi").get_to(o.m_Supi);
o.m_SupiIsSet = true;
}
if(j.find("groupId") != j.end())
{
j.at("groupId").get_to(o.m_GroupId);
o.m_GroupIdIsSet = true;
}
if(j.find("gpsi") != j.end())
{
j.at("gpsi").get_to(o.m_Gpsi);
o.m_GpsiIsSet = true;
}
if(j.find("pei") != j.end())
{
j.at("pei").get_to(o.m_Pei);
o.m_PeiIsSet = true;
}
if(j.find("anyUE") != j.end())
{
j.at("anyUE").get_to(o.m_AnyUE);
o.m_AnyUEIsSet = true;
}
if(j.find("options") != j.end())
{
j.at("options").get_to(o.m_Options);
o.m_OptionsIsSet = true;
}
}
std::vector<AmfEvent>& AmfEventSubscription::getEventList()
{
return m_EventList;
}
std::string AmfEventSubscription::getEventNotifyUri() const
{
return m_EventNotifyUri;
}
void AmfEventSubscription::setEventNotifyUri(std::string const& value)
{
m_EventNotifyUri = value;
}
std::string AmfEventSubscription::getNotifyCorrelationId() const
{
return m_NotifyCorrelationId;
}
void AmfEventSubscription::setNotifyCorrelationId(std::string const& value)
{
m_NotifyCorrelationId = value;
}
std::string AmfEventSubscription::getNfId() const
{
return m_NfId;
}
void AmfEventSubscription::setNfId(std::string const& value)
{
m_NfId = value;
}
std::string AmfEventSubscription::getSubsChangeNotifyUri() const
{
return m_SubsChangeNotifyUri;
}
void AmfEventSubscription::setSubsChangeNotifyUri(std::string const& value)
{
m_SubsChangeNotifyUri = value;
m_SubsChangeNotifyUriIsSet = true;
}
bool AmfEventSubscription::subsChangeNotifyUriIsSet() const
{
return m_SubsChangeNotifyUriIsSet;
}
void AmfEventSubscription::unsetSubsChangeNotifyUri()
{
m_SubsChangeNotifyUriIsSet = false;
}
std::string AmfEventSubscription::getSubsChangeNotifyCorrelationId() const
{
return m_SubsChangeNotifyCorrelationId;
}
void AmfEventSubscription::setSubsChangeNotifyCorrelationId(std::string const& value)
{
m_SubsChangeNotifyCorrelationId = value;
m_SubsChangeNotifyCorrelationIdIsSet = true;
}
bool AmfEventSubscription::subsChangeNotifyCorrelationIdIsSet() const
{
return m_SubsChangeNotifyCorrelationIdIsSet;
}
void AmfEventSubscription::unsetSubsChangeNotifyCorrelationId()
{
m_SubsChangeNotifyCorrelationIdIsSet = false;
}
std::string AmfEventSubscription::getSupi() const
{
return m_Supi;
}
void AmfEventSubscription::setSupi(std::string const& value)
{
m_Supi = value;
m_SupiIsSet = true;
}
bool AmfEventSubscription::supiIsSet() const
{
return m_SupiIsSet;
}
void AmfEventSubscription::unsetSupi()
{
m_SupiIsSet = false;
}
std::string AmfEventSubscription::getGroupId() const
{
return m_GroupId;
}
void AmfEventSubscription::setGroupId(std::string const& value)
{
m_GroupId = value;
m_GroupIdIsSet = true;
}
bool AmfEventSubscription::groupIdIsSet() const
{
return m_GroupIdIsSet;
}
void AmfEventSubscription::unsetGroupId()
{
m_GroupIdIsSet = false;
}
std::string AmfEventSubscription::getGpsi() const
{
return m_Gpsi;
}
void AmfEventSubscription::setGpsi(std::string const& value)
{
m_Gpsi = value;
m_GpsiIsSet = true;
}
bool AmfEventSubscription::gpsiIsSet() const
{
return m_GpsiIsSet;
}
void AmfEventSubscription::unsetGpsi()
{
m_GpsiIsSet = false;
}
std::string AmfEventSubscription::getPei() const
{
return m_Pei;
}
void AmfEventSubscription::setPei(std::string const& value)
{
m_Pei = value;
m_PeiIsSet = true;
}
bool AmfEventSubscription::peiIsSet() const
{
return m_PeiIsSet;
}
void AmfEventSubscription::unsetPei()
{
m_PeiIsSet = false;
}
bool AmfEventSubscription::isAnyUE() const
{
return m_AnyUE;
}
void AmfEventSubscription::setAnyUE(bool const value)
{
m_AnyUE = value;
m_AnyUEIsSet = true;
}
bool AmfEventSubscription::anyUEIsSet() const
{
return m_AnyUEIsSet;
}
void AmfEventSubscription::unsetAnyUE()
{
m_AnyUEIsSet = false;
}
AmfEventMode AmfEventSubscription::getOptions() const
{
return m_Options;
}
void AmfEventSubscription::setOptions(AmfEventMode const& value)
{
m_Options = value;
m_OptionsIsSet = true;
}
bool AmfEventSubscription::optionsIsSet() const
{
return m_OptionsIsSet;
}
void AmfEventSubscription::unsetOptions()
{
m_OptionsIsSet = false;
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* AmfEventSubscription.h
*
*
*/
#ifndef AmfEventSubscription_H_
#define AmfEventSubscription_H_
#include "AmfEvent.h"
#include <string>
#include "AmfEventMode.h"
#include <vector>
#include <nlohmann/json.hpp>
namespace oai {
namespace amf {
namespace model {
/// <summary>
///
/// </summary>
class AmfEventSubscription
{
public:
AmfEventSubscription();
virtual ~AmfEventSubscription();
void validate();
/////////////////////////////////////////////
/// AmfEventSubscription members
/// <summary>
///
/// </summary>
std::vector<AmfEvent>& getEventList();
/// <summary>
///
/// </summary>
std::string getEventNotifyUri() const;
void setEventNotifyUri(std::string const& value);
/// <summary>
///
/// </summary>
std::string getNotifyCorrelationId() const;
void setNotifyCorrelationId(std::string const& value);
/// <summary>
///
/// </summary>
std::string getNfId() const;
void setNfId(std::string const& value);
/// <summary>
///
/// </summary>
std::string getSubsChangeNotifyUri() const;
void setSubsChangeNotifyUri(std::string const& value);
bool subsChangeNotifyUriIsSet() const;
void unsetSubsChangeNotifyUri();
/// <summary>
///
/// </summary>
std::string getSubsChangeNotifyCorrelationId() const;
void setSubsChangeNotifyCorrelationId(std::string const& value);
bool subsChangeNotifyCorrelationIdIsSet() const;
void unsetSubsChangeNotifyCorrelationId();
/// <summary>
///
/// </summary>
std::string getSupi() const;
void setSupi(std::string const& value);
bool supiIsSet() const;
void unsetSupi();
/// <summary>
///
/// </summary>
std::string getGroupId() const;
void setGroupId(std::string const& value);
bool groupIdIsSet() const;
void unsetGroupId();
/// <summary>
///
/// </summary>
std::string getGpsi() const;
void setGpsi(std::string const& value);
bool gpsiIsSet() const;
void unsetGpsi();
/// <summary>
///
/// </summary>
std::string getPei() const;
void setPei(std::string const& value);
bool peiIsSet() const;
void unsetPei();
/// <summary>
///
/// </summary>
bool isAnyUE() const;
void setAnyUE(bool const value);
bool anyUEIsSet() const;
void unsetAnyUE();
/// <summary>
///
/// </summary>
AmfEventMode getOptions() const;
void setOptions(AmfEventMode const& value);
bool optionsIsSet() const;
void unsetOptions();
friend void to_json(nlohmann::json& j, const AmfEventSubscription& o);
friend void from_json(const nlohmann::json& j, AmfEventSubscription& o);
protected:
std::vector<AmfEvent> m_EventList;
std::string m_EventNotifyUri;
std::string m_NotifyCorrelationId;
std::string m_NfId;
std::string m_SubsChangeNotifyUri;
bool m_SubsChangeNotifyUriIsSet;
std::string m_SubsChangeNotifyCorrelationId;
bool m_SubsChangeNotifyCorrelationIdIsSet;
std::string m_Supi;
bool m_SupiIsSet;
std::string m_GroupId;
bool m_GroupIdIsSet;
std::string m_Gpsi;
bool m_GpsiIsSet;
std::string m_Pei;
bool m_PeiIsSet;
bool m_AnyUE;
bool m_AnyUEIsSet;
AmfEventMode m_Options;
bool m_OptionsIsSet;
};
}
}
}
#endif /* AmfEventSubscription_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "AmfEventTrigger.h"
namespace oai {
namespace amf {
namespace model {
AmfEventTrigger::AmfEventTrigger()
{
}
AmfEventTrigger::~AmfEventTrigger()
{
}
void AmfEventTrigger::validate()
{
// TODO: implement validation
}
void to_json(nlohmann::json& j, const AmfEventTrigger& o)
{
j = nlohmann::json();
}
void from_json(const nlohmann::json& j, AmfEventTrigger& o)
{
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* AmfEventTrigger.h
*
*
*/
#ifndef AmfEventTrigger_H_
#define AmfEventTrigger_H_
#include <nlohmann/json.hpp>
namespace oai {
namespace amf {
namespace model {
/// <summary>
///
/// </summary>
class AmfEventTrigger
{
public:
AmfEventTrigger();
virtual ~AmfEventTrigger();
void validate();
/////////////////////////////////////////////
/// AmfEventTrigger members
friend void to_json(nlohmann::json& j, const AmfEventTrigger& o);
friend void from_json(const nlohmann::json& j, AmfEventTrigger& o);
protected:
};
}
}
}
#endif /* AmfEventTrigger_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "AmfEventType.h"
namespace oai {
namespace amf {
namespace model {
AmfEventType::AmfEventType()
{
}
AmfEventType::~AmfEventType()
{
}
void AmfEventType::validate()
{
// TODO: implement validation
}
void to_json(nlohmann::json& j, const AmfEventType& o)
{
j = nlohmann::json();
}
void from_json(const nlohmann::json& j, AmfEventType& o)
{
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* AmfEventType.h
*
*
*/
#ifndef AmfEventType_H_
#define AmfEventType_H_
#include <nlohmann/json.hpp>
namespace oai {
namespace amf {
namespace model {
/// <summary>
///
/// </summary>
class AmfEventType
{
public:
AmfEventType();
virtual ~AmfEventType();
void validate();
/////////////////////////////////////////////
/// AmfEventType members
friend void to_json(nlohmann::json& j, const AmfEventType& o);
friend void from_json(const nlohmann::json& j, AmfEventType& o);
protected:
};
}
}
}
#endif /* AmfEventType_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "AmfStatusChangeNotification.h"
namespace oai {
namespace amf {
namespace model {
AmfStatusChangeNotification::AmfStatusChangeNotification()
{
}
AmfStatusChangeNotification::~AmfStatusChangeNotification()
{
}
void AmfStatusChangeNotification::validate()
{
// TODO: implement validation
}
void to_json(nlohmann::json& j, const AmfStatusChangeNotification& o)
{
j = nlohmann::json();
j["amfStatusInfoList"] = o.m_AmfStatusInfoList;
}
void from_json(const nlohmann::json& j, AmfStatusChangeNotification& o)
{
j.at("amfStatusInfoList").get_to(o.m_AmfStatusInfoList);
}
std::vector<AmfStatusInfo>& AmfStatusChangeNotification::getAmfStatusInfoList()
{
return m_AmfStatusInfoList;
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* AmfStatusChangeNotification.h
*
*
*/
#ifndef AmfStatusChangeNotification_H_
#define AmfStatusChangeNotification_H_
#include "AmfStatusInfo.h"
#include <vector>
#include <nlohmann/json.hpp>
namespace oai {
namespace amf {
namespace model {
/// <summary>
///
/// </summary>
class AmfStatusChangeNotification
{
public:
AmfStatusChangeNotification();
virtual ~AmfStatusChangeNotification();
void validate();
/////////////////////////////////////////////
/// AmfStatusChangeNotification members
/// <summary>
///
/// </summary>
std::vector<AmfStatusInfo>& getAmfStatusInfoList();
friend void to_json(nlohmann::json& j, const AmfStatusChangeNotification& o);
friend void from_json(const nlohmann::json& j, AmfStatusChangeNotification& o);
protected:
std::vector<AmfStatusInfo> m_AmfStatusInfoList;
};
}
}
}
#endif /* AmfStatusChangeNotification_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "AmfStatusInfo.h"
namespace oai {
namespace amf {
namespace model {
AmfStatusInfo::AmfStatusInfo()
{
m_TargetAmfRemoval = "";
m_TargetAmfRemovalIsSet = false;
m_TargetAmfFailure = "";
m_TargetAmfFailureIsSet = false;
}
AmfStatusInfo::~AmfStatusInfo()
{
}
void AmfStatusInfo::validate()
{
// TODO: implement validation
}
void to_json(nlohmann::json& j, const AmfStatusInfo& o)
{
j = nlohmann::json();
j["guamiList"] = o.m_GuamiList;
j["statusChange"] = o.m_StatusChange;
if(o.targetAmfRemovalIsSet())
j["targetAmfRemoval"] = o.m_TargetAmfRemoval;
if(o.targetAmfFailureIsSet())
j["targetAmfFailure"] = o.m_TargetAmfFailure;
}
void from_json(const nlohmann::json& j, AmfStatusInfo& o)
{
j.at("guamiList").get_to(o.m_GuamiList);
j.at("statusChange").get_to(o.m_StatusChange);
if(j.find("targetAmfRemoval") != j.end())
{
j.at("targetAmfRemoval").get_to(o.m_TargetAmfRemoval);
o.m_TargetAmfRemovalIsSet = true;
}
if(j.find("targetAmfFailure") != j.end())
{
j.at("targetAmfFailure").get_to(o.m_TargetAmfFailure);
o.m_TargetAmfFailureIsSet = true;
}
}
std::vector<Guami>& AmfStatusInfo::getGuamiList()
{
return m_GuamiList;
}
StatusChange AmfStatusInfo::getStatusChange() const
{
return m_StatusChange;
}
void AmfStatusInfo::setStatusChange(StatusChange const& value)
{
m_StatusChange = value;
}
std::string AmfStatusInfo::getTargetAmfRemoval() const
{
return m_TargetAmfRemoval;
}
void AmfStatusInfo::setTargetAmfRemoval(std::string const& value)
{
m_TargetAmfRemoval = value;
m_TargetAmfRemovalIsSet = true;
}
bool AmfStatusInfo::targetAmfRemovalIsSet() const
{
return m_TargetAmfRemovalIsSet;
}
void AmfStatusInfo::unsetTargetAmfRemoval()
{
m_TargetAmfRemovalIsSet = false;
}
std::string AmfStatusInfo::getTargetAmfFailure() const
{
return m_TargetAmfFailure;
}
void AmfStatusInfo::setTargetAmfFailure(std::string const& value)
{
m_TargetAmfFailure = value;
m_TargetAmfFailureIsSet = true;
}
bool AmfStatusInfo::targetAmfFailureIsSet() const
{
return m_TargetAmfFailureIsSet;
}
void AmfStatusInfo::unsetTargetAmfFailure()
{
m_TargetAmfFailureIsSet = false;
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* AmfStatusInfo.h
*
*
*/
#ifndef AmfStatusInfo_H_
#define AmfStatusInfo_H_
#include <string>
#include "StatusChange.h"
#include <vector>
#include "Guami.h"
#include <nlohmann/json.hpp>
namespace oai {
namespace amf {
namespace model {
/// <summary>
///
/// </summary>
class AmfStatusInfo
{
public:
AmfStatusInfo();
virtual ~AmfStatusInfo();
void validate();
/////////////////////////////////////////////
/// AmfStatusInfo members
/// <summary>
///
/// </summary>
std::vector<Guami>& getGuamiList();
/// <summary>
///
/// </summary>
StatusChange getStatusChange() const;
void setStatusChange(StatusChange const& value);
/// <summary>
///
/// </summary>
std::string getTargetAmfRemoval() const;
void setTargetAmfRemoval(std::string const& value);
bool targetAmfRemovalIsSet() const;
void unsetTargetAmfRemoval();
/// <summary>
///
/// </summary>
std::string getTargetAmfFailure() const;
void setTargetAmfFailure(std::string const& value);
bool targetAmfFailureIsSet() const;
void unsetTargetAmfFailure();
friend void to_json(nlohmann::json& j, const AmfStatusInfo& o);
friend void from_json(const nlohmann::json& j, AmfStatusInfo& o);
protected:
std::vector<Guami> m_GuamiList;
StatusChange m_StatusChange;
std::string m_TargetAmfRemoval;
bool m_TargetAmfRemovalIsSet;
std::string m_TargetAmfFailure;
bool m_TargetAmfFailureIsSet;
};
}
}
}
#endif /* AmfStatusInfo_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "Area.h"
namespace oai {
namespace amf {
namespace model {
Area::Area()
{
}
Area::~Area()
{
}
void Area::validate()
{
// TODO: implement validation
}
void to_json(nlohmann::json& j, const Area& o)
{
j = nlohmann::json();
}
void from_json(const nlohmann::json& j, Area& o)
{
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* Area.h
*
*
*/
#ifndef Area_H_
#define Area_H_
#include <nlohmann/json.hpp>
namespace oai {
namespace amf {
namespace model {
/// <summary>
///
/// </summary>
class Area
{
public:
Area();
virtual ~Area();
void validate();
/////////////////////////////////////////////
/// Area members
friend void to_json(nlohmann::json& j, const Area& o);
friend void from_json(const nlohmann::json& j, Area& o);
protected:
};
}
}
}
#endif /* Area_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "AreaOfValidity.h"
namespace oai {
namespace amf {
namespace model {
AreaOfValidity::AreaOfValidity()
{
}
AreaOfValidity::~AreaOfValidity()
{
}
void AreaOfValidity::validate()
{
// TODO: implement validation
}
void to_json(nlohmann::json& j, const AreaOfValidity& o)
{
j = nlohmann::json();
j["taiList"] = o.m_TaiList;
}
void from_json(const nlohmann::json& j, AreaOfValidity& o)
{
j.at("taiList").get_to(o.m_TaiList);
}
std::vector<Tai>& AreaOfValidity::getTaiList()
{
return m_TaiList;
}
}
}
}
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* AreaOfValidity.h
*
*
*/
#ifndef AreaOfValidity_H_
#define AreaOfValidity_H_
#include "Tai.h"
#include <vector>
#include <nlohmann/json.hpp>
namespace oai {
namespace amf {
namespace model {
/// <summary>
///
/// </summary>
class AreaOfValidity
{
public:
AreaOfValidity();
virtual ~AreaOfValidity();
void validate();
/////////////////////////////////////////////
/// AreaOfValidity members
/// <summary>
///
/// </summary>
std::vector<Tai>& getTaiList();
friend void to_json(nlohmann::json& j, const AreaOfValidity& o);
friend void from_json(const nlohmann::json& j, AreaOfValidity& o);
protected:
std::vector<Tai> m_TaiList;
};
}
}
}
#endif /* AreaOfValidity_H_ */
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "Arp.h"
namespace oai {
namespace amf {
namespace model {
Arp::Arp()
{
m_PriorityLevel = 0;
}
Arp::~Arp()
{
}
void Arp::validate()
{
// TODO: implement validation
}
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)
{
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
{
return m_PriorityLevel;
}
void Arp::setPriorityLevel(int32_t const value)
{
m_PriorityLevel = value;
}
PreemptionCapability Arp::getPreemptCap() const
{
return m_PreemptCap;
}
void Arp::setPreemptCap(PreemptionCapability const& value)
{
m_PreemptCap = value;
}
PreemptionVulnerability Arp::getPreemptVuln() const
{
return m_PreemptVuln;
}
void Arp::setPreemptVuln(PreemptionVulnerability const& value)
{
m_PreemptVuln = value;
}
}
}
}
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.
/**
* Namf_Communication
* AMF Communication Service © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 1.1.0.alpha-1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "CipheringAlgorithm.h"
namespace oai {
namespace amf {
namespace model {
CipheringAlgorithm::CipheringAlgorithm()
{
}
CipheringAlgorithm::~CipheringAlgorithm()
{
}
void CipheringAlgorithm::validate()
{
// TODO: implement validation
}
void to_json(nlohmann::json& j, const CipheringAlgorithm& o)
{
j = nlohmann::json();
}
void from_json(const nlohmann::json& j, CipheringAlgorithm& o)
{
}
}
}
}
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.
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.
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