mirror of
https://github.com/open5gs/open5gs.git
synced 2026-05-02 05:10:10 +00:00
[openapi] Add support for nullable fields
Depending on the OpenAPI yaml files, fields can be marked as "nullable". Which means that the field can be either present, not present, or null. This feature is important for example in SmContextUpdateData structure, where many fields are described similar as the following: This IE shall be included for the modification .... For deleting the field, it shall contain the Null value.
This commit is contained in:
parent
7ea37ef618
commit
50464d174e
154 changed files with 2773 additions and 0 deletions
|
|
@ -11,13 +11,16 @@ OpenAPI_access_and_mobility_subscription_data_t *OpenAPI_access_and_mobility_sub
|
|||
OpenAPI_list_t *internal_group_ids,
|
||||
OpenAPI_list_t* shared_vn_group_data_ids,
|
||||
OpenAPI_ambr_rm_t *subscribed_ue_ambr,
|
||||
bool is_nssai_null,
|
||||
OpenAPI_nssai_t *nssai,
|
||||
OpenAPI_set_t *rat_restrictions,
|
||||
OpenAPI_list_t *forbidden_areas,
|
||||
OpenAPI_service_area_restriction_t *service_area_restriction,
|
||||
OpenAPI_list_t *core_network_type_restrictions,
|
||||
bool is_rfsp_index_null,
|
||||
bool is_rfsp_index,
|
||||
int rfsp_index,
|
||||
bool is_subs_reg_timer_null,
|
||||
bool is_subs_reg_timer,
|
||||
int subs_reg_timer,
|
||||
bool is_ue_usage_type,
|
||||
|
|
@ -26,6 +29,7 @@ OpenAPI_access_and_mobility_subscription_data_t *OpenAPI_access_and_mobility_sub
|
|||
int mps_priority,
|
||||
bool is_mcs_priority,
|
||||
int mcs_priority,
|
||||
bool is_active_time_null,
|
||||
bool is_active_time,
|
||||
int active_time,
|
||||
OpenAPI_sor_info_t *sor_info,
|
||||
|
|
@ -45,6 +49,7 @@ OpenAPI_access_and_mobility_subscription_data_t *OpenAPI_access_and_mobility_sub
|
|||
int service_gap_time,
|
||||
OpenAPI_mdt_user_consent_e mdt_user_consent,
|
||||
OpenAPI_mdt_configuration_t *mdt_configuration,
|
||||
bool is_trace_data_null,
|
||||
OpenAPI_trace_data_t *trace_data,
|
||||
OpenAPI_cag_data_t *cag_data,
|
||||
char *stn_sr,
|
||||
|
|
@ -83,13 +88,16 @@ OpenAPI_access_and_mobility_subscription_data_t *OpenAPI_access_and_mobility_sub
|
|||
access_and_mobility_subscription_data_local_var->internal_group_ids = internal_group_ids;
|
||||
access_and_mobility_subscription_data_local_var->shared_vn_group_data_ids = shared_vn_group_data_ids;
|
||||
access_and_mobility_subscription_data_local_var->subscribed_ue_ambr = subscribed_ue_ambr;
|
||||
access_and_mobility_subscription_data_local_var->is_nssai_null = is_nssai_null;
|
||||
access_and_mobility_subscription_data_local_var->nssai = nssai;
|
||||
access_and_mobility_subscription_data_local_var->rat_restrictions = rat_restrictions;
|
||||
access_and_mobility_subscription_data_local_var->forbidden_areas = forbidden_areas;
|
||||
access_and_mobility_subscription_data_local_var->service_area_restriction = service_area_restriction;
|
||||
access_and_mobility_subscription_data_local_var->core_network_type_restrictions = core_network_type_restrictions;
|
||||
access_and_mobility_subscription_data_local_var->is_rfsp_index_null = is_rfsp_index_null;
|
||||
access_and_mobility_subscription_data_local_var->is_rfsp_index = is_rfsp_index;
|
||||
access_and_mobility_subscription_data_local_var->rfsp_index = rfsp_index;
|
||||
access_and_mobility_subscription_data_local_var->is_subs_reg_timer_null = is_subs_reg_timer_null;
|
||||
access_and_mobility_subscription_data_local_var->is_subs_reg_timer = is_subs_reg_timer;
|
||||
access_and_mobility_subscription_data_local_var->subs_reg_timer = subs_reg_timer;
|
||||
access_and_mobility_subscription_data_local_var->is_ue_usage_type = is_ue_usage_type;
|
||||
|
|
@ -98,6 +106,7 @@ OpenAPI_access_and_mobility_subscription_data_t *OpenAPI_access_and_mobility_sub
|
|||
access_and_mobility_subscription_data_local_var->mps_priority = mps_priority;
|
||||
access_and_mobility_subscription_data_local_var->is_mcs_priority = is_mcs_priority;
|
||||
access_and_mobility_subscription_data_local_var->mcs_priority = mcs_priority;
|
||||
access_and_mobility_subscription_data_local_var->is_active_time_null = is_active_time_null;
|
||||
access_and_mobility_subscription_data_local_var->is_active_time = is_active_time;
|
||||
access_and_mobility_subscription_data_local_var->active_time = active_time;
|
||||
access_and_mobility_subscription_data_local_var->sor_info = sor_info;
|
||||
|
|
@ -117,6 +126,7 @@ OpenAPI_access_and_mobility_subscription_data_t *OpenAPI_access_and_mobility_sub
|
|||
access_and_mobility_subscription_data_local_var->service_gap_time = service_gap_time;
|
||||
access_and_mobility_subscription_data_local_var->mdt_user_consent = mdt_user_consent;
|
||||
access_and_mobility_subscription_data_local_var->mdt_configuration = mdt_configuration;
|
||||
access_and_mobility_subscription_data_local_var->is_trace_data_null = is_trace_data_null;
|
||||
access_and_mobility_subscription_data_local_var->trace_data = trace_data;
|
||||
access_and_mobility_subscription_data_local_var->cag_data = cag_data;
|
||||
access_and_mobility_subscription_data_local_var->stn_sr = stn_sr;
|
||||
|
|
@ -440,6 +450,11 @@ cJSON *OpenAPI_access_and_mobility_subscription_data_convertToJSON(OpenAPI_acces
|
|||
ogs_error("OpenAPI_access_and_mobility_subscription_data_convertToJSON() failed [nssai]");
|
||||
goto end;
|
||||
}
|
||||
} else if (access_and_mobility_subscription_data->is_nssai_null) {
|
||||
if (cJSON_AddNullToObject(item, "nssai") == NULL) {
|
||||
ogs_error("OpenAPI_access_and_mobility_subscription_data_convertToJSON() failed [nssai]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
if (access_and_mobility_subscription_data->rat_restrictions != OpenAPI_rat_type_NULL) {
|
||||
|
|
@ -504,6 +519,11 @@ cJSON *OpenAPI_access_and_mobility_subscription_data_convertToJSON(OpenAPI_acces
|
|||
ogs_error("OpenAPI_access_and_mobility_subscription_data_convertToJSON() failed [rfsp_index]");
|
||||
goto end;
|
||||
}
|
||||
} else if (access_and_mobility_subscription_data->is_rfsp_index_null) {
|
||||
if (cJSON_AddNullToObject(item, "rfspIndex") == NULL) {
|
||||
ogs_error("OpenAPI_access_and_mobility_subscription_data_convertToJSON() failed [rfsp_index]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
if (access_and_mobility_subscription_data->is_subs_reg_timer) {
|
||||
|
|
@ -511,6 +531,11 @@ cJSON *OpenAPI_access_and_mobility_subscription_data_convertToJSON(OpenAPI_acces
|
|||
ogs_error("OpenAPI_access_and_mobility_subscription_data_convertToJSON() failed [subs_reg_timer]");
|
||||
goto end;
|
||||
}
|
||||
} else if (access_and_mobility_subscription_data->is_subs_reg_timer_null) {
|
||||
if (cJSON_AddNullToObject(item, "subsRegTimer") == NULL) {
|
||||
ogs_error("OpenAPI_access_and_mobility_subscription_data_convertToJSON() failed [subs_reg_timer]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
if (access_and_mobility_subscription_data->is_ue_usage_type) {
|
||||
|
|
@ -539,6 +564,11 @@ cJSON *OpenAPI_access_and_mobility_subscription_data_convertToJSON(OpenAPI_acces
|
|||
ogs_error("OpenAPI_access_and_mobility_subscription_data_convertToJSON() failed [active_time]");
|
||||
goto end;
|
||||
}
|
||||
} else if (access_and_mobility_subscription_data->is_active_time_null) {
|
||||
if (cJSON_AddNullToObject(item, "activeTime") == NULL) {
|
||||
ogs_error("OpenAPI_access_and_mobility_subscription_data_convertToJSON() failed [active_time]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
if (access_and_mobility_subscription_data->sor_info) {
|
||||
|
|
@ -682,6 +712,11 @@ cJSON *OpenAPI_access_and_mobility_subscription_data_convertToJSON(OpenAPI_acces
|
|||
ogs_error("OpenAPI_access_and_mobility_subscription_data_convertToJSON() failed [trace_data]");
|
||||
goto end;
|
||||
}
|
||||
} else if (access_and_mobility_subscription_data->is_trace_data_null) {
|
||||
if (cJSON_AddNullToObject(item, "traceData") == NULL) {
|
||||
ogs_error("OpenAPI_access_and_mobility_subscription_data_convertToJSON() failed [trace_data]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
if (access_and_mobility_subscription_data->cag_data) {
|
||||
|
|
@ -1124,12 +1159,14 @@ OpenAPI_access_and_mobility_subscription_data_t *OpenAPI_access_and_mobility_sub
|
|||
|
||||
nssai = cJSON_GetObjectItemCaseSensitive(access_and_mobility_subscription_dataJSON, "nssai");
|
||||
if (nssai) {
|
||||
if (!cJSON_IsNull(nssai)) {
|
||||
nssai_local_nonprim = OpenAPI_nssai_parseFromJSON(nssai);
|
||||
if (!nssai_local_nonprim) {
|
||||
ogs_error("OpenAPI_nssai_parseFromJSON failed [nssai]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rat_restrictions = cJSON_GetObjectItemCaseSensitive(access_and_mobility_subscription_dataJSON, "ratRestrictions");
|
||||
if (rat_restrictions) {
|
||||
|
|
@ -1216,19 +1253,23 @@ OpenAPI_access_and_mobility_subscription_data_t *OpenAPI_access_and_mobility_sub
|
|||
|
||||
rfsp_index = cJSON_GetObjectItemCaseSensitive(access_and_mobility_subscription_dataJSON, "rfspIndex");
|
||||
if (rfsp_index) {
|
||||
if (!cJSON_IsNull(rfsp_index)) {
|
||||
if (!cJSON_IsNumber(rfsp_index)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_subscription_data_parseFromJSON() failed [rfsp_index]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
subs_reg_timer = cJSON_GetObjectItemCaseSensitive(access_and_mobility_subscription_dataJSON, "subsRegTimer");
|
||||
if (subs_reg_timer) {
|
||||
if (!cJSON_IsNull(subs_reg_timer)) {
|
||||
if (!cJSON_IsNumber(subs_reg_timer)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_subscription_data_parseFromJSON() failed [subs_reg_timer]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ue_usage_type = cJSON_GetObjectItemCaseSensitive(access_and_mobility_subscription_dataJSON, "ueUsageType");
|
||||
if (ue_usage_type) {
|
||||
|
|
@ -1256,11 +1297,13 @@ OpenAPI_access_and_mobility_subscription_data_t *OpenAPI_access_and_mobility_sub
|
|||
|
||||
active_time = cJSON_GetObjectItemCaseSensitive(access_and_mobility_subscription_dataJSON, "activeTime");
|
||||
if (active_time) {
|
||||
if (!cJSON_IsNull(active_time)) {
|
||||
if (!cJSON_IsNumber(active_time)) {
|
||||
ogs_error("OpenAPI_access_and_mobility_subscription_data_parseFromJSON() failed [active_time]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sor_info = cJSON_GetObjectItemCaseSensitive(access_and_mobility_subscription_dataJSON, "sorInfo");
|
||||
if (sor_info) {
|
||||
|
|
@ -1416,12 +1459,14 @@ OpenAPI_access_and_mobility_subscription_data_t *OpenAPI_access_and_mobility_sub
|
|||
|
||||
trace_data = cJSON_GetObjectItemCaseSensitive(access_and_mobility_subscription_dataJSON, "traceData");
|
||||
if (trace_data) {
|
||||
if (!cJSON_IsNull(trace_data)) {
|
||||
trace_data_local_nonprim = OpenAPI_trace_data_parseFromJSON(trace_data);
|
||||
if (!trace_data_local_nonprim) {
|
||||
ogs_error("OpenAPI_trace_data_parseFromJSON failed [trace_data]");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cag_data = cJSON_GetObjectItemCaseSensitive(access_and_mobility_subscription_dataJSON, "cagData");
|
||||
if (cag_data) {
|
||||
|
|
@ -1720,13 +1765,16 @@ OpenAPI_access_and_mobility_subscription_data_t *OpenAPI_access_and_mobility_sub
|
|||
internal_group_ids ? internal_group_idsList : NULL,
|
||||
shared_vn_group_data_ids ? shared_vn_group_data_idsList : NULL,
|
||||
subscribed_ue_ambr ? subscribed_ue_ambr_local_nonprim : NULL,
|
||||
nssai && cJSON_IsNull(nssai) ? true : false,
|
||||
nssai ? nssai_local_nonprim : NULL,
|
||||
rat_restrictions ? rat_restrictionsList : NULL,
|
||||
forbidden_areas ? forbidden_areasList : NULL,
|
||||
service_area_restriction ? service_area_restriction_local_nonprim : NULL,
|
||||
core_network_type_restrictions ? core_network_type_restrictionsList : NULL,
|
||||
rfsp_index && cJSON_IsNull(rfsp_index) ? true : false,
|
||||
rfsp_index ? true : false,
|
||||
rfsp_index ? rfsp_index->valuedouble : 0,
|
||||
subs_reg_timer && cJSON_IsNull(subs_reg_timer) ? true : false,
|
||||
subs_reg_timer ? true : false,
|
||||
subs_reg_timer ? subs_reg_timer->valuedouble : 0,
|
||||
ue_usage_type ? true : false,
|
||||
|
|
@ -1735,6 +1783,7 @@ OpenAPI_access_and_mobility_subscription_data_t *OpenAPI_access_and_mobility_sub
|
|||
mps_priority ? mps_priority->valueint : 0,
|
||||
mcs_priority ? true : false,
|
||||
mcs_priority ? mcs_priority->valueint : 0,
|
||||
active_time && cJSON_IsNull(active_time) ? true : false,
|
||||
active_time ? true : false,
|
||||
active_time ? active_time->valuedouble : 0,
|
||||
sor_info ? sor_info_local_nonprim : NULL,
|
||||
|
|
@ -1754,6 +1803,7 @@ OpenAPI_access_and_mobility_subscription_data_t *OpenAPI_access_and_mobility_sub
|
|||
service_gap_time ? service_gap_time->valuedouble : 0,
|
||||
mdt_user_consent ? mdt_user_consentVariable : 0,
|
||||
mdt_configuration ? mdt_configuration_local_nonprim : NULL,
|
||||
trace_data && cJSON_IsNull(trace_data) ? true : false,
|
||||
trace_data ? trace_data_local_nonprim : NULL,
|
||||
cag_data ? cag_data_local_nonprim : NULL,
|
||||
stn_sr && !cJSON_IsNull(stn_sr) ? ogs_strdup(stn_sr->valuestring) : NULL,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue