AMFNon3GPPAccessRegistrationDocumentApi.h 3.6 KB
Newer Older
yangjian's avatar
yangjian committed
1
/**
Tien-Thinh Nguyen's avatar
Tien-Thinh Nguyen committed
2 3 4 5 6 7 8 9 10 11 12
 * Nudr_DataRepository API OpenAPI file
 * Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
 * ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
 *
 * The version of the OpenAPI document: 2.1.2
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator
 * (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
 * the class manually.
 */
yangjian's avatar
yangjian committed
13 14 15
/*
 * AMFNon3GPPAccessRegistrationDocumentApi.h
 *
Tien-Thinh Nguyen's avatar
Tien-Thinh Nguyen committed
16
 *
yangjian's avatar
yangjian committed
17 18 19 20 21 22 23 24
 */

#ifndef AMFNon3GPPAccessRegistrationDocumentApi_H_
#define AMFNon3GPPAccessRegistrationDocumentApi_H_

#include <pistache/http.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
Tien-Thinh Nguyen's avatar
Tien-Thinh Nguyen committed
25
#include <pistache/router.h>
yangjian's avatar
yangjian committed
26

Tien-Thinh Nguyen's avatar
Tien-Thinh Nguyen committed
27 28
#include <string>
#include <vector>
yangjian's avatar
yangjian committed
29 30 31 32 33 34 35

#include "Amf3GppAccessRegistration.h"
#include "AmfNon3GppAccessRegistration.h"
#include "PatchItem.h"
#include "PatchResult.h"
#include "ProblemDetails.h"

36
namespace oai::udr::api {
yangjian's avatar
yangjian committed
37

38
using namespace oai::udr::model;
yangjian's avatar
yangjian committed
39

Tien-Thinh Nguyen's avatar
Tien-Thinh Nguyen committed
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
class AMFNon3GPPAccessRegistrationDocumentApi {
 public:
  AMFNon3GPPAccessRegistrationDocumentApi(
      std::shared_ptr<Pistache::Rest::Router>);
  virtual ~AMFNon3GPPAccessRegistrationDocumentApi() {}
  void init();

  const std::string base = "/nudr-dr/v2";

 private:
  void setupRoutes();

  void amf_context_non3gpp_handler(const Pistache::Rest::Request &request,
                                   Pistache::Http::ResponseWriter response);
  void create_amf_context_non3gpp_handler(
      const Pistache::Rest::Request &request,
      Pistache::Http::ResponseWriter response);
  void query_amf_context_non3gpp_handler(
      const Pistache::Rest::Request &request,
      Pistache::Http::ResponseWriter response);
  void amf_non3_gpp_access_registration_document_api_default_handler(
      const Pistache::Rest::Request &request,
      Pistache::Http::ResponseWriter response);

  std::shared_ptr<Pistache::Rest::Router> router;

  /// <summary>
  /// To modify the AMF context data of a UE using non 3gpp access in the UDR
  /// </summary>
  /// <remarks>
  ///
  /// </remarks>
  /// <param name="ueId">UE id</param>
  /// <param name="patchItem"></param>
  /// <param name="supportedFeatures">Features required to be supported by the
  /// target NF (optional, default to &quot;&quot;)</param>
  virtual void amf_context_non3gpp(
      const std::string &ueId, const std::vector<PatchItem> &patchItem,
      const Pistache::Optional<std::string> &supportedFeatures,
      Pistache::Http::ResponseWriter &response) = 0;

  /// <summary>
  /// To store the AMF context data of a UE using non-3gpp access in the UDR
  /// </summary>
  /// <remarks>
  ///
  /// </remarks>
  /// <param name="ueId">UE id</param>
  /// <param name="amfNon3GppAccessRegistration"> (optional)</param>
  virtual void create_amf_context_non3gpp(
      const std::string &ueId,
      const AmfNon3GppAccessRegistration &amfNon3GppAccessRegistration,
      Pistache::Http::ResponseWriter &response) = 0;

  /// <summary>
  /// Retrieves the AMF context data of a UE using non-3gpp access
  /// </summary>
  /// <remarks>
  ///
  /// </remarks>
  /// <param name="ueId">UE id</param>
  /// <param name="fields">attributes to be retrieved (optional, default to
  /// std::vector&lt;std::string&gt;())</param> <param
  /// name="supportedFeatures">Supported Features (optional, default to
  /// &quot;&quot;)</param>
  virtual void query_amf_context_non3gpp(
      const std::string &ueId,
      const Pistache::Optional<std::vector<std::string>> &fields,
      const Pistache::Optional<std::string> &supportedFeatures,
      Pistache::Http::ResponseWriter &response) = 0;
yangjian's avatar
yangjian committed
110 111
};

Tien-Thinh Nguyen's avatar
Tien-Thinh Nguyen committed
112
}  // namespace oai::udr::api
yangjian's avatar
yangjian committed
113 114

#endif /* AMFNon3GPPAccessRegistrationDocumentApi_H_ */