diff --git a/internal/sbi/api_parameterprovision.go b/internal/sbi/api_parameterprovision.go index 2971bd3..582897b 100644 --- a/internal/sbi/api_parameterprovision.go +++ b/internal/sbi/api_parameterprovision.go @@ -26,6 +26,83 @@ func (s *Server) getParameterProvisionRoutes() []Route { "/:ueId/pp-data", s.HandleUpdate, }, + + { + "Create5GMBSGroup", + strings.ToUpper("Put"), + "/mbs-group-membership/:extGroupId", + s.HandleCreate5GMBSGroup, + }, + + { + "Create5GVNGroup", + strings.ToUpper("Put"), + "/5g-vn-groups/:extGroupId", + s.HandleCreate5GVNGroup, + }, + + { + "CreatePPDataEntry", + strings.ToUpper("Put"), + "/:ueId/pp-data-store/:afInstanceId", + s.HandleCreatePPDataEntry, + }, + + { + "Delete5GMBSGroup", + strings.ToUpper("Delete"), + "/mbs-group-membership/:extGroupId", + s.HandleDelete5GMBSGroup, + }, + + { + "Delete5GVNGroup", + strings.ToUpper("Delete"), + "/5g-vn-groups/:extGroupId", + s.HandleDelete5GVNGroup, + }, + + { + "DeletePPDataEntry", + strings.ToUpper("Delete"), + "/:ueId/pp-data-store/:afInstanceId", + s.HandleDeletePPDataEntry, + }, + + { + "Get5GMBSGroup", + strings.ToUpper("Get"), + "/mbs-group-membership/:extGroupId", + s.HandleGet5GMBSGroup, + }, + + { + "Get5GVNGroup", + strings.ToUpper("Get"), + "/5g-vn-groups/:extGroupId", + s.HandleGet5GVNGroup, + }, + + { + "GetPPDataEntry", + strings.ToUpper("Get"), + "/:ueId/pp-data-store/:afInstanceId", + s.HandleGetPPDataEntry, + }, + + { + "Modify5GMBSGroup", + strings.ToUpper("Patch"), + "/mbs-group-membership/:extGroupId", + s.HandleModify5GMBSGroup, + }, + + { + "Modify5GVNGroup", + strings.ToUpper("Patch"), + "/5g-vn-groups/:extGroupId", + s.HandleModify5GVNGroup, + }, } } @@ -75,3 +152,47 @@ func (s *Server) HandleUpdate(c *gin.Context) { // step 3: handle the message s.Processor().UpdateProcedure(c, ppDataReq, gpsi) } + +func (s *Server) HandleCreate5GMBSGroup(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleCreate5GVNGroup(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleCreatePPDataEntry(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleDelete5GMBSGroup(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleDelete5GVNGroup(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleDeletePPDataEntry(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGet5GMBSGroup(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGet5GVNGroup(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetPPDataEntry(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleModify5GMBSGroup(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleModify5GVNGroup(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} diff --git a/internal/sbi/api_subscriberdatamanagement.go b/internal/sbi/api_subscriberdatamanagement.go index c8a2acd..df045c0 100644 --- a/internal/sbi/api_subscriberdatamanagement.go +++ b/internal/sbi/api_subscriberdatamanagement.go @@ -382,6 +382,70 @@ func (s *Server) HandleGetIdTranslationResult(c *gin.Context) { s.Processor().GetIdTranslationResultProcedure(c, gpsi) } +func (s *Server) HandleGetMultipleIdentifiers(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetGroupIdentifiers(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetLcsBcaData(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetLcsMoData(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetLcsPrivacyData(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetMbsData(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetProseData(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetUcData(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetUeCtxInAmfData(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetV2xData(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetIndividualSharedData(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleCAGAck(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetEcrData(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleSNSSAIsAck(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleUpdateSORInfo(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleUpuAck(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + func (s *Server) OneLayerPathHandlerFunc(c *gin.Context) { supi := c.Param("supi") oneLayerPathRouter := s.getOneLayerRoutes() @@ -419,10 +483,17 @@ func (s *Server) TwoLayerPathHandlerFunc(c *gin.Context) { // for "/:ueId/id-translation-result" if op == "id-translation-result" && strings.ToUpper("Get") == c.Request.Method { + c.Params = append(c.Params, gin.Param{Key: "ueId", Value: c.Param("supi")}) s.HandleGetIdTranslationResult(c) return } + // for "/shared-data/:sharedDataId" + if supi == "shared-data" && strings.ToUpper("Get") == c.Request.Method { + s.HandleGetIndividualSharedData(c) + return + } + twoLayerPathRouter := s.getTwoLayerRoutes() for _, route := range twoLayerPathRouter { if strings.Contains(route.Pattern, op) && route.Method == c.Request.Method { @@ -436,10 +507,12 @@ func (s *Server) TwoLayerPathHandlerFunc(c *gin.Context) { func (s *Server) ThreeLayerPathHandlerFunc(c *gin.Context) { op := c.Param("subscriptionId") + thirdLayer := c.Param("thirdLayer") // for "/:ueId/sdm-subscriptions/:subscriptionId" if op == "sdm-subscriptions" && strings.ToUpper("Delete") == c.Request.Method { var tmpParams gin.Params + tmpParams = append(tmpParams, gin.Param{Key: "ueId", Value: c.Param("supi")}) tmpParams = append(tmpParams, gin.Param{Key: "subscriptionId", Value: c.Param("thirdLayer")}) c.Params = tmpParams s.HandleUnsubscribe(c) @@ -447,14 +520,46 @@ func (s *Server) ThreeLayerPathHandlerFunc(c *gin.Context) { } // for "/:supi/am-data/sor-ack" - if op == "am-data" && strings.ToUpper("Put") == c.Request.Method { + if op == "am-data" && strings.ToUpper("Put") == c.Request.Method && thirdLayer == "sor-ack" { s.HandleInfo(c) return } + // for "/:supi/am-data/cag-ack" + if op == "am-data" && strings.ToUpper("Put") == c.Request.Method && thirdLayer == "cag-ack" { + s.HandleCAGAck(c) + return + } + + // for "/:supi/am-data/ecr-data" + if op == "am-data" && strings.ToUpper("Get") == c.Request.Method && thirdLayer == "ecr-data" { + s.HandleGetEcrData(c) + return + } + + // for "/:supi/am-data/subscribed-snssais-ack" + if op == "am-data" && strings.ToUpper("Put") == c.Request.Method && + thirdLayer == "subscribed-snssais-ack" { + s.HandleSNSSAIsAck(c) + return + } + + // for "/:supi/am-data/update-sor" + if op == "am-data" && strings.ToUpper("Post") == c.Request.Method && thirdLayer == "update-sor" { + s.HandleUpdateSORInfo(c) + return + } + + // for "/:supi/am-data/upu-ack" + if op == "am-data" && strings.ToUpper("Put") == c.Request.Method && thirdLayer == "upu-ack" { + s.HandleUpuAck(c) + return + } + // for "/:ueId/sdm-subscriptions/:subscriptionId" if op == "sdm-subscriptions" && strings.ToUpper("Patch") == c.Request.Method { var tmpParams gin.Params + tmpParams = append(tmpParams, gin.Param{Key: "ueId", Value: c.Param("supi")}) tmpParams = append(tmpParams, gin.Param{Key: "subscriptionId", Value: c.Param("thirdLayer")}) c.Params = tmpParams s.HandleModify(c) @@ -486,6 +591,13 @@ func (s *Server) getOneLayerRoutes() []Route { "/shared-data-subscriptions", s.HandleSubscribeToSharedData, }, + + { + "GetMultipleIdentifiers", + strings.ToUpper("Get"), + "/multiple-identifiers", + s.HandleGetMultipleIdentifiers, + }, } } @@ -560,5 +672,68 @@ func (s *Server) getTwoLayerRoutes() []Route { "/:supi/ue-context-in-smsf-data", s.HandleGetUeContextInSmsfData, }, + + { + "GetGroupIdentifiers", + strings.ToUpper("Get"), + "/group-data/group-identifiers", + s.HandleGetGroupIdentifiers, + }, + + { + "GetLcsBcaData", + strings.ToUpper("Get"), + "/:supi/lcs-bca-data", + s.HandleGetLcsBcaData, + }, + + { + "GetLcsMoData", + strings.ToUpper("Get"), + "/:supi/lcs-mo-data", + s.HandleGetLcsMoData, + }, + + { + "GetLcsPrivacyData", + strings.ToUpper("Get"), + "/:ueId/lcs-privacy-data", + s.HandleGetLcsPrivacyData, + }, + + { + "GetMbsData", + strings.ToUpper("Get"), + "/:supi/5mbs-data", + s.HandleGetMbsData, + }, + + { + "GetProseData", + strings.ToUpper("Get"), + "/:supi/prose-data", + s.HandleGetProseData, + }, + + { + "GetUcData", + strings.ToUpper("Get"), + "/:supi/uc-data", + s.HandleGetUcData, + }, + + { + "GetUeCtxInAmfData", + strings.ToUpper("Get"), + "/:supi/ue-context-in-amf-data", + s.HandleGetUeCtxInAmfData, + }, + + { + "GetV2xData", + strings.ToUpper("Get"), + "/:supi/v2x-data", + s.HandleGetV2xData, + }, } } diff --git a/internal/sbi/api_ueauthentication.go b/internal/sbi/api_ueauthentication.go index d44f281..f80c802 100644 --- a/internal/sbi/api_ueauthentication.go +++ b/internal/sbi/api_ueauthentication.go @@ -26,6 +26,41 @@ func (s *Server) getUEAuthenticationRoutes() []Route { "/:supi/auth-events", s.HandleConfirmAuth, }, + + { + "DeleteAuth", + strings.ToUpper("Put"), + "/:supi/auth-events/:authEventId", + s.HandleDeleteAuth, + }, + + { + "GenerateAv", + strings.ToUpper("Post"), + "/:supi/hss-security-information/:hssAuthType/generate-av", + s.HandleGenerateAv, + }, + + { + "GenerateGbaAv", + strings.ToUpper("Post"), + "/:supi/gba-security-information/generate-av", + s.HandleGenerateGbaAv, + }, + + { + "GenerateProseAV", + strings.ToUpper("Post"), + "/:supiOrSuci/prose-security-information/generate-av", + s.HandleGenerateProseAV, + }, + + { + "GetRgAuthData", + strings.ToUpper("Get"), + "/:supiOrSuci/security-information-rg", + s.HandleGetRgAuthData, + }, } } @@ -110,3 +145,23 @@ func (s *Server) GenAuthDataHandlerFunc(c *gin.Context) { c.String(http.StatusNotFound, "404 page not found") } + +func (s *Server) HandleDeleteAuth(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGenerateAv(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGenerateGbaAv(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGenerateProseAV(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetRgAuthData(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} diff --git a/internal/sbi/api_uecontextmanagement.go b/internal/sbi/api_uecontextmanagement.go index ce9ffe8..f78ac4f 100644 --- a/internal/sbi/api_uecontextmanagement.go +++ b/internal/sbi/api_uecontextmanagement.go @@ -118,6 +118,125 @@ func (s *Server) getUEContextManagementRoutes() []Route { "/:ueId/registrations/smsf-non-3gpp-access", s.HandleRegistrationSmsfNon3gppAccess, }, + + { + "DeregAMF", + strings.ToUpper("Post"), + "/:ueId/registrations/amf-3gpp-access/dereg-amf", + s.HandleDeregAMF, + }, + + { + "GetIpSmGwRegistration", + strings.ToUpper("Get"), + "/:ueId/registrations/ip-sm-gw", + s.HandleGetIpSmGwRegistration, + }, + + { + "GetLocationInfo", + strings.ToUpper("Get"), + "/:ueId/registrations/location", + s.HandleGetLocationInfo, + }, + + { + "GetNwdafRegistration", + strings.ToUpper("Get"), + "/:ueId/registrations/nwdaf-registrations", + s.HandleGetNwdafRegistration, + }, + + { + "GetRegistrations", + strings.ToUpper("Get"), + "/:ueId/registrations", + s.HandleGetRegistrations, + }, + + { + "GetSmfRegistration", + strings.ToUpper("Get"), + "/:ueId/registrations/smf-registrations", + s.HandleGetSmfRegistration, + }, + + { + "IpSmGwDeregistration", + strings.ToUpper("Delete"), + "/:ueId/registrations/ip-sm-gw", + s.HandleIpSmGwDeregistration, + }, + + { + "IpSmGwRegistration", + strings.ToUpper("Put"), + "/:ueId/registrations/ip-sm-gw", + s.HandleIpSmGwRegistration, + }, + + { + "NwdafDeregistration", + strings.ToUpper("Delete"), + "/:ueId/registrations/nwdaf-registrations/:nwdafRegistrationId", + s.HandleNwdafDeregistration, + }, + + { + "NwdafRegistration", + strings.ToUpper("Put"), + "/:ueId/registrations/nwdaf-registrations/:nwdafRegistrationId", + s.HandleNwdafRegistration, + }, + + { + "PeiUpdate", + strings.ToUpper("Post"), + "/:ueId/registrations/amf-3gpp-access/pei-update", + s.HandlePeiUpdate, + }, + + { + "RetrieveSmfRegistration", + strings.ToUpper("Get"), + "/:ueId/registrations/smf-registrations/:pduSessionId", + s.HandleRetrieveSmfRegistration, + }, + + { + "SendRoutingInfoSm", + strings.ToUpper("Post"), + "/:ueId/registrations/send-routing-info-sm", + s.HandleSendRoutingInfoSm, + }, + + { + "TriggerPCSCFRestoration", + strings.ToUpper("Post"), + "/restore-pcscf", + s.HandleTriggerPCSCFRestoration, + }, + + { + "UpdateNwdafRegistration", + strings.ToUpper("Patch"), + "/:ueId/registrations/nwdaf-registrations/:nwdafRegistrationId", + s.HandleUpdateNwdafRegistration, + }, + + { + "UpdateRoamingInformation", + strings.ToUpper("Post"), + "/:ueId/registrations/amf-3gpp-access/roaming-info-update", + s.HandleUpdateRoamingInformation, + }, + + { + "UpdateSmfRegistration", + strings.ToUpper("Patch"), + "/:ueId/registrations/smf-registrations/:pduSessionId", + s.HandleUpdateSmfRegistration, + }, } } @@ -372,3 +491,71 @@ func (s *Server) HandleGetAmf3gppAccess(c *gin.Context) { s.Processor().GetAmf3gppAccessProcedure(c, ueID, supportedFeatures) } + +func (s *Server) HandleDeregAMF(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetIpSmGwRegistration(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetLocationInfo(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetNwdafRegistration(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetRegistrations(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleGetSmfRegistration(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleIpSmGwDeregistration(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleIpSmGwRegistration(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleNwdafDeregistration(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleNwdafRegistration(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandlePeiUpdate(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleRetrieveSmfRegistration(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleSendRoutingInfoSm(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleTriggerPCSCFRestoration(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleUpdateNwdafRegistration(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleUpdateRoamingInformation(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +} + +func (s *Server) HandleUpdateSmfRegistration(c *gin.Context) { + c.JSON(http.StatusNotImplemented, gin.H{}) +}