forked from acouzens/open5gs
114 lines
3.3 KiB
C
114 lines
3.3 KiB
C
/*
|
|
* nf_service.h
|
|
*
|
|
* Information of a given NF Service Instance; it is part of the NFProfile of an NF Instance
|
|
*/
|
|
|
|
#ifndef _OpenAPI_nf_service_H_
|
|
#define _OpenAPI_nf_service_H_
|
|
|
|
#include <string.h>
|
|
#include "../external/cJSON.h"
|
|
#include "../include/list.h"
|
|
#include "../include/keyValuePair.h"
|
|
#include "../include/binary.h"
|
|
#include "default_notification_subscription.h"
|
|
#include "ext_snssai.h"
|
|
#include "ip_end_point.h"
|
|
#include "nf_service_status.h"
|
|
#include "nf_service_version.h"
|
|
#include "nf_type.h"
|
|
#include "plmn_id.h"
|
|
#include "plmn_id_nid.h"
|
|
#include "plmn_snssai.h"
|
|
#include "uri_scheme.h"
|
|
#include "vendor_specific_feature.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct OpenAPI_nf_service_s OpenAPI_nf_service_t;
|
|
typedef struct OpenAPI_nf_service_s {
|
|
char *service_instance_id;
|
|
char *service_name;
|
|
OpenAPI_list_t *versions;
|
|
OpenAPI_uri_scheme_e scheme;
|
|
OpenAPI_nf_service_status_e nf_service_status;
|
|
char *fqdn;
|
|
char *inter_plmn_fqdn;
|
|
OpenAPI_list_t *ip_end_points;
|
|
char *api_prefix;
|
|
OpenAPI_list_t *default_notification_subscriptions;
|
|
OpenAPI_list_t *allowed_plmns;
|
|
OpenAPI_list_t *allowed_snpns;
|
|
OpenAPI_list_t *allowed_nf_types;
|
|
OpenAPI_list_t *allowed_nf_domains;
|
|
OpenAPI_list_t *allowed_nssais;
|
|
OpenAPI_list_t* allowed_operations_per_nf_type;
|
|
OpenAPI_list_t* allowed_operations_per_nf_instance;
|
|
bool is_priority;
|
|
int priority;
|
|
bool is_capacity;
|
|
int capacity;
|
|
bool is_load;
|
|
int load;
|
|
char *load_time_stamp;
|
|
char *recovery_time;
|
|
char *supported_features;
|
|
OpenAPI_list_t *nf_service_set_id_list;
|
|
OpenAPI_list_t *s_nssais;
|
|
OpenAPI_list_t *per_plmn_snssai_list;
|
|
char *vendor_id;
|
|
OpenAPI_list_t* supported_vendor_specific_features;
|
|
bool is_oauth2_required;
|
|
int oauth2_required;
|
|
} OpenAPI_nf_service_t;
|
|
|
|
OpenAPI_nf_service_t *OpenAPI_nf_service_create(
|
|
char *service_instance_id,
|
|
char *service_name,
|
|
OpenAPI_list_t *versions,
|
|
OpenAPI_uri_scheme_e scheme,
|
|
OpenAPI_nf_service_status_e nf_service_status,
|
|
char *fqdn,
|
|
char *inter_plmn_fqdn,
|
|
OpenAPI_list_t *ip_end_points,
|
|
char *api_prefix,
|
|
OpenAPI_list_t *default_notification_subscriptions,
|
|
OpenAPI_list_t *allowed_plmns,
|
|
OpenAPI_list_t *allowed_snpns,
|
|
OpenAPI_list_t *allowed_nf_types,
|
|
OpenAPI_list_t *allowed_nf_domains,
|
|
OpenAPI_list_t *allowed_nssais,
|
|
OpenAPI_list_t* allowed_operations_per_nf_type,
|
|
OpenAPI_list_t* allowed_operations_per_nf_instance,
|
|
bool is_priority,
|
|
int priority,
|
|
bool is_capacity,
|
|
int capacity,
|
|
bool is_load,
|
|
int load,
|
|
char *load_time_stamp,
|
|
char *recovery_time,
|
|
char *supported_features,
|
|
OpenAPI_list_t *nf_service_set_id_list,
|
|
OpenAPI_list_t *s_nssais,
|
|
OpenAPI_list_t *per_plmn_snssai_list,
|
|
char *vendor_id,
|
|
OpenAPI_list_t* supported_vendor_specific_features,
|
|
bool is_oauth2_required,
|
|
int oauth2_required
|
|
);
|
|
void OpenAPI_nf_service_free(OpenAPI_nf_service_t *nf_service);
|
|
OpenAPI_nf_service_t *OpenAPI_nf_service_parseFromJSON(cJSON *nf_serviceJSON);
|
|
cJSON *OpenAPI_nf_service_convertToJSON(OpenAPI_nf_service_t *nf_service);
|
|
OpenAPI_nf_service_t *OpenAPI_nf_service_copy(OpenAPI_nf_service_t *dst, OpenAPI_nf_service_t *src);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _OpenAPI_nf_service_H_ */
|
|
|