
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "service_name.h"

char* OpenAPI_service_name_ToString(OpenAPI_service_name_e service_name)
{
    const char *service_nameArray[] =  { "NULL", "nnrf-nfm", "nnrf-disc", "nnrf-oauth2", "nudm-sdm", "nudm-uecm", "nudm-ueau", "nudm-ee", "nudm-pp", "nudm-niddau", "nudm-mt", "nudm-ssau", "nudm-rsds", "nudm-ueid", "namf-comm", "namf-evts", "namf-mt", "namf-loc", "namf-mbs-comm", "namf-mbs-bc", "namf-aiot", "nsmf-pdusession", "nsmf-event-exposure", "nsmf-nidd", "nausf-auth", "nausf-sorprotection", "nausf-upuprotection", "nnef-pfdmanagement", "nnef-smcontext", "nnef-smservice", "nnef-eventexposure", "nnef-eas-deployment", "nnef-dnai-mapping", "nnef-traffic-influence-data", "nnef-ecs-addr-cfg-info", "nnef-ueid", "nnef-vfl-inference", "nnef-inference", "nnef-vfl-training", "nnef-training", "3gpp-cp-parameter-provisioning", "3gpp-device-triggering", "3gpp-bdt", "3gpp-traffic-influence", "3gpp-chargeable-party", "3gpp-as-session-with-qos", "3gpp-msisdn-less-mo-sms", "3gpp-service-parameter", "3gpp-monitoring-event", "3gpp-nidd-configuration-trigger", "3gpp-nidd", "3gpp-analyticsexposure", "3gpp-racs-parameter-provisioning", "3gpp-ecr-control", "3gpp-applying-bdt-policy", "3gpp-mo-lcs-notify", "3gpp-time-sync", "3gpp-am-influence", "3gpp-am-policyauthorization", "3gpp-akma", "3gpp-eas-deployment", "3gpp-iptvconfiguration", "3gpp-mbs-tmgi", "3gpp-mbs-session", "3gpp-authentication", "3gpp-asti", "3gpp-pdtq-policy-negotiation", "3gpp-musa", "3gpp-5glan-pp", "3gpp-lpi-pp", "3gpp-acs-pp", "3gpp-ecs-address-provision", "3gpp-data-reporting", "3gpp-data-reporting-provisioning", "3gpp-ueid", "3gpp-mb-us", "3gpp-mb-ud-ingest", "3gpp-event-exposure", "3gpp-mbs-group-msg", "3gpp-dnai-mapping", "3gpp-grp-pp", "3gpp-slice-pp", "3gpp-ue-address", "3gpp-ecs-address", "3gpp-rslppi-pp", "3gpp-group-message-delivery-mb2", "3gpp-group-message-delivery-xmb", "3gpp-network-status-reporting", "3gpp-pfd-management", "3gpp-network-parameter-configuration", "3gpp-addr-pp", "3gpp-uav-fa", "3gpp-caginfo-pp", "3gpp-retrieve-uav-flight", "3gpp-ims-sm", "3gpp-ims-ee", "3gpp-ims-pp", "3gpp-vfl-training", "3gpp-vfl-inference", "3gpp-vfl-nf-discovery", "3gpp-aiot", "npcf-am-policy-control", "npcf-smpolicycontrol", "npcf-policyauthorization", "npcf-bdtpolicycontrol", "npcf-eventexposure", "npcf-ue-policy-control", "npcf-am-policyauthorization", "npcf-pdtq-policy-control", "npcf-mbspolicycontrol", "npcf-mbspolicyauth", "nsmsf-sms", "nnssf-nsselection", "nnssf-nssaiavailability", "nudr-dr", "nudr-group-id-map", "nlmf-loc", "nlmf-broadcast", "nlmf-dataexposure", "n5g-eir-eic", "nbsf-management", "nchf-spendinglimitcontrol", "nchf-convergedcharging", "nchf-offlineonlycharging", "nnwdaf-eventssubscription", "nnwdaf-analyticsinfo", "nnwdaf-datamanagement", "nnwdaf-mlmodelprovision", "nnwdaf-mlmodeltraining", "nnwdaf-mlmodelmonitor", "nnwdaf-roamingdata", "nnwdaf-roaminganalytics", "nnwdaf-vfltraining", "nnwdaf-vflinference", "ngmlc-loc", "nucmf-provisioning", "nucmf-uecapabilitymanagement", "nhss-sdm", "nhss-uecm", "nhss-ueau", "nhss-ee", "nhss-pp", "nhss-ims-sdm", "nhss-ims-uecm", "nhss-ims-ueau", "nhss-gba-sdm", "nhss-gba-ueau", "nsepp-telescopic", "nsoraf-sor", "nspaf-secured-packet", "nudsf-dr", "nudsf-timer", "nnssaaf-nssaa", "nnssaaf-aiw", "naanf-akma", "n5gddnmf-discovery", "nmfaf-3dadatamanagement", "nmfaf-3cadatamanagement", "nmfaf-contextmanagement", "neasdf-dnscontext", "neasdf-baselinednspattern", "ndccf-datamanagement", "ndccf-contextmanagement", "nnsacf-nsac", "nnsacf-slice-ee", "nmbsmf-tmgi", "nmbsmf-mbssession", "nadrf-datamanagement", "nadrf-mlmodelmanagement", "nbsp-gba", "ntsctsf-time-sync", "ntsctsf-qos-tscai", "ntsctsf-asti", "npkmf-keyreq", "npkmf-userid", "npkmf-discovery", "nmnpf-npstatus", "niwmsc-smservice", "nmbsf-mbs-us", "nmbsf-mbs-ud-ingest", "nmbstf-distsession", "npanf-prosekey", "npanf-userid", "nupf-ee", "nupf-gueip", "naf-prose", "naf-eventexposure", "naf-vfltraining", "naf-vflinference", "naf-training", "naf-inference", "nmf-mrm", "nimsas-sec", "nimsas-mc", "nimsas-ism", "nimsas-ee", "nscp-ee", "neif-eventexposure", "naiotf-aiot", "nadm-dmquery", "nadm-dmupdate" };
    size_t sizeofArray = sizeof(service_nameArray) / sizeof(service_nameArray[0]);
    if (service_name < sizeofArray)
        return (char *)service_nameArray[service_name];
    else
        return (char *)"Unknown";
}

