/**
* Nudsf_DataRepository
* Nudsf Data Repository Service. © 2021, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. 
*
* The version of the OpenAPI document: 1.1.0-alpha.2
* 
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/

/*
* RecordCRUDApiImpl.h
*
* 
*/

#ifndef _PLUGIN_API_IMPL_H_
#define _PLUGIN_API_IMPL_H_


#include <pistache/endpoint.h>
#include <pistache/http.h>
#include <pistache/router.h>
#include <memory>

#include "PluginApi.hpp"

#include <pistache/optional.h>


#include <string>


namespace org {
namespace openapitools {
namespace server {
namespace api {

//using namespace org::openapitools::server::model;

class PluginApiImpl : public org::openapitools::server::api::PluginApi {
public:
    PluginApiImpl(std::shared_ptr<Pistache::Rest::Router>);
    ~PluginApiImpl() {}

    // void create_or_modify_record(
    //     const std::string &realmId, 
    //     const std::string &storageId, 
    //     const std::string &recordId, 
    //     const Record &record, 
    //     const Pistache::Optional<Pistache::Http::Header::Raw> &ifNoneMatch, 
    //     const Pistache::Optional<Pistache::Http::Header::Raw> &ifMatch, 
    //     const Pistache::Optional<bool> &getPrevious, 
    //     const Pistache::Optional<std::string> &supportedFeatures, 
    //     Pistache::Http::ResponseWriter &response);
    void n2_trans_to_gnb(const std::uint32_t &assoc_id, const uint16_t &stream, TransData &transdata,Pistache::Http::ResponseWriter &response);

    void modify_AmfIP(const std::string &amfip, const unsigned int &amfport, Pistache::Http::ResponseWriter &response);
    // void get_meta(const std::string &realmId, const std::string &storageId, const std::string &recordId, const Pistache::Optional<Pistache::Http::Header::Raw> &ifNoneMatch, const Pistache::Optional<Pistache::Http::Header::Raw> &ifModifiedSince, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response);
    // void get_record(const std::string &realmId, const std::string &storageId, const std::string &recordId, const Pistache::Optional<Pistache::Http::Header::Raw> &ifNoneMatch, const Pistache::Optional<Pistache::Http::Header::Raw> &ifModifiedSince, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response);
    // void search_record(const std::string &realmId, const std::string &storageId, const Pistache::Optional<int32_t> &limitRange, const Pistache::Optional<SearchExpression> &filter, const Pistache::Optional<bool> &countIndicator, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response);
    // void update_meta(const std::string &realmId, const std::string &storageId, const std::string &recordId, const std::vector<PatchItem> &patchItem, const Pistache::Optional<Pistache::Http::Header::Raw> &ifMatch, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response);
};

}
}
}
}



#endif