OpenAPI_service_name_e OpenAPI_service_name_FromString(char* service_name)
{
    int stringToReturn = 0;
    const char *service_nameArray[] =  { "NULL", "nnrf-nfm", "nnrf-disc", "nnrf-oauth2", "nudm-sdm", "nudm-uecm", "nudm-ueau", "nudm-ee", "nudm-pp", "nudm-niddau", "nudm-mt", "nudm-ssau", "nudm-rsds", "nudm-ueid", "namf-comm", "namf-evts", "namf-mt", "namf-loc", "namf-mbs-comm", "namf-mbs-bc", "namf-aiot", "nsmf-pdusession", "nsmf-event-exposure", "nsmf-nidd", "nausf-auth", "nausf-sorprotection", "nausf-upuprotection", "nnef-pfdmanagement", "nnef-smcontext", "nnef-smservice", "nnef-eventexposure", "nnef-eas-deployment", "nnef-dnai-mapping", "nnef-traffic-influence-data", "nnef-ecs-addr-cfg-info", "nnef-ueid", "nnef-vfl-inference", "nnef-inference", "nnef-vfl-training", "nnef-training", "3gpp-cp-parameter-provisioning", "3gpp-device-triggering", "3gpp-bdt", "3gpp-traffic-influence", "3gpp-chargeable-party", "3gpp-as-session-with-qos", "3gpp-msisdn-less-mo-sms", "3gpp-service-parameter", "3gpp-monitoring-event", "3gpp-nidd-configuration-trigger", "3gpp-nidd", "3gpp-analyticsexposure", "3gpp-racs-parameter-provisioning", "3gpp-ecr-control", "3gpp-applying-bdt-policy", "3gpp-mo-lcs-notify", "3gpp-time-sync", "3gpp-am-influence", "3gpp-am-policyauthorization", "3gpp-akma", "3gpp-eas-deployment", "3gpp-iptvconfiguration", "3gpp-mbs-tmgi", "3gpp-mbs-session", "3gpp-authentication", "3gpp-asti", "3gpp-pdtq-policy-negotiation", "3gpp-musa", "3gpp-5glan-pp", "3gpp-lpi-pp", "3gpp-acs-pp", "3gpp-ecs-address-provision", "3gpp-data-reporting", "3gpp-data-reporting-provisioning", "3gpp-ueid", "3gpp-mb-us", "3gpp-mb-ud-ingest", "3gpp-event-exposure", "3gpp-mbs-group-msg", "3gpp-dnai-mapping", "3gpp-grp-pp", "3gpp-slice-pp", "3gpp-ue-address", "3gpp-ecs-address", "3gpp-rslppi-pp", "3gpp-group-message-delivery-mb2", "3gpp-group-message-delivery-xmb", "3gpp-network-status-reporting", "3gpp-pfd-management", "3gpp-network-parameter-configuration", "3gpp-addr-pp", "3gpp-uav-fa", "3gpp-caginfo-pp", "3gpp-retrieve-uav-flight", "3gpp-ims-sm", "3gpp-ims-ee", "3gpp-ims-pp", "3gpp-vfl-training", "3gpp-vfl-inference", "3gpp-vfl-nf-discovery", "3gpp-aiot", "npcf-am-policy-control", "npcf-smpolicycontrol", "npcf-policyauthorization", "npcf-bdtpolicycontrol", "npcf-eventexposure", "npcf-ue-policy-control", "npcf-am-policyauthorization", "npcf-pdtq-policy-control", "npcf-mbspolicycontrol", "npcf-mbspolicyauth", "nsmsf-sms", "nnssf-nsselection", "nnssf-nssaiavailability", "nudr-dr", "nudr-group-id-map", "nlmf-loc", "nlmf-broadcast", "nlmf-dataexposure", "n5g-eir-eic", "nbsf-management", "nchf-spendinglimitcontrol", "nchf-convergedcharging", "nchf-offlineonlycharging", "nnwdaf-eventssubscription", "nnwdaf-analyticsinfo", "nnwdaf-datamanagement", "nnwdaf-mlmodelprovision", "nnwdaf-mlmodeltraining", "nnwdaf-mlmodelmonitor", "nnwdaf-roamingdata", "nnwdaf-roaminganalytics", "nnwdaf-vfltraining", "nnwdaf-vflinference", "ngmlc-loc", "nucmf-provisioning", "nucmf-uecapabilitymanagement", "nhss-sdm", "nhss-uecm", "nhss-ueau", "nhss-ee", "nhss-pp", "nhss-ims-sdm", "nhss-ims-uecm", "nhss-ims-ueau", "nhss-gba-sdm", "nhss-gba-ueau", "nsepp-telescopic", "nsoraf-sor", "nspaf-secured-packet", "nudsf-dr", "nudsf-timer", "nnssaaf-nssaa", "nnssaaf-aiw", "naanf-akma", "n5gddnmf-discovery", "nmfaf-3dadatamanagement", "nmfaf-3cadatamanagement", "nmfaf-contextmanagement", "neasdf-dnscontext", "neasdf-baselinednspattern", "ndccf-datamanagement", "ndccf-contextmanagement", "nnsacf-nsac", "nnsacf-slice-ee", "nmbsmf-tmgi", "nmbsmf-mbssession", "nadrf-datamanagement", "nadrf-mlmodelmanagement", "nbsp-gba", "ntsctsf-time-sync", "ntsctsf-qos-tscai", "ntsctsf-asti", "npkmf-keyreq", "npkmf-userid", "npkmf-discovery", "nmnpf-npstatus", "niwmsc-smservice", "nmbsf-mbs-us", "nmbsf-mbs-ud-ingest", "nmbstf-distsession", "npanf-prosekey", "npanf-userid", "nupf-ee", "nupf-gueip", "naf-prose", "naf-eventexposure", "naf-vfltraining", "naf-vflinference", "naf-training", "naf-inference", "nmf-mrm", "nimsas-sec", "nimsas-mc", "nimsas-ism", "nimsas-ee", "nscp-ee", "neif-eventexposure", "naiotf-aiot", "nadm-dmquery", "nadm-dmupdate" };
    size_t sizeofArray = sizeof(service_nameArray) / sizeof(service_nameArray[0]);
    while (stringToReturn < sizeofArray) {
        if (strcmp(service_name, service_nameArray[stringToReturn]) == 0) {
            return stringToReturn;
        }
        stringToReturn++;
    }
    return 0;
}

