Merge "Add missing CAPIF APIs to code generation"
diff --git a/capif/.gitignore b/capif/.gitignore
index 82fa357..3354d0c 100644
--- a/capif/.gitignore
+++ b/capif/.gitignore
@@ -3,3 +3,5 @@
__debug_bin
.vscode
internal/enumfixer/enumfixer
+internal/commoncollector/commoncollector
+internal/specificationfixer/specificationfixer
diff --git a/capif/generate.sh b/capif/generate.sh
index 7b04711..db962b9 100755
--- a/capif/generate.sh
+++ b/capif/generate.sh
@@ -23,22 +23,35 @@
mkdir internal/readonly/api
curl https://www.3gpp.org/ftp/Specs/archive/29_series/29.222/29222-h40.zip -o internal/readonly/api/apidef.zip
-curl https://www.3gpp.org/ftp/Specs/archive/29_series/29.122/29122-h50.zip -o internal/readonly/api/commonapidef.zip
+curl https://www.3gpp.org/ftp/Specs/archive/29_series/29.122/29122-h50.zip -o internal/readonly/api/common29122apidef.zip
+curl https://www.3gpp.org/ftp/Specs/archive/29_series/29.508/29508-h60.zip -o internal/readonly/api/common29508apidef.zip
+curl https://www.3gpp.org/ftp/Specs/archive/29_series/29.510/29510-h50.zip -o internal/readonly/api/common29510apidef.zip
+curl https://www.3gpp.org/ftp/Specs/archive/29_series/29.512/29512-h60.zip -o internal/readonly/api/common29512apidef.zip
+curl https://www.3gpp.org/ftp/Specs/archive/29_series/29.514/29514-h40.zip -o internal/readonly/api/common29514apidef.zip
+curl https://www.3gpp.org/ftp/Specs/archive/29_series/29.517/29517-h50.zip -o internal/readonly/api/common29517apidef.zip
+curl https://www.3gpp.org/ftp/Specs/archive/29_series/29.518/29518-h50.zip -o internal/readonly/api/common29518apidef.zip
+curl https://www.3gpp.org/ftp/Specs/archive/29_series/29.522/29522-h50.zip -o internal/readonly/api/common29522apidef.zip
+curl https://www.3gpp.org/ftp/Specs/archive/29_series/29.523/29523-h60.zip -o internal/readonly/api/common29523apidef.zip
+curl https://www.3gpp.org/ftp/Specs/archive/29_series/29.554/29554-h30.zip -o internal/readonly/api/common29554apidef.zip
curl https://www.3gpp.org/ftp/Specs/archive/29_series/29.571/29571-h50.zip -o internal/readonly/api/common29571apidef.zip
curl https://www.3gpp.org/ftp/Specs/archive/29_series/29.572/29572-h40.zip -o internal/readonly/api/common29572apidef.zip
cd internal/readonly/api/
jar xvf apidef.zip
-jar xvf commonapidef.zip
+jar xvf common29122apidef.zip
+jar xvf common29508apidef.zip
+jar xvf common29510apidef.zip
+jar xvf common29512apidef.zip
+jar xvf common29514apidef.zip
+jar xvf common29517apidef.zip
+jar xvf common29518apidef.zip
+jar xvf common29522apidef.zip
+jar xvf common29523apidef.zip
+jar xvf common29554apidef.zip
jar xvf common29571apidef.zip
jar xvf common29572apidef.zip
-sed '/nwAreaInfo.*/,+1d' TS29122_CommonData.yaml >temp.yaml
-mv temp.yaml TS29122_CommonData.yaml
-
-sed -e 'H;x;/^\( *\)\n\1/{s/\n.*//;x;d;}' -e 's/.*//;x;/\DddTrafficDescriptor/{s/^\( *\).*/ \1/;x;d;}' TS29571_CommonData.yaml >temp.yaml
-mv temp.yaml TS29571_CommonData.yaml
sed -e 'H;x;/^\( *\)\n\1/{s/\n.*//;x;d;}' -e 's/.*//;x;/\CivicAddress/{s/^\( *\).*/ \1/;x;d;}' TS29571_CommonData.yaml >temp.yaml
mv temp.yaml TS29571_CommonData.yaml
sed -e 'H;x;/^\( *\)\n\1/{s/\n.*//;x;d;}' -e 's/.*//;x;/\GeographicArea/{s/^\( *\).*/ \1/;x;d;}' TS29571_CommonData.yaml >temp.yaml
@@ -48,23 +61,6 @@
sed '/accessTokenRequest.*/,+3d' TS29571_CommonData.yaml >temp.yaml
mv temp.yaml TS29571_CommonData.yaml
-sed -e 'H;x;/^\( *\)\n\1/{s/\n.*//;x;d;}' -e 's/.*//;x;/\moAssistanceDataTypes/{s/^\( *\).*/ \1/;x;d;}' TS29572_Nlmf_Location.yaml >temp.yaml
-mv temp.yaml TS29572_Nlmf_Location.yaml
-sed -e 'H;x;/^\( *\)\n\1/{s/\n.*//;x;d;}' -e 's/.*//;x;/\RelativeCartesianLocation/{s/^\( *\).*/ \1/;x;d;}' TS29572_Nlmf_Location.yaml >temp.yaml
-mv temp.yaml TS29572_Nlmf_Location.yaml
-sed -e 'H;x;/^\( *\)\n\1/{s/\n.*//;x;d;}' -e 's/.*//;x;/\Local2dPointUncertaintyEllipse/{s/^\( *\).*/ \1/;x;d;}' TS29572_Nlmf_Location.yaml >temp.yaml
-mv temp.yaml TS29572_Nlmf_Location.yaml
-sed -e 'H;x;/^\( *\)\n\1/{s/\n.*//;x;d;}' -e 's/.*//;x;/\Local3dPointUncertaintyEllipsoid/{s/^\( *\).*/ \1/;x;d;}' TS29572_Nlmf_Location.yaml >temp.yaml
-mv temp.yaml TS29572_Nlmf_Location.yaml
-sed -e 'H;x;/^\( *\)\n\1/{s/\n.*//;x;d;}' -e 's/.*//;x;/\oneOf/{s/^\( *\).*/ \1/;x;d;}' TS29572_Nlmf_Location.yaml >temp.yaml
-mv temp.yaml TS29572_Nlmf_Location.yaml
-sed -e 'H;x;/^\( *\)\n\1/{s/\n.*//;x;d;}' -e 's/.*//;x;/\ueAreaInd/{s/^\( *\).*/ \1/;x;d;}' TS29572_Nlmf_Location.yaml >temp.yaml
-mv temp.yaml TS29572_Nlmf_Location.yaml
-sed -e 'H;x;/^\( *\)\n\1/{s/\n.*//;x;d;}' -e 's/.*//;x;/\UeAreaIndication/{s/^\( *\).*/ \1/;x;d;}' TS29572_Nlmf_Location.yaml >temp.yaml
-mv temp.yaml TS29572_Nlmf_Location.yaml
-sed '/connectivitystate.*/,+2d' TS29572_Nlmf_Location.yaml >temp.yaml
-mv temp.yaml TS29572_Nlmf_Location.yaml
-
sed '/oneOf.*/,+2d' TS29222_CAPIF_Publish_Service_API.yaml >temp.yaml
mv temp.yaml TS29222_CAPIF_Publish_Service_API.yaml
@@ -74,6 +70,14 @@
cat TS29222_CAPIF_Security_API.yaml | sed -E 's/( AccessTokenReq*)\:/\1:| type: object/' | tr '|' '\n' > temp.yaml
mv temp.yaml TS29222_CAPIF_Security_API.yaml
+sed -i 's/TS29572_Nlmf_Location/CommonData/g' TS29122_CommonData.yaml
+sed -i 's/TS29554_Npcf_BDTPolicyControl/CommonData/g' TS29122_CommonData.yaml
+sed -i 's/TS29571_CommonData.yaml//g' TS29571_CommonData.yaml
+sed -i 's/TS29572_Nlmf_Location/CommonData/g' TS29222_CAPIF_Publish_Service_API.yaml
+sed -i 's/TS29520_Nnwdaf_EventsSubscription/CommonData/g' TS29222_CAPIF_Routing_Info_API.yaml
+sed -i 's/TS29510_Nnrf_NFManagement/CommonData/g' TS29222_CAPIF_Routing_Info_API.yaml
+sed -i 's/TS29523_Npcf_EventExposure/CommonData/g' TS29222_CAPIF_Events_API.yaml
+
cd $cwd
cd internal/enumfixer
@@ -82,22 +86,60 @@
cd $cwd
+cd internal/commoncollector
+go build .
+./commoncollector -apidir=../readonly/api
+
+cd $cwd
+
+cd internal/specificationfixer
+go build .
+./specificationfixer -apidir=../readonly/api
+
+cd $cwd
+
go install github.com/deepmap/oapi-codegen/cmd/oapi-codegen
PATH=$PATH:~/go/bin
-oapi-codegen --config internal/readonly/common/generator_settings.yaml internal/readonly/api/TS29122_CommonData.yaml
+echo "Generating TS29122_CommonData"
+oapi-codegen --config internal/readonly/common29122/generator_settings.yaml internal/readonly/api/TS29122_CommonData.yaml
+echo "Generating aggregated CommonData"
+oapi-codegen --config internal/readonly/aggregatecommon/generator_settings.yaml internal/readonly/api/CommonData.yaml
+echo "Generating TS29571_CommonData"
oapi-codegen --config internal/readonly/common29571/generator_settings.yaml internal/readonly/api/TS29571_CommonData.yaml
-oapi-codegen --config internal/readonly/nlfm/generator_settings.yaml internal/readonly/api/TS29572_Nlmf_Location.yaml
+echo "Generating TS29222_CAPIF_Publish_Service_API"
oapi-codegen --config internal/readonly/publishserviceapi/generator_settings_types.yaml internal/readonly/api/TS29222_CAPIF_Publish_Service_API.yaml
oapi-codegen --config internal/readonly/publishserviceapi/generator_settings_server.yaml internal/readonly/api/TS29222_CAPIF_Publish_Service_API.yaml
+echo "Generating TS29222_CAPIF_API_Invoker_Management_API"
oapi-codegen --config internal/readonly/invokermanagementapi/generator_settings_types.yaml internal/readonly/api/TS29222_CAPIF_API_Invoker_Management_API.yaml
oapi-codegen --config internal/readonly/invokermanagementapi/generator_settings_server.yaml internal/readonly/api/TS29222_CAPIF_API_Invoker_Management_API.yaml
+echo "Generating TS29222_CAPIF_API_Provider_Management_API"
oapi-codegen --config internal/readonly/providermanagementapi/generator_settings_types.yaml internal/readonly/api/TS29222_CAPIF_API_Provider_Management_API.yaml
oapi-codegen --config internal/readonly/providermanagementapi/generator_settings_server.yaml internal/readonly/api/TS29222_CAPIF_API_Provider_Management_API.yaml
+echo "Generating TS29222_CAPIF_Discover_Service_API"
oapi-codegen --config internal/readonly/discoverserviceapi/generator_settings_types.yaml internal/readonly/api/TS29222_CAPIF_Discover_Service_API.yaml
oapi-codegen --config internal/readonly/discoverserviceapi/generator_settings_server.yaml internal/readonly/api/TS29222_CAPIF_Discover_Service_API.yaml
+echo "Generating TS29222_CAPIF_Security_API"
oapi-codegen --config internal/readonly/securityapi/generator_settings_types.yaml internal/readonly/api/TS29222_CAPIF_Security_API.yaml
oapi-codegen --config internal/readonly/securityapi/generator_settings_server.yaml internal/readonly/api/TS29222_CAPIF_Security_API.yaml
+echo "Generating TS29222_CAPIF_Logging_API_Invocation_API"
+oapi-codegen --config internal/readonly/loggingapi/generator_settings_types.yaml internal/readonly/api/TS29222_CAPIF_Logging_API_Invocation_API.yaml
+oapi-codegen --config internal/readonly/loggingapi/generator_settings_server.yaml internal/readonly/api/TS29222_CAPIF_Logging_API_Invocation_API.yaml
+echo "Generating TS29222_CAPIF_Routing_Info_API"
+oapi-codegen --config internal/readonly/routinginfoapi/generator_settings_types.yaml internal/readonly/api/TS29222_CAPIF_Routing_Info_API.yaml
+oapi-codegen --config internal/readonly/routinginfoapi/generator_settings_server.yaml internal/readonly/api/TS29222_CAPIF_Routing_Info_API.yaml
+echo "Generating TS29222_CAPIF_Access_Control_Policy_API"
+oapi-codegen --config internal/readonly/accesscontrolpolicyapi/generator_settings_types.yaml internal/readonly/api/TS29222_CAPIF_Access_Control_Policy_API.yaml
+oapi-codegen --config internal/readonly/accesscontrolpolicyapi/generator_settings_server.yaml internal/readonly/api/TS29222_CAPIF_Access_Control_Policy_API.yaml
+echo "Generating TS29222_CAPIF_Events_API"
+oapi-codegen --config internal/readonly/eventsapi/generator_settings_types.yaml internal/readonly/api/TS29222_CAPIF_Events_API.yaml
+oapi-codegen --config internal/readonly/eventsapi/generator_settings_server.yaml internal/readonly/api/TS29222_CAPIF_Events_API.yaml
+echo "Generating TS29222_CAPIF_Auditing_API"
+oapi-codegen --config internal/readonly/auditingapi/generator_settings_types.yaml internal/readonly/api/TS29222_CAPIF_Auditing_API.yaml
+oapi-codegen --config internal/readonly/auditingapi/generator_settings_server.yaml internal/readonly/api/TS29222_CAPIF_Auditing_API.yaml
+echo "Generating TS29222_AEF_Security_API"
+oapi-codegen --config internal/readonly/aefsecurityapi/generator_settings_types.yaml internal/readonly/api/TS29222_AEF_Security_API.yaml
+oapi-codegen --config internal/readonly/aefsecurityapi/generator_settings_server.yaml internal/readonly/api/TS29222_AEF_Security_API.yaml
go generate ./...
go test ./...
\ No newline at end of file
diff --git a/capif/internal/commoncollector/commoncollector.go b/capif/internal/commoncollector/commoncollector.go
new file mode 100644
index 0000000..b6793b4
--- /dev/null
+++ b/capif/internal/commoncollector/commoncollector.go
@@ -0,0 +1,115 @@
+// -
+// ========================LICENSE_START=================================
+// O-RAN-SC
+// %%
+// Copyright (C) 2022: Nordix Foundation
+// %%
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ========================LICENSE_END===================================
+//
+
+package main
+
+import (
+ "bufio"
+ "flag"
+ "io/ioutil"
+ "log"
+ "os"
+ "strings"
+
+ "gopkg.in/yaml.v2"
+)
+
+var apiDir *string
+var common = map[interface{}]interface{}{
+ "openapi": "3.0.0",
+ "info": map[interface{}]interface{}{
+ "title": "Common",
+ "version": "1.0.0",
+ },
+ "components": map[interface{}]interface{}{
+ "schemas": map[interface{}]interface{}{},
+ },
+}
+
+func main() {
+ apiDir = flag.String("apidir", "", "Directory containing API definitions to fix")
+ flag.Parse()
+
+ file, err := os.Open("definitions.txt")
+ if err != nil {
+ log.Fatalf("Error opening file: %v", err)
+ }
+ defer file.Close()
+
+ scanner := bufio.NewScanner(file)
+ components := common["components"]
+ cMap := components.(map[interface{}]interface{})
+ schemas := cMap["schemas"].(map[interface{}]interface{})
+ for scanner.Scan() {
+ name, data := getDependency(scanner.Text())
+ if name == "EthFlowDescription" {
+ properties := data["properties"].(map[interface{}]interface{})
+ ref := properties["fDir"].(map[interface{}]interface{})
+ ref["$ref"] = "#/components/schemas/FlowDirection"
+ }
+ if name == "ReportingInformation" {
+ properties := data["properties"].(map[interface{}]interface{})
+ ref := properties["notifMethod"].(map[interface{}]interface{})
+ ref["$ref"] = "#/components/schemas/NotificationMethod"
+ }
+ if name == "RelativeCartesianLocation" {
+ properties := data["properties"].(map[interface{}]interface{})
+ delete(properties, true)
+ data["required"] = remove(data["required"].([]interface{}), 1)
+ }
+ schemas[name] = data
+ }
+
+ if err := scanner.Err(); err != nil {
+ log.Fatal(err)
+ }
+
+ modCommon, err := yaml.Marshal(common)
+ if err != nil {
+ log.Fatalf("Marshal: #%v ", err)
+ }
+ err = ioutil.WriteFile(*apiDir+"/"+"CommonData.yaml", modCommon, 0644)
+ if err != nil {
+ log.Fatalf("Error writing yamlFile. #%v ", err)
+ }
+}
+
+func getDependency(s string) (string, map[interface{}]interface{}) {
+ info := strings.Split(s, "#")
+ yamlFile, err := ioutil.ReadFile(*apiDir + "/" + info[0])
+ if err != nil {
+ log.Fatalf("Error reading yamlFile. #%v ", err)
+ }
+ m := make(map[string]interface{})
+ err = yaml.Unmarshal(yamlFile, m)
+ if err != nil {
+ log.Fatalf("Unmarshal: %v", err)
+ }
+ components := m["components"]
+ cMap := components.(map[interface{}]interface{})
+ schemas := cMap["schemas"].(map[interface{}]interface{})
+ component := strings.Split(info[1], "/")
+ dep := schemas[component[3]].(map[interface{}]interface{})
+ return component[3], dep
+}
+
+func remove(slice []interface{}, s int) []interface{} {
+ return append(slice[:s], slice[s+1:]...)
+}
diff --git a/capif/internal/commoncollector/definitions.txt b/capif/internal/commoncollector/definitions.txt
new file mode 100644
index 0000000..a2f3f25
--- /dev/null
+++ b/capif/internal/commoncollector/definitions.txt
@@ -0,0 +1,38 @@
+TS29508_Nsmf_EventExposure.yaml#/components/schemas/NotificationMethod
+TS29510_Nnrf_NFManagement.yaml#/components/schemas/Ipv4AddressRange
+TS29512_Npcf_SMPolicyControl.yaml#/components/schemas/FlowDirection
+TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/ContentVersion
+TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/EthFlowDescription
+TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/FlowDescription
+TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/TscaiInputContainer
+TS29517_Naf_EventExposure.yaml#/components/schemas/AddrFqdn
+TS29518_Namf_EventExposure.yaml#/components/schemas/CommunicationFailure
+TS29522_TrafficInfluence.yaml#/components/schemas/AfResultInfo
+TS29522_TrafficInfluence.yaml#/components/schemas/AfResultStatus
+TS29523_Npcf_EventExposure.yaml#/components/schemas/ReportingInformation
+TS29554_Npcf_BDTPolicyControl.yaml#/components/schemas/NetworkAreaInfo
+TS29572_Nlmf_Location.yaml#/components/schemas/Altitude
+TS29572_Nlmf_Location.yaml#/components/schemas/Angle
+TS29572_Nlmf_Location.yaml#/components/schemas/CivicAddress
+TS29572_Nlmf_Location.yaml#/components/schemas/Confidence
+TS29572_Nlmf_Location.yaml#/components/schemas/EllipsoidArc
+TS29572_Nlmf_Location.yaml#/components/schemas/GADShape
+TS29572_Nlmf_Location.yaml#/components/schemas/GeographicArea
+TS29572_Nlmf_Location.yaml#/components/schemas/GeographicalCoordinates
+TS29572_Nlmf_Location.yaml#/components/schemas/InnerRadius
+TS29572_Nlmf_Location.yaml#/components/schemas/Local2dPointUncertaintyEllipse
+TS29572_Nlmf_Location.yaml#/components/schemas/Local3dPointUncertaintyEllipsoid
+TS29572_Nlmf_Location.yaml#/components/schemas/LocalOrigin
+TS29572_Nlmf_Location.yaml#/components/schemas/Orientation
+TS29572_Nlmf_Location.yaml#/components/schemas/Point
+TS29572_Nlmf_Location.yaml#/components/schemas/PointAltitude
+TS29572_Nlmf_Location.yaml#/components/schemas/PointAltitudeUncertainty
+TS29572_Nlmf_Location.yaml#/components/schemas/PointList
+TS29572_Nlmf_Location.yaml#/components/schemas/PointUncertaintyCircle
+TS29572_Nlmf_Location.yaml#/components/schemas/PointUncertaintyEllipse
+TS29572_Nlmf_Location.yaml#/components/schemas/Polygon
+TS29572_Nlmf_Location.yaml#/components/schemas/RelativeCartesianLocation
+TS29572_Nlmf_Location.yaml#/components/schemas/Uncertainty
+TS29572_Nlmf_Location.yaml#/components/schemas/UncertaintyEllipsoid
+TS29572_Nlmf_Location.yaml#/components/schemas/SupportedGADShapes
+TS29572_Nlmf_Location.yaml#/components/schemas/UncertaintyEllipse
\ No newline at end of file
diff --git a/capif/internal/enumfixer/enumfixer.go b/capif/internal/enumfixer/enumfixer.go
index b1d4078..d6a324a 100644
--- a/capif/internal/enumfixer/enumfixer.go
+++ b/capif/internal/enumfixer/enumfixer.go
@@ -53,7 +53,7 @@
if !info.IsDir() && strings.HasSuffix(info.Name(), ".yaml") {
yamlFile, err := ioutil.ReadFile(path)
if err != nil {
- log.Printf("yamlFile.Get err #%v ", err)
+ log.Printf("yamlFile. Get err #%v ", err)
}
m := make(map[string]interface{})
err = yaml.Unmarshal(yamlFile, m)
@@ -103,11 +103,11 @@
}
modM, err := yaml.Marshal(m)
if err != nil {
- log.Printf("yamlFile.Get err #%v ", err)
+ log.Printf("yamlFile. Get err #%v ", err)
}
err = ioutil.WriteFile(path, modM, 0644)
if err != nil {
- log.Printf("yamlFile.Get err #%v ", err)
+ log.Printf("yamlFile. Get err #%v ", err)
}
}
}
diff --git a/capif/internal/invokermanagement/invokermanagement.go b/capif/internal/invokermanagement/invokermanagement.go
index f00a240..df7137d 100644
--- a/capif/internal/invokermanagement/invokermanagement.go
+++ b/capif/internal/invokermanagement/invokermanagement.go
@@ -29,7 +29,7 @@
"github.com/labstack/echo/v4"
"oransc.org/nonrtric/plt/capif/internal/publishservice"
- "oransc.org/nonrtric/plt/capif/internal/readonly/common"
+ "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
invokerapi "oransc.org/nonrtric/plt/capif/internal/readonly/invokermanagementapi"
"oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi"
)
@@ -195,7 +195,7 @@
// This function wraps sending of an error in the Error format, and
// handling the failure to marshal that.
func sendCoreError(ctx echo.Context, code int, message string) error {
- pd := common.ProblemDetails{
+ pd := common29122.ProblemDetails{
Cause: &message,
Status: &code,
}
diff --git a/capif/internal/invokermanagement/invokermanagement_test.go b/capif/internal/invokermanagement/invokermanagement_test.go
index 3df109e..537f1c9 100644
--- a/capif/internal/invokermanagement/invokermanagement_test.go
+++ b/capif/internal/invokermanagement/invokermanagement_test.go
@@ -33,7 +33,7 @@
"github.com/stretchr/testify/mock"
"oransc.org/nonrtric/plt/capif/internal/publishservice"
publishmocks "oransc.org/nonrtric/plt/capif/internal/publishservice/mocks"
- "oransc.org/nonrtric/plt/capif/internal/readonly/common"
+ "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
"oransc.org/nonrtric/plt/capif/internal/readonly/invokermanagementapi"
"oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi"
)
@@ -113,7 +113,7 @@
result = testutil.NewRequest().Post("/onboardedInvokers").WithJsonBody(invalidInvoker).Go(t, requestHandler)
assert.Equal(t, http.StatusBadRequest, result.Code())
- var problemDetails common.ProblemDetails
+ var problemDetails common29122.ProblemDetails
err = result.UnmarshalBodyToObject(&problemDetails)
assert.NoError(t, err, "error unmarshaling response")
badRequest := 400
@@ -198,7 +198,7 @@
result = testutil.NewRequest().Put(invokerUrl).WithJsonBody(invalidInvoker).Go(t, requestHandler)
assert.Equal(t, http.StatusBadRequest, result.Code())
- var problemDetails common.ProblemDetails
+ var problemDetails common29122.ProblemDetails
err = result.UnmarshalBodyToObject(&problemDetails)
assert.NoError(t, err, "error unmarshaling response")
badRequest := 400
diff --git a/capif/internal/providermanagement/providermanagement.go b/capif/internal/providermanagement/providermanagement.go
index 97df7b9..d08dbde 100644
--- a/capif/internal/providermanagement/providermanagement.go
+++ b/capif/internal/providermanagement/providermanagement.go
@@ -28,7 +28,7 @@
"github.com/labstack/echo/v4"
log "github.com/sirupsen/logrus"
- "oransc.org/nonrtric/plt/capif/internal/readonly/common"
+ "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
provapi "oransc.org/nonrtric/plt/capif/internal/readonly/providermanagementapi"
)
@@ -175,7 +175,7 @@
// This function wraps sending of an error in the Error format, and
// handling the failure to marshal that.
func sendCoreError(ctx echo.Context, code int, message string) error {
- pd := common.ProblemDetails{
+ pd := common29122.ProblemDetails{
Cause: &message,
Status: &code,
}
diff --git a/capif/internal/providermanagement/providermanagement_test.go b/capif/internal/providermanagement/providermanagement_test.go
index 927aa40..91d2f14 100644
--- a/capif/internal/providermanagement/providermanagement_test.go
+++ b/capif/internal/providermanagement/providermanagement_test.go
@@ -31,7 +31,7 @@
"github.com/labstack/echo/v4"
echomiddleware "github.com/labstack/echo/v4/middleware"
"github.com/stretchr/testify/assert"
- "oransc.org/nonrtric/plt/capif/internal/readonly/common"
+ "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
provapi "oransc.org/nonrtric/plt/capif/internal/readonly/providermanagementapi"
)
@@ -116,7 +116,7 @@
result := testutil.NewRequest().Post("/registrations").WithJsonBody(newProvider).Go(t, requestHandler)
assert.Equal(t, http.StatusBadRequest, result.Code())
- var problemDetails common.ProblemDetails
+ var problemDetails common29122.ProblemDetails
err := result.UnmarshalBodyToObject(&problemDetails)
assert.NoError(t, err, "error unmarshaling response")
badRequest := 400
diff --git a/capif/internal/publishservice/publishservice.go b/capif/internal/publishservice/publishservice.go
index c742e7e..58b3f3d 100644
--- a/capif/internal/publishservice/publishservice.go
+++ b/capif/internal/publishservice/publishservice.go
@@ -30,7 +30,7 @@
log "github.com/sirupsen/logrus"
"oransc.org/nonrtric/plt/capif/internal/helmmanagement"
"oransc.org/nonrtric/plt/capif/internal/providermanagement"
- "oransc.org/nonrtric/plt/capif/internal/readonly/common"
+ "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
"oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi"
)
@@ -209,7 +209,7 @@
// This function wraps sending of an error in the Error format, and
// handling the failure to marshal that.
func sendCoreError(ctx echo.Context, code int, message string) error {
- pd := common.ProblemDetails{
+ pd := common29122.ProblemDetails{
Cause: &message,
Status: &code,
}
diff --git a/capif/internal/readonly/accesscontrolpolicyapi/accesscontrolpolicy-server.gen.go b/capif/internal/readonly/accesscontrolpolicyapi/accesscontrolpolicy-server.gen.go
new file mode 100644
index 0000000..57d2b81
--- /dev/null
+++ b/capif/internal/readonly/accesscontrolpolicyapi/accesscontrolpolicy-server.gen.go
@@ -0,0 +1,207 @@
+// Package accesscontrolpolicyapi provides primitives to interact with the openapi HTTP API.
+//
+// Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
+package accesscontrolpolicyapi
+
+import (
+ "bytes"
+ "compress/gzip"
+ "encoding/base64"
+ "fmt"
+ "net/http"
+ "net/url"
+ "path"
+ "strings"
+
+ "github.com/deepmap/oapi-codegen/pkg/runtime"
+ "github.com/getkin/kin-openapi/openapi3"
+ "github.com/labstack/echo/v4"
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
+)
+
+// ServerInterface represents all server handlers.
+type ServerInterface interface {
+
+ // (GET /accessControlPolicyList/{serviceApiId})
+ GetAccessControlPolicyListServiceApiId(ctx echo.Context, serviceApiId string, params GetAccessControlPolicyListServiceApiIdParams) error
+}
+
+// ServerInterfaceWrapper converts echo contexts to parameters.
+type ServerInterfaceWrapper struct {
+ Handler ServerInterface
+}
+
+// GetAccessControlPolicyListServiceApiId converts echo context to params.
+func (w *ServerInterfaceWrapper) GetAccessControlPolicyListServiceApiId(ctx echo.Context) error {
+ var err error
+ // ------------- Path parameter "serviceApiId" -------------
+ var serviceApiId string
+
+ err = runtime.BindStyledParameterWithLocation("simple", false, "serviceApiId", runtime.ParamLocationPath, ctx.Param("serviceApiId"), &serviceApiId)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter serviceApiId: %s", err))
+ }
+
+ // Parameter object where we will unmarshal all parameters from the context
+ var params GetAccessControlPolicyListServiceApiIdParams
+ // ------------- Required query parameter "aef-id" -------------
+
+ err = runtime.BindQueryParameter("form", true, true, "aef-id", ctx.QueryParams(), ¶ms.AefId)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter aef-id: %s", err))
+ }
+
+ // ------------- Optional query parameter "api-invoker-id" -------------
+
+ err = runtime.BindQueryParameter("form", true, false, "api-invoker-id", ctx.QueryParams(), ¶ms.ApiInvokerId)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter api-invoker-id: %s", err))
+ }
+
+ // ------------- Optional query parameter "supported-features" -------------
+
+ err = runtime.BindQueryParameter("form", true, false, "supported-features", ctx.QueryParams(), ¶ms.SupportedFeatures)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter supported-features: %s", err))
+ }
+
+ // Invoke the callback with all the unmarshalled arguments
+ err = w.Handler.GetAccessControlPolicyListServiceApiId(ctx, serviceApiId, params)
+ return err
+}
+
+// This is a simple interface which specifies echo.Route addition functions which
+// are present on both echo.Echo and echo.Group, since we want to allow using
+// either of them for path registration
+type EchoRouter interface {
+ CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+}
+
+// RegisterHandlers adds each server route to the EchoRouter.
+func RegisterHandlers(router EchoRouter, si ServerInterface) {
+ RegisterHandlersWithBaseURL(router, si, "")
+}
+
+// Registers handlers, and prepends BaseURL to the paths, so that the paths
+// can be served under a prefix.
+func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL string) {
+
+ wrapper := ServerInterfaceWrapper{
+ Handler: si,
+ }
+
+ router.GET(baseURL+"/accessControlPolicyList/:serviceApiId", wrapper.GetAccessControlPolicyListServiceApiId)
+
+}
+
+// Base64 encoded, gzipped, json marshaled Swagger object
+var swaggerSpec = []string{
+
+ "H4sIAAAAAAAC/6xX23LbNhD9lR20D+0MTYp0FMd6U+U4o2mn0ViaviQZDUQuRSQkgACgFNWjD+pv9Ms6",
+ "C9K6RHTSWH4xbXL37MHi4Cx8z1JVaSVROssG98ymBVbc/zpMU7R2pKQzqpyoUqSbP4R19ClDmxqhnVCS",
+ "DdgdaoOWEMAVCNznQdokgvaZUArrIFcGOOh6UQpbYAYWzUqkCMPJOGQB00ZpNE6gr8+1GMuV+oTGF2/f",
+ "HpduaIHKAXlaEA6IJofwhMPKJ/1sMGcD9lO0X2zUrjQaHpfZsG3A3EYjGzBuDN+w7f6FWnzE1FHESdb3",
+ "uqJ3TLn0PMd7nl+tuyzVGjP6nnICm4kK77hcYnf7ZwWCExWCoRgLWW2EXMK6EGnhS4sdkgVuENoCoKT/",
+ "fLAJsNj4V0/p4zHLkyYGp+uyEzRTTJXMThd1EAUaDVgf9+PUWxJCOlyiOaAxU46XB1U6+koRIOtqgYb2",
+ "7aiNz8Bjp6Bxx/oP0mF8A9xasZSYPaCPhpPxLaTKIOS1TH3Sroh1JACvW4Ofa2EwY4N3xwU/dGj6Ozr7",
+ "StB7yX1LcV7wR/0R++51t+r4NFjHjSNmB/qbTZPrOEnmI1VVSt5wx8MNr8pOWd5whz59GzDrlH4WqFNH",
+ "oFf4xaGRvLxRaYecLt9MJjCbQnIdJkkCf8VXYRz2oCnse3BreIVrZT55n/TxfyrjioWqZUYRlgWsNiUb",
+ "sMI5PYii9XodXi61DpVZRrnT0VRjaiNu0kKsMEqu5xaNQBs1RSNqgpC56tabd+cu8w7fy3//gaSXxEFD",
+ "661Zcin+9jvMS5hw4yQaC78M78a/BTCcjacBjEbTYQCvZ9NxALPpjX/MhvRj9Gv4Xg7LEoxYFs4Cycqs",
+ "MAvfexULV1JrvcbnzRSat2No3rjtfDgZs4Ct0NiGfhwmYe+Cl7rgYUyrVBol14L6HvbCHsmKu8JvS8S7",
+ "B1t038qUvD3bUugSO8+BMwJX+L1pR1omJfsu0Rlnb9A9MlSnB5U9V5KCQ2PZ4N2JNWYonchF40qPjFNy",
+ "bQqmVbOASV55Zzgus3cHZ2oM2uFPKz5xkm+T8Kf49e1D0c81ms2+Ksf8Qjx/vb1rPFZXi4s2oqn/A/Vm",
+ "CnJROjQgjMESV1w60qlW0iIptuQOM3AKamlrrZWhP3PkrjZoHyG0C7w4CNyTOrCk/lX8vyxp+oB4+wC4",
+ "3X6gRrdECTbp9ehBCkXpmpuVLkXjz9FHS+u9P6XRfVl65E7o/e+4g29/D+kgXvauftBud+QjyvUQr86A",
+ "eEUQL5oePAmCcj1EfAZE3EBcngFx2UC8OAPiRQPx8gyIlx4iPoNF3LBIrp8OkVwTRP+MTe03m9o/Y0f6",
+ "zY5kmPO6dE+Gecjfbv0h8pOw9f1m1t9zLe6Uctt2cF20s+aimTXRKqZRyI3gi3L3nxMlNKOrZeevDHYQ",
+ "RfiFV7rEMFUV+/rMtonALWSYC7pwCgm2XqQlry3CVdgn+z2+yhDzD9v/AgAA//++CFh4SQ4AAA==",
+}
+
+// GetSwagger returns the content of the embedded swagger specification file
+// or error if failed to decode
+func decodeSpec() ([]byte, error) {
+ zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, ""))
+ if err != nil {
+ return nil, fmt.Errorf("error base64 decoding spec: %s", err)
+ }
+ zr, err := gzip.NewReader(bytes.NewReader(zipped))
+ if err != nil {
+ return nil, fmt.Errorf("error decompressing spec: %s", err)
+ }
+ var buf bytes.Buffer
+ _, err = buf.ReadFrom(zr)
+ if err != nil {
+ return nil, fmt.Errorf("error decompressing spec: %s", err)
+ }
+
+ return buf.Bytes(), nil
+}
+
+var rawSpec = decodeSpecCached()
+
+// a naive cached of a decoded swagger spec
+func decodeSpecCached() func() ([]byte, error) {
+ data, err := decodeSpec()
+ return func() ([]byte, error) {
+ return data, err
+ }
+}
+
+// Constructs a synthetic filesystem for resolving external references when loading openapi specifications.
+func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) {
+ var res = make(map[string]func() ([]byte, error))
+ if len(pathToFile) > 0 {
+ res[pathToFile] = rawSpec
+ }
+
+ pathPrefix := path.Dir(pathToFile)
+
+ for rawPath, rawFunc := range externalRef0.PathToRawSpec(path.Join(pathPrefix, "TS29571_CommonData.yaml")) {
+ if _, ok := res[rawPath]; ok {
+ // it is not possible to compare functions in golang, so always overwrite the old value
+ }
+ res[rawPath] = rawFunc
+ }
+ return res
+}
+
+// GetSwagger returns the Swagger specification corresponding to the generated code
+// in this file. The external references of Swagger specification are resolved.
+// The logic of resolving external references is tightly connected to "import-mapping" feature.
+// Externally referenced files must be embedded in the corresponding golang packages.
+// Urls can be supported but this task was out of the scope.
+func GetSwagger() (swagger *openapi3.T, err error) {
+ var resolvePath = PathToRawSpec("")
+
+ loader := openapi3.NewLoader()
+ loader.IsExternalRefsAllowed = true
+ loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) {
+ var pathToFile = url.String()
+ pathToFile = path.Clean(pathToFile)
+ getSpec, ok := resolvePath[pathToFile]
+ if !ok {
+ err1 := fmt.Errorf("path not found: %s", pathToFile)
+ return nil, err1
+ }
+ return getSpec()
+ }
+ var specData []byte
+ specData, err = rawSpec()
+ if err != nil {
+ return
+ }
+ swagger, err = loader.LoadFromData(specData)
+ if err != nil {
+ return
+ }
+ return
+}
diff --git a/capif/internal/readonly/accesscontrolpolicyapi/accesscontrolpolicy-types.gen.go b/capif/internal/readonly/accesscontrolpolicyapi/accesscontrolpolicy-types.gen.go
new file mode 100644
index 0000000..d74fdf7
--- /dev/null
+++ b/capif/internal/readonly/accesscontrolpolicyapi/accesscontrolpolicy-types.gen.go
@@ -0,0 +1,51 @@
+// Package accesscontrolpolicyapi provides primitives to interact with the openapi HTTP API.
+//
+// Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
+package accesscontrolpolicyapi
+
+import (
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
+ externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
+)
+
+// Represents the access control policy list for a published service API.
+type AccessControlPolicyList struct {
+ // Policy of each API invoker.
+ ApiInvokerPolicies *[]ApiInvokerPolicy `json:"apiInvokerPolicies,omitempty"`
+}
+
+// Represents the policy of an API Invoker.
+type ApiInvokerPolicy struct {
+ // The time ranges during which the invocations are allowed on the service API by the API invoker.
+ AllowedInvocationTimeRangeList *[]TimeRangeList `json:"allowedInvocationTimeRangeList,omitempty"`
+
+ // Invocations per second allowed on the service API by the API invoker.
+ AllowedInvocationsPerSecond *int `json:"allowedInvocationsPerSecond,omitempty"`
+
+ // Total number of invocations allowed on the service API by the API invoker.
+ AllowedTotalInvocations *int `json:"allowedTotalInvocations,omitempty"`
+
+ // API invoker ID assigned by the CAPIF core function
+ ApiInvokerId string `json:"apiInvokerId"`
+}
+
+// Represents the time range during which the invocation of a service API is allowed by the API invoker.
+type TimeRangeList struct {
+ // string with format "date-time" as defined in OpenAPI.
+ StartTime *externalRef0.DateTime `json:"startTime,omitempty"`
+
+ // string with format "date-time" as defined in OpenAPI.
+ StopTime *externalRef0.DateTime `json:"stopTime,omitempty"`
+}
+
+// GetAccessControlPolicyListServiceApiIdParams defines parameters for GetAccessControlPolicyListServiceApiId.
+type GetAccessControlPolicyListServiceApiIdParams struct {
+ // Identifier of the AEF
+ AefId string `json:"aef-id"`
+
+ // Identifier of the API invoker
+ ApiInvokerId *string `json:"api-invoker-id,omitempty"`
+
+ // To filter irrelevant responses related to unsupported features
+ SupportedFeatures *externalRef1.SupportedFeatures `json:"supported-features,omitempty"`
+}
diff --git a/capif/internal/readonly/nlfm/generator_settings.yaml b/capif/internal/readonly/accesscontrolpolicyapi/generator_settings_server.yaml
similarity index 87%
copy from capif/internal/readonly/nlfm/generator_settings.yaml
copy to capif/internal/readonly/accesscontrolpolicyapi/generator_settings_server.yaml
index ae3c2c3..3a4f726 100644
--- a/capif/internal/readonly/nlfm/generator_settings.yaml
+++ b/capif/internal/readonly/accesscontrolpolicyapi/generator_settings_server.yaml
@@ -19,11 +19,10 @@
#
output:
- internal/readonly/nlfm/nlfm.gen.go
-package: nlfm
+ internal/readonly/accesscontrolpolicyapi/accesscontrolpolicy-server.gen.go
+package: accesscontrolpolicyapi
generate:
- - types
- - skip-prune
+ - server
- spec
import-mapping:
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
diff --git a/capif/internal/readonly/common/generator_settings.yaml b/capif/internal/readonly/accesscontrolpolicyapi/generator_settings_types.yaml
similarity index 81%
copy from capif/internal/readonly/common/generator_settings.yaml
copy to capif/internal/readonly/accesscontrolpolicyapi/generator_settings_types.yaml
index 368568c..6b12b09 100644
--- a/capif/internal/readonly/common/generator_settings.yaml
+++ b/capif/internal/readonly/accesscontrolpolicyapi/generator_settings_types.yaml
@@ -19,12 +19,10 @@
#
output:
- internal/readonly/common/common.gen.go
-package: common
+ internal/readonly/accesscontrolpolicyapi/accesscontrolpolicy-types.gen.go
+package: accesscontrolpolicyapi
generate:
- types
- - skip-prune
- - spec
import-mapping:
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
- TS29572_Nlmf_Location.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/nlfm
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
\ No newline at end of file
diff --git a/capif/internal/readonly/aefsecurityapi/aefsecurity-server.gen.go b/capif/internal/readonly/aefsecurityapi/aefsecurity-server.gen.go
new file mode 100644
index 0000000..8294515
--- /dev/null
+++ b/capif/internal/readonly/aefsecurityapi/aefsecurity-server.gen.go
@@ -0,0 +1,186 @@
+// Package aefsecurityapi provides primitives to interact with the openapi HTTP API.
+//
+// Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
+package aefsecurityapi
+
+import (
+ "bytes"
+ "compress/gzip"
+ "encoding/base64"
+ "fmt"
+ "net/url"
+ "path"
+ "strings"
+
+ "github.com/getkin/kin-openapi/openapi3"
+ "github.com/labstack/echo/v4"
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
+)
+
+// ServerInterface represents all server handlers.
+type ServerInterface interface {
+ // Check authentication.
+ // (POST /check-authentication)
+ PostCheckAuthentication(ctx echo.Context) error
+ // Revoke authorization.
+ // (POST /revoke-authorization)
+ PostRevokeAuthorization(ctx echo.Context) error
+}
+
+// ServerInterfaceWrapper converts echo contexts to parameters.
+type ServerInterfaceWrapper struct {
+ Handler ServerInterface
+}
+
+// PostCheckAuthentication converts echo context to params.
+func (w *ServerInterfaceWrapper) PostCheckAuthentication(ctx echo.Context) error {
+ var err error
+
+ // Invoke the callback with all the unmarshalled arguments
+ err = w.Handler.PostCheckAuthentication(ctx)
+ return err
+}
+
+// PostRevokeAuthorization converts echo context to params.
+func (w *ServerInterfaceWrapper) PostRevokeAuthorization(ctx echo.Context) error {
+ var err error
+
+ // Invoke the callback with all the unmarshalled arguments
+ err = w.Handler.PostRevokeAuthorization(ctx)
+ return err
+}
+
+// This is a simple interface which specifies echo.Route addition functions which
+// are present on both echo.Echo and echo.Group, since we want to allow using
+// either of them for path registration
+type EchoRouter interface {
+ CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+}
+
+// RegisterHandlers adds each server route to the EchoRouter.
+func RegisterHandlers(router EchoRouter, si ServerInterface) {
+ RegisterHandlersWithBaseURL(router, si, "")
+}
+
+// Registers handlers, and prepends BaseURL to the paths, so that the paths
+// can be served under a prefix.
+func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL string) {
+
+ wrapper := ServerInterfaceWrapper{
+ Handler: si,
+ }
+
+ router.POST(baseURL+"/check-authentication", wrapper.PostCheckAuthentication)
+ router.POST(baseURL+"/revoke-authorization", wrapper.PostRevokeAuthorization)
+
+}
+
+// Base64 encoded, gzipped, json marshaled Swagger object
+var swaggerSpec = []string{
+
+ "H4sIAAAAAAAC/+xY3W7iOBR+Fcu7F7tSSEgo6pC7DG1XuZlFgPZmOkImOSGeJrbHdmDYigfa19gnW9lO",
+ "2UKhqhpNpZF6U6L4nM/n5/Pnk97jjNeCM2Ba4fgeq6yEmtjHcQnZXdLoEpimGdGUsyl8Mys5qExSYd7g",
+ "GE9BSFAGAJEDa5QZBCThWwNKo5xo4mMPC8kFSE3B7kIETdma34FM86fYySRF1C2j9AoRpeiKQY6WW6RL",
+ "QONkkt6gjEtARcMyu6nmdumx56akFSDOektOZE7Z6tjChKW3AnCMlZaUrfDOw6oRgksN+Q0Q3UgX7q8S",
+ "Chzj+SwaDS/DxZjXNWdXJrMtqatfgv+rGbSlDGZPcHY7D5uqUAk5jj8f1uDUxl/24fHlV8i0Ce9Ue5R4",
+ "TXuU4EzBmf68XRVelvYUTKFM3lzSv1/Myr0xkrDm2cPjc8yUdqeUFfwo5SiKFpZ5ixlkjaR6u0gm6TOp",
+ "t1afuKZFW/y3JdijVLwOdX4Bvc7U+SeimPGB7xokI9UVz9TTlAd/TCZoPkPRyI+iCP0VXvqh30cuRCsr",
+ "N5LUsOHyDhVcImv/iUtdLnnDcmOhsIcbWeEYl1qLOAg2m40/WAnhc7kKCi2CmYBMBURmJV1DEI0WCiQF",
+ "FbhNA9Mi2lLzqWSaXZPrG6Ra5qGaMLKCGpj2b9m//6CoH4WeC+xPuSKsbRqp0IRIzUAq9FsyTT96KJmn",
+ "Mw+Nx7PEQ9fzWeqh+ezK/swT82f8u3/LkqpCkq5KrUyvQa4h92+ZEVWqK1Pc5PrwsGAPr0EqF3HoR36/",
+ "RypREj80iXEBjAhqSu33/b4hDNGl7URgRat3qGRmQXClza8hln1prhM84UqfEErsaAFKf+T51rhlnGlg",
+ "2t1Iomrtgq/KoTuKPeLlSQKeuTF3hzTUsgH7wh0Km1bU7//QKJRwURxSZV7CXgM3RCHVZBkoVTSVb9ow",
+ "6F8encTQKN8zJ3GfU2B8LcSHDhAfDMSFK82rIIyvhQg7QIQOYtABYuAgLjpAXFiIsEMioUsk7JBI6BIJ",
+ "hx0ghhYiGr0eIhoZiGEHXgwdL4Ydmjp0Tc2hIE2lXw3z4L+z80BdE7nFsZvtjsY139oE7irvHdy1z+vf",
+ "iZv8B+nfmdnsjfXvzOTyrn/v+veufz+H/rkjfPhB4bsTbKdLqXD8+b6doO+JoFPO9S4gUPQeRt5gHZoh",
+ "k0hKltX+Xw3Gzo3Mbdh2/lZxEMB3UosK/IzX+FgnWkdEFMqhoAxyRBlSzTKrSKMAXfpDxAt0+F1g4/2y",
+ "+y8AAP//CPXtp2ERAAA=",
+}
+
+// GetSwagger returns the content of the embedded swagger specification file
+// or error if failed to decode
+func decodeSpec() ([]byte, error) {
+ zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, ""))
+ if err != nil {
+ return nil, fmt.Errorf("error base64 decoding spec: %s", err)
+ }
+ zr, err := gzip.NewReader(bytes.NewReader(zipped))
+ if err != nil {
+ return nil, fmt.Errorf("error decompressing spec: %s", err)
+ }
+ var buf bytes.Buffer
+ _, err = buf.ReadFrom(zr)
+ if err != nil {
+ return nil, fmt.Errorf("error decompressing spec: %s", err)
+ }
+
+ return buf.Bytes(), nil
+}
+
+var rawSpec = decodeSpecCached()
+
+// a naive cached of a decoded swagger spec
+func decodeSpecCached() func() ([]byte, error) {
+ data, err := decodeSpec()
+ return func() ([]byte, error) {
+ return data, err
+ }
+}
+
+// Constructs a synthetic filesystem for resolving external references when loading openapi specifications.
+func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) {
+ var res = make(map[string]func() ([]byte, error))
+ if len(pathToFile) > 0 {
+ res[pathToFile] = rawSpec
+ }
+
+ pathPrefix := path.Dir(pathToFile)
+
+ for rawPath, rawFunc := range externalRef0.PathToRawSpec(path.Join(pathPrefix, "TS29571_CommonData.yaml")) {
+ if _, ok := res[rawPath]; ok {
+ // it is not possible to compare functions in golang, so always overwrite the old value
+ }
+ res[rawPath] = rawFunc
+ }
+ return res
+}
+
+// GetSwagger returns the Swagger specification corresponding to the generated code
+// in this file. The external references of Swagger specification are resolved.
+// The logic of resolving external references is tightly connected to "import-mapping" feature.
+// Externally referenced files must be embedded in the corresponding golang packages.
+// Urls can be supported but this task was out of the scope.
+func GetSwagger() (swagger *openapi3.T, err error) {
+ var resolvePath = PathToRawSpec("")
+
+ loader := openapi3.NewLoader()
+ loader.IsExternalRefsAllowed = true
+ loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) {
+ var pathToFile = url.String()
+ pathToFile = path.Clean(pathToFile)
+ getSpec, ok := resolvePath[pathToFile]
+ if !ok {
+ err1 := fmt.Errorf("path not found: %s", pathToFile)
+ return nil, err1
+ }
+ return getSpec()
+ }
+ var specData []byte
+ specData, err = rawSpec()
+ if err != nil {
+ return
+ }
+ swagger, err = loader.LoadFromData(specData)
+ if err != nil {
+ return
+ }
+ return
+}
diff --git a/capif/internal/readonly/aefsecurityapi/aefsecurity-types.gen.go b/capif/internal/readonly/aefsecurityapi/aefsecurity-types.gen.go
new file mode 100644
index 0000000..1d5daf3
--- /dev/null
+++ b/capif/internal/readonly/aefsecurityapi/aefsecurity-types.gen.go
@@ -0,0 +1,51 @@
+// Package aefsecurityapi provides primitives to interact with the openapi HTTP API.
+//
+// Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
+package aefsecurityapi
+
+import (
+ externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
+ externalRef2 "oransc.org/nonrtric/plt/capif/internal/readonly/securityapi"
+)
+
+// Represents authentication check request data.
+type CheckAuthenticationReq struct {
+ // API invoker ID assigned by the CAPIF core function to the API invoker while on-boarding the API invoker.
+ ApiInvokerId string `json:"apiInvokerId"`
+
+ // A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported.
+ SupportedFeatures externalRef1.SupportedFeatures `json:"supportedFeatures"`
+}
+
+// Represents authentication check response data.
+type CheckAuthenticationRsp struct {
+ // A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported.
+ SupportedFeatures externalRef1.SupportedFeatures `json:"supportedFeatures"`
+}
+
+// Represents authorization revocation request data.
+type RevokeAuthorizationReq struct {
+ // Represents revoked authorization notification details.
+ RevokeInfo externalRef2.SecurityNotification `json:"revokeInfo"`
+
+ // A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported.
+ SupportedFeatures externalRef1.SupportedFeatures `json:"supportedFeatures"`
+}
+
+// Represents authorization revocation response data.
+type RevokeAuthorizationRsp struct {
+ // A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported.
+ SupportedFeatures externalRef1.SupportedFeatures `json:"supportedFeatures"`
+}
+
+// PostCheckAuthenticationJSONBody defines parameters for PostCheckAuthentication.
+type PostCheckAuthenticationJSONBody CheckAuthenticationReq
+
+// PostRevokeAuthorizationJSONBody defines parameters for PostRevokeAuthorization.
+type PostRevokeAuthorizationJSONBody RevokeAuthorizationReq
+
+// PostCheckAuthenticationJSONRequestBody defines body for PostCheckAuthentication for application/json ContentType.
+type PostCheckAuthenticationJSONRequestBody PostCheckAuthenticationJSONBody
+
+// PostRevokeAuthorizationJSONRequestBody defines body for PostRevokeAuthorization for application/json ContentType.
+type PostRevokeAuthorizationJSONRequestBody PostRevokeAuthorizationJSONBody
diff --git a/capif/internal/readonly/nlfm/generator_settings.yaml b/capif/internal/readonly/aefsecurityapi/generator_settings_server.yaml
similarity index 89%
copy from capif/internal/readonly/nlfm/generator_settings.yaml
copy to capif/internal/readonly/aefsecurityapi/generator_settings_server.yaml
index ae3c2c3..258174e 100644
--- a/capif/internal/readonly/nlfm/generator_settings.yaml
+++ b/capif/internal/readonly/aefsecurityapi/generator_settings_server.yaml
@@ -19,11 +19,10 @@
#
output:
- internal/readonly/nlfm/nlfm.gen.go
-package: nlfm
+ internal/readonly/aefsecurityapi/aefsecurity-server.gen.go
+package: aefsecurityapi
generate:
- - types
- - skip-prune
+ - server
- spec
import-mapping:
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
diff --git a/capif/internal/readonly/common/generator_settings.yaml b/capif/internal/readonly/aefsecurityapi/generator_settings_types.yaml
similarity index 76%
copy from capif/internal/readonly/common/generator_settings.yaml
copy to capif/internal/readonly/aefsecurityapi/generator_settings_types.yaml
index 368568c..b46fff6 100644
--- a/capif/internal/readonly/common/generator_settings.yaml
+++ b/capif/internal/readonly/aefsecurityapi/generator_settings_types.yaml
@@ -19,12 +19,11 @@
#
output:
- internal/readonly/common/common.gen.go
-package: common
+ internal/readonly/aefsecurityapi/aefsecurity-types.gen.go
+package: aefsecurityapi
generate:
- types
- - skip-prune
- - spec
import-mapping:
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
- TS29572_Nlmf_Location.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/nlfm
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
+ TS29222_CAPIF_Security_API.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/securityapi
\ No newline at end of file
diff --git a/capif/internal/readonly/aggregatecommon/common.gen.go b/capif/internal/readonly/aggregatecommon/common.gen.go
new file mode 100644
index 0000000..2cabea4
--- /dev/null
+++ b/capif/internal/readonly/aggregatecommon/common.gen.go
@@ -0,0 +1,619 @@
+// Package common provides primitives to interact with the openapi HTTP API.
+//
+// Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
+package common
+
+import (
+ "bytes"
+ "compress/gzip"
+ "encoding/base64"
+ "fmt"
+ "net/url"
+ "path"
+ "strings"
+
+ "github.com/getkin/kin-openapi/openapi3"
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
+)
+
+// Defines values for AfResultStatus.
+const (
+ AfResultStatusOTHER AfResultStatus = "OTHER"
+
+ AfResultStatusRELOCNOALLOWED AfResultStatus = "RELOC_NO_ALLOWED"
+
+ AfResultStatusSUCCESS AfResultStatus = "SUCCESS"
+
+ AfResultStatusTEMPORARYCONGESTION AfResultStatus = "TEMPORARY_CONGESTION"
+)
+
+// Defines values for FlowDirection.
+const (
+ FlowDirectionBIDIRECTIONAL FlowDirection = "BIDIRECTIONAL"
+
+ FlowDirectionDOWNLINK FlowDirection = "DOWNLINK"
+
+ FlowDirectionUNSPECIFIED FlowDirection = "UNSPECIFIED"
+
+ FlowDirectionUPLINK FlowDirection = "UPLINK"
+)
+
+// Defines values for NotificationMethod.
+const (
+ NotificationMethodONETIME NotificationMethod = "ONE_TIME"
+
+ NotificationMethodONEVENTDETECTION NotificationMethod = "ON_EVENT_DETECTION"
+
+ NotificationMethodPERIODIC NotificationMethod = "PERIODIC"
+)
+
+// Defines values for SupportedGADShapes.
+const (
+ SupportedGADShapesELLIPSOIDARC SupportedGADShapes = "ELLIPSOID_ARC"
+
+ SupportedGADShapesLOCAL2DPOINTUNCERTAINTYELLIPSE SupportedGADShapes = "LOCAL_2D_POINT_UNCERTAINTY_ELLIPSE"
+
+ SupportedGADShapesLOCAL3DPOINTUNCERTAINTYELLIPSOID SupportedGADShapes = "LOCAL_3D_POINT_UNCERTAINTY_ELLIPSOID"
+
+ SupportedGADShapesPOINT SupportedGADShapes = "POINT"
+
+ SupportedGADShapesPOINTALTITUDE SupportedGADShapes = "POINT_ALTITUDE"
+
+ SupportedGADShapesPOINTALTITUDEUNCERTAINTY SupportedGADShapes = "POINT_ALTITUDE_UNCERTAINTY"
+
+ SupportedGADShapesPOINTUNCERTAINTYCIRCLE SupportedGADShapes = "POINT_UNCERTAINTY_CIRCLE"
+
+ SupportedGADShapesPOINTUNCERTAINTYELLIPSE SupportedGADShapes = "POINT_UNCERTAINTY_ELLIPSE"
+
+ SupportedGADShapesPOLYGON SupportedGADShapes = "POLYGON"
+)
+
+// IP address and/or FQDN.
+type AddrFqdn struct {
+ // Indicates an FQDN.
+ Fqdn *string `json:"fqdn,omitempty"`
+
+ // Contains an IP adresse.
+ IpAddr *externalRef0.IpAddr `json:"ipAddr,omitempty"`
+}
+
+// Identifies the result of application layer handling.
+type AfResultInfo struct {
+ // Possible values are:
+ // - SUCCESS: The application layer is ready or the relocation is completed.
+ // - TEMPORARY_CONGESTION: The application relocation fails due to temporary congestion.
+ // - RELOC_NO_ALLOWED: The application relocation fails because application relocation is not allowed.
+ // - OTHER: The application relocation fails due to other reason.
+ AfStatus AfResultStatus `json:"afStatus"`
+
+ // Contains EAS IP replacement information.
+ EasIpReplaceInfos *[]externalRef0.EasIpReplacementInfo `json:"easIpReplaceInfos,omitempty"`
+
+ // Either the "routeInfo" attribute or the "routeProfId" attribute shall be included in the "RouteToLocation" data type.
+ TrafficRoute *externalRef0.RouteToLocation `json:"trafficRoute"`
+
+ // If present and set to "true" it indicates that buffering of uplink traffic to the target DNAI is needed.
+ UpBuffInd *bool `json:"upBuffInd,omitempty"`
+}
+
+// Possible values are:
+// - SUCCESS: The application layer is ready or the relocation is completed.
+// - TEMPORARY_CONGESTION: The application relocation fails due to temporary congestion.
+// - RELOC_NO_ALLOWED: The application relocation fails because application relocation is not allowed.
+// - OTHER: The application relocation fails due to other reason.
+type AfResultStatus string
+
+// Indicates value of altitude.
+type Altitude float64
+
+// Indicates value of angle.
+type Angle int
+
+// Indicates a Civic address.
+type CivicAddress struct {
+ A1 *string `json:"A1,omitempty"`
+ A2 *string `json:"A2,omitempty"`
+ A3 *string `json:"A3,omitempty"`
+ A4 *string `json:"A4,omitempty"`
+ A5 *string `json:"A5,omitempty"`
+ A6 *string `json:"A6,omitempty"`
+ ADDCODE *string `json:"ADDCODE,omitempty"`
+ BLD *string `json:"BLD,omitempty"`
+ FLR *string `json:"FLR,omitempty"`
+ HNO *string `json:"HNO,omitempty"`
+ HNS *string `json:"HNS,omitempty"`
+ LMK *string `json:"LMK,omitempty"`
+ LOC *string `json:"LOC,omitempty"`
+ NAM *string `json:"NAM,omitempty"`
+ PC *string `json:"PC,omitempty"`
+ PCN *string `json:"PCN,omitempty"`
+ PLC *string `json:"PLC,omitempty"`
+ POBOX *string `json:"POBOX,omitempty"`
+ POD *string `json:"POD,omitempty"`
+ POM *string `json:"POM,omitempty"`
+ PRD *string `json:"PRD,omitempty"`
+ PRM *string `json:"PRM,omitempty"`
+ RD *string `json:"RD,omitempty"`
+ RDBR *string `json:"RDBR,omitempty"`
+ RDSEC *string `json:"RDSEC,omitempty"`
+ RDSUBBR *string `json:"RDSUBBR,omitempty"`
+ ROOM *string `json:"ROOM,omitempty"`
+ SEAT *string `json:"SEAT,omitempty"`
+ STS *string `json:"STS,omitempty"`
+ UNIT *string `json:"UNIT,omitempty"`
+ Country *string `json:"country,omitempty"`
+ Method *string `json:"method,omitempty"`
+ ProvidedBy *string `json:"providedBy,omitempty"`
+ UsageRules *string `json:"usageRules,omitempty"`
+}
+
+// Describes a communication failure detected by AMF
+type CommunicationFailure struct {
+ NasReleaseCode *string `json:"nasReleaseCode,omitempty"`
+
+ // Represents the NGAP cause.
+ RanReleaseCode *externalRef0.NgApCause `json:"ranReleaseCode,omitempty"`
+}
+
+// Indicates value of confidence.
+type Confidence int
+
+// Represents the content version of some content.
+type ContentVersion int
+
+// EllipsoidArc defines model for EllipsoidArc.
+type EllipsoidArc struct {
+ // Embedded struct due to allOf(#/components/schemas/GADShape)
+ GADShape `yaml:",inline"`
+ // Embedded fields due to inline allOf schema
+ // Indicates value of confidence.
+ Confidence Confidence `json:"confidence"`
+
+ // Indicates value of angle.
+ IncludedAngle Angle `json:"includedAngle"`
+
+ // Indicates value of the inner radius.
+ InnerRadius InnerRadius `json:"innerRadius"`
+
+ // Indicates value of angle.
+ OffsetAngle Angle `json:"offsetAngle"`
+
+ // Geographical coordinates.
+ Point GeographicalCoordinates `json:"point"`
+
+ // Indicates value of uncertainty.
+ UncertaintyRadius Uncertainty `json:"uncertaintyRadius"`
+}
+
+// Identifies an Ethernet flow.
+type EthFlowDescription struct {
+ // String identifying a MAC address formatted in the hexadecimal notation according to clause 1.1 and clause 2.1 of RFC 7042
+ DestMacAddr *externalRef0.MacAddr48 `json:"destMacAddr,omitempty"`
+
+ // String identifying a MAC address formatted in the hexadecimal notation according to clause 1.1 and clause 2.1 of RFC 7042
+ DestMacAddrEnd *externalRef0.MacAddr48 `json:"destMacAddrEnd,omitempty"`
+ EthType string `json:"ethType"`
+
+ // Defines a packet filter of an IP flow.
+ FDesc *FlowDescription `json:"fDesc,omitempty"`
+
+ // Possible values are
+ // - DOWNLINK: The corresponding filter applies for traffic to the UE.
+ // - UPLINK: The corresponding filter applies for traffic from the UE.
+ // - BIDIRECTIONAL: The corresponding filter applies for traffic both to and from the UE.
+ // - UNSPECIFIED: The corresponding filter applies for traffic to the UE (downlink), but has no specific direction declared. The service data flow detection shall apply the filter for uplink traffic as if the filter was bidirectional. The PCF shall not use the value UNSPECIFIED in filters created by the network in NW-initiated procedures. The PCF shall only include the value UNSPECIFIED in filters in UE-initiated procedures if the same value is received from the SMF.
+ FDir *FlowDirection `json:"fDir,omitempty"`
+
+ // String identifying a MAC address formatted in the hexadecimal notation according to clause 1.1 and clause 2.1 of RFC 7042
+ SourceMacAddr *externalRef0.MacAddr48 `json:"sourceMacAddr,omitempty"`
+
+ // String identifying a MAC address formatted in the hexadecimal notation according to clause 1.1 and clause 2.1 of RFC 7042
+ SrcMacAddrEnd *externalRef0.MacAddr48 `json:"srcMacAddrEnd,omitempty"`
+ VlanTags *[]string `json:"vlanTags,omitempty"`
+}
+
+// Defines a packet filter of an IP flow.
+type FlowDescription string
+
+// Possible values are
+// - DOWNLINK: The corresponding filter applies for traffic to the UE.
+// - UPLINK: The corresponding filter applies for traffic from the UE.
+// - BIDIRECTIONAL: The corresponding filter applies for traffic both to and from the UE.
+// - UNSPECIFIED: The corresponding filter applies for traffic to the UE (downlink), but has no specific direction declared. The service data flow detection shall apply the filter for uplink traffic as if the filter was bidirectional. The PCF shall not use the value UNSPECIFIED in filters created by the network in NW-initiated procedures. The PCF shall only include the value UNSPECIFIED in filters in UE-initiated procedures if the same value is received from the SMF.
+type FlowDirection string
+
+// Common base type for GAD shapes.
+type GADShape struct {
+ // Indicates supported GAD shapes.
+ Shape SupportedGADShapes `json:"shape"`
+}
+
+// Geographic area specified by different shape.
+type GeographicArea interface{}
+
+// Geographical coordinates.
+type GeographicalCoordinates struct {
+ Lat float64 `json:"lat"`
+ Lon float64 `json:"lon"`
+}
+
+// Indicates value of the inner radius.
+type InnerRadius int32
+
+// Range of IPv4 addresses
+type Ipv4AddressRange struct {
+ // String identifying a IPv4 address formatted in the 'dotted decimal' notation as defined in RFC 1166.
+ End *externalRef0.Ipv4Addr `json:"end,omitempty"`
+
+ // String identifying a IPv4 address formatted in the 'dotted decimal' notation as defined in RFC 1166.
+ Start *externalRef0.Ipv4Addr `json:"start,omitempty"`
+}
+
+// Local2dPointUncertaintyEllipse defines model for Local2dPointUncertaintyEllipse.
+type Local2dPointUncertaintyEllipse struct {
+ // Embedded struct due to allOf(#/components/schemas/GADShape)
+ GADShape `yaml:",inline"`
+ // Embedded fields due to inline allOf schema
+ // Indicates value of confidence.
+ Confidence Confidence `json:"confidence"`
+
+ // Indicates a Local origin in a reference system
+ LocalOrigin LocalOrigin `json:"localOrigin"`
+
+ // Relative Cartesian Location
+ Point RelativeCartesianLocation `json:"point"`
+
+ // Ellipse with uncertainty.
+ UncertaintyEllipse UncertaintyEllipse `json:"uncertaintyEllipse"`
+}
+
+// Local3dPointUncertaintyEllipsoid defines model for Local3dPointUncertaintyEllipsoid.
+type Local3dPointUncertaintyEllipsoid struct {
+ // Embedded struct due to allOf(#/components/schemas/GADShape)
+ GADShape `yaml:",inline"`
+ // Embedded fields due to inline allOf schema
+ // Indicates value of confidence.
+ Confidence Confidence `json:"confidence"`
+
+ // Indicates a Local origin in a reference system
+ LocalOrigin LocalOrigin `json:"localOrigin"`
+
+ // Relative Cartesian Location
+ Point RelativeCartesianLocation `json:"point"`
+
+ // Ellipsoid with uncertainty
+ UncertaintyEllipsoid UncertaintyEllipsoid `json:"uncertaintyEllipsoid"`
+}
+
+// Indicates a Local origin in a reference system
+type LocalOrigin struct {
+ CoordinateId *string `json:"coordinateId,omitempty"`
+
+ // Geographical coordinates.
+ Point *GeographicalCoordinates `json:"point,omitempty"`
+}
+
+// Describes a network area information in which the NF service consumer requests the number of UEs.
+type NetworkAreaInfo struct {
+ // Contains a list of E-UTRA cell identities.
+ Ecgis *[]externalRef0.Ecgi `json:"ecgis,omitempty"`
+
+ // Contains a list of NG RAN nodes.
+ GRanNodeIds *[]externalRef0.GlobalRanNodeId `json:"gRanNodeIds,omitempty"`
+
+ // Contains a list of NR cell identities.
+ Ncgis *[]externalRef0.Ncgi `json:"ncgis,omitempty"`
+
+ // Contains a list of tracking area identities.
+ Tais *[]externalRef0.Tai `json:"tais,omitempty"`
+}
+
+// Possible values are - PERIODIC - ONE_TIME - ON_EVENT_DETECTION
+type NotificationMethod string
+
+// Indicates value of orientation angle.
+type Orientation int
+
+// Point defines model for Point.
+type Point struct {
+ // Embedded struct due to allOf(#/components/schemas/GADShape)
+ GADShape `yaml:",inline"`
+ // Embedded fields due to inline allOf schema
+ // Geographical coordinates.
+ Point GeographicalCoordinates `json:"point"`
+}
+
+// PointAltitude defines model for PointAltitude.
+type PointAltitude struct {
+ // Embedded struct due to allOf(#/components/schemas/GADShape)
+ GADShape `yaml:",inline"`
+ // Embedded fields due to inline allOf schema
+ // Indicates value of altitude.
+ Altitude Altitude `json:"altitude"`
+
+ // Geographical coordinates.
+ Point GeographicalCoordinates `json:"point"`
+}
+
+// PointAltitudeUncertainty defines model for PointAltitudeUncertainty.
+type PointAltitudeUncertainty struct {
+ // Embedded struct due to allOf(#/components/schemas/GADShape)
+ GADShape `yaml:",inline"`
+ // Embedded fields due to inline allOf schema
+ // Indicates value of altitude.
+ Altitude Altitude `json:"altitude"`
+
+ // Indicates value of confidence.
+ Confidence Confidence `json:"confidence"`
+
+ // Geographical coordinates.
+ Point GeographicalCoordinates `json:"point"`
+
+ // Indicates value of uncertainty.
+ UncertaintyAltitude Uncertainty `json:"uncertaintyAltitude"`
+
+ // Ellipse with uncertainty.
+ UncertaintyEllipse UncertaintyEllipse `json:"uncertaintyEllipse"`
+}
+
+// List of points.
+type PointList []GeographicalCoordinates
+
+// PointUncertaintyCircle defines model for PointUncertaintyCircle.
+type PointUncertaintyCircle struct {
+ // Embedded struct due to allOf(#/components/schemas/GADShape)
+ GADShape `yaml:",inline"`
+ // Embedded fields due to inline allOf schema
+ // Geographical coordinates.
+ Point GeographicalCoordinates `json:"point"`
+
+ // Indicates value of uncertainty.
+ Uncertainty Uncertainty `json:"uncertainty"`
+}
+
+// PointUncertaintyEllipse defines model for PointUncertaintyEllipse.
+type PointUncertaintyEllipse struct {
+ // Embedded struct due to allOf(#/components/schemas/GADShape)
+ GADShape `yaml:",inline"`
+ // Embedded fields due to inline allOf schema
+ // Indicates value of confidence.
+ Confidence Confidence `json:"confidence"`
+
+ // Geographical coordinates.
+ Point GeographicalCoordinates `json:"point"`
+
+ // Ellipse with uncertainty.
+ UncertaintyEllipse UncertaintyEllipse `json:"uncertaintyEllipse"`
+}
+
+// Polygon defines model for Polygon.
+type Polygon struct {
+ // Embedded struct due to allOf(#/components/schemas/GADShape)
+ GADShape `yaml:",inline"`
+ // Embedded fields due to inline allOf schema
+ // List of points.
+ PointList PointList `json:"pointList"`
+}
+
+// Relative Cartesian Location
+type RelativeCartesianLocation struct {
+ // string with format 'float' as defined in OpenAPI.
+ X externalRef0.Float `json:"x"`
+
+ // string with format 'float' as defined in OpenAPI.
+ Z *externalRef0.Float `json:"z,omitempty"`
+}
+
+// Represents the type of reporting that the subscription requires.
+type ReportingInformation struct {
+ // indicating a time in seconds.
+ GrpRepTime *externalRef0.DurationSec `json:"grpRepTime,omitempty"`
+ ImmRep *bool `json:"immRep,omitempty"`
+
+ // Unsigned Integer, i.e. only value 0 and integers above 0 are permissible.
+ MaxReportNbr *externalRef0.Uinteger `json:"maxReportNbr,omitempty"`
+
+ // string with format 'date-time' as defined in OpenAPI.
+ MonDur *externalRef0.DateTime `json:"monDur,omitempty"`
+
+ // Possible values are:
+ // - ACTIVATE: The event notification is activated.
+ // - DEACTIVATE: The event notification is deactivated and shall be muted. The available event(s) shall be stored.
+ // - RETRIEVAL: The event notification shall be sent to the NF service consumer(s), after that, is muted again.
+ NotifFlag *externalRef0.NotificationFlag `json:"notifFlag,omitempty"`
+
+ // Possible values are - PERIODIC - ONE_TIME - ON_EVENT_DETECTION
+ NotifMethod *NotificationMethod `json:"notifMethod,omitempty"`
+
+ // Criteria for partitioning the UEs before applying the sampling ratio.
+ PartitionCriteria *[]externalRef0.PartitioningCriteria `json:"partitionCriteria,omitempty"`
+
+ // indicating a time in seconds.
+ RepPeriod *externalRef0.DurationSec `json:"repPeriod,omitempty"`
+
+ // Unsigned integer indicating Sampling Ratio (see clauses 4.15.1 of 3GPP TS 23.502), expressed in percent.
+ SampRatio *externalRef0.SamplingRatio `json:"sampRatio,omitempty"`
+}
+
+// Indicates supported GAD shapes.
+type SupportedGADShapes string
+
+// Indicates TSC Traffic pattern.
+type TscaiInputContainer struct {
+ // string with format 'date-time' as defined in OpenAPI.
+ BurstArrivalTime *externalRef0.DateTime `json:"burstArrivalTime,omitempty"`
+
+ // Unsigned Integer, i.e. only value 0 and integers above 0 are permissible.
+ Periodicity *externalRef0.Uinteger `json:"periodicity,omitempty"`
+
+ // Unsigned Integer, i.e. only value 0 and integers above 0 are permissible.
+ SurTimeInNumMsg *externalRef0.Uinteger `json:"surTimeInNumMsg,omitempty"`
+
+ // Unsigned Integer, i.e. only value 0 and integers above 0 are permissible.
+ SurTimeInTime *externalRef0.Uinteger `json:"surTimeInTime,omitempty"`
+}
+
+// Indicates value of uncertainty.
+type Uncertainty float32
+
+// Ellipse with uncertainty.
+type UncertaintyEllipse struct {
+ // Indicates value of orientation angle.
+ OrientationMajor Orientation `json:"orientationMajor"`
+
+ // Indicates value of uncertainty.
+ SemiMajor Uncertainty `json:"semiMajor"`
+
+ // Indicates value of uncertainty.
+ SemiMinor Uncertainty `json:"semiMinor"`
+}
+
+// Ellipsoid with uncertainty
+type UncertaintyEllipsoid struct {
+ // Indicates value of orientation angle.
+ OrientationMajor Orientation `json:"orientationMajor"`
+
+ // Indicates value of uncertainty.
+ SemiMajor Uncertainty `json:"semiMajor"`
+
+ // Indicates value of uncertainty.
+ SemiMinor Uncertainty `json:"semiMinor"`
+
+ // Indicates value of uncertainty.
+ Vertical Uncertainty `json:"vertical"`
+}
+
+// Base64 encoded, gzipped, json marshaled Swagger object
+var swaggerSpec = []string{
+
+ "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",
+}
+
+// GetSwagger returns the content of the embedded swagger specification file
+// or error if failed to decode
+func decodeSpec() ([]byte, error) {
+ zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, ""))
+ if err != nil {
+ return nil, fmt.Errorf("error base64 decoding spec: %s", err)
+ }
+ zr, err := gzip.NewReader(bytes.NewReader(zipped))
+ if err != nil {
+ return nil, fmt.Errorf("error decompressing spec: %s", err)
+ }
+ var buf bytes.Buffer
+ _, err = buf.ReadFrom(zr)
+ if err != nil {
+ return nil, fmt.Errorf("error decompressing spec: %s", err)
+ }
+
+ return buf.Bytes(), nil
+}
+
+var rawSpec = decodeSpecCached()
+
+// a naive cached of a decoded swagger spec
+func decodeSpecCached() func() ([]byte, error) {
+ data, err := decodeSpec()
+ return func() ([]byte, error) {
+ return data, err
+ }
+}
+
+// Constructs a synthetic filesystem for resolving external references when loading openapi specifications.
+func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) {
+ var res = make(map[string]func() ([]byte, error))
+ if len(pathToFile) > 0 {
+ res[pathToFile] = rawSpec
+ }
+
+ pathPrefix := path.Dir(pathToFile)
+
+ for rawPath, rawFunc := range externalRef0.PathToRawSpec(path.Join(pathPrefix, "TS29571_CommonData.yaml")) {
+ if _, ok := res[rawPath]; ok {
+ // it is not possible to compare functions in golang, so always overwrite the old value
+ }
+ res[rawPath] = rawFunc
+ }
+ return res
+}
+
+// GetSwagger returns the Swagger specification corresponding to the generated code
+// in this file. The external references of Swagger specification are resolved.
+// The logic of resolving external references is tightly connected to "import-mapping" feature.
+// Externally referenced files must be embedded in the corresponding golang packages.
+// Urls can be supported but this task was out of the scope.
+func GetSwagger() (swagger *openapi3.T, err error) {
+ var resolvePath = PathToRawSpec("")
+
+ loader := openapi3.NewLoader()
+ loader.IsExternalRefsAllowed = true
+ loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) {
+ var pathToFile = url.String()
+ pathToFile = path.Clean(pathToFile)
+ getSpec, ok := resolvePath[pathToFile]
+ if !ok {
+ err1 := fmt.Errorf("path not found: %s", pathToFile)
+ return nil, err1
+ }
+ return getSpec()
+ }
+ var specData []byte
+ specData, err = rawSpec()
+ if err != nil {
+ return
+ }
+ swagger, err = loader.LoadFromData(specData)
+ if err != nil {
+ return
+ }
+ return
+}
diff --git a/capif/internal/readonly/nlfm/generator_settings.yaml b/capif/internal/readonly/aggregatecommon/generator_settings.yaml
similarity index 93%
rename from capif/internal/readonly/nlfm/generator_settings.yaml
rename to capif/internal/readonly/aggregatecommon/generator_settings.yaml
index ae3c2c3..7e44330 100644
--- a/capif/internal/readonly/nlfm/generator_settings.yaml
+++ b/capif/internal/readonly/aggregatecommon/generator_settings.yaml
@@ -19,8 +19,8 @@
#
output:
- internal/readonly/nlfm/nlfm.gen.go
-package: nlfm
+ internal/readonly/aggregatecommon/common.gen.go
+package: common
generate:
- types
- skip-prune
diff --git a/capif/internal/readonly/auditingapi/auditing-server.gen.go b/capif/internal/readonly/auditingapi/auditing-server.gen.go
new file mode 100644
index 0000000..aaa745e
--- /dev/null
+++ b/capif/internal/readonly/auditingapi/auditing-server.gen.go
@@ -0,0 +1,304 @@
+// Package auditingapi provides primitives to interact with the openapi HTTP API.
+//
+// Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
+package auditingapi
+
+import (
+ "bytes"
+ "compress/gzip"
+ "encoding/base64"
+ "encoding/json"
+ "fmt"
+ "net/http"
+ "net/url"
+ "path"
+ "strings"
+
+ "github.com/deepmap/oapi-codegen/pkg/runtime"
+ "github.com/getkin/kin-openapi/openapi3"
+ "github.com/labstack/echo/v4"
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
+ externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
+ externalRef2 "oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi"
+)
+
+// ServerInterface represents all server handlers.
+type ServerInterface interface {
+
+ // (GET /apiInvocationLogs)
+ GetApiInvocationLogs(ctx echo.Context, params GetApiInvocationLogsParams) error
+}
+
+// ServerInterfaceWrapper converts echo contexts to parameters.
+type ServerInterfaceWrapper struct {
+ Handler ServerInterface
+}
+
+// GetApiInvocationLogs converts echo context to params.
+func (w *ServerInterfaceWrapper) GetApiInvocationLogs(ctx echo.Context) error {
+ var err error
+
+ // Parameter object where we will unmarshal all parameters from the context
+ var params GetApiInvocationLogsParams
+ // ------------- Optional query parameter "aef-id" -------------
+
+ err = runtime.BindQueryParameter("form", true, false, "aef-id", ctx.QueryParams(), ¶ms.AefId)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter aef-id: %s", err))
+ }
+
+ // ------------- Optional query parameter "api-invoker-id" -------------
+
+ err = runtime.BindQueryParameter("form", true, false, "api-invoker-id", ctx.QueryParams(), ¶ms.ApiInvokerId)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter api-invoker-id: %s", err))
+ }
+
+ // ------------- Optional query parameter "time-range-start" -------------
+
+ err = runtime.BindQueryParameter("form", true, false, "time-range-start", ctx.QueryParams(), ¶ms.TimeRangeStart)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter time-range-start: %s", err))
+ }
+
+ // ------------- Optional query parameter "time-range-end" -------------
+
+ err = runtime.BindQueryParameter("form", true, false, "time-range-end", ctx.QueryParams(), ¶ms.TimeRangeEnd)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter time-range-end: %s", err))
+ }
+
+ // ------------- Optional query parameter "api-id" -------------
+
+ err = runtime.BindQueryParameter("form", true, false, "api-id", ctx.QueryParams(), ¶ms.ApiId)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter api-id: %s", err))
+ }
+
+ // ------------- Optional query parameter "api-name" -------------
+
+ err = runtime.BindQueryParameter("form", true, false, "api-name", ctx.QueryParams(), ¶ms.ApiName)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter api-name: %s", err))
+ }
+
+ // ------------- Optional query parameter "api-version" -------------
+
+ err = runtime.BindQueryParameter("form", true, false, "api-version", ctx.QueryParams(), ¶ms.ApiVersion)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter api-version: %s", err))
+ }
+
+ // ------------- Optional query parameter "protocol" -------------
+
+ err = runtime.BindQueryParameter("form", true, false, "protocol", ctx.QueryParams(), ¶ms.Protocol)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter protocol: %s", err))
+ }
+
+ // ------------- Optional query parameter "operation" -------------
+
+ err = runtime.BindQueryParameter("form", true, false, "operation", ctx.QueryParams(), ¶ms.Operation)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter operation: %s", err))
+ }
+
+ // ------------- Optional query parameter "result" -------------
+
+ err = runtime.BindQueryParameter("form", true, false, "result", ctx.QueryParams(), ¶ms.Result)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter result: %s", err))
+ }
+
+ // ------------- Optional query parameter "resource-name" -------------
+
+ err = runtime.BindQueryParameter("form", true, false, "resource-name", ctx.QueryParams(), ¶ms.ResourceName)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter resource-name: %s", err))
+ }
+
+ // ------------- Optional query parameter "src-interface" -------------
+
+ if paramValue := ctx.QueryParam("src-interface"); paramValue != "" {
+
+ var value externalRef2.InterfaceDescription
+ err = json.Unmarshal([]byte(paramValue), &value)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, "Error unmarshaling parameter 'src-interface' as JSON")
+ }
+ params.SrcInterface = &value
+
+ }
+
+ // ------------- Optional query parameter "dest-interface" -------------
+
+ if paramValue := ctx.QueryParam("dest-interface"); paramValue != "" {
+
+ var value externalRef2.InterfaceDescription
+ err = json.Unmarshal([]byte(paramValue), &value)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, "Error unmarshaling parameter 'dest-interface' as JSON")
+ }
+ params.DestInterface = &value
+
+ }
+
+ // ------------- Optional query parameter "supported-features" -------------
+
+ err = runtime.BindQueryParameter("form", true, false, "supported-features", ctx.QueryParams(), ¶ms.SupportedFeatures)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter supported-features: %s", err))
+ }
+
+ // Invoke the callback with all the unmarshalled arguments
+ err = w.Handler.GetApiInvocationLogs(ctx, params)
+ return err
+}
+
+// This is a simple interface which specifies echo.Route addition functions which
+// are present on both echo.Echo and echo.Group, since we want to allow using
+// either of them for path registration
+type EchoRouter interface {
+ CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+}
+
+// RegisterHandlers adds each server route to the EchoRouter.
+func RegisterHandlers(router EchoRouter, si ServerInterface) {
+ RegisterHandlersWithBaseURL(router, si, "")
+}
+
+// Registers handlers, and prepends BaseURL to the paths, so that the paths
+// can be served under a prefix.
+func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL string) {
+
+ wrapper := ServerInterfaceWrapper{
+ Handler: si,
+ }
+
+ router.GET(baseURL+"/apiInvocationLogs", wrapper.GetApiInvocationLogs)
+
+}
+
+// Base64 encoded, gzipped, json marshaled Swagger object
+var swaggerSpec = []string{
+
+ "H4sIAAAAAAAC/9RXzXLbNhB+lR20h3aGIkXaimPdVDvJaCaTqJaaS5PxwOSSREMCKABKcT18oL5Gn6yz",
+ "oKgotmVHlnvoRT/k7rff7gcsFjcsVbVWEqWzbHzTBgy/ODSSV+cqpScsQ5saoZ1Qko3Z0ZvZDBZzSE7D",
+ "JEngQ3wSxuEQzlRdKwmT2RReG17jSpnPkCsD3v6dMq68Uo3MyMKygDWmYmNWOqfHUbRarcKjQutQmSLK",
+ "nY7mGlMbcZOWYolRcnpp0Qi0URc0Ym3AhMzVXXYUn6LyJhNOyCL8KP/5G5JhEgcdk/em4FL8xcmeVzDj",
+ "xkk0Fn6aXEx/CWCymM4DODubTwJ4tZhPA1jMz/3XYkIfZz+HH+WkqsCIonQWDFo0S8zCj5IFzAlXIRuz",
+ "s8ls+vpysuZwOZlNWcCWaGxHMg6TcDjglS55GFMuSqPkWlB1w2E4ZAHT3JW++BHXYiqXKvWM36rCPy3Q",
+ "3c391wbNNXCZgUFnBC4RiJxI0csiNihQqcKCdcpgBkqCKxE8ZUiVQcgbmZJZyDwz432mGRuzN+gmd+gQ",
+ "WVLcobFs/PttVnNnhCxAZCidyK/pN8UjRvhFK0sPtiMKcvqTUmEBk7ymenLMByJjAbNpiTWn1N21pjfW",
+ "o7O2DfaIS5X4jAZWpUjL9b/Mv92q104uWgzWAE/gxI0DJ2oElfuAW6L4x4bLAneFJouBtxhYQvom+I8G",
+ "czZmi3lyGifJZbcfz7nj4TWvqx+ir7s86pxsdM4dLkSN91F9JbNnIYoy+y9pPqpy9qCOe+pHsOQegHAg",
+ "LFh0wC3ccC3e8Rpb0KTvumK/XUzBOtOkrjFIZhnmQmIGQoJtrtKKNxbhODwmh62uOhrGD3H2P/di/aFr",
+ "PD0vSqJb+Stuv6dKfePaK+jMKKdSVT0WQK/tdi2ShBaJb6ez5qoStrycd3uUuuruNdOHv4/a+76ngSu5",
+ "265C3wwf2P6bhvjMhDek7mN8gbapHCgDqnG6cXc35S66xnvuJx0t5T6C1ZiKXKR00KnGpPiYnr3dd63T",
+ "VEmH0h9lXOtKdLlEf1jicfOs9Z1KhybnKZ5v5dq2bXAr+Y0dbD3f3jrr3r8rf2vSgegx2P87yZ0iZ2jd",
+ "rSy/DbBQkIvKoQFhDFa45NLREtJKWqSpqeKOjlwFjbSN1srQ3xw59Uq7q7S94WDL8N7yjU7i7zpZ5j3i",
+ "6x6wbT8FbEOUYJPhkL4OU/GtKor1JHj5dXx6TMytMes+Ffuu0MnmiwWb9gS8UrKAlXAl5OjSErMHpkHI",
+ "qE40ih4NT/Y8pjfVisjXQ7w8AOIlQRx3RX8SBPl6iPgAiLiDODoA4qiDOD4A4riDeHEAxAsPER/AIu5Y",
+ "JKdPh0hOCWJ0gKijTtTRAYqMOkUyzDkdiU+F6f3b1m9Jf/1bX3y6Oy1NgxdKuTaia1a0jOnux43gV1XX",
+ "Udbvuwvcmoy/CdtxFOEXXusKw1TV7PaGXzvunCVPwtGtWTJJkpCYfmr/DQAA//8fy/fu5w8AAA==",
+}
+
+// GetSwagger returns the content of the embedded swagger specification file
+// or error if failed to decode
+func decodeSpec() ([]byte, error) {
+ zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, ""))
+ if err != nil {
+ return nil, fmt.Errorf("error base64 decoding spec: %s", err)
+ }
+ zr, err := gzip.NewReader(bytes.NewReader(zipped))
+ if err != nil {
+ return nil, fmt.Errorf("error decompressing spec: %s", err)
+ }
+ var buf bytes.Buffer
+ _, err = buf.ReadFrom(zr)
+ if err != nil {
+ return nil, fmt.Errorf("error decompressing spec: %s", err)
+ }
+
+ return buf.Bytes(), nil
+}
+
+var rawSpec = decodeSpecCached()
+
+// a naive cached of a decoded swagger spec
+func decodeSpecCached() func() ([]byte, error) {
+ data, err := decodeSpec()
+ return func() ([]byte, error) {
+ return data, err
+ }
+}
+
+// Constructs a synthetic filesystem for resolving external references when loading openapi specifications.
+func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) {
+ var res = make(map[string]func() ([]byte, error))
+ if len(pathToFile) > 0 {
+ res[pathToFile] = rawSpec
+ }
+
+ pathPrefix := path.Dir(pathToFile)
+
+ for rawPath, rawFunc := range externalRef0.PathToRawSpec(path.Join(pathPrefix, "TS29122_CommonData.yaml")) {
+ if _, ok := res[rawPath]; ok {
+ // it is not possible to compare functions in golang, so always overwrite the old value
+ }
+ res[rawPath] = rawFunc
+ }
+ for rawPath, rawFunc := range externalRef2.PathToRawSpec(path.Join(pathPrefix, "TS29222_CAPIF_Publish_Service_API.yaml")) {
+ if _, ok := res[rawPath]; ok {
+ // it is not possible to compare functions in golang, so always overwrite the old value
+ }
+ res[rawPath] = rawFunc
+ }
+ for rawPath, rawFunc := range externalRef1.PathToRawSpec(path.Join(pathPrefix, "TS29571_CommonData.yaml")) {
+ if _, ok := res[rawPath]; ok {
+ // it is not possible to compare functions in golang, so always overwrite the old value
+ }
+ res[rawPath] = rawFunc
+ }
+ return res
+}
+
+// GetSwagger returns the Swagger specification corresponding to the generated code
+// in this file. The external references of Swagger specification are resolved.
+// The logic of resolving external references is tightly connected to "import-mapping" feature.
+// Externally referenced files must be embedded in the corresponding golang packages.
+// Urls can be supported but this task was out of the scope.
+func GetSwagger() (swagger *openapi3.T, err error) {
+ var resolvePath = PathToRawSpec("")
+
+ loader := openapi3.NewLoader()
+ loader.IsExternalRefsAllowed = true
+ loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) {
+ var pathToFile = url.String()
+ pathToFile = path.Clean(pathToFile)
+ getSpec, ok := resolvePath[pathToFile]
+ if !ok {
+ err1 := fmt.Errorf("path not found: %s", pathToFile)
+ return nil, err1
+ }
+ return getSpec()
+ }
+ var specData []byte
+ specData, err = rawSpec()
+ if err != nil {
+ return
+ }
+ swagger, err = loader.LoadFromData(specData)
+ if err != nil {
+ return
+ }
+ return
+}
diff --git a/capif/internal/readonly/auditingapi/auditing-types.gen.go b/capif/internal/readonly/auditingapi/auditing-types.gen.go
new file mode 100644
index 0000000..75aaf41
--- /dev/null
+++ b/capif/internal/readonly/auditingapi/auditing-types.gen.go
@@ -0,0 +1,55 @@
+// Package auditingapi provides primitives to interact with the openapi HTTP API.
+//
+// Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
+package auditingapi
+
+import (
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
+ externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
+ externalRef2 "oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi"
+)
+
+// GetApiInvocationLogsParams defines parameters for GetApiInvocationLogs.
+type GetApiInvocationLogsParams struct {
+ // String identifying the API exposing function.
+ AefId *string `json:"aef-id,omitempty"`
+
+ // String identifying the API invoker which invoked the service API.
+ ApiInvokerId *string `json:"api-invoker-id,omitempty"`
+
+ // Start time of the invocation time range.
+ TimeRangeStart *externalRef0.DateTime `json:"time-range-start,omitempty"`
+
+ // End time of the invocation time range.
+ TimeRangeEnd *externalRef0.DateTime `json:"time-range-end,omitempty"`
+
+ // String identifying the API invoked.
+ ApiId *string `json:"api-id,omitempty"`
+
+ // API name, it is set as {apiName} part of the URI structure as defined in subclause 4.4 of 3GPP TS 29.501.
+ ApiName *string `json:"api-name,omitempty"`
+
+ // Version of the API which was invoked.
+ ApiVersion *string `json:"api-version,omitempty"`
+
+ // Protocol invoked.
+ Protocol *externalRef2.Protocol `json:"protocol,omitempty"`
+
+ // Operation that was invoked on the API.
+ Operation *externalRef2.Operation `json:"operation,omitempty"`
+
+ // Result or output of the invocation.
+ Result *string `json:"result,omitempty"`
+
+ // Name of the specific resource invoked.
+ ResourceName *string `json:"resource-name,omitempty"`
+
+ // Interface description of the API invoker.
+ SrcInterface *externalRef2.InterfaceDescription `json:"src-interface,omitempty"`
+
+ // Interface description of the API invoked.
+ DestInterface *externalRef2.InterfaceDescription `json:"dest-interface,omitempty"`
+
+ // To filter irrelevant responses related to unsupported features
+ SupportedFeatures *externalRef1.SupportedFeatures `json:"supported-features,omitempty"`
+}
diff --git a/capif/internal/readonly/common/generator_settings.yaml b/capif/internal/readonly/auditingapi/generator_settings_server.yaml
similarity index 76%
copy from capif/internal/readonly/common/generator_settings.yaml
copy to capif/internal/readonly/auditingapi/generator_settings_server.yaml
index 368568c..c2c2738 100644
--- a/capif/internal/readonly/common/generator_settings.yaml
+++ b/capif/internal/readonly/auditingapi/generator_settings_server.yaml
@@ -19,12 +19,12 @@
#
output:
- internal/readonly/common/common.gen.go
-package: common
+ internal/readonly/auditingapi/auditing-server.gen.go
+package: auditingapi
generate:
- - types
- - skip-prune
+ - server
- spec
import-mapping:
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
- TS29572_Nlmf_Location.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/nlfm
+ TS29222_CAPIF_Publish_Service_API.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi
\ No newline at end of file
diff --git a/capif/internal/readonly/common/generator_settings.yaml b/capif/internal/readonly/auditingapi/generator_settings_types.yaml
similarity index 76%
copy from capif/internal/readonly/common/generator_settings.yaml
copy to capif/internal/readonly/auditingapi/generator_settings_types.yaml
index 368568c..90652ee 100644
--- a/capif/internal/readonly/common/generator_settings.yaml
+++ b/capif/internal/readonly/auditingapi/generator_settings_types.yaml
@@ -19,12 +19,11 @@
#
output:
- internal/readonly/common/common.gen.go
-package: common
+ internal/readonly/auditingapi/auditing-types.gen.go
+package: auditingapi
generate:
- types
- - skip-prune
- - spec
import-mapping:
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
- TS29572_Nlmf_Location.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/nlfm
+ TS29222_CAPIF_Publish_Service_API.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi
\ No newline at end of file
diff --git a/capif/internal/readonly/common/common.gen.go b/capif/internal/readonly/common29122/common.gen.go
similarity index 73%
rename from capif/internal/readonly/common/common.gen.go
rename to capif/internal/readonly/common29122/common.gen.go
index d709fd3..8d6c308 100644
--- a/capif/internal/readonly/common/common.gen.go
+++ b/capif/internal/readonly/common29122/common.gen.go
@@ -1,7 +1,7 @@
-// Package common provides primitives to interact with the openapi HTTP API.
+// Package common29122 provides primitives to interact with the openapi HTTP API.
//
// Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
-package common
+package common29122
import (
"bytes"
@@ -14,8 +14,8 @@
"time"
"github.com/getkin/kin-openapi/openapi3"
- externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
- externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/nlfm"
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/aggregatecommon"
+ externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
)
// Defines values for Event.
@@ -165,13 +165,13 @@
CellIds *[]string `json:"cellIds,omitempty"`
// Identifies a list of civic addresses of the user where the UE is located.
- CivicAddresses *[]externalRef1.CivicAddress `json:"civicAddresses,omitempty"`
+ CivicAddresses *[]externalRef0.CivicAddress `json:"civicAddresses,omitempty"`
// Indicates a list of eNodeB identities in which the UE is currently located.
EnodeBIds *[]string `json:"enodeBIds,omitempty"`
// Identifies a list of geographic area of the user where the UE is located.
- GeographicAreas *[]externalRef1.GeographicArea `json:"geographicAreas,omitempty"`
+ GeographicAreas *[]externalRef0.GeographicArea `json:"geographicAreas,omitempty"`
// Identifies a list of Routing Area Identities of the user where the UE is located.
RoutingAreaIds *[]string `json:"routingAreaIds,omitempty"`
@@ -183,10 +183,13 @@
// Represents a user location area when the UE is attached to 5G.
type LocationArea5G struct {
// Identifies a list of civic addresses of the user where the UE is located.
- CivicAddresses *[]externalRef1.CivicAddress `json:"civicAddresses,omitempty"`
+ CivicAddresses *[]externalRef0.CivicAddress `json:"civicAddresses,omitempty"`
// Identifies a list of geographic area of the user where the UE is located.
- GeographicAreas *[]externalRef1.GeographicArea `json:"geographicAreas,omitempty"`
+ GeographicAreas *[]externalRef0.GeographicArea `json:"geographicAreas,omitempty"`
+
+ // Describes a network area information in which the NF service consumer requests the number of UEs.
+ NwAreaInfo *externalRef0.NetworkAreaInfo `json:"nwAreaInfo,omitempty"`
}
// String encoding a Mobile Country Code part of the PLMN, comprising 3 digits, as defined in 3GPP TS 38.413.
@@ -240,7 +243,7 @@
Status *int `json:"status,omitempty"`
// A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported.
- SupportedFeatures *externalRef0.SupportedFeatures `json:"supportedFeatures,omitempty"`
+ SupportedFeatures *externalRef1.SupportedFeatures `json:"supportedFeatures,omitempty"`
// A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem.
Title *string `json:"title,omitempty"`
@@ -336,70 +339,70 @@
// Base64 encoded, gzipped, json marshaled Swagger object
var swaggerSpec = []string{
- "H4sIAAAAAAAC/+Rb727juHZ/lQO1wN1FFcWxk8xMgAL1OM5cF0lsWM4uis0ioKVjizcSqZKUPb6LPFBf",
- "o09WkJRsyZYte2Z30/Z+2R3HPOTvHPL8P/7NCXiScoZMSefmN0egTDmTaD50Wh/0/0KUgaCpopw5N84E",
- "k5QLIlYwxpAKDJTjOhGSEIUhuucBsUu3KbsMSKxQMKLoAuFpPAA+AxUhCJQ8EwF6jusI/M+MCgydGyUy",
- "dB0ZRJgQvZtapejcOFIJyubO29vbm+t0Wh93DxqhSIhm6X8FxMtWS38VcKaQKf1PkqYxtRDOU8GnMSb/",
- "8jdp8Wz2+meBM+fG+afzzQ2d22/l+chS3aIiNJaOOafKyWcSgsaJUjkGxMU7gHhiJFMRF/TvGFoUnXdA",
- "ccfFlIYhMgvh8h0gPHIFdzxjuRSu3wlCNwgwVWQao8Xx6R1w9DibxTSwr/LiPV7lPbK5imBcaLEB0n4H",
- "ICOBAWch1R/hjtC4APMeWjIiq5iTECacwz0Rc/tELt5DW7TZNTC4NqIaxdW7GC+ZpSkXCkN4wJASmGjr",
- "rvG030NxtEQeCFuZh4tSSQ3l6l2cy4AZHxmDj2KBAvpCcGHhvMfT1ShogPDEyILQuLBvIc5IFqtdL/8F",
- "GQoaFLDfCg9ugoNuEGRJFhOF4ZMkc9wlH2MqUGqMQBiQzXrINIGOEFLBUxSK2jgq5EsWU/b6E4+zBJv4",
- "zVdpBjKxjlMOUdzm63wMNJniisSnnpWlpyPUZ9mAh0//htakd4NXxpcxhnNM8iewX3ogsyBAKWdZDKRK",
- "qOMuAowrOsufT41c8yexG8ZBlCWEnQkkoX4NgF/TmDCzDcgUA70pKA4qovIACMfdiejK0d8vawS/1kji",
- "M2HhkoYq2sVHmcI5CqAsNMyxORCYFuuBMphSJSFFAdK4CM17QhlNssS5aa0Py/cxp4VqjDMUyAIchLtH",
- "WgaAhsgUna3skZ9vJ7CmgsEtEAkhzijDUIOQ2TSISSYRrryO19FX0vkyGsHEh/Yn7+Lq0tsV0DaScVKT",
- "Qmiph0QR0MRAK4fqYFuSBGFJVhqP/lzdckPqwjRTsKQqMstYFhvlh/yZrECiMtcsMqOWxYIicN/FThkR",
- "q73SMyfNuEiIgmdnahY/O1tSG6bIuqMB+Pk7Wz/e3dNWCmter1972ErhcUe5QD0tGSLx+vIMWcBDDCGI",
- "iCCBQiFroeiojM7HKGsNZklnOUMIzOLc6Ghha/XRkIWh16CBwFzwLP2LhASTaX4sZzicOTe//FZRIvxq",
- "vckglM6vb271y0RSGTL9xa/b6l+m24HcJ0EEGFtbkusZGoNdkBW6QFEUSd5TX6OkChPZZAP768O1+BLK",
- "BpbqYi1cIgRZmS9zFhowFmjsk3/wgRZeduRPHs8H/u0jsEzLEkgc6xQWQyPqE5E/GDiNqO1djpHIZgc0",
- "Lq/dtpGVjeoM5S1ROKEJHql2IVF4pmiyVx20JOxq52azuu7VFyfXGalvO9uuf15bmn/VhubZWVukvdga",
- "TdMaK/+9sWovOWTx6misBcEBrKvh7GfE1/2ub4pqiciAMA0piLNQc3BhPn+AELXnNz5qifgakpUHFyAj",
- "EsdrZYYHzkKycg2J8RrZVOrQmKmCSOYkU1xThSV3gV8VRHQeocgVS3rwYfsUP9OnGAdMvloH/KHkjC/q",
- "nHERkD3QmhrTE5N0bm8ijwIqPjlFQXloLBJNNG7ImA4G+AwSyjKFsnIvlKlOuzE6KEeIvyMgG5xI75Tz",
- "63TtuxEco3ZlhHu0bQ9i/gciPqR8ZcR7dK6EuL+ojbdHXEqqg6IFiTPtAQXCGfh93x8MH18m/fHD4LE7",
- "GQwfb2CwdpMqIgrGX0Fqx86ZDtEUioQyrUEenMH90Pdfhncvn/vdcX8MZVoCMZfSxu9TJAKFJhj3e8Of",
- "+uP/2BBVaQQGfIFitUt33+/6/f1kMRKJ21RPfvdL/2XcHw3HkypfaJM0EKhTe0AtNA/gDO66g/v+7cu4",
- "7w+fxr2+/9K9vx/2aiSzqQUXfjiX0MxUcPTx/lOv1/f9u6f779lvk5d4z8xxHWT6Lfzi1Nyd4zrVG3Fc",
- "Z1fi5o9b4nRcpywsx3UOCMJxnQbWSg5+4w7MyxwbgTdl0+Y+8svZTfhITW5+KC7ZyeXfXAcLNTkY3ZlF",
- "b64zi/myNr4cVMO1wQj00lxzligQNE8QZsYzW7a0g1pvUYrWdnX5QGS2FV1ZdurCqiJC/aLj8AMpYcCZ",
- "IpRZw6XfXyUynvE45ksMYbqCZ+ffdCzBQiAQ8oRQVlrpwWeeO9adTQoPvUO08c9FnkIkWFy5KEMOjKsC",
- "JBBWwCglNOAjQs9kqhIuvWuvbU7U/6omrR3v+mPbxMwJF9osWze6Lz8rxfj/EMLLZfcdErvT6sJm/KCa",
- "a0XZ3qmq53rF7Ya8Tv0qBjQlwSsqmNFYs1Rkc7lOerbEAYpvFTQ+bhU02heXhlMjTcrmHgxULuNCgk/3",
- "+jrOuYDb+2J/KCHzatR6I52EfM21ut2QfFmz08R2waCzGw5sWYl8vzozMWALEtNwRARJDl6beYObL7Xw",
- "qKWFVBOjlr2bJ/956xEE6nMwhDBDfQO7FLu3n9ZD6Sol6DRT+BcJjCSVV0/g3/3hI4y4yZld4AJsvzdf",
- "W/tYxTq3bage2oUuoDf34NlJMqm01hFIuaSmUZzL/dnxGkuGlrvam0gXl90wFEcW7/RyIGEoUMo861Ob",
- "EtqzE3LzOcSAJiR+drQpsLFFNRsc9Cd3ML7rwcXF9XWtoApgB1LPPwGae0zI3JiaDtLF9WlCvq7hhAQB",
- "FyZjVRxyk3JZQXz16artwSRCSOhXDK1IzG4bXms2udJqVdkkt0Dajk918Irhvju6PvWOvp2z5rv441hv",
- "vOJ7yl73CmEPp+tzO58+Xm9JShSl57AyBbJ7bh67dwWShr5HJlHAOtYnAsmuGQwwri9tVlItKk2rpIdx",
- "DF9iPiUx2NBUb1N4QnPcMqJBtF1m1IfkBUSdcgicU6lQWEkf8GSHnFdAFzTo2peFh0PnDQOGqHiPO8h1",
- "PL1BmRc/6yqeE7/96epD++UxTmYvxYV4K5LEtXF+rwS1kS9kPMTPR18JPurlucDNbVCWX8KGlSATApmK",
- "V7VMnSb3OfK5IGlEA/0CjxX8hsq8wz9J8F8qWJuL0TxTlM312qZsbMPZ2BKBptqvFM0cnnYLSpDg9WSs",
- "k5zqTwVb178tG7GrLyebMY2RlSASpUgQYaht7NWXGiP3f9dW/P9Sv+aX8RAEe3uVRcoEBB74lMYIPZ4x",
- "JVbQ46HOz4QqOBvdPzy6oDEJapqGHQjpnCrpbgV/RWbW+ehdXnRqPe4DOwXSI6olF69HQGrrBOJ7cNkW",
- "24kxyCY77ezULVqtTp7Smw2ntpX54A/828daCI+lyYlbokhjaldKyDWYqWnzLnBlmS6KqxDjAmNbz/pB",
- "/tgwoIGbwl+NPvRsUl3UQPNRK1sqM3USOzqkM7ASuKMbtKWi4xE2m0kSHDNrY4LL7ZyuTO9Wua5L9EZx",
- "wuqy++0bqfSniXmmuzJOrFoe7PgGZi4oYc0rWbDDnD7AEtfyUlvU3WmPmHTBpv55H6JoALbMXV9fXXWu",
- "Kk0285emvpI+/aj2zFHnH5VhHgLY3KTZGmY76F5DOxlK4opuarT52BGYj4BCcAHF5H6Nj9U2pa7MkZAg",
- "ogw3hY7SsF6+q6HdHZnigQ1cAyxsaD7bp/M+KmHQBxnxLA61Hck5MshTwRc0rJx0JtBOz9kTS7y6QGew",
- "HumrNXNWEt87AbafnbozKZOKsKCx+/AkqF2+KbDV3PjtH1NSO8pGVmp/TUZSKqIyWTfNhfDXyWQEdgEE",
- "2r3auZQjRVvSj/XI7R0SlQncjXEuXno8SaxT2x/g+Dv7aDNPVVyrCDLiQrnbT0ZmSUJsR7KE2wye5aVh",
- "88JNhT0ibI4wEzwpc6z4iU/L/uGIZ1UXoI3z4sShdkXEJTKYrgwSv9e/M4EHigXqKKfkcYzPXzcmn8aD",
- "WrzjrSGhY1rP42H3YfD45eVxODGNw5/7tzew1U7bmjBbv2yzhRY42TRWBCeJifPmAs0olQdnMJz8tT9+",
- "Gfe7vmm3nrh7sWCjZFxFKPJCcLUbW8OO4zrl82t7on4gu/LATZlgr1SsIQz8nn/e9Wvvwdemn4tBKUxq",
- "GLy1BIfbMETW9g0H5YG6bsllFHPYI2vkBQxua9HmhzfunXNVv81WlLLZ081x10UrE5SqHBk3SKkc3dob",
- "CQjTLs34M+09tEFeRmheBynUq0KWoDYOVCagk4+adkelK/wt0Wdlg1quaYLD2S1ZHTVrqjMjSmIz7KXz",
- "oFkW5x/2TwdfV2q3nU7nkwf9ryRJY5QutFs3F1c3rdbmX2etjzetFvyg3cRHiHgmdEAWURbC06T3Y+2r",
- "0Vz8TFnIlw23ZrAuzcqNBhlTQbSPEsqusK1YqXhqPtdcjF5bDCYenL8vBhiNl+TpaTTbt7k+tbRZ3a1q",
- "P7DPetgwy1hFZn7FeEzZu1bqZm5iEgmUEY/DxnoQmSOoYvU/9i8hqpIbNzdXzdR7PvFeJS4Ny9cOvJt0",
- "o5KlbA+4ff81jJNvvAhLePJVWLLTL0PT1V3HZo+TJvkWhqwywTdd1QxhXl82DkGu8f1eGE4aNq7D2DwG",
- "+TNOJQ9ejc+0vxFofMbV6KqcuhbD6iHGtJj1K/tKCXyBAvIzUdU4yzwJWi+pNYI+qk2Iq2MmmyblA73G",
- "j+vv1ptsAJkWmDmh0madch4jMTPzy62Tj/LWW49R/6n4FcItD2pyqvLPbNpt+Onig9fxWjD5uGlGQsop",
- "s7+1eORCRVOesRC6o4F0XCcTsXPjREqlN+fny+XS68zT1ONifj5T6bmfYiDPiQgiusDz9qcXiYKiPLen",
- "nduktW6I57YwQ7JcnDMZxAIFic3x3jP77/+Cdqt94doK5lDMCaN/J3kxY0SEYjra/qE7Hnx2oTsZ+C70",
- "en7Xhf7EH7gw8W/N/yZd/Z/ej94z68YxCDqPlL4gk6+ENgzPczpnIyybHoLBOtFYHddZoJCWhQuv7bXO",
- "SJxGxLvUnPIUGUmpFrrX8lr6xREV6Tt5e/ufAAAA//+j6dNYHkEAAA==",
+ "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",
}
// GetSwagger returns the content of the embedded swagger specification file
@@ -441,13 +444,13 @@
pathPrefix := path.Dir(pathToFile)
- for rawPath, rawFunc := range externalRef0.PathToRawSpec(path.Join(pathPrefix, "TS29571_CommonData.yaml")) {
+ for rawPath, rawFunc := range externalRef0.PathToRawSpec(path.Join(pathPrefix, "CommonData.yaml")) {
if _, ok := res[rawPath]; ok {
// it is not possible to compare functions in golang, so always overwrite the old value
}
res[rawPath] = rawFunc
}
- for rawPath, rawFunc := range externalRef1.PathToRawSpec(path.Join(pathPrefix, "TS29572_Nlmf_Location.yaml")) {
+ for rawPath, rawFunc := range externalRef1.PathToRawSpec(path.Join(pathPrefix, "TS29571_CommonData.yaml")) {
if _, ok := res[rawPath]; ok {
// it is not possible to compare functions in golang, so always overwrite the old value
}
diff --git a/capif/internal/readonly/common/generator_settings.yaml b/capif/internal/readonly/common29122/generator_settings.yaml
similarity index 86%
rename from capif/internal/readonly/common/generator_settings.yaml
rename to capif/internal/readonly/common29122/generator_settings.yaml
index 368568c..b763bbb 100644
--- a/capif/internal/readonly/common/generator_settings.yaml
+++ b/capif/internal/readonly/common29122/generator_settings.yaml
@@ -19,12 +19,12 @@
#
output:
- internal/readonly/common/common.gen.go
-package: common
+ internal/readonly/common29122/common.gen.go
+package: common29122
generate:
- types
- skip-prune
- spec
import-mapping:
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
- TS29572_Nlmf_Location.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/nlfm
+ CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/aggregatecommon
diff --git a/capif/internal/readonly/common29571/common.gen.go b/capif/internal/readonly/common29571/common.gen.go
index 3268328..1022359 100644
--- a/capif/internal/readonly/common29571/common.gen.go
+++ b/capif/internal/readonly/common29571/common.gen.go
@@ -16,7 +16,6 @@
openapi_types "github.com/deepmap/oapi-codegen/pkg/types"
"github.com/getkin/kin-openapi/openapi3"
- externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
)
// Defines values for AccessType.
@@ -630,11 +629,6 @@
SensorMeasurementUESPEED SensorMeasurement = "UE_SPEED"
)
-// Defines values for SnssaiExtensionWildcardSd.
-const (
- SnssaiExtensionWildcardSdTrue SnssaiExtensionWildcardSd = true
-)
-
// Defines values for SscMode.
const (
SscModeSSCMODE1 SscMode = "SSC_MODE_1"
@@ -1016,16 +1010,16 @@
// Contains a Traffic Descriptor.
type DddTrafficDescriptor struct {
// String identifying a IPv4 address formatted in the 'dotted decimal' notation as defined in RFC 1166.
- Ipv4Addr *externalRef0.Ipv4Addr `json:"ipv4Addr,omitempty"`
+ Ipv4Addr *Ipv4Addr `json:"ipv4Addr,omitempty"`
// String identifying an IPv6 address formatted according to clause 4 of RFC5952. The mixed IPv4 IPv6 notation according to clause 5 of RFC5952 shall not be used
- Ipv6Addr *externalRef0.Ipv6Addr `json:"ipv6Addr,omitempty"`
+ Ipv6Addr *Ipv6Addr `json:"ipv6Addr,omitempty"`
// String identifying a MAC address formatted in the hexadecimal notation according to clause 1.1 and clause 2.1 of RFC 7042
- MacAddr *externalRef0.MacAddr48 `json:"macAddr,omitempty"`
+ MacAddr *MacAddr48 `json:"macAddr,omitempty"`
// Unsigned Integer, i.e. only value 0 and integers above 0 are permissible.
- PortNumber *externalRef0.Uinteger `json:"portNumber,omitempty"`
+ PortNumber *Uinteger `json:"portNumber,omitempty"`
}
// Fully Qualified Domain Name
@@ -2486,12 +2480,9 @@
SdRanges *[]SdRange `json:"sdRanges,omitempty"`
// When present, it shall be set to true, to indicate that all SD values are supported for the Slice/Service Type value indicated in the sst attribute of the Snssai data type
- WildcardSd *SnssaiExtensionWildcardSd `json:"wildcardSd,omitempty"`
+ WildcardSd *bool `json:"wildcardSd,omitempty"`
}
-// When present, it shall be set to true, to indicate that all SD values are supported for the Slice/Service Type value indicated in the sst attribute of the Snssai data type
-type SnssaiExtensionWildcardSd bool
-
// Contains the Spatial Validity Condition.
type SpatialValidityCond struct {
Countries *[]Mcc `json:"countries,omitempty"`
@@ -2962,358 +2953,357 @@
"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",
- "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",
+ "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",
}
// GetSwagger returns the content of the embedded swagger specification file
@@ -3353,14 +3343,6 @@
res[pathToFile] = rawSpec
}
- pathPrefix := path.Dir(pathToFile)
-
- for rawPath, rawFunc := range externalRef0.PathToRawSpec(path.Join(pathPrefix, "TS29571_CommonData.yaml")) {
- if _, ok := res[rawPath]; ok {
- // it is not possible to compare functions in golang, so always overwrite the old value
- }
- res[rawPath] = rawFunc
- }
return res
}
diff --git a/capif/internal/readonly/discoverserviceapi/discoverservice-server.gen.go b/capif/internal/readonly/discoverserviceapi/discoverservice-server.gen.go
index 33cea37..09a9700 100644
--- a/capif/internal/readonly/discoverserviceapi/discoverservice-server.gen.go
+++ b/capif/internal/readonly/discoverserviceapi/discoverservice-server.gen.go
@@ -16,7 +16,7 @@
"github.com/deepmap/oapi-codegen/pkg/runtime"
"github.com/getkin/kin-openapi/openapi3"
"github.com/labstack/echo/v4"
- externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common"
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
externalRef2 "oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi"
)
diff --git a/capif/internal/readonly/discoverserviceapi/generator_settings_server.yaml b/capif/internal/readonly/discoverserviceapi/generator_settings_server.yaml
index 8c2a59b..18d490d 100644
--- a/capif/internal/readonly/discoverserviceapi/generator_settings_server.yaml
+++ b/capif/internal/readonly/discoverserviceapi/generator_settings_server.yaml
@@ -25,6 +25,6 @@
- server
- spec
import-mapping:
- TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
TS29222_CAPIF_Publish_Service_API.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi
\ No newline at end of file
diff --git a/capif/internal/readonly/discoverserviceapi/generator_settings_types.yaml b/capif/internal/readonly/discoverserviceapi/generator_settings_types.yaml
index ab9c0d2..1a5ad40 100644
--- a/capif/internal/readonly/discoverserviceapi/generator_settings_types.yaml
+++ b/capif/internal/readonly/discoverserviceapi/generator_settings_types.yaml
@@ -24,6 +24,6 @@
generate:
- types
import-mapping:
- TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
TS29222_CAPIF_Publish_Service_API.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi
\ No newline at end of file
diff --git a/capif/internal/readonly/eventsapi/events-server.gen.go b/capif/internal/readonly/eventsapi/events-server.gen.go
new file mode 100644
index 0000000..d0f89e5
--- /dev/null
+++ b/capif/internal/readonly/eventsapi/events-server.gen.go
@@ -0,0 +1,220 @@
+// Package eventsapi provides primitives to interact with the openapi HTTP API.
+//
+// Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
+package eventsapi
+
+import (
+ "bytes"
+ "compress/gzip"
+ "encoding/base64"
+ "fmt"
+ "net/http"
+ "net/url"
+ "path"
+ "strings"
+
+ "github.com/deepmap/oapi-codegen/pkg/runtime"
+ "github.com/getkin/kin-openapi/openapi3"
+ "github.com/labstack/echo/v4"
+)
+
+// ServerInterface represents all server handlers.
+type ServerInterface interface {
+
+ // (POST /{subscriberId}/subscriptions)
+ PostSubscriberIdSubscriptions(ctx echo.Context, subscriberId string) error
+
+ // (DELETE /{subscriberId}/subscriptions/{subscriptionId})
+ DeleteSubscriberIdSubscriptionsSubscriptionId(ctx echo.Context, subscriberId string, subscriptionId string) error
+}
+
+// ServerInterfaceWrapper converts echo contexts to parameters.
+type ServerInterfaceWrapper struct {
+ Handler ServerInterface
+}
+
+// PostSubscriberIdSubscriptions converts echo context to params.
+func (w *ServerInterfaceWrapper) PostSubscriberIdSubscriptions(ctx echo.Context) error {
+ var err error
+ // ------------- Path parameter "subscriberId" -------------
+ var subscriberId string
+
+ err = runtime.BindStyledParameterWithLocation("simple", false, "subscriberId", runtime.ParamLocationPath, ctx.Param("subscriberId"), &subscriberId)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter subscriberId: %s", err))
+ }
+
+ // Invoke the callback with all the unmarshalled arguments
+ err = w.Handler.PostSubscriberIdSubscriptions(ctx, subscriberId)
+ return err
+}
+
+// DeleteSubscriberIdSubscriptionsSubscriptionId converts echo context to params.
+func (w *ServerInterfaceWrapper) DeleteSubscriberIdSubscriptionsSubscriptionId(ctx echo.Context) error {
+ var err error
+ // ------------- Path parameter "subscriberId" -------------
+ var subscriberId string
+
+ err = runtime.BindStyledParameterWithLocation("simple", false, "subscriberId", runtime.ParamLocationPath, ctx.Param("subscriberId"), &subscriberId)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter subscriberId: %s", err))
+ }
+
+ // ------------- Path parameter "subscriptionId" -------------
+ var subscriptionId string
+
+ err = runtime.BindStyledParameterWithLocation("simple", false, "subscriptionId", runtime.ParamLocationPath, ctx.Param("subscriptionId"), &subscriptionId)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter subscriptionId: %s", err))
+ }
+
+ // Invoke the callback with all the unmarshalled arguments
+ err = w.Handler.DeleteSubscriberIdSubscriptionsSubscriptionId(ctx, subscriberId, subscriptionId)
+ return err
+}
+
+// This is a simple interface which specifies echo.Route addition functions which
+// are present on both echo.Echo and echo.Group, since we want to allow using
+// either of them for path registration
+type EchoRouter interface {
+ CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+}
+
+// RegisterHandlers adds each server route to the EchoRouter.
+func RegisterHandlers(router EchoRouter, si ServerInterface) {
+ RegisterHandlersWithBaseURL(router, si, "")
+}
+
+// Registers handlers, and prepends BaseURL to the paths, so that the paths
+// can be served under a prefix.
+func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL string) {
+
+ wrapper := ServerInterfaceWrapper{
+ Handler: si,
+ }
+
+ router.POST(baseURL+"/:subscriberId/subscriptions", wrapper.PostSubscriberIdSubscriptions)
+ router.DELETE(baseURL+"/:subscriberId/subscriptions/:subscriptionId", wrapper.DeleteSubscriberIdSubscriptionsSubscriptionId)
+
+}
+
+// Base64 encoded, gzipped, json marshaled Swagger object
+var swaggerSpec = []string{
+
+ "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",
+ "+GH97wAAAP//6q1GObMmAAA=",
+}
+
+// GetSwagger returns the content of the embedded swagger specification file
+// or error if failed to decode
+func decodeSpec() ([]byte, error) {
+ zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, ""))
+ if err != nil {
+ return nil, fmt.Errorf("error base64 decoding spec: %s", err)
+ }
+ zr, err := gzip.NewReader(bytes.NewReader(zipped))
+ if err != nil {
+ return nil, fmt.Errorf("error decompressing spec: %s", err)
+ }
+ var buf bytes.Buffer
+ _, err = buf.ReadFrom(zr)
+ if err != nil {
+ return nil, fmt.Errorf("error decompressing spec: %s", err)
+ }
+
+ return buf.Bytes(), nil
+}
+
+var rawSpec = decodeSpecCached()
+
+// a naive cached of a decoded swagger spec
+func decodeSpecCached() func() ([]byte, error) {
+ data, err := decodeSpec()
+ return func() ([]byte, error) {
+ return data, err
+ }
+}
+
+// Constructs a synthetic filesystem for resolving external references when loading openapi specifications.
+func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) {
+ var res = make(map[string]func() ([]byte, error))
+ if len(pathToFile) > 0 {
+ res[pathToFile] = rawSpec
+ }
+
+ return res
+}
+
+// GetSwagger returns the Swagger specification corresponding to the generated code
+// in this file. The external references of Swagger specification are resolved.
+// The logic of resolving external references is tightly connected to "import-mapping" feature.
+// Externally referenced files must be embedded in the corresponding golang packages.
+// Urls can be supported but this task was out of the scope.
+func GetSwagger() (swagger *openapi3.T, err error) {
+ var resolvePath = PathToRawSpec("")
+
+ loader := openapi3.NewLoader()
+ loader.IsExternalRefsAllowed = true
+ loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) {
+ var pathToFile = url.String()
+ pathToFile = path.Clean(pathToFile)
+ getSpec, ok := resolvePath[pathToFile]
+ if !ok {
+ err1 := fmt.Errorf("path not found: %s", pathToFile)
+ return nil, err1
+ }
+ return getSpec()
+ }
+ var specData []byte
+ specData, err = rawSpec()
+ if err != nil {
+ return
+ }
+ swagger, err = loader.LoadFromData(specData)
+ if err != nil {
+ return
+ }
+ return
+}
diff --git a/capif/internal/readonly/eventsapi/events-types.gen.go b/capif/internal/readonly/eventsapi/events-types.gen.go
new file mode 100644
index 0000000..f815645
--- /dev/null
+++ b/capif/internal/readonly/eventsapi/events-types.gen.go
@@ -0,0 +1,135 @@
+// Package eventsapi provides primitives to interact with the openapi HTTP API.
+//
+// Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
+package eventsapi
+
+import (
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/accesscontrolpolicyapi"
+ externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/aggregatecommon"
+ externalRef2 "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
+ externalRef3 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
+ externalRef4 "oransc.org/nonrtric/plt/capif/internal/readonly/loggingapi"
+ externalRef5 "oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi"
+ externalRef6 "oransc.org/nonrtric/plt/capif/internal/readonly/routinginfoapi"
+)
+
+// Defines values for CAPIFEvent.
+const (
+ CAPIFEventACCESSCONTROLPOLICYUNAVAILABLE CAPIFEvent = "ACCESS_CONTROL_POLICY_UNAVAILABLE"
+
+ CAPIFEventACCESSCONTROLPOLICYUPDATE CAPIFEvent = "ACCESS_CONTROL_POLICY_UPDATE"
+
+ CAPIFEventAPIINVOKERAUTHORIZATIONREVOKED CAPIFEvent = "API_INVOKER_AUTHORIZATION_REVOKED"
+
+ CAPIFEventAPIINVOKEROFFBOARDED CAPIFEvent = "API_INVOKER_OFFBOARDED"
+
+ CAPIFEventAPIINVOKERONBOARDED CAPIFEvent = "API_INVOKER_ONBOARDED"
+
+ CAPIFEventAPIINVOKERUPDATED CAPIFEvent = "API_INVOKER_UPDATED"
+
+ CAPIFEventAPITOPOLOGYHIDINGCREATED CAPIFEvent = "API_TOPOLOGY_HIDING_CREATED"
+
+ CAPIFEventAPITOPOLOGYHIDINGREVOKED CAPIFEvent = "API_TOPOLOGY_HIDING_REVOKED"
+
+ CAPIFEventSERVICEAPIAVAILABLE CAPIFEvent = "SERVICE_API_AVAILABLE"
+
+ CAPIFEventSERVICEAPIINVOCATIONFAILURE CAPIFEvent = "SERVICE_API_INVOCATION_FAILURE"
+
+ CAPIFEventSERVICEAPIINVOCATIONSUCCESS CAPIFEvent = "SERVICE_API_INVOCATION_SUCCESS"
+
+ CAPIFEventSERVICEAPIUNAVAILABLE CAPIFEvent = "SERVICE_API_UNAVAILABLE"
+
+ CAPIFEventSERVICEAPIUPDATE CAPIFEvent = "SERVICE_API_UPDATE"
+)
+
+// AccessControlPolicyListExt defines model for AccessControlPolicyListExt.
+type AccessControlPolicyListExt struct {
+ // Embedded struct due to allOf(TS29222_CAPIF_Access_Control_Policy_API.yaml#/components/schemas/AccessControlPolicyList)
+ externalRef0.AccessControlPolicyList `yaml:",inline"`
+ // Embedded fields due to inline allOf schema
+ ApiId *string `json:"apiId,omitempty"`
+}
+
+// Possible values are - SERVICE_API_AVAILABLE: Events related to the availability of service APIs after the service APIs are published. - SERVICE_API_UNAVAILABLE: Events related to the unavailability of service APIs after the service APIs are unpublished. - SERVICE_API_UPDATE: Events related to change in service API information. - API_INVOKER_ONBOARDED: Events related to API invoker onboarded to CAPIF. - API_INVOKER_OFFBOARDED: Events related to API invoker offboarded from CAPIF. - SERVICE_API_INVOCATION_SUCCESS: Events related to the successful invocation of service APIs. - SERVICE_API_INVOCATION_FAILURE: Events related to the failed invocation of service APIs. - ACCESS_CONTROL_POLICY_UPDATE: Events related to the update for the access control policy related to the service APIs. - ACCESS_CONTROL_POLICY_UNAVAILABLE: Events related to the unavailability of the access control policy related to the service APIs. - API_INVOKER_AUTHORIZATION_REVOKED: Events related to the revocation of the authorization of API invokers to access the service APIs. - API_INVOKER_UPDATED: Events related to API invoker profile updated to CAPIF. - API_TOPOLOGY_HIDING_CREATED: Events related to the creation or update of the API topology hiding information of the service APIs after the service APIs are published. - API_TOPOLOGY_HIDING_REVOKED: Events related to the revocation of the API topology hiding information of the service APIs after the service APIs are unpublished.
+type CAPIFEvent string
+
+// Represents a CAPIF event details.
+type CAPIFEventDetail struct {
+ // Represents the extension for access control policies.
+ AccCtrlPolList *AccessControlPolicyListExt `json:"accCtrlPolList,omitempty"`
+
+ // Identifier of the service API
+ ApiIds *[]string `json:"apiIds,omitempty"`
+
+ // Identity of the API invoker
+ ApiInvokerIds *[]string `json:"apiInvokerIds,omitempty"`
+
+ // Represents the routing rules information of a service API.
+ ApiTopoHide *TopologyHiding `json:"apiTopoHide,omitempty"`
+
+ // Invocation logs.
+ InvocationLogs *[]externalRef4.InvocationLog `json:"invocationLogs,omitempty"`
+
+ // Description of the service API as published by the APF.
+ ServiceAPIDescriptions *[]externalRef5.ServiceAPIDescription `json:"serviceAPIDescriptions,omitempty"`
+}
+
+// Represents a CAPIF event filter.
+type CAPIFEventFilter struct {
+ // Identifier of the API exposing function
+ AefIds *[]string `json:"aefIds,omitempty"`
+
+ // Identifier of the service API
+ ApiIds *[]string `json:"apiIds,omitempty"`
+
+ // Identity of the API invoker
+ ApiInvokerIds *[]string `json:"apiInvokerIds,omitempty"`
+}
+
+// Represents an individual CAPIF Event notification.
+type EventNotification struct {
+ // Represents a CAPIF event details.
+ EventDetail *CAPIFEventDetail `json:"eventDetail,omitempty"`
+
+ // Possible values are - SERVICE_API_AVAILABLE: Events related to the availability of service APIs after the service APIs are published. - SERVICE_API_UNAVAILABLE: Events related to the unavailability of service APIs after the service APIs are unpublished. - SERVICE_API_UPDATE: Events related to change in service API information. - API_INVOKER_ONBOARDED: Events related to API invoker onboarded to CAPIF. - API_INVOKER_OFFBOARDED: Events related to API invoker offboarded from CAPIF. - SERVICE_API_INVOCATION_SUCCESS: Events related to the successful invocation of service APIs. - SERVICE_API_INVOCATION_FAILURE: Events related to the failed invocation of service APIs. - ACCESS_CONTROL_POLICY_UPDATE: Events related to the update for the access control policy related to the service APIs. - ACCESS_CONTROL_POLICY_UNAVAILABLE: Events related to the unavailability of the access control policy related to the service APIs. - API_INVOKER_AUTHORIZATION_REVOKED: Events related to the revocation of the authorization of API invokers to access the service APIs. - API_INVOKER_UPDATED: Events related to API invoker profile updated to CAPIF. - API_TOPOLOGY_HIDING_CREATED: Events related to the creation or update of the API topology hiding information of the service APIs after the service APIs are published. - API_TOPOLOGY_HIDING_REVOKED: Events related to the revocation of the API topology hiding information of the service APIs after the service APIs are unpublished.
+ Events CAPIFEvent `json:"events"`
+
+ // Identifier of the subscription resource to which the notification is related – CAPIF resource identifier
+ SubscriptionId string `json:"subscriptionId"`
+}
+
+// Represents an individual CAPIF Event Subscription resource.
+type EventSubscription struct {
+ // Subscribed event filters
+ EventFilters *[]CAPIFEventFilter `json:"eventFilters,omitempty"`
+
+ // Represents the type of reporting that the subscription requires.
+ EventReq *externalRef1.ReportingInformation `json:"eventReq,omitempty"`
+
+ // Subscribed events
+ Events []CAPIFEvent `json:"events"`
+
+ // string providing an URI formatted according to IETF RFC 3986.
+ NotificationDestination externalRef2.Uri `json:"notificationDestination"`
+
+ // Set to true by Subscriber to request the CAPIF core function to send a test notification as defined in in subclause 7.6. Set to false or omitted otherwise.
+ RequestTestNotification *bool `json:"requestTestNotification,omitempty"`
+
+ // A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported.
+ SupportedFeatures *externalRef3.SupportedFeatures `json:"supportedFeatures,omitempty"`
+
+ // Represents the configuration information for the delivery of notifications over Websockets.
+ WebsockNotifConfig *externalRef2.WebsockNotifConfig `json:"websockNotifConfig,omitempty"`
+}
+
+// Represents the routing rules information of a service API.
+type TopologyHiding struct {
+ ApiId string `json:"apiId"`
+ RoutingRules []externalRef6.RoutingRule `json:"routingRules"`
+}
+
+// PostSubscriberIdSubscriptionsJSONBody defines parameters for PostSubscriberIdSubscriptions.
+type PostSubscriberIdSubscriptionsJSONBody EventSubscription
+
+// PostSubscriberIdSubscriptionsJSONRequestBody defines body for PostSubscriberIdSubscriptions for application/json ContentType.
+type PostSubscriberIdSubscriptionsJSONRequestBody PostSubscriberIdSubscriptionsJSONBody
diff --git a/capif/internal/readonly/nlfm/generator_settings.yaml b/capif/internal/readonly/eventsapi/generator_settings_server.yaml
similarity index 81%
copy from capif/internal/readonly/nlfm/generator_settings.yaml
copy to capif/internal/readonly/eventsapi/generator_settings_server.yaml
index ae3c2c3..78c3524 100644
--- a/capif/internal/readonly/nlfm/generator_settings.yaml
+++ b/capif/internal/readonly/eventsapi/generator_settings_server.yaml
@@ -19,11 +19,8 @@
#
output:
- internal/readonly/nlfm/nlfm.gen.go
-package: nlfm
+ internal/readonly/eventsapi/events-server.gen.go
+package: eventsapi
generate:
- - types
- - skip-prune
- - spec
-import-mapping:
- TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
+ - server
+ - spec
\ No newline at end of file
diff --git a/capif/internal/readonly/eventsapi/generator_settings_types.yaml b/capif/internal/readonly/eventsapi/generator_settings_types.yaml
new file mode 100644
index 0000000..136710b
--- /dev/null
+++ b/capif/internal/readonly/eventsapi/generator_settings_types.yaml
@@ -0,0 +1,33 @@
+# -
+# ========================LICENSE_START=================================
+# O-RAN-SC
+# %%
+# Copyright (C) 2022: Nordix Foundation
+# %%
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ========================LICENSE_END===================================
+#
+
+output:
+ internal/readonly/eventsapi/events-types.gen.go
+package: eventsapi
+generate:
+ - types
+import-mapping:
+ TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
+ CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/aggregatecommon
+ TS29222_CAPIF_Access_Control_Policy_API.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/accesscontrolpolicyapi
+ TS29222_CAPIF_Logging_API_Invocation_API.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/loggingapi
+ TS29222_CAPIF_Publish_Service_API.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi
+ TS29222_CAPIF_Routing_Info_API.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/routinginfoapi
\ No newline at end of file
diff --git a/capif/internal/readonly/invokermanagementapi/generator_settings_server.yaml b/capif/internal/readonly/invokermanagementapi/generator_settings_server.yaml
index 239f07f..b88d695 100644
--- a/capif/internal/readonly/invokermanagementapi/generator_settings_server.yaml
+++ b/capif/internal/readonly/invokermanagementapi/generator_settings_server.yaml
@@ -25,6 +25,6 @@
- server
- spec
import-mapping:
- TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
TS29222_CAPIF_Publish_Service_API.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi
\ No newline at end of file
diff --git a/capif/internal/readonly/invokermanagementapi/generator_settings_types.yaml b/capif/internal/readonly/invokermanagementapi/generator_settings_types.yaml
index 6e47ce1..486c5b1 100644
--- a/capif/internal/readonly/invokermanagementapi/generator_settings_types.yaml
+++ b/capif/internal/readonly/invokermanagementapi/generator_settings_types.yaml
@@ -24,6 +24,6 @@
generate:
- types
import-mapping:
- TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
TS29222_CAPIF_Publish_Service_API.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi
\ No newline at end of file
diff --git a/capif/internal/readonly/invokermanagementapi/invokermanagement-server.gen.go b/capif/internal/readonly/invokermanagementapi/invokermanagement-server.gen.go
index a28726f..c5853f7 100644
--- a/capif/internal/readonly/invokermanagementapi/invokermanagement-server.gen.go
+++ b/capif/internal/readonly/invokermanagementapi/invokermanagement-server.gen.go
@@ -16,7 +16,7 @@
"github.com/deepmap/oapi-codegen/pkg/runtime"
"github.com/getkin/kin-openapi/openapi3"
"github.com/labstack/echo/v4"
- externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common"
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
externalRef2 "oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi"
)
diff --git a/capif/internal/readonly/invokermanagementapi/invokermanagement-types.gen.go b/capif/internal/readonly/invokermanagementapi/invokermanagement-types.gen.go
index 1ecdb1b..0b6725e 100644
--- a/capif/internal/readonly/invokermanagementapi/invokermanagement-types.gen.go
+++ b/capif/internal/readonly/invokermanagementapi/invokermanagement-types.gen.go
@@ -4,7 +4,7 @@
package invokermanagementapi
import (
- externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common"
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
externalRef2 "oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi"
)
diff --git a/capif/internal/readonly/nlfm/generator_settings.yaml b/capif/internal/readonly/loggingapi/generator_settings_server.yaml
similarity index 81%
copy from capif/internal/readonly/nlfm/generator_settings.yaml
copy to capif/internal/readonly/loggingapi/generator_settings_server.yaml
index ae3c2c3..179402d 100644
--- a/capif/internal/readonly/nlfm/generator_settings.yaml
+++ b/capif/internal/readonly/loggingapi/generator_settings_server.yaml
@@ -19,11 +19,8 @@
#
output:
- internal/readonly/nlfm/nlfm.gen.go
-package: nlfm
+ internal/readonly/loggingapi/logging-server.gen.go
+package: loggingapi
generate:
- - types
- - skip-prune
- - spec
-import-mapping:
- TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
+ - server
+ - spec
\ No newline at end of file
diff --git a/capif/internal/readonly/common/generator_settings.yaml b/capif/internal/readonly/loggingapi/generator_settings_types.yaml
similarity index 76%
copy from capif/internal/readonly/common/generator_settings.yaml
copy to capif/internal/readonly/loggingapi/generator_settings_types.yaml
index 368568c..c0e43f5 100644
--- a/capif/internal/readonly/common/generator_settings.yaml
+++ b/capif/internal/readonly/loggingapi/generator_settings_types.yaml
@@ -19,12 +19,11 @@
#
output:
- internal/readonly/common/common.gen.go
-package: common
+ internal/readonly/loggingapi/logging-types.gen.go
+package: loggingapi
generate:
- types
- - skip-prune
- - spec
import-mapping:
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
- TS29572_Nlmf_Location.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/nlfm
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
+ TS29222_CAPIF_Publish_Service_API.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi
\ No newline at end of file
diff --git a/capif/internal/readonly/loggingapi/logging-server.gen.go b/capif/internal/readonly/loggingapi/logging-server.gen.go
new file mode 100644
index 0000000..13948bb
--- /dev/null
+++ b/capif/internal/readonly/loggingapi/logging-server.gen.go
@@ -0,0 +1,183 @@
+// Package loggingapi provides primitives to interact with the openapi HTTP API.
+//
+// Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
+package loggingapi
+
+import (
+ "bytes"
+ "compress/gzip"
+ "encoding/base64"
+ "fmt"
+ "net/http"
+ "net/url"
+ "path"
+ "strings"
+
+ "github.com/deepmap/oapi-codegen/pkg/runtime"
+ "github.com/getkin/kin-openapi/openapi3"
+ "github.com/labstack/echo/v4"
+)
+
+// ServerInterface represents all server handlers.
+type ServerInterface interface {
+
+ // (POST /{aefId}/logs)
+ PostAefIdLogs(ctx echo.Context, aefId string) error
+}
+
+// ServerInterfaceWrapper converts echo contexts to parameters.
+type ServerInterfaceWrapper struct {
+ Handler ServerInterface
+}
+
+// PostAefIdLogs converts echo context to params.
+func (w *ServerInterfaceWrapper) PostAefIdLogs(ctx echo.Context) error {
+ var err error
+ // ------------- Path parameter "aefId" -------------
+ var aefId string
+
+ err = runtime.BindStyledParameterWithLocation("simple", false, "aefId", runtime.ParamLocationPath, ctx.Param("aefId"), &aefId)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter aefId: %s", err))
+ }
+
+ // Invoke the callback with all the unmarshalled arguments
+ err = w.Handler.PostAefIdLogs(ctx, aefId)
+ return err
+}
+
+// This is a simple interface which specifies echo.Route addition functions which
+// are present on both echo.Echo and echo.Group, since we want to allow using
+// either of them for path registration
+type EchoRouter interface {
+ CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+}
+
+// RegisterHandlers adds each server route to the EchoRouter.
+func RegisterHandlers(router EchoRouter, si ServerInterface) {
+ RegisterHandlersWithBaseURL(router, si, "")
+}
+
+// Registers handlers, and prepends BaseURL to the paths, so that the paths
+// can be served under a prefix.
+func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL string) {
+
+ wrapper := ServerInterfaceWrapper{
+ Handler: si,
+ }
+
+ router.POST(baseURL+"/:aefId/logs", wrapper.PostAefIdLogs)
+
+}
+
+// Base64 encoded, gzipped, json marshaled Swagger object
+var swaggerSpec = []string{
+
+ "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",
+ "BJDPm/8EAAD//6taPk1VFAAA",
+}
+
+// GetSwagger returns the content of the embedded swagger specification file
+// or error if failed to decode
+func decodeSpec() ([]byte, error) {
+ zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, ""))
+ if err != nil {
+ return nil, fmt.Errorf("error base64 decoding spec: %s", err)
+ }
+ zr, err := gzip.NewReader(bytes.NewReader(zipped))
+ if err != nil {
+ return nil, fmt.Errorf("error decompressing spec: %s", err)
+ }
+ var buf bytes.Buffer
+ _, err = buf.ReadFrom(zr)
+ if err != nil {
+ return nil, fmt.Errorf("error decompressing spec: %s", err)
+ }
+
+ return buf.Bytes(), nil
+}
+
+var rawSpec = decodeSpecCached()
+
+// a naive cached of a decoded swagger spec
+func decodeSpecCached() func() ([]byte, error) {
+ data, err := decodeSpec()
+ return func() ([]byte, error) {
+ return data, err
+ }
+}
+
+// Constructs a synthetic filesystem for resolving external references when loading openapi specifications.
+func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) {
+ var res = make(map[string]func() ([]byte, error))
+ if len(pathToFile) > 0 {
+ res[pathToFile] = rawSpec
+ }
+
+ return res
+}
+
+// GetSwagger returns the Swagger specification corresponding to the generated code
+// in this file. The external references of Swagger specification are resolved.
+// The logic of resolving external references is tightly connected to "import-mapping" feature.
+// Externally referenced files must be embedded in the corresponding golang packages.
+// Urls can be supported but this task was out of the scope.
+func GetSwagger() (swagger *openapi3.T, err error) {
+ var resolvePath = PathToRawSpec("")
+
+ loader := openapi3.NewLoader()
+ loader.IsExternalRefsAllowed = true
+ loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) {
+ var pathToFile = url.String()
+ pathToFile = path.Clean(pathToFile)
+ getSpec, ok := resolvePath[pathToFile]
+ if !ok {
+ err1 := fmt.Errorf("path not found: %s", pathToFile)
+ return nil, err1
+ }
+ return getSpec()
+ }
+ var specData []byte
+ specData, err = rawSpec()
+ if err != nil {
+ return
+ }
+ swagger, err = loader.LoadFromData(specData)
+ if err != nil {
+ return
+ }
+ return
+}
diff --git a/capif/internal/readonly/loggingapi/logging-types.gen.go b/capif/internal/readonly/loggingapi/logging-types.gen.go
new file mode 100644
index 0000000..372b435
--- /dev/null
+++ b/capif/internal/readonly/loggingapi/logging-types.gen.go
@@ -0,0 +1,82 @@
+// Package loggingapi provides primitives to interact with the openapi HTTP API.
+//
+// Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
+package loggingapi
+
+import (
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
+ externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
+ externalRef2 "oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi"
+)
+
+// Unsigned integer identifying a period of time in units of milliseconds.
+type DurationMs int
+
+// Represents a set of Service API invocation logs to be stored in a CAPIF core function.
+type InvocationLog struct {
+ // Identity information of the API exposing function requesting logging of service API invocations
+ AefId string `json:"aefId"`
+
+ // Identity of the API invoker which invoked the service API
+ ApiInvokerId string `json:"apiInvokerId"`
+
+ // Service API invocation log
+ Logs []Log `json:"logs"`
+
+ // A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported.
+ SupportedFeatures *externalRef1.SupportedFeatures `json:"supportedFeatures,omitempty"`
+}
+
+// Represents an individual service API invocation log entry.
+type Log struct {
+ // String identifying the API invoked.
+ ApiId string `json:"apiId"`
+
+ // Name of the API which was invoked, it is set as {apiName} part of the URI structure as defined in subclause 4.4 of 3GPP TS 29.501.
+ ApiName string `json:"apiName"`
+
+ // Version of the API which was invoked
+ ApiVersion string `json:"apiVersion"`
+
+ // Represents the description of an API's interface.
+ DestInterface *externalRef2.InterfaceDescription `json:"destInterface,omitempty"`
+
+ // It includes the node identifier (as defined in IETF RFC 7239 of all forwarding entities between the API invoker and the AEF, concatenated with comma and space, e.g. 192.0.2.43:80, unknown:_OBFport, 203.0.113.60
+ FwdInterface *string `json:"fwdInterface,omitempty"`
+
+ // List of input parameters. Can be any value - string, number, boolean, array or object.
+ InputParameters *interface{} `json:"inputParameters,omitempty"`
+
+ // Unsigned integer identifying a period of time in units of milliseconds.
+ InvocationLatency *DurationMs `json:"invocationLatency,omitempty"`
+
+ // string with format "date-time" as defined in OpenAPI.
+ InvocationTime *externalRef0.DateTime `json:"invocationTime,omitempty"`
+
+ // Possible values are - GET: HTTP GET method - POST: HTTP POST method - PUT: HTTP PUT method - PATCH: HTTP PATCH method - DELETE: HTTP DELETE method
+ Operation *externalRef2.Operation `json:"operation,omitempty"`
+
+ // List of output parameters. Can be any value - string, number, boolean, array or object.
+ OutputParameters *interface{} `json:"outputParameters,omitempty"`
+
+ // Possible values are - HTTP_1_1: HTTP version 1.1 - HTTP_2: HTTP version 2
+ Protocol externalRef2.Protocol `json:"protocol"`
+
+ // Name of the specific resource invoked
+ ResourceName string `json:"resourceName"`
+
+ // For HTTP protocol, it contains HTTP status code of the invocation
+ Result string `json:"result"`
+
+ // Represents the description of an API's interface.
+ SrcInterface *externalRef2.InterfaceDescription `json:"srcInterface,omitempty"`
+
+ // string providing an URI formatted according to IETF RFC 3986.
+ Uri *externalRef0.Uri `json:"uri,omitempty"`
+}
+
+// PostAefIdLogsJSONBody defines parameters for PostAefIdLogs.
+type PostAefIdLogsJSONBody InvocationLog
+
+// PostAefIdLogsJSONRequestBody defines body for PostAefIdLogs for application/json ContentType.
+type PostAefIdLogsJSONRequestBody PostAefIdLogsJSONBody
diff --git a/capif/internal/readonly/nlfm/nlfm.gen.go b/capif/internal/readonly/nlfm/nlfm.gen.go
deleted file mode 100644
index 39042b9..0000000
--- a/capif/internal/readonly/nlfm/nlfm.gen.go
+++ /dev/null
@@ -1,1315 +0,0 @@
-// Package nlfm provides primitives to interact with the openapi HTTP API.
-//
-// Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
-package nlfm
-
-import (
- "bytes"
- "compress/gzip"
- "encoding/base64"
- "fmt"
- "net/url"
- "path"
- "strings"
-
- "github.com/getkin/kin-openapi/openapi3"
- externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
-)
-
-const (
- OAuth2ClientCredentialsScopes = "oAuth2ClientCredentials.Scopes"
-)
-
-// Defines values for AccuracyFulfilmentIndicator.
-const (
- AccuracyFulfilmentIndicatorREQUESTEDACCURACYFULFILLED AccuracyFulfilmentIndicator = "REQUESTED_ACCURACY_FULFILLED"
-
- AccuracyFulfilmentIndicatorREQUESTEDACCURACYNOTFULFILLED AccuracyFulfilmentIndicator = "REQUESTED_ACCURACY_NOT_FULFILLED"
-)
-
-// Defines values for EventClass.
-const (
- EventClassSUPPLEMENTARYSERVICES EventClass = "SUPPLEMENTARY_SERVICES"
-)
-
-// Defines values for ExternalClientType.
-const (
- ExternalClientTypeEMERGENCYSERVICES ExternalClientType = "EMERGENCY_SERVICES"
-
- ExternalClientTypeLAWFULINTERCEPTSERVICES ExternalClientType = "LAWFUL_INTERCEPT_SERVICES"
-
- ExternalClientTypePLMNOPERATORANONYMOUSSTATISTICS ExternalClientType = "PLMN_OPERATOR_ANONYMOUS_STATISTICS"
-
- ExternalClientTypePLMNOPERATORBROADCASTSERVICES ExternalClientType = "PLMN_OPERATOR_BROADCAST_SERVICES"
-
- ExternalClientTypePLMNOPERATOROM ExternalClientType = "PLMN_OPERATOR_OM"
-
- ExternalClientTypePLMNOPERATORSERVICES ExternalClientType = "PLMN_OPERATOR_SERVICES"
-
- ExternalClientTypePLMNOPERATORTARGETMSSERVICESUPPORT ExternalClientType = "PLMN_OPERATOR_TARGET_MS_SERVICE_SUPPORT"
-
- ExternalClientTypeVALUEADDEDSERVICES ExternalClientType = "VALUE_ADDED_SERVICES"
-)
-
-// Defines values for GnssId.
-const (
- GnssIdBDS GnssId = "BDS"
-
- GnssIdGALILEO GnssId = "GALILEO"
-
- GnssIdGLONASS GnssId = "GLONASS"
-
- GnssIdGPS GnssId = "GPS"
-
- GnssIdMODERNIZEDGPS GnssId = "MODERNIZED_GPS"
-
- GnssIdNAVIC GnssId = "NAVIC"
-
- GnssIdQZSS GnssId = "QZSS"
-
- GnssIdSBAS GnssId = "SBAS"
-)
-
-// Defines values for LcsPriority.
-const (
- LcsPriorityHIGHESTPRIORITY LcsPriority = "HIGHEST_PRIORITY"
-
- LcsPriorityNORMALPRIORITY LcsPriority = "NORMAL_PRIORITY"
-)
-
-// Defines values for LcsQosClass.
-const (
- LcsQosClassASSURED LcsQosClass = "ASSURED"
-
- LcsQosClassBESTEFFORT LcsQosClass = "BEST_EFFORT"
-
- LcsQosClassMULTIPLEQOS LcsQosClass = "MULTIPLE_QOS"
-)
-
-// Defines values for LdrType.
-const (
- LdrTypeBEINGINSIDEAREA LdrType = "BEING_INSIDE_AREA"
-
- LdrTypeENTERINGINTOAREA LdrType = "ENTERING_INTO_AREA"
-
- LdrTypeLEAVINGFROMAREA LdrType = "LEAVING_FROM_AREA"
-
- LdrTypeMOTION LdrType = "MOTION"
-
- LdrTypePERIODIC LdrType = "PERIODIC"
-
- LdrTypeUEAVAILABLE LdrType = "UE_AVAILABLE"
-)
-
-// Defines values for OccurrenceInfo.
-const (
- OccurrenceInfoMULTIPLETIMEEVENT OccurrenceInfo = "MULTIPLE_TIME_EVENT"
-
- OccurrenceInfoONETIMEEVENT OccurrenceInfo = "ONE_TIME_EVENT"
-)
-
-// Defines values for PositioningMethod.
-const (
- PositioningMethodBAROMETRICPRESSURE PositioningMethod = "BAROMETRIC_PRESSURE"
-
- PositioningMethodBLUETOOTH PositioningMethod = "BLUETOOTH"
-
- PositioningMethodCELLID PositioningMethod = "CELLID"
-
- PositioningMethodDLAOD PositioningMethod = "DL_AOD"
-
- PositioningMethodDLTDOA PositioningMethod = "DL_TDOA"
-
- PositioningMethodECID PositioningMethod = "ECID"
-
- PositioningMethodMBS PositioningMethod = "MBS"
-
- PositioningMethodMOTIONSENSOR PositioningMethod = "MOTION_SENSOR"
-
- PositioningMethodMULTIRTT PositioningMethod = "MULTI-RTT"
-
- PositioningMethodNETWORKSPECIFIC PositioningMethod = "NETWORK_SPECIFIC"
-
- PositioningMethodNRECID PositioningMethod = "NR_ECID"
-
- PositioningMethodOTDOA PositioningMethod = "OTDOA"
-
- PositioningMethodULAOA PositioningMethod = "UL_AOA"
-
- PositioningMethodULTDOA PositioningMethod = "UL_TDOA"
-
- PositioningMethodWLAN PositioningMethod = "WLAN"
-)
-
-// Defines values for PositioningMode.
-const (
- PositioningModeCONVENTIONAL PositioningMode = "CONVENTIONAL"
-
- PositioningModeUEASSISTED PositioningMode = "UE_ASSISTED"
-
- PositioningModeUEBASED PositioningMode = "UE_BASED"
-)
-
-// Defines values for ReportedEventType.
-const (
- ReportedEventTypeBEINGINSIDEAREAEVENT ReportedEventType = "BEING_INSIDE_AREA_EVENT"
-
- ReportedEventTypeENTERINGAREAEVENT ReportedEventType = "ENTERING_AREA_EVENT"
-
- ReportedEventTypeLEAVINGAREAEVENT ReportedEventType = "LEAVING_AREA_EVENT"
-
- ReportedEventTypeLOCATIONCANCELLATIONEVENT ReportedEventType = "LOCATION_CANCELLATION_EVENT"
-
- ReportedEventTypeMAXIMUMINTERVALEXPIRATIONEVENT ReportedEventType = "MAXIMUM_INTERVAL_EXPIRATION_EVENT"
-
- ReportedEventTypeMOTIONEVENT ReportedEventType = "MOTION_EVENT"
-
- ReportedEventTypePERIODICEVENT ReportedEventType = "PERIODIC_EVENT"
-)
-
-// Defines values for ReportingAccessType.
-const (
- ReportingAccessTypeEUTRACONNECTEDTO5GC ReportingAccessType = "EUTRA_CONNECTED_TO_5GC"
-
- ReportingAccessTypeNON3GPPCONNECTEDTO5GC ReportingAccessType = "NON_3GPP_CONNECTED_TO_5GC"
-
- ReportingAccessTypeNR ReportingAccessType = "NR"
-
- ReportingAccessTypeNRGEO ReportingAccessType = "NR_GEO"
-
- ReportingAccessTypeNRLEO ReportingAccessType = "NR_LEO"
-
- ReportingAccessTypeNRMEO ReportingAccessType = "NR_MEO"
-
- ReportingAccessTypeNROTHERSAT ReportingAccessType = "NR_OTHER_SAT"
-)
-
-// Defines values for ReportingAreaType.
-const (
- ReportingAreaTypeEPSTRACKINGAREAIDENTITY ReportingAreaType = "EPS_TRACKING_AREA_IDENTITY"
-
- ReportingAreaTypeEUTRANCELLGLOBALIDENTIFICATION ReportingAreaType = "E-UTRAN_CELL_GLOBAL_IDENTIFICATION"
-
- ReportingAreaTypeN5GSTRACKINGAREAIDENTITY ReportingAreaType = "5GS_TRACKING_AREA_IDENTITY"
-
- ReportingAreaTypeNRCELLGLOBALIDENTITY ReportingAreaType = "NR_CELL_GLOBAL_IDENTITY"
-)
-
-// Defines values for ResponseTime.
-const (
- ResponseTimeDELAYTOLERANT ResponseTime = "DELAY_TOLERANT"
-
- ResponseTimeLOWDELAY ResponseTime = "LOW_DELAY"
-
- ResponseTimeNODELAY ResponseTime = "NO_DELAY"
-)
-
-// Defines values for SupportedGADShapes.
-const (
- SupportedGADShapesELLIPSOIDARC SupportedGADShapes = "ELLIPSOID_ARC"
-
- SupportedGADShapesLOCAL2DPOINTUNCERTAINTYELLIPSE SupportedGADShapes = "LOCAL_2D_POINT_UNCERTAINTY_ELLIPSE"
-
- SupportedGADShapesLOCAL3DPOINTUNCERTAINTYELLIPSOID SupportedGADShapes = "LOCAL_3D_POINT_UNCERTAINTY_ELLIPSOID"
-
- SupportedGADShapesPOINT SupportedGADShapes = "POINT"
-
- SupportedGADShapesPOINTALTITUDE SupportedGADShapes = "POINT_ALTITUDE"
-
- SupportedGADShapesPOINTALTITUDEUNCERTAINTY SupportedGADShapes = "POINT_ALTITUDE_UNCERTAINTY"
-
- SupportedGADShapesPOINTUNCERTAINTYCIRCLE SupportedGADShapes = "POINT_UNCERTAINTY_CIRCLE"
-
- SupportedGADShapesPOINTUNCERTAINTYELLIPSE SupportedGADShapes = "POINT_UNCERTAINTY_ELLIPSE"
-
- SupportedGADShapesPOLYGON SupportedGADShapes = "POLYGON"
-)
-
-// Defines values for TerminationCause.
-const (
- TerminationCauseNORMALTERMINATION TerminationCause = "NORMAL_TERMINATION"
-
- TerminationCauseTERMINATIONBYNETWORK TerminationCause = "TERMINATION_BY_NETWORK"
-
- TerminationCauseTERMINATIONBYUE TerminationCause = "TERMINATION_BY_UE"
-)
-
-// Defines values for UeLocationServiceInd.
-const (
- UeLocationServiceIndLOCATIONASSISTANCEDATA UeLocationServiceInd = "LOCATION_ASSISTANCE_DATA"
-
- UeLocationServiceIndLOCATIONESTIMATE UeLocationServiceInd = "LOCATION_ESTIMATE"
-)
-
-// Defines values for Usage.
-const (
- UsageSUCCESSMETHODNOTDETERMINED Usage = "SUCCESS_METHOD_NOT_DETERMINED"
-
- UsageSUCCESSRESULTSNOTUSED Usage = "SUCCESS_RESULTS_NOT_USED"
-
- UsageSUCCESSRESULTSUSEDTOGENERATELOCATION Usage = "SUCCESS_RESULTS_USED_TO_GENERATE_LOCATION"
-
- UsageSUCCESSRESULTSUSEDTOVERIFYLOCATION Usage = "SUCCESS_RESULTS_USED_TO_VERIFY_LOCATION"
-
- UsageUNSUCCESS Usage = "UNSUCCESS"
-)
-
-// Defines values for VelocityRequested.
-const (
- VelocityRequestedVELOCITYISNOTREQUESTED VelocityRequested = "VELOCITY_IS_NOT_REQUESTED"
-
- VelocityRequestedVELOCITYISREQUESTED VelocityRequested = "VELOCITY_IS_REQUESTED"
-)
-
-// Defines values for VerticalDirection.
-const (
- VerticalDirectionDOWNWARD VerticalDirection = "DOWNWARD"
-
- VerticalDirectionUPWARD VerticalDirection = "UPWARD"
-)
-
-// Indicates value of accuracy.
-type Accuracy float32
-
-// Indicates fulfilment of requested accuracy.
-type AccuracyFulfilmentIndicator string
-
-// Indicates value of the age of the location estimate.
-type AgeOfLocationEstimate int
-
-// Indicates value of altitude.
-type Altitude float64
-
-// Indicates value of angle.
-type Angle int
-
-// Indicates the information of area based event reporting.
-type AreaEventInfo struct {
- AreaDefinition []ReportingArea `json:"areaDefinition"`
-
- // Maximum interval between event reports.
- MaximumInterval *MaximumInterval `json:"maximumInterval,omitempty"`
-
- // Minimum interval between event reports.
- MinimumInterval *MinimumInterval `json:"minimumInterval,omitempty"`
-
- // Specifies occurrence of event reporting.
- OccurrenceInfo *OccurrenceInfo `json:"occurrenceInfo,omitempty"`
-
- // Maximum duration of event reporting.
- ReportingDuration *ReportingDuration `json:"reportingDuration,omitempty"`
- ReportingLocationReq *bool `json:"reportingLocationReq,omitempty"`
-
- // Maximum time interval between consecutive evaluations by a UE of a trigger event.
- SamplingInterval *SamplingInterval `json:"samplingInterval,omitempty"`
-}
-
-// Specifies the measured uncompensated atmospheric pressure.
-type BarometricPressure int
-
-// Information within Cancel Location Request.
-type CancelLocData struct {
- // String providing an URI formatted according to RFC 3986
- HgmlcCallBackURI externalRef0.Uri `json:"hgmlcCallBackURI"`
-
- // LDR Reference.
- LdrReference LdrReference `json:"ldrReference"`
-
- // A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported.
- SupportedFeatures *externalRef0.SupportedFeatures `json:"supportedFeatures,omitempty"`
-}
-
-// Indicates a Civic address.
-type CivicAddress struct {
- A1 *string `json:"A1,omitempty"`
- A2 *string `json:"A2,omitempty"`
- A3 *string `json:"A3,omitempty"`
- A4 *string `json:"A4,omitempty"`
- A5 *string `json:"A5,omitempty"`
- A6 *string `json:"A6,omitempty"`
- ADDCODE *string `json:"ADDCODE,omitempty"`
- BLD *string `json:"BLD,omitempty"`
- FLR *string `json:"FLR,omitempty"`
- HNO *string `json:"HNO,omitempty"`
- HNS *string `json:"HNS,omitempty"`
- LMK *string `json:"LMK,omitempty"`
- LOC *string `json:"LOC,omitempty"`
- NAM *string `json:"NAM,omitempty"`
- PC *string `json:"PC,omitempty"`
- PCN *string `json:"PCN,omitempty"`
- PLC *string `json:"PLC,omitempty"`
- POBOX *string `json:"POBOX,omitempty"`
- POD *string `json:"POD,omitempty"`
- POM *string `json:"POM,omitempty"`
- PRD *string `json:"PRD,omitempty"`
- PRM *string `json:"PRM,omitempty"`
- RD *string `json:"RD,omitempty"`
- RDBR *string `json:"RDBR,omitempty"`
- RDSEC *string `json:"RDSEC,omitempty"`
- RDSUBBR *string `json:"RDSUBBR,omitempty"`
- ROOM *string `json:"ROOM,omitempty"`
- SEAT *string `json:"SEAT,omitempty"`
- STS *string `json:"STS,omitempty"`
- UNIT *string `json:"UNIT,omitempty"`
- Country *string `json:"country,omitempty"`
- Method *string `json:"method,omitempty"`
- ProvidedBy *string `json:"providedBy,omitempty"`
- UsageRules *string `json:"usageRules,omitempty"`
-}
-
-// Indicates value of confidence.
-type Confidence int
-
-// LCS Correlation ID.
-type CorrelationID string
-
-// EllipsoidArc defines model for EllipsoidArc.
-type EllipsoidArc struct {
- // Embedded struct due to allOf(#/components/schemas/GADShape)
- GADShape `yaml:",inline"`
- // Embedded fields due to inline allOf schema
- // Indicates value of confidence.
- Confidence Confidence `json:"confidence"`
-
- // Indicates value of angle.
- IncludedAngle Angle `json:"includedAngle"`
-
- // Indicates value of the inner radius.
- InnerRadius InnerRadius `json:"innerRadius"`
-
- // Indicates value of angle.
- OffsetAngle Angle `json:"offsetAngle"`
-
- // Geographical coordinates.
- Point GeographicalCoordinates `json:"point"`
-
- // Indicates value of uncertainty.
- UncertaintyRadius Uncertainty `json:"uncertaintyRadius"`
-}
-
-// Specifies event classes.
-type EventClass string
-
-// Information within Event Notify Request.
-type EventNotifyData struct {
- // Contain Minor Location QoS.
- AchievedQos *MinorLocationQoS `json:"achievedQos,omitempty"`
-
- // Indicates value of the age of the location estimate.
- AgeOfLocationEstimate *AgeOfLocationEstimate `json:"ageOfLocationEstimate,omitempty"`
-
- // Indicates value of altitude.
- Altitude *Altitude `json:"altitude,omitempty"`
-
- // Indicates a Civic address.
- CivicAddress *CivicAddress `json:"civicAddress,omitempty"`
- GnssPositioningDataList *[]GnssPositioningMethodAndUsage `json:"gnssPositioningDataList,omitempty"`
-
- // String identifying a Gpsi shall contain either an External Id or an MSISDN. It shall be formatted as follows -External Identifier= "extid-<extid>, where <extid> shall be formatted according to clause 19.7.2 of 3GPP TS 23.003 that describes an External Identifier.
- Gpsi *externalRef0.Gpsi `json:"gpsi,omitempty"`
-
- // String providing an URI formatted according to RFC 3986
- HgmlcCallBackURI *externalRef0.Uri `json:"hgmlcCallBackURI,omitempty"`
-
- // LDR Reference.
- LdrReference LdrReference `json:"ldrReference"`
-
- // Local area specified by different shape
- LocalLocationEstimate *LocalArea `json:"localLocationEstimate,omitempty"`
-
- // Geographic area specified by different shape.
- LocationEstimate *GeographicArea `json:"locationEstimate,omitempty"`
- PositioningDataList *[]PositioningMethodAndUsage `json:"positioningDataList,omitempty"`
-
- // Specifies type of event reporting.
- ReportedEventType ReportedEventType `json:"reportedEventType"`
-
- // LMF identification.
- ServingLMFidentification *LMFIdentification `json:"servingLMFidentification,omitempty"`
-
- // String identifying a Supi that shall contain either an IMSI, a network specific identifier, a Global Cable Identifier (GCI) or a Global Line Identifier (GLI) as specified in clause 2.2A of 3GPP TS 23.003. It shall be formatted as follows
- // - for an IMSI "imsi-<imsi>", where <imsi> shall be formatted according to clause 2.2 of 3GPP TS 23.003 that describes an IMSI.
- // - for a network specific identifier "nai-<nai>, where <nai> shall be formatted according to clause 28.7.2 of 3GPP TS 23.003 that describes an NAI.
- // - for a GCI "gci-<gci>", where <gci> shall be formatted according to clause 28.15.2 of 3GPP TS 23.003.
- // - for a GLI "gli-<gli>", where <gli> shall be formatted according to clause 28.16.2 of 3GPP TS 23.003.To enable that the value is used as part of an URI, the string shall only contain characters allowed according to the "lower-with-hyphen" naming convention defined in 3GPP TS 29.501.
- Supi *externalRef0.Supi `json:"supi,omitempty"`
-
- // A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported.
- SupportedFeatures *externalRef0.SupportedFeatures `json:"supportedFeatures,omitempty"`
-
- // Specifies causes of event reporting termination.
- TerminationCause *TerminationCause `json:"terminationCause,omitempty"`
-
- // string with format 'date-time' as defined in OpenAPI.
- TimestampOfLocationEstimate *externalRef0.DateTime `json:"timestampOfLocationEstimate,omitempty"`
-
- // Velocity estimate.
- VelocityEstimate *VelocityEstimate `json:"velocityEstimate,omitempty"`
-}
-
-// Number of event reports received from the target UE.
-type EventReportCounter int
-
-// Duration of event reporting.
-type EventReportDuration int
-
-// Indicates an event report message.
-type EventReportMessage struct {
- // Specifies event classes.
- EventClass EventClass `json:"eventClass"`
-
- // This parameter provides information about the referenced binary body data.
- EventContent externalRef0.RefToBinaryData `json:"eventContent"`
-}
-
-// Indicates the status of event reporting.
-type EventReportingStatus struct {
- // Number of event reports received from the target UE.
- EventReportCounter *EventReportCounter `json:"eventReportCounter,omitempty"`
-
- // Duration of event reporting.
- EventReportDuration *EventReportDuration `json:"eventReportDuration,omitempty"`
-}
-
-// Indicates types of External Clients.
-type ExternalClientType string
-
-// Common base type for GAD shapes.
-type GADShape struct {
- // Indicates supported GAD shapes.
- Shape SupportedGADShapes `json:"shape"`
-}
-
-// Geographic area specified by different shape.
-type GeographicArea interface{}
-
-// Geographical coordinates.
-type GeographicalCoordinates struct {
- Lat float64 `json:"lat"`
- Lon float64 `json:"lon"`
-}
-
-// Global Navigation Satellite System (GNSS) ID.
-type GnssId string
-
-// Indicates the usage of a Global Navigation Satellite System (GNSS) positioning method.
-type GnssPositioningMethodAndUsage struct {
- // Global Navigation Satellite System (GNSS) ID.
- Gnss GnssId `json:"gnss"`
-
- // Indicates supported modes used for positioning method.
- Mode PositioningMode `json:"mode"`
-
- // Indicates usage made of the location measurement.
- Usage Usage `json:"usage"`
-}
-
-// Indicates value of horizontal speed.
-type HorizontalSpeed float32
-
-// Horizontal velocity.
-type HorizontalVelocity struct {
- // Indicates value of angle.
- Bearing Angle `json:"bearing"`
-
- // Indicates value of horizontal speed.
- HSpeed HorizontalSpeed `json:"hSpeed"`
-}
-
-// Horizontal velocity with speed uncertainty.
-type HorizontalVelocityWithUncertainty struct {
- // Indicates value of angle.
- Bearing Angle `json:"bearing"`
-
- // Indicates value of horizontal speed.
- HSpeed HorizontalSpeed `json:"hSpeed"`
-
- // Indicates value of speed uncertainty.
- HUncertainty SpeedUncertainty `json:"hUncertainty"`
-}
-
-// Horizontal and vertical velocity.
-type HorizontalWithVerticalVelocity struct {
- // Indicates value of angle.
- Bearing Angle `json:"bearing"`
-
- // Indicates value of horizontal speed.
- HSpeed HorizontalSpeed `json:"hSpeed"`
-
- // Indicates direction of vertical speed.
- VDirection VerticalDirection `json:"vDirection"`
-
- // Indicates value of vertical speed.
- VSpeed VerticalSpeed `json:"vSpeed"`
-}
-
-// Horizontal and vertical velocity with speed uncertainty.
-type HorizontalWithVerticalVelocityAndUncertainty struct {
- // Indicates value of angle.
- Bearing Angle `json:"bearing"`
-
- // Indicates value of horizontal speed.
- HSpeed HorizontalSpeed `json:"hSpeed"`
-
- // Indicates value of speed uncertainty.
- HUncertainty SpeedUncertainty `json:"hUncertainty"`
-
- // Indicates direction of vertical speed.
- VDirection VerticalDirection `json:"vDirection"`
-
- // Indicates value of vertical speed.
- VSpeed VerticalSpeed `json:"vSpeed"`
-
- // Indicates value of speed uncertainty.
- VUncertainty SpeedUncertainty `json:"vUncertainty"`
-}
-
-// Indicates value of the inner radius.
-type InnerRadius int32
-
-// Information within Determine Location Request.
-type InputData struct {
- // String uniquely identifying a NF instance. The format of the NF Instance ID shall be a Universally Unique Identifier (UUID) version 4, as described in IETF RFC 4122.
- AmfId *externalRef0.NfInstanceId `json:"amfId,omitempty"`
-
- // Indicates the information of area based event reporting.
- AreaEventInfo *AreaEventInfo `json:"areaEventInfo,omitempty"`
-
- // LCS Correlation ID.
- CorrelationID *CorrelationID `json:"correlationID,omitempty"`
-
- // Contains the ECGI (E-UTRAN Cell Global Identity), as described in 3GPP 23.003
- Ecgi *externalRef0.Ecgi `json:"ecgi,omitempty"`
-
- // Contains the ECGI (E-UTRAN Cell Global Identity), as described in 3GPP 23.003
- EcgiOnSecondNode *externalRef0.Ecgi `json:"ecgiOnSecondNode,omitempty"`
-
- // Indicates types of External Clients.
- ExternalClientType *ExternalClientType `json:"externalClientType,omitempty"`
-
- // String identifying a Gpsi shall contain either an External Id or an MSISDN. It shall be formatted as follows -External Identifier= "extid-<extid>, where <extid> shall be formatted according to clause 19.7.2 of 3GPP TS 23.003 that describes an External Identifier.
- Gpsi *externalRef0.Gpsi `json:"gpsi,omitempty"`
-
- // String providing an URI formatted according to RFC 3986
- HgmlcCallBackURI *externalRef0.Uri `json:"hgmlcCallBackURI,omitempty"`
-
- // LCS service type.
- LcsServiceType *LcsServiceType `json:"lcsServiceType,omitempty"`
-
- // LDR Reference.
- LdrReference *LdrReference `json:"ldrReference,omitempty"`
-
- // Indicates LDR types.
- LdrType *LdrType `json:"ldrType,omitempty"`
-
- // QoS of Location request.
- LocationQoS *LocationQoS `json:"locationQoS,omitempty"`
-
- // This parameter provides information about the referenced binary body data.
- LppMessage *externalRef0.RefToBinaryData `json:"lppMessage,omitempty"`
-
- // Indicates the lpp message extension.
- LppMessageExt *[]externalRef0.RefToBinaryData `json:"lppMessageExt,omitempty"`
-
- // Indicates the information of motion based event reporting.
- MotionEventInfo *MotionEventInfo `json:"motionEventInfo,omitempty"`
-
- // Contains the NCGI (NR Cell Global Identity), as described in 3GPP 23.003
- Ncgi *externalRef0.Ncgi `json:"ncgi,omitempty"`
-
- // Contains the NCGI (NR Cell Global Identity), as described in 3GPP 23.003
- NcgiOnSecondNode *externalRef0.Ncgi `json:"ncgiOnSecondNode,omitempty"`
-
- // String representing a Permanent Equipment Identifier that may contain - an IMEI or IMEISV, as specified in clause 6.2 of 3GPP TS 23.003; a MAC address for a 5G-RG or FN-RG via wireline access, with an indication that this address cannot be trusted for regulatory purpose if this address cannot be used as an Equipment Identifier of the FN-RG, as specified in clause 4.7.7 of 3GPP TS23.316. Examples are imei-012345678901234 or imeisv-0123456789012345.
- Pei *externalRef0.Pei `json:"pei,omitempty"`
-
- // Indicates the information of periodic event reporting.
- PeriodicEventInfo *PeriodicEventInfo `json:"periodicEventInfo,omitempty"`
-
- // Indicates priority of the LCS client.
- Priority *LcsPriority `json:"priority,omitempty"`
- ReportingAccessTypes *[]ReportingAccessType `json:"reportingAccessTypes,omitempty"`
-
- // String identifying a Supi that shall contain either an IMSI, a network specific identifier, a Global Cable Identifier (GCI) or a Global Line Identifier (GLI) as specified in clause 2.2A of 3GPP TS 23.003. It shall be formatted as follows
- // - for an IMSI "imsi-<imsi>", where <imsi> shall be formatted according to clause 2.2 of 3GPP TS 23.003 that describes an IMSI.
- // - for a network specific identifier "nai-<nai>, where <nai> shall be formatted according to clause 28.7.2 of 3GPP TS 23.003 that describes an NAI.
- // - for a GCI "gci-<gci>", where <gci> shall be formatted according to clause 28.15.2 of 3GPP TS 23.003.
- // - for a GLI "gli-<gli>", where <gli> shall be formatted according to clause 28.16.2 of 3GPP TS 23.003.To enable that the value is used as part of an URI, the string shall only contain characters allowed according to the "lower-with-hyphen" naming convention defined in 3GPP TS 29.501.
- Supi *externalRef0.Supi `json:"supi,omitempty"`
-
- // A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported.
- SupportedFeatures *externalRef0.SupportedFeatures `json:"supportedFeatures,omitempty"`
- SupportedGADShapes *[]SupportedGADShapes `json:"supportedGADShapes,omitempty"`
-
- // Contain the TNAP Identifier see clause5.6.2 of 3GPP TS 23.501.
- TnapId *externalRef0.TnapId `json:"tnapId,omitempty"`
-
- // Contain the TWAP Identifier as defined in clause 4.2.8.5.3 of 3GPP TS 23.501.
- TwapId *externalRef0.TwapId `json:"twapId,omitempty"`
-
- // Indicates the connectivity state of a UE.
- UeConnectivityStates *UeConnectivityState `json:"ueConnectivityStates,omitempty"`
- UeCountryDetInd *bool `json:"ueCountryDetInd,omitempty"`
-
- // Indicates the LCS capability supported by the UE..
- UeLcsCap *UeLcsCapability `json:"ueLcsCap,omitempty"`
-
- // Specifies location service types requested by UE.
- UeLocationServiceInd *UeLocationServiceInd `json:"ueLocationServiceInd,omitempty"`
-
- // Positioning capabilities supported by the UE. A string encoding the "ProvideCapabilities-r9-IEs" IE as specified in clause 6.3 of 3GPP TS 37.355 (start from octet 1).
- UePositioningCap *UePositioningCapabilities `json:"uePositioningCap,omitempty"`
-
- // Indicates velocity requirement.
- VelocityRequested *VelocityRequested `json:"velocityRequested,omitempty"`
-
- // String providing an URI formatted according to RFC 3986
- VgmlcAddress *externalRef0.Uri `json:"vgmlcAddress,omitempty"`
-}
-
-// LMF identification.
-type LMFIdentification string
-
-// Indicates priority of the LCS client.
-type LcsPriority string
-
-// Specifies LCS QoS class.
-type LcsQosClass string
-
-// LCS service type.
-type LcsServiceType int
-
-// LDR Reference.
-type LdrReference string
-
-// Indicates LDR types.
-type LdrType string
-
-// Minimum straight line distance moved by a UE to trigger a motion event report.
-type LinearDistance int
-
-// Information within Transfer Location Context Request.
-type LocContextData struct {
- // String uniquely identifying a NF instance. The format of the NF Instance ID shall be a Universally Unique Identifier (UUID) version 4, as described in IETF RFC 4122.
- AmfId externalRef0.NfInstanceId `json:"amfId"`
-
- // Indicates the information of area based event reporting.
- AreaEventInfo *AreaEventInfo `json:"areaEventInfo,omitempty"`
- CIoT5GSOptimisation *bool `json:"cIoT5GSOptimisation,omitempty"`
-
- // Contains the ECGI (E-UTRAN Cell Global Identity), as described in 3GPP 23.003
- Ecgi *externalRef0.Ecgi `json:"ecgi,omitempty"`
-
- // Indicates an event report message.
- EventReportMessage EventReportMessage `json:"eventReportMessage"`
-
- // Indicates the status of event reporting.
- EventReportingStatus *EventReportingStatus `json:"eventReportingStatus,omitempty"`
-
- // String identifying a Gpsi shall contain either an External Id or an MSISDN. It shall be formatted as follows -External Identifier= "extid-<extid>, where <extid> shall be formatted according to clause 19.7.2 of 3GPP TS 23.003 that describes an External Identifier.
- Gpsi *externalRef0.Gpsi `json:"gpsi,omitempty"`
-
- // Globally Unique AMF Identifier constructed out of PLMN, Network and AMF identity.
- Guami *externalRef0.Guami `json:"guami,omitempty"`
-
- // String providing an URI formatted according to RFC 3986
- HgmlcCallBackURI externalRef0.Uri `json:"hgmlcCallBackURI"`
-
- // LDR Reference.
- LdrReference LdrReference `json:"ldrReference"`
-
- // Indicates LDR types.
- LdrType LdrType `json:"ldrType"`
-
- // QoS of Location request.
- LocationQoS *LocationQoS `json:"locationQoS,omitempty"`
-
- // Indicates the information of motion based event reporting.
- MotionEventInfo *MotionEventInfo `json:"motionEventInfo,omitempty"`
-
- // Contains the NCGI (NR Cell Global Identity), as described in 3GPP 23.003
- Ncgi *externalRef0.Ncgi `json:"ncgi,omitempty"`
-
- // Indicates the information of periodic event reporting.
- PeriodicEventInfo *PeriodicEventInfo `json:"periodicEventInfo,omitempty"`
-
- // String identifying a Supi that shall contain either an IMSI, a network specific identifier, a Global Cable Identifier (GCI) or a Global Line Identifier (GLI) as specified in clause 2.2A of 3GPP TS 23.003. It shall be formatted as follows
- // - for an IMSI "imsi-<imsi>", where <imsi> shall be formatted according to clause 2.2 of 3GPP TS 23.003 that describes an IMSI.
- // - for a network specific identifier "nai-<nai>, where <nai> shall be formatted according to clause 28.7.2 of 3GPP TS 23.003 that describes an NAI.
- // - for a GCI "gci-<gci>", where <gci> shall be formatted according to clause 28.15.2 of 3GPP TS 23.003.
- // - for a GLI "gli-<gli>", where <gli> shall be formatted according to clause 28.16.2 of 3GPP TS 23.003.To enable that the value is used as part of an URI, the string shall only contain characters allowed according to the "lower-with-hyphen" naming convention defined in 3GPP TS 29.501.
- Supi *externalRef0.Supi `json:"supi,omitempty"`
-
- // A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported.
- SupportedFeatures *externalRef0.SupportedFeatures `json:"supportedFeatures,omitempty"`
- SupportedGADShapes *[]SupportedGADShapes `json:"supportedGADShapes,omitempty"`
-
- // Indicates location information of a UE.
- UeLocationInfo *UELocationInfo `json:"ueLocationInfo,omitempty"`
-
- // Positioning capabilities supported by the UE. A string encoding the "ProvideCapabilities-r9-IEs" IE as specified in clause 6.3 of 3GPP TS 37.355 (start from octet 1).
- UePositioningCap *UePositioningCapabilities `json:"uePositioningCap,omitempty"`
-}
-
-// Local area specified by different shape
-type LocalArea interface{}
-
-// Indicates a Local origin in a reference system
-type LocalOrigin struct {
- CoordinateId *string `json:"coordinateId,omitempty"`
-
- // Geographical coordinates.
- Point *GeographicalCoordinates `json:"point,omitempty"`
-}
-
-// Information within Determine Location Response.
-type LocationData struct {
- // Indicates fulfilment of requested accuracy.
- AccuracyFulfilmentIndicator *AccuracyFulfilmentIndicator `json:"accuracyFulfilmentIndicator,omitempty"`
-
- // Contain Minor Location QoS.
- AchievedQos *MinorLocationQoS `json:"achievedQos,omitempty"`
-
- // Indicates value of the age of the location estimate.
- AgeOfLocationEstimate *AgeOfLocationEstimate `json:"ageOfLocationEstimate,omitempty"`
-
- // Indicates value of altitude.
- Altitude *Altitude `json:"altitude,omitempty"`
-
- // Specifies the measured uncompensated atmospheric pressure.
- BarometricPressure *BarometricPressure `json:"barometricPressure,omitempty"`
-
- // Indicates a Civic address.
- CivicAddress *CivicAddress `json:"civicAddress,omitempty"`
-
- // Contains the ECGI (E-UTRAN Cell Global Identity), as described in 3GPP 23.003
- Ecgi *externalRef0.Ecgi `json:"ecgi,omitempty"`
- GnssPositioningDataList *[]GnssPositioningMethodAndUsage `json:"gnssPositioningDataList,omitempty"`
-
- // Local area specified by different shape
- LocalLocationEstimate *LocalArea `json:"localLocationEstimate,omitempty"`
-
- // Geographic area specified by different shape.
- LocationEstimate GeographicArea `json:"locationEstimate"`
-
- // Contains the NCGI (NR Cell Global Identity), as described in 3GPP 23.003
- Ncgi *externalRef0.Ncgi `json:"ncgi,omitempty"`
- PositioningDataList *[]PositioningMethodAndUsage `json:"positioningDataList,omitempty"`
-
- // LMF identification.
- ServingLMFIdentification *LMFIdentification `json:"servingLMFIdentification,omitempty"`
-
- // A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported.
- SupportedFeatures *externalRef0.SupportedFeatures `json:"supportedFeatures,omitempty"`
-
- // string with format 'date-time' as defined in OpenAPI.
- TimestampOfLocationEstimate *externalRef0.DateTime `json:"timestampOfLocationEstimate,omitempty"`
-
- // Positioning capabilities supported by the UE. A string encoding the "ProvideCapabilities-r9-IEs" IE as specified in clause 6.3 of 3GPP TS 37.355 (start from octet 1).
- UePositioningCap *UePositioningCapabilities `json:"uePositioningCap,omitempty"`
-
- // Velocity estimate.
- VelocityEstimate *VelocityEstimate `json:"velocityEstimate,omitempty"`
-}
-
-// QoS of Location request.
-type LocationQoS struct {
- // Indicates value of accuracy.
- HAccuracy *Accuracy `json:"hAccuracy,omitempty"`
-
- // Specifies LCS QoS class.
- LcsQosClass *LcsQosClass `json:"lcsQosClass,omitempty"`
- MinorLocQoses *[]MinorLocationQoS `json:"minorLocQoses,omitempty"`
-
- // Indicates acceptable delay of location request.
- ResponseTime *ResponseTime `json:"responseTime,omitempty"`
-
- // Indicates value of accuracy.
- VAccuracy *Accuracy `json:"vAccuracy,omitempty"`
- VerticalRequested *bool `json:"verticalRequested,omitempty"`
-}
-
-// Maximum interval between event reports.
-type MaximumInterval int
-
-// Minimum interval between event reports.
-type MinimumInterval int
-
-// Contain Minor Location QoS.
-type MinorLocationQoS struct {
- // Indicates value of accuracy.
- HAccuracy *Accuracy `json:"hAccuracy,omitempty"`
-
- // Indicates value of accuracy.
- VAccuracy *Accuracy `json:"vAccuracy,omitempty"`
-}
-
-// Indicates the information of motion based event reporting.
-type MotionEventInfo struct {
- // Minimum straight line distance moved by a UE to trigger a motion event report.
- LinearDistance LinearDistance `json:"linearDistance"`
-
- // Maximum interval between event reports.
- MaximumInterval *MaximumInterval `json:"maximumInterval,omitempty"`
-
- // Minimum interval between event reports.
- MinimumInterval *MinimumInterval `json:"minimumInterval,omitempty"`
-
- // Specifies occurrence of event reporting.
- OccurrenceInfo *OccurrenceInfo `json:"occurrenceInfo,omitempty"`
-
- // Maximum duration of event reporting.
- ReportingDuration *ReportingDuration `json:"reportingDuration,omitempty"`
- ReportingLocationReq *bool `json:"reportingLocationReq,omitempty"`
-
- // Maximum time interval between consecutive evaluations by a UE of a trigger event.
- SamplingInterval *SamplingInterval `json:"samplingInterval,omitempty"`
-}
-
-// Specifies occurrence of event reporting.
-type OccurrenceInfo string
-
-// Indicates value of orientation angle.
-type Orientation int
-
-// Indicates the information of periodic event reporting.
-type PeriodicEventInfo struct {
- // Number of required periodic event reports.
- ReportingAmount ReportingAmount `json:"reportingAmount"`
-
- // Event reporting periodic interval.
- ReportingInterval ReportingInterval `json:"reportingInterval"`
-}
-
-// Point defines model for Point.
-type Point struct {
- // Embedded struct due to allOf(#/components/schemas/GADShape)
- GADShape `yaml:",inline"`
- // Embedded fields due to inline allOf schema
- // Geographical coordinates.
- Point GeographicalCoordinates `json:"point"`
-}
-
-// PointAltitude defines model for PointAltitude.
-type PointAltitude struct {
- // Embedded struct due to allOf(#/components/schemas/GADShape)
- GADShape `yaml:",inline"`
- // Embedded fields due to inline allOf schema
- // Indicates value of altitude.
- Altitude Altitude `json:"altitude"`
-
- // Geographical coordinates.
- Point GeographicalCoordinates `json:"point"`
-}
-
-// PointAltitudeUncertainty defines model for PointAltitudeUncertainty.
-type PointAltitudeUncertainty struct {
- // Embedded struct due to allOf(#/components/schemas/GADShape)
- GADShape `yaml:",inline"`
- // Embedded fields due to inline allOf schema
- // Indicates value of altitude.
- Altitude Altitude `json:"altitude"`
-
- // Indicates value of confidence.
- Confidence Confidence `json:"confidence"`
-
- // Geographical coordinates.
- Point GeographicalCoordinates `json:"point"`
-
- // Indicates value of uncertainty.
- UncertaintyAltitude Uncertainty `json:"uncertaintyAltitude"`
-
- // Ellipse with uncertainty.
- UncertaintyEllipse UncertaintyEllipse `json:"uncertaintyEllipse"`
-}
-
-// List of points.
-type PointList []GeographicalCoordinates
-
-// PointUncertaintyCircle defines model for PointUncertaintyCircle.
-type PointUncertaintyCircle struct {
- // Embedded struct due to allOf(#/components/schemas/GADShape)
- GADShape `yaml:",inline"`
- // Embedded fields due to inline allOf schema
- // Geographical coordinates.
- Point GeographicalCoordinates `json:"point"`
-
- // Indicates value of uncertainty.
- Uncertainty Uncertainty `json:"uncertainty"`
-}
-
-// PointUncertaintyEllipse defines model for PointUncertaintyEllipse.
-type PointUncertaintyEllipse struct {
- // Embedded struct due to allOf(#/components/schemas/GADShape)
- GADShape `yaml:",inline"`
- // Embedded fields due to inline allOf schema
- // Indicates value of confidence.
- Confidence Confidence `json:"confidence"`
-
- // Geographical coordinates.
- Point GeographicalCoordinates `json:"point"`
-
- // Ellipse with uncertainty.
- UncertaintyEllipse UncertaintyEllipse `json:"uncertaintyEllipse"`
-}
-
-// Polygon defines model for Polygon.
-type Polygon struct {
- // Embedded struct due to allOf(#/components/schemas/GADShape)
- GADShape `yaml:",inline"`
- // Embedded fields due to inline allOf schema
- // List of points.
- PointList PointList `json:"pointList"`
-}
-
-// Indicates supported positioning methods.
-type PositioningMethod string
-
-// Indicates the usage of a positioning method.
-type PositioningMethodAndUsage struct {
- // Indicates supported positioning methods.
- Method PositioningMethod `json:"method"`
- MethodCode *int `json:"methodCode,omitempty"`
-
- // Indicates supported modes used for positioning method.
- Mode PositioningMode `json:"mode"`
-
- // Indicates usage made of the location measurement.
- Usage Usage `json:"usage"`
-}
-
-// Indicates supported modes used for positioning method.
-type PositioningMode string
-
-// Specifies type of event reporting.
-type ReportedEventType string
-
-// Specifies access types of event reporting.
-type ReportingAccessType string
-
-// Number of required periodic event reports.
-type ReportingAmount int
-
-// Indicates an area for event reporting.
-type ReportingArea struct {
- // Indicates type of event reporting area.
- AreaType ReportingAreaType `json:"areaType"`
-
- // Contains the ECGI (E-UTRAN Cell Global Identity), as described in 3GPP 23.003
- Ecgi *externalRef0.Ecgi `json:"ecgi,omitempty"`
-
- // Contains the NCGI (NR Cell Global Identity), as described in 3GPP 23.003
- Ncgi *externalRef0.Ncgi `json:"ncgi,omitempty"`
-
- // Contains the tracking area identity as described in 3GPP 23.003
- Tai *externalRef0.Tai `json:"tai,omitempty"`
-}
-
-// Indicates type of event reporting area.
-type ReportingAreaType string
-
-// Maximum duration of event reporting.
-type ReportingDuration int
-
-// Event reporting periodic interval.
-type ReportingInterval int
-
-// Indicates acceptable delay of location request.
-type ResponseTime string
-
-// Maximum time interval between consecutive evaluations by a UE of a trigger event.
-type SamplingInterval int
-
-// Indicates value of speed uncertainty.
-type SpeedUncertainty float32
-
-// Indicates supported GAD shapes.
-type SupportedGADShapes string
-
-// Specifies causes of event reporting termination.
-type TerminationCause string
-
-// Indicates location information of a UE.
-type UELocationInfo struct {
- // Indicates value of the age of the location estimate.
- AgeOfLocationEstimate *AgeOfLocationEstimate `json:"ageOfLocationEstimate,omitempty"`
-
- // Indicates value of the age of the location estimate.
- AgeOfVelocityEstimate *AgeOfLocationEstimate `json:"ageOfVelocityEstimate,omitempty"`
-
- // Geographic area specified by different shape.
- LocationEstimate *GeographicArea `json:"locationEstimate,omitempty"`
-
- // string with format 'date-time' as defined in OpenAPI.
- TimestampOfLocationEstimate *externalRef0.DateTime `json:"timestampOfLocationEstimate,omitempty"`
-
- // string with format 'date-time' as defined in OpenAPI.
- TimestampOfVelocityEstimate *externalRef0.DateTime `json:"timestampOfVelocityEstimate,omitempty"`
-
- // Velocity estimate.
- VelocityEstimate *VelocityEstimate `json:"velocityEstimate,omitempty"`
-}
-
-// Indicates the connectivity state of a UE.
-type UeConnectivityState struct {
- // Indicates wether the access is via 3GPP or via non-3GPP.
- AccessType externalRef0.AccessType `json:"accessType"`
-}
-
-// Indicates the LCS capability supported by the UE..
-type UeLcsCapability struct {
- CiotOptimisation *bool `json:"ciotOptimisation,omitempty"`
- LppSupport *bool `json:"lppSupport,omitempty"`
-}
-
-// Specifies location service types requested by UE.
-type UeLocationServiceInd string
-
-// Positioning capabilities supported by the UE. A string encoding the "ProvideCapabilities-r9-IEs" IE as specified in clause 6.3 of 3GPP TS 37.355 (start from octet 1).
-type UePositioningCapabilities []byte
-
-// Indicates value of uncertainty.
-type Uncertainty float32
-
-// Ellipse with uncertainty.
-type UncertaintyEllipse struct {
- // Indicates value of orientation angle.
- OrientationMajor Orientation `json:"orientationMajor"`
-
- // Indicates value of uncertainty.
- SemiMajor Uncertainty `json:"semiMajor"`
-
- // Indicates value of uncertainty.
- SemiMinor Uncertainty `json:"semiMinor"`
-}
-
-// Ellipsoid with uncertainty
-type UncertaintyEllipsoid struct {
- // Indicates value of orientation angle.
- OrientationMajor Orientation `json:"orientationMajor"`
-
- // Indicates value of uncertainty.
- SemiMajor Uncertainty `json:"semiMajor"`
-
- // Indicates value of uncertainty.
- SemiMinor Uncertainty `json:"semiMinor"`
-
- // Indicates value of uncertainty.
- Vertical Uncertainty `json:"vertical"`
-}
-
-// Indicates usage made of the location measurement.
-type Usage string
-
-// Velocity estimate.
-type VelocityEstimate interface{}
-
-// Indicates velocity requirement.
-type VelocityRequested string
-
-// Indicates direction of vertical speed.
-type VerticalDirection string
-
-// Indicates value of vertical speed.
-type VerticalSpeed float32
-
-// CancelLocationJSONBody defines parameters for CancelLocation.
-type CancelLocationJSONBody CancelLocData
-
-// DetermineLocationJSONBody defines parameters for DetermineLocation.
-type DetermineLocationJSONBody InputData
-
-// LocationContextTransferJSONBody defines parameters for LocationContextTransfer.
-type LocationContextTransferJSONBody LocContextData
-
-// CancelLocationJSONRequestBody defines body for CancelLocation for application/json ContentType.
-type CancelLocationJSONRequestBody CancelLocationJSONBody
-
-// DetermineLocationJSONRequestBody defines body for DetermineLocation for application/json ContentType.
-type DetermineLocationJSONRequestBody DetermineLocationJSONBody
-
-// LocationContextTransferJSONRequestBody defines body for LocationContextTransfer for application/json ContentType.
-type LocationContextTransferJSONRequestBody LocationContextTransferJSONBody
-
-// Base64 encoded, gzipped, json marshaled Swagger object
-var swaggerSpec = []string{
-
- "H4sIAAAAAAAC/+w963KcONavomL3x25Vu31LJ2PvL0xjhxoaOkA7k51JUTKo25qhgQHaiTfVD/S9xvdk",
- "X0niIkBc3HY2ma/yJ2nD0ZF0dHR0bjp8kbxoG0chCrNUuvwipd492kL6U/a8XQK9R/LbR6mX4DjDUShd",
- "SlroYw9mKAUPMNghEK0BzIGn0kRaR8kWZtKltA4imEkTaYtDvN1tpcuTiZQ9xki6lMLd9g4l0n5SdnO9",
- "C9Y42KIwy9FHSV/P6xKcdJ+gP3cozZBfGwgKSae/Spb6bqXajjp3ZUVZWbLywb1e6dearqtzaSJ6bZgO",
- "B/KxHHaaJTjc0GFvkLnWIw+SkalphrcwQ6NIld0jADflzyDHAVCOhIx8Cz8zip2fvXn9RkhBHGZok5Mw",
- "yHC288d1D3Pg2kr50e4uQH0dH+UP2usXboKRPRPI+uxenwzOLUFQfaBcsY76uiG0xCGbESEn6TBBENzB",
- "FPkAERQgQXGUZDjckFHESRSjJMOIcjuBnaM1DjHD/EXCGdrSV39P0Fq6lP52XG2V43yfHFsFRjJOMt4t",
- "/KyxhmczNrn8z9NydjBJ4GMOS2auhRlKHmAw1NeiAb4vaTcaQwN8P5Eisl8SFHqoIHAfArMOvZ9IJUnn",
- "uwQWpBtFsbIBj6XYURb6ky32Gu6CTLrMkh0qCXgXRQGCtGEKt3GAw81YCthN+D3t/c8dTpBPZEWDD6qt",
- "H939jryM9HkFk2iLsgR7ywSl6S4RsL8dIw+vcc6XWwQJmA92IRkTClNIZVW2jdL4HiXYA3GOqrY/Tk9n",
- "Jyf8Fjk/oX+3t4kCQw8FeuTNYQZF26TaGJ9wdo9DwFqAguDAYiK0vTPuN9vAU2AQXEHvj5WlcSR27LOL",
- "2ZtTV4m22ygkXU8f4TYQUn6VYDLQwE8stEaUh4YWS+dhyWLvYsImyL9GMNslKD1wKHYLT5MLWnNuDFzE",
- "Fgp+wJ7s+2Qh+wQVBBQSQAbaJrh8Sv5tnzhn4sfn4sevxI9n4sevxY/nc8Wcq8J3V/pc+Pxat4TP3xpm",
- "x3Nb+Fxf/Cx+birC54a8ED5fKh2PDfFzvQPevDJ/6Xgz73jeMSCrA94Sw3eAW/Mrq+OFrSpdb1ZXXa3M",
- "juHaquyIXzjihVsZmriBF+3CLHkUvtui7D7yha/iJHrAPvKvxC13KdwgaxewvdN4vRft0yhcY7+QP4Na",
- "i1eC10XzyaDqokRJggIqXbV5uy9dsQEHArR53oGOwk12TxSIGe2i+PtUoIaqQYDjNMK+nHhUjQkCcy1d",
- "/tovWG/kuX0PYyJUvzSEj1ejTh8Sjo77iYRDL9j5yC/Vwb6mDIi2ClFiQR/vBjUtjQMlest6naLsab3F",
- "EQ6zIegbFG0SGN9jDwZKFCU+DglDUFYLPZRkEIfZ47gxr6oGrSOGDaZOAlEX9ak2CT3hF6x9Kn2cNJiu",
- "5BcgJ96UchDRjJUAig6tSoth+rNHwFDK21b2arnU1YVqOLL1wbVV61ZTVFtoMtGejCjD68fRWgptA1ij",
- "bhUFevcYPSD/XZSOUIGjpFB63kU2GRjssuV6uUrYiGDjrLFeBAUcEY0N3aF33/Gw+4m0CdN0GaVUXyVq",
- "NcygjtNstAlzU2+/oJJYDv0VEay5kdFtw2ziFB+oht2QpvvJd6RgEls8eCojEPigMP+CJzaupE2BIX7G",
- "Uh6+jMwAQz7dbw59OcaM4xsQBR0lD8SIW1wTiZThNfZG2YT64lqrN2DaPj5cwcdf2WCYSBlKtuRswFGo",
- "wF06SDGnCU9w4C1KM7iNe+XPU4Y6hxly8JZif0BB5OHscSwz3jbhm2dWm0tG2EUUmLGLQjRAJPDrGdSd",
- "RNQt3lGTggR5CD8gH6yTaEtN6QwmG5SBlVrTxn56/eqkbimfijQybii8u6I+luJNczS52+gZfS5QSjdj",
- "n3EY1voEW9akfeSh2rHdt6rcAb+f5O2iMEM1VegpLGahtRNd4RAm7Bxvcgk3tEZ/A+yBw42dwWyXDvn5",
- "UgrVsUACOrW4b5Be9RYF3dqsMxJR5esSWSTq5wwlIQyUAHPSt5MAjzGicy+aAdauppapC9W6UQ2FU8km",
- "0q2sr1RXns/VOf94qS8M11yqluyYFv9Cl99fr3RXMxzVUtSl093oyjLluSLbPSDmovVINkzjw8Jc2a7t",
- "yI5mO5rSbufI1o3quAu7QO0SldO0HKGOWVo2LQIyzqbuYEpCsI4ScCPPQUrgKfF8TBpQIc2CD1sYxwTx",
- "5RdJ1XVtaZva3JUtpXPFeWtsIi1NzXC6z2qm/1MgV9YdzVnN1V7oUmNstnJXhqJajqwZzodRGHjDpEDG",
- "4XAVzVL0/sFwKBSceAESImJkG42JEZCh0j/cmEZ3w+Bxw/SEfL8/GnBLeSE3bBtyIC24otc7XJzzBRu1",
- "PYMMj0iQNVQ5YpaEjyOMccYIxBIfhGrT/KnNCgIPtyvoOwI/Z8k8AbpmHA80rG2stlVbkZ7FfNLcbvXB",
- "3SPw8ZqqJxnb6dP6WtWN/JbU4AGBV0G2D5oA0vO0J6R2wesKRxeiYGjATpUeJKc/1bDQPxtoGhxLcE7o",
- "8IRcG6ap5gsmHkR3MAAGfMAbpg7ZMENBgDME7Mc0Q1vwjxvDtv+Z+62Kg+dmSUT4jaxrumpKE8m+ksmD",
- "hTlXLUP7tzp3GcS7f9sUUDcNmf66mpN/DflWU8SSvddMHVAYqJOQhgTB+Ilxlhhg/sn2qhPje4yBrfnU",
- "BIuG3QL8HCPmHdgVU+z1NTE7r7H4tEfmI5AKRCI2eBsl+D9RmMHAjhHyR3lG78s2ZMMhXxz7Lxj37OTV",
- "m4FUgGoQhSXSHkcFAwrzpr0qdwgm+bk9yjF4X066D7xJo1bQiD2elN33E7qY43uc3fOycMyUqXuMUR1w",
- "LsNvRomJ1JxC7zFLGvX5RluUbODvJywh6C0hgTeSkWDog4e8wbfnqon0MMcJ8saYGMU0qwak+ah+i6Yj",
- "eblEWxve0xeCSOyRzC5clv9vnP9tVnsiPXzl/SrilgatGoMQ8ZJWjw+Nyq2iARWQ0Ea1IwmH2flZK8dp",
- "NhTG08J4l40OWMwR8wsiYWZFGFElseYt8TaYvCH/fWyZLXC71vwD/TTGWgvTDIYeYtoHbKZS9e6LGjCN",
- "3jaimf2xQR54P2GzPGwaKmmaozBDG3lR6Bt1ReogdEKnS68R0m7xXQZAvNRGyQP20JhJ6XXo5wZQ/GRU",
- "pzkYFzB5F9ljAi1c1C6IY86h+hJ+TB6n+jkbMiqCOC78s4BwU5jiKCS7vBmreeag+nMIIxo0GLutFw3w",
- "fS55DpQw+V4KX2ZrFuhidOiAlihHkODIx95osixbDagkxlGCh49H3UuXBSifyyh7HkpTwujpAfmkZeNB",
- "FvjeA2Vp26s2lhwih9wANbIQxgcfmQ5rTNB8eg6aTwWaHVKiMCT6zwPOHu2s8DL1WvLtNgUqmkA1R5kW",
- "8rlSXD7sDuleqsB4uA8GB+9wkPPtDhUCNj8Q8k4G0LTbUFycG2PUcOrwbFiYLXeh+ltFkv/YOGbVgGAh",
- "h2w7xeLJB6wogNOOX7ezvRbXoB4UJydFO7uRkyU9x08hmgqdV1ds4FG1hPfFvdVu3qq24y4tzbQ054M0",
- "kQzTWsh69eSjeAzvonQwJYj0+S6yWVIQ3+0V6VO9vjYtR5pIsm2vLHrPYrHSHW2pq+470+7quKG5tDPm",
- "UgZAQzj1hLyzwXsSekOzaWCfW6B83UjFm52e1FLxzkSjr3SfrmUjXdDwHU+ulerKt7Kmy1e6Kk2kpWpp",
- "5lxTpImkGo5qacaNqxmO6cqWKksTSVflW/Ls2jIXxbMrlUHZ2lwtni1MRzMNMZ1xiGAyx8w4aA84vyYA",
- "0iyBeHOfgYDYM34OD7bRA/OsQ7BSQRaBLMGbDUoABEwbqUVlm1mTwxFzPfJowPjzeKvLSWCYrlFSGV05",
- "hp6cse/HstIiZ3Zjm3GGtzjl5Ed+92ENg1R4+eEljCphdsLIqHbRoo6nFsUfialq8zIW1WYHtwfjoG2/",
- "r7y0/6JZ9V0YFC+jwP9QjHnFuNLvxhB0pdagX1ana965oqK4YvPJ4P0boeASORCr5Mz2eU9eDceLSyxm",
- "gjc47L/Zw3BGFBLgEECQFGMGKQ0uts6hKqisddx/eFbW+r6DKGTwz3NqpnEUpkiUjN17obf3aOxpSo7Z",
- "v3qa953w5mBfa8Fdw2emi7+A0vBtM86/hyTtlzjivkmed5Whrb1IhvZXTK/+qqnRX8VB8WJ51i0G/dgj",
- "xXMVry7EiWEerStxnXTe7uXLPIyRzXmIgfcQDDhHS1DGnFQuv4vSJ2g7ImnOXbQfvNvAjiq69oP+Vw6W",
- "LO0h5CmC1jWHVdN8Ex3Mi3ZBgIZlzgAAziHAHco+IVS3uNN2mvqQyb1o1xEQuwSe0HGzgkRXx/WVFeTt",
- "hhnEIaCQFUO/i+wXYuYDlli4dm276QmlKnLHychiFUHLgdO7BevQPwpPfJeFJxprKpL4ZotkXb7Zirgd",
- "lyQK56NpqK6jLVRXvVUNh3fSck9FPkQzwSjMOpzdgsyMqIIXFIKpZ7UKnbdLkUvgCTuscCkM764qgLeN",
- "dsOml9UA57lqLHdYrQbiq1dVL6JORDyzLKzHZ98Mf7Yd2r79/KQLy3Qm03JOfNGjZ8/tEGPuK9CDsyqf",
- "RBrammXGVeWdmoRqJHx9E5odWl3gBW/uyyOH3cjS27XvUIxHUN66GFp1YT/i4R9+81/ALTTXkusFoAK6",
- "4qPCQm140XBKK7BRpKko++Wpa1Up9qczXrM/b2v2HZdivr20qy3ZS1SJ2PUmSo5bbH59PUqpqYiIHHt/",
- "s2oiL0j9l9+twi36Apuxvf+KBWJ3sV6MrYudPHhViwIKyUDfjJhoPvZ8Hg2vVZ8GV/qWBNdwauFzRdV1",
- "bS5NJFWh/5nO3KQxcdkyF6pjaYq7tFSahCBNpPe6bJCX+kp1TNN5SzTeK7sMl7u2atimJU2kue7miOa6",
- "K5tl/sKR5RA12bDcvL9VCbgigOSHoTrvTetn116qinbdcZ/pJe4yjbmhVFVWepJHsSrKpOQJfZVhf8pb",
- "9a9Fyvo3uOjERj0pbjx1X3Vq9juKCQnWFOyIdb6Okg7CcxkdV7JNc15WqivbtmY79C/FNIhBpZmGrAuZ",
- "whKV4eisLPgYD5l3RTJJad6VKSWypcrl0yKnpPawlVRS2Yhsr5R/yr9oi9WC3RO/lXVX/WWpWXINRjcV",
- "9kCRDbJj+bfdhKjnQfaQAlKo6mp8D0kMsrvVlWPJrmIahqo46tx1THd2o9D8KMM9v1kuhe8sl91pNCx3",
- "Ufy4KX6YzlvVcm15aD6lTdlVAaPgarHF2nTunV9cXFwMednqVUr7y0/QgCjh8VElU8eXisl7LxIUXiAM",
- "9QJBmAweisGBWFg7lM5PJHbaVBio8SDgY7o4tTIPS9t1LFn5udy92pwIGJrrpx4RLjdcst/cG928kvX8",
- "9bXGdqM0kWY3PRgMS9C4I2vQEvnjxN5r/2UrrFgib0tD32rQsdxahT/7sF1Vjyt0birPQ3EG7wIEfBRA",
- "mrQZCAIzxaLq5nt3ruoyWQH6v+uYumrJVJAaZv5OtAa2wCkpXoIMb1Hbme+R6Xi7DD8ggB5gsKNjTMtc",
- "P6p0FNl+dOWa5ZwHF6t1l2yM81B43a/nqvFsNnDT2BZm3gyrAfV6IeUpS+t89NTR6KuMUZW6aNUC6S3z",
- "MWmUJGFnrO6ezd2+zhjQeTeQqYkLnjuCclddx7FHAEQHMeCKZvEUdFRroRlMKbj64K7ISBvPcqW6ymHm",
- "3gsH3Mhg6lnfcjM264fnZaYax97LppGQF7dPDCB3Ynt+ZsPXDbtz2Hvm/E3rnbUObtF1jAETzeMa0GJV",
- "qIedagruARTgbwo1FZLq1UfhzOqXQAZmRS8ZlNCcVLx7pO9X6rQ9PQ9H2dMzm4M4zkX0iGCceNHEl1m6",
- "JFYpAvj7BSn3XYm7x3z1qlM6t2hU29EWsqPyVg6z+Yip485lRxbLp86UktY4OcBqBXDtZKrWAMiAdQJQ",
- "6EU+lbr3CPwmLVkhZb6ro+TiSFPT3ySgqQCmXCIkDoEXEDEOXk/PCfcSqwg4Njh/Mz2fzcA/0gwmGavL",
- "F3kZysDpP2un8t1jhkQ3XJ569g+e+n3nvNitKfLFoZYPrs3LXAxzAX8fTmfkY6Q092qLR7VrhB5oOxw+",
- "sV2zblXZOY9w0p6TUFA0yRhhv4uQEfZbpPxrU7JK6PkaC1DiHrsWQz5C5h/cQr/9iZn8OxTbxj2xlWGv",
- "FEWlZZjyX66l2ivdsemXcFbMl9V8RR67juneqpZ2/cEthF8P5I1qqJbsqCLYheq8Nee0v7nKdLuOT++I",
- "NIc6MQoI7ps6XLtaWlan/ClQ5GvYpNmtqpuK5nxwNUaj8iNC0qT2rnounkqzokfPkPwCiKxrWRilLL1U",
- "rubyvWyRYczN9wb92dfz+HJP7R4Pt8DoXvR2CVGoyN7JpYK8y+7PWHkFJUE03xQG9NU6iD4xfUL0NvWi",
- "3IQLg+36KIg86VKSc59gRPeAEWzXbpk9Ji81qo5Gf6BwlQTSpfQlTNZyjK0oyvbHESQDOaava/oFfS7t",
- "91z9iHnkCU7s4rQ8u5jO3pyB29M301fTk3+B2U1eZOxfVSrbAoZwQxkM5MpK+i9gZ2QXn0sTaUfHd59l",
- "8eXx8adPn6bnmzieRsnmeJ3Fx0SFSY9h4t3jB3R8duGmKMEoPWYdH7Mi+yLzR19cV0PI+53+Fv7v/4Cz",
- "k7OzCTvvzWQDQ/wfCgQDsIRJFqIkBf+QLe1qAmRHsydAUWx5AlTH1ibAsef0P0cm/yj/nP4WykEAEry5",
- "p+V8iXqF/OlvIVENcBagxkiYQEzZEE+nZ9OTIxjE93D6iuaMxSiEMSb0nZ5MT8ixArN7Sv5jj37P5qiQ",
- "dSzYxeJc5ORhhqAvXVafyik6zJW8q8h/zGOWRXFcGMdBnu98/HvKkDJZPxjOrH2PZ18/DIgay+Wl0vGf",
- "nbwSnKifY+QR7a4AJdwMQbqjrL3eBYDNOihPxvOTN080I8pRHJO2FMVPz0DxE0Hx6uTkYBSkLUVx+gwU",
- "pwzF+TNQnDMUr56BgvLsq9NnTOSUTeT0GRM5ZRM5nT0DxYyiOLs4HMXZBUExewZfzBhfzJ6xqDO2qLNn",
- "LOqMLWppkR6IpmhPD8LddguTR+myEES1TV1LXYySwvuK/FKrI5IUblIaC69/00v6SPAf+8XtLaFw9GAQ",
- "3EHvDyqFuE90kD+//L1wT99F/uPfjpvX8vY8oq8hRpufDKGCtC4jVyr/kRDudsrB4vUBBtgHYQPdD8n6",
- "Q7L+kKx/Icm6p8KirvuVF1m/svpX1QwkY9juggzHMMmOaVE8Zm8Vzjlaq7Ks96XXiprlY3HytEduOA+h",
- "z+yAII6liXSPoI8SKunyby0csdvE1XCbX0YjAxP1q37OTr9h32f/jb7JYhaXn7v7oktOT+gSWaPEaMey",
- "VT5QCiDygvIjGM9IDWfQGKvi5MV4unZrXHAQ956m+SYjUx95FK+jBCzMI90q2uJwU3myYJoW5Wh8IhF+",
- "nNA/TugfJ/Rf2PYRlJignwwHNBegMHDaULmNUwiGI4/VfTrK8opQ3X6gAkNeKaooIfWVNIJGUasX9Qhx",
- "/qBSQOZ0ACUdfgjIHwLyh4D86wrIYiOXO5tPVqI56WO9RK0aeaXo+7jnIzPS5a9f9pOesMyvVbjl4/4j",
- "Ky5CtfFfv+RRiy+wCKkUkMcPp9JEeoAJhnf5N5tzmFqmB413pJfHx+gz3MYBmnrRVmpqnHlDAFPgozUO",
- "a2kLr6av+LSFs4vpjOz8/f7j/v8CAAD//92eyvb1hAAA",
-}
-
-// GetSwagger returns the content of the embedded swagger specification file
-// or error if failed to decode
-func decodeSpec() ([]byte, error) {
- zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, ""))
- if err != nil {
- return nil, fmt.Errorf("error base64 decoding spec: %s", err)
- }
- zr, err := gzip.NewReader(bytes.NewReader(zipped))
- if err != nil {
- return nil, fmt.Errorf("error decompressing spec: %s", err)
- }
- var buf bytes.Buffer
- _, err = buf.ReadFrom(zr)
- if err != nil {
- return nil, fmt.Errorf("error decompressing spec: %s", err)
- }
-
- return buf.Bytes(), nil
-}
-
-var rawSpec = decodeSpecCached()
-
-// a naive cached of a decoded swagger spec
-func decodeSpecCached() func() ([]byte, error) {
- data, err := decodeSpec()
- return func() ([]byte, error) {
- return data, err
- }
-}
-
-// Constructs a synthetic filesystem for resolving external references when loading openapi specifications.
-func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) {
- var res = make(map[string]func() ([]byte, error))
- if len(pathToFile) > 0 {
- res[pathToFile] = rawSpec
- }
-
- pathPrefix := path.Dir(pathToFile)
-
- for rawPath, rawFunc := range externalRef0.PathToRawSpec(path.Join(pathPrefix, "TS29571_CommonData.yaml")) {
- if _, ok := res[rawPath]; ok {
- // it is not possible to compare functions in golang, so always overwrite the old value
- }
- res[rawPath] = rawFunc
- }
- return res
-}
-
-// GetSwagger returns the Swagger specification corresponding to the generated code
-// in this file. The external references of Swagger specification are resolved.
-// The logic of resolving external references is tightly connected to "import-mapping" feature.
-// Externally referenced files must be embedded in the corresponding golang packages.
-// Urls can be supported but this task was out of the scope.
-func GetSwagger() (swagger *openapi3.T, err error) {
- var resolvePath = PathToRawSpec("")
-
- loader := openapi3.NewLoader()
- loader.IsExternalRefsAllowed = true
- loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) {
- var pathToFile = url.String()
- pathToFile = path.Clean(pathToFile)
- getSpec, ok := resolvePath[pathToFile]
- if !ok {
- err1 := fmt.Errorf("path not found: %s", pathToFile)
- return nil, err1
- }
- return getSpec()
- }
- var specData []byte
- specData, err = rawSpec()
- if err != nil {
- return
- }
- swagger, err = loader.LoadFromData(specData)
- if err != nil {
- return
- }
- return
-}
diff --git a/capif/internal/readonly/providermanagementapi/generator_settings_server.yaml b/capif/internal/readonly/providermanagementapi/generator_settings_server.yaml
index 3edb259..1e606be 100644
--- a/capif/internal/readonly/providermanagementapi/generator_settings_server.yaml
+++ b/capif/internal/readonly/providermanagementapi/generator_settings_server.yaml
@@ -25,5 +25,5 @@
- server
- spec
import-mapping:
- TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
\ No newline at end of file
diff --git a/capif/internal/readonly/providermanagementapi/generator_settings_types.yaml b/capif/internal/readonly/providermanagementapi/generator_settings_types.yaml
index f37abfb..f3c52ff 100644
--- a/capif/internal/readonly/providermanagementapi/generator_settings_types.yaml
+++ b/capif/internal/readonly/providermanagementapi/generator_settings_types.yaml
@@ -24,5 +24,5 @@
generate:
- types
import-mapping:
- TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
\ No newline at end of file
diff --git a/capif/internal/readonly/providermanagementapi/providermanagement-server.gen.go b/capif/internal/readonly/providermanagementapi/providermanagement-server.gen.go
index 779fbb5..cd06dd8 100644
--- a/capif/internal/readonly/providermanagementapi/providermanagement-server.gen.go
+++ b/capif/internal/readonly/providermanagementapi/providermanagement-server.gen.go
@@ -16,7 +16,7 @@
"github.com/deepmap/oapi-codegen/pkg/runtime"
"github.com/getkin/kin-openapi/openapi3"
"github.com/labstack/echo/v4"
- externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common"
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
)
diff --git a/capif/internal/readonly/publishserviceapi/generator_settings_server.yaml b/capif/internal/readonly/publishserviceapi/generator_settings_server.yaml
index 93684ad..efe475a 100644
--- a/capif/internal/readonly/publishserviceapi/generator_settings_server.yaml
+++ b/capif/internal/readonly/publishserviceapi/generator_settings_server.yaml
@@ -25,6 +25,6 @@
- server
- spec
import-mapping:
- TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
- TS29572_Nlmf_Location.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/nlfm
+ CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/aggregatecommon
\ No newline at end of file
diff --git a/capif/internal/readonly/publishserviceapi/generator_settings_types.yaml b/capif/internal/readonly/publishserviceapi/generator_settings_types.yaml
index f0efd47..fa467fc 100644
--- a/capif/internal/readonly/publishserviceapi/generator_settings_types.yaml
+++ b/capif/internal/readonly/publishserviceapi/generator_settings_types.yaml
@@ -24,6 +24,6 @@
generate:
- types
import-mapping:
- TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
- TS29572_Nlmf_Location.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/nlfm
\ No newline at end of file
+ CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/aggregatecommon
\ No newline at end of file
diff --git a/capif/internal/readonly/publishserviceapi/publishservice-server.gen.go b/capif/internal/readonly/publishserviceapi/publishservice-server.gen.go
index 693b9c6..256f432 100644
--- a/capif/internal/readonly/publishserviceapi/publishservice-server.gen.go
+++ b/capif/internal/readonly/publishserviceapi/publishservice-server.gen.go
@@ -16,9 +16,9 @@
"github.com/deepmap/oapi-codegen/pkg/runtime"
"github.com/getkin/kin-openapi/openapi3"
"github.com/labstack/echo/v4"
- externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common"
- externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
- externalRef2 "oransc.org/nonrtric/plt/capif/internal/readonly/nlfm"
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/aggregatecommon"
+ externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
+ externalRef2 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
)
// ServerInterface represents all server handlers.
@@ -219,53 +219,53 @@
"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",
- "RIRO9S8C+IyEgHr+EBFhdoXIc1wn4ywDLglofvWevSji6sufOUwUm0Hn7fmbzsN1kk4eSmm8OU6TP7WW",
- "grcKqVv9kgQI4SxcJwqH0brswwioJBMCQvNXl+Vlcsh5Bk7XEZITOlX7ToH1OOCXC3IFbMpxFpNQ01ks",
- "qk3Y+DcIpdqkBxOfswlJYF3EW8g4CEWyLoyaq8VdVz6GyUZVccQmhpQ/RPA5Y0KpZZLTUM+06ACvml+h",
- "B6u0dUtVp4YlvtQGuW3hxXKmWsdSTOg1Ti0KudBjSDL0GJMw1mKMIWF0KpBkNv6JMogJDuFiSUhYNFRO",
- "QxFITBLhuA6RkIptvA8t9NW+KaFDs75dcYU5x3M1mHEmWciSbcT9ct7CdQSEOSdy/jPImEUWEYJiAkrN",
- "DCTyLGNcQoTG89J+dhUrWNltq0Az4MKuWHVCxeiue/9STN+86cJ1OPwjJxwip/trYfk1Tj5afK3P0jSn",
- "xNjoSI82+fWZEGScAJrhJAeBMAd0jG4Hf7sbBKOH20Hg31wHgy5SkTesk1PBpHAutS9SzIGQxxxExqhQ",
- "VIK7d0H/dvhu8HB9Mxpe/n0HKiIfK+7GcEyZJJP5vdIi0DxVMje5clynuUVNDUuf6OdCsvQmA/4ErDTi",
- "Tm1QMYdRqAkgVlKwoABL01LBm856/UQWrqPI32T2CECkUpEAibBAX5YzFyjDXJa6u7sdIiF5HsqcA5ow",
- "bmEaPRIZs1wiDoLlPASEhWAhMYNYoAgmhEKECFXHECY4F4DOvDO1yemV76NRgDpvvfOTthU9VvheA274",
- "LJt6VYw3mbQRrgZtQaDy+R9HI78KBUoDZdgvxfXQDU3mCGdZQkKsTP4xBqqnlfFJib7EJ0RopE4KhCbu",
- "7erPS0N7lkdXJrRiEDa3vlhBml38+afg5rqLfsIzHOi56EYTQ9dMak5X3ExNtvqRNfY/15moOpS/CFQB",
- "1bozkWx2Zsmo2p3Og/IfRpUCns5ChuVyBYfZ7PV+pF6XpJSdvZCMr5Z+HUyr1OYiIpHEn5T1QggR0BAQ",
- "mwEvsr4GIZMUGu9emrhbeIoKMRmEZELC1YP5+uBpywk3hGa7PV8NRl3j8VeDUSEjOkb+TVD+rj7WBu6q",
- "3+/qP/dG/R/LAfV5OXQx+DAYDYox86UYXPGVq8HIcR21mfp3p/8qQo7rmEVWR/Jr+dAu4iomHtoP7YKd",
- "AvNR22uXg53GUGeFy3K945qPHTtX+TghIoaolxEfy3ira2flAh1nMyxjjTHEBFWBU0D9nj8sKxLgyOS6",
- "FvgMJ0ObP/RQQoRGuX7/EpEqrRe1kqdR4OCEA47mS+ZWzHhN6Gda6m0BJttrlxryPFG8/C/kDGWKAJE+",
- "WoTr2cN3yRjqiv0jZQsqWTCs2Q+9tExE1bBFMTkntlUJlmRmrMGiYY0yNWPCGQkKoCg3vOPEx1xuMq59",
- "TaWRKa0owq0nTkpGW8bUQKgdw64fvO+iBiSjNnp1p7sIow/BsR+8PzLSmapFy1eKc3rqtTsdRef9cJ1O",
- "p6Tjvx/uQOOmdzf6cZ3KKXo1+hAY37zp5TJGkn0Cuo3gCjr4wXsFW++HjuvobazoEJgw2/OH+2R/K9Ea",
- "ixqElDW7f2lt8xReZsOIWpeo1hJ0i5YJoWGSR0XTTLeACrwqGh9F67B06qOdHbfWyNrmuTgjtjaVRqxl",
- "qwoLQaZ0qQqDnSFT0bnoWCHJGshb06eHghgnCaJMorFOC9U5oAKOl1lRUamjCWdp5fAFxXp7rNzMwke5",
- "1eZtikZAtc8GgZ5iAdNohbJK955NmNAZ+wQcvYqICFWKPFc/H1kxCWfEHl8VIRVaLRFxG7buj5Qq7OZZ",
- "dglYirX2bHunGqTCPkUk56A7zTrvWpfVps+loX5VLLfRyvJxLQXd2DBspqy6yCoDVR9LmDI+tyZ+IsYc",
- "FLAP6YRtrXDqk4sAo4msKfWrHU6z31fYpR3dLKHZxzLcIYXHHKcgVUYtWRUZ1EjKIoXyeKVwv2zk/FW2",
- "tC1k/xci6sEhfncOYauYrDMt9xFl8vwYg4yrLkYtWaBRi63/HBYioRBTBUdaiqiM/lX1aCtDhaUkwxlR",
- "Nji7YKkl1fiwkdzymmatLK3dVEq2ZPPFpanrEFEp1tZGkmqfe0fyHO6dWmkiYyy/gWrrEnvoRh3oIxGg",
- "QVMzNsGJgHun5jljxhLAdC3w1QW1Bb/y9mSXgrzsjtS5W49cGXmSpiKS4t8Yr5HSYG+SyFn7yOa+pgJ/",
- "uiztN6pusbFVv3OC2rz22GZS8DkjJja8oMV5gSWMSAr1QlU8XaXabuv84c6iVW2Y592ZLU/WZkk423iZ",
- "vITCDQmrFQrKAGyvAgI9r4STufqMqXbZGYlynDyR7FuqZH2GEjjFyQULLdqvZZqdTgf90n7jnXknyJyv",
- "FulSpQOPjH/STRE9/5pxGY9ZTjXkC11lJ07XiaXMRLfVenx89E6nWeYxPm1NZNYKMghFC/MwJjNodd4+",
- "COAERMvs2jK31AZi1r1LbVvTa01i4SF0T//9L9Q56XRcw9sNn2JK/qlPBifIx1xSlcu86t0O37moNxoG",
- "Lur3g56LBqNg6KJRcKH/jXrqT/9I0+wlCeJkGkuhHA74DCJPV8iSSBVeDfw/FNj6UKRbDwasy8vertP2",
- "Ot7JMU6yGHtnRSuK4owoxXsn3omKNFjG+lxaX7S1LVqFgMc4I3pgCtLmNZITmAFSNddKBqYxrAocyryc",
- "K5A9RTuorE7onctEz+n++sUhiqzixnEd3TDqFuZf9xiFHm7xNmebR5rVi8VH7f66PtPydE5OTK+TSqDS",
- "xFfdUlP8tn4TJsou99jxwsHWi1isuX8zDXMuVBlGqpQ2SeoG9koc2foRT/j5wnVOT948M1pWqmmptZrE",
- "D3uQ+EGRODMafhEJtVaTaO9Bom1InO5B4tSQONuDxJkh8XoPEq81ic7bl5PovFUkzvc4kXNzIud7qPPc",
- "qDOCCc4T+WIy5XrtRhkTtstm4xgIIwqPJSqtRiOfie8ejnRR+45F82dFohcEoNWEQ/G7WAuH7W/BRLMc",
- "WCb1tWQiD0MQYpInyVw/zKldAYQc9J1PlX+Kst3HQea86GSpmfdO+Qbu3jEtuhhwZGpi80nL/fSTzj6j",
- "0lRPqyxQeEzma4y4CIehftE5LQuRqs/W1c24W8bkolWJqYG1NWtbAbf1pZ6aLTZa21qydQi9q6G3vYcg",
- "bSNIew9B2kaQ9vkeJM4PAGAHgIXr7ORA2rsTkJaexB3NKrR4sqJZxY4LTaqJHkG9mtoFScTqgpcBygqR",
- "xcL9pin0mf0l/LYaEaVYhnHjIXjPJ8MIEYHMQUWHTPb3GU4PUciShm6pjncNLJYS+Q8YVU6+fSa6Wn/X",
- "4pewpqiHGvxQgx+CX1WD2290f2YRmcwRpgg+EyGVh+wYBs3KIY16/qWfj00/8/808u3SA0iBT+FYq/mv",
- "XyEAmhv4nZoC3yEUj/TrrHo4tjymNY8Ams0CTCP9ELS4X1u5F8mzSBfsDULNtkH50mDMormO49Yk95qh",
- "vlGKh17O7wEnDg2DQ8Pgm6KV60g8VQCiH3YUOd7a8yHno37bYknp73QU2T2h9/M/aEL/u2ptf/eCoo4G",
- "FRA1kWAL0hzA4gAWB7D4tt3l4o1MGZzN+5INlzmO68wwJ3icVE+21Ezj1gVb1fsU+IzTLAEvZKnTDB/F",
- "widfaL/xzhsvtDudjqd4/rj4TwAAAP//KyCX7MREAAA=",
+ "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",
+ "3nih3el0PMXzx8V/AgAA///zJgSKrkQAAA==",
}
// GetSwagger returns the content of the embedded swagger specification file
@@ -307,19 +307,19 @@
pathPrefix := path.Dir(pathToFile)
- for rawPath, rawFunc := range externalRef0.PathToRawSpec(path.Join(pathPrefix, "TS29122_CommonData.yaml")) {
+ for rawPath, rawFunc := range externalRef0.PathToRawSpec(path.Join(pathPrefix, "CommonData.yaml")) {
if _, ok := res[rawPath]; ok {
// it is not possible to compare functions in golang, so always overwrite the old value
}
res[rawPath] = rawFunc
}
- for rawPath, rawFunc := range externalRef1.PathToRawSpec(path.Join(pathPrefix, "TS29571_CommonData.yaml")) {
+ for rawPath, rawFunc := range externalRef1.PathToRawSpec(path.Join(pathPrefix, "TS29122_CommonData.yaml")) {
if _, ok := res[rawPath]; ok {
// it is not possible to compare functions in golang, so always overwrite the old value
}
res[rawPath] = rawFunc
}
- for rawPath, rawFunc := range externalRef2.PathToRawSpec(path.Join(pathPrefix, "TS29572_Nlmf_Location.yaml")) {
+ for rawPath, rawFunc := range externalRef2.PathToRawSpec(path.Join(pathPrefix, "TS29571_CommonData.yaml")) {
if _, ok := res[rawPath]; ok {
// it is not possible to compare functions in golang, so always overwrite the old value
}
diff --git a/capif/internal/readonly/publishserviceapi/publishservice-types.gen.go b/capif/internal/readonly/publishserviceapi/publishservice-types.gen.go
index 28a89ef..05811ad 100644
--- a/capif/internal/readonly/publishserviceapi/publishservice-types.gen.go
+++ b/capif/internal/readonly/publishserviceapi/publishservice-types.gen.go
@@ -4,9 +4,9 @@
package publishserviceapi
import (
- externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common"
- externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
- externalRef2 "oransc.org/nonrtric/plt/capif/internal/readonly/nlfm"
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/aggregatecommon"
+ externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
+ externalRef2 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
)
// Defines values for CommunicationType.
@@ -53,13 +53,13 @@
// The location information (e.g. civic address, GPS coordinates, data center ID) where the AEF providing the service API is located.
type AefLocation struct {
// Indicates a Civic address.
- CivicAddr *externalRef2.CivicAddress `json:"civicAddr,omitempty"`
+ CivicAddr *externalRef0.CivicAddress `json:"civicAddr,omitempty"`
// Identifies the data center where the AEF providing the service API is located.
DcId *string `json:"dcId,omitempty"`
// Geographic area specified by different shape.
- GeoArea *externalRef2.GeographicArea `json:"geoArea,omitempty"`
+ GeoArea *externalRef0.GeographicArea `json:"geoArea,omitempty"`
}
// Represents the AEF profile data.
@@ -113,13 +113,13 @@
// Represents the description of an API's interface.
type InterfaceDescription struct {
// string identifying a Ipv4 address formatted in the "dotted decimal" notation as defined in IETF RFC 1166.
- Ipv4Addr *externalRef0.Ipv4Addr `json:"ipv4Addr,omitempty"`
+ Ipv4Addr *externalRef1.Ipv4Addr `json:"ipv4Addr,omitempty"`
// string identifying a Ipv6 address formatted according to clause 4 in IETF RFC 5952. The mixed Ipv4 Ipv6 notation according to clause 5 of IETF RFC 5952 shall not be used.
- Ipv6Addr *externalRef0.Ipv6Addr `json:"ipv6Addr,omitempty"`
+ Ipv6Addr *externalRef1.Ipv6Addr `json:"ipv6Addr,omitempty"`
// Unsigned integer with valid values between 0 and 65535.
- Port *externalRef0.Port `json:"port,omitempty"`
+ Port *externalRef1.Port `json:"port,omitempty"`
// Security methods supported by the interface, it take precedence over the security methods provided in AefProfile, for this specific interface.
SecurityMethods *[]SecurityMethod `json:"securityMethods,omitempty"`
@@ -173,7 +173,7 @@
ApiName string `json:"apiName"`
// A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported.
- ApiSuppFeats *externalRef1.SupportedFeatures `json:"apiSuppFeats,omitempty"`
+ ApiSuppFeats *externalRef2.SupportedFeatures `json:"apiSuppFeats,omitempty"`
// CAPIF core function identifier.
CcfId *string `json:"ccfId,omitempty"`
@@ -189,7 +189,7 @@
ShareableInfo *ShareableInformation `json:"shareableInfo,omitempty"`
// A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported.
- SupportedFeatures *externalRef1.SupportedFeatures `json:"supportedFeatures,omitempty"`
+ SupportedFeatures *externalRef2.SupportedFeatures `json:"supportedFeatures,omitempty"`
}
// Represents the parameters to request the modification of an APF published API resource.
@@ -197,7 +197,7 @@
AefProfiles *[]AefProfile `json:"aefProfiles,omitempty"`
// A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported.
- ApiSuppFeats *externalRef1.SupportedFeatures `json:"apiSuppFeats,omitempty"`
+ ApiSuppFeats *externalRef2.SupportedFeatures `json:"apiSuppFeats,omitempty"`
// CAPIF core function identifier.
CcfId *string `json:"ccfId,omitempty"`
@@ -231,7 +231,7 @@
CustOperations *[]CustomOperation `json:"custOperations,omitempty"`
// string with format "date-time" as defined in OpenAPI.
- Expiry *externalRef0.DateTime `json:"expiry,omitempty"`
+ Expiry *externalRef1.DateTime `json:"expiry,omitempty"`
// Resources supported by the API.
Resources *[]Resource `json:"resources,omitempty"`
diff --git a/capif/internal/readonly/common/generator_settings.yaml b/capif/internal/readonly/routinginfoapi/generator_settings_server.yaml
similarity index 75%
copy from capif/internal/readonly/common/generator_settings.yaml
copy to capif/internal/readonly/routinginfoapi/generator_settings_server.yaml
index 368568c..adc3928 100644
--- a/capif/internal/readonly/common/generator_settings.yaml
+++ b/capif/internal/readonly/routinginfoapi/generator_settings_server.yaml
@@ -19,12 +19,12 @@
#
output:
- internal/readonly/common/common.gen.go
-package: common
+ internal/readonly/routinginfoapi/routinginfo-server.gen.go
+package: routinginfoapi
generate:
- - types
- - skip-prune
+ - server
- spec
import-mapping:
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
- TS29572_Nlmf_Location.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/nlfm
+ TS29222_CAPIF_Publish_Service_API.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi
\ No newline at end of file
diff --git a/capif/internal/readonly/common/generator_settings.yaml b/capif/internal/readonly/routinginfoapi/generator_settings_types.yaml
similarity index 71%
copy from capif/internal/readonly/common/generator_settings.yaml
copy to capif/internal/readonly/routinginfoapi/generator_settings_types.yaml
index 368568c..7419f12 100644
--- a/capif/internal/readonly/common/generator_settings.yaml
+++ b/capif/internal/readonly/routinginfoapi/generator_settings_types.yaml
@@ -19,12 +19,12 @@
#
output:
- internal/readonly/common/common.gen.go
-package: common
+ internal/readonly/routinginfoapi/routinginfo-types.gen.go
+package: routinginfoapi
generate:
- types
- - skip-prune
- - spec
import-mapping:
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
- TS29572_Nlmf_Location.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/nlfm
+ CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/aggregatecommon
+ TS29222_CAPIF_Publish_Service_API.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi
\ No newline at end of file
diff --git a/capif/internal/readonly/routinginfoapi/routinginfo-server.gen.go b/capif/internal/readonly/routinginfoapi/routinginfo-server.gen.go
new file mode 100644
index 0000000..3c8ce7c
--- /dev/null
+++ b/capif/internal/readonly/routinginfoapi/routinginfo-server.gen.go
@@ -0,0 +1,212 @@
+// Package routinginfoapi provides primitives to interact with the openapi HTTP API.
+//
+// Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
+package routinginfoapi
+
+import (
+ "bytes"
+ "compress/gzip"
+ "encoding/base64"
+ "fmt"
+ "net/http"
+ "net/url"
+ "path"
+ "strings"
+
+ "github.com/deepmap/oapi-codegen/pkg/runtime"
+ "github.com/getkin/kin-openapi/openapi3"
+ "github.com/labstack/echo/v4"
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
+ externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
+ externalRef2 "oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi"
+)
+
+// ServerInterface represents all server handlers.
+type ServerInterface interface {
+
+ // (GET /service-apis/{serviceApiId})
+ GetServiceApisServiceApiId(ctx echo.Context, serviceApiId string, params GetServiceApisServiceApiIdParams) error
+}
+
+// ServerInterfaceWrapper converts echo contexts to parameters.
+type ServerInterfaceWrapper struct {
+ Handler ServerInterface
+}
+
+// GetServiceApisServiceApiId converts echo context to params.
+func (w *ServerInterfaceWrapper) GetServiceApisServiceApiId(ctx echo.Context) error {
+ var err error
+ // ------------- Path parameter "serviceApiId" -------------
+ var serviceApiId string
+
+ err = runtime.BindStyledParameterWithLocation("simple", false, "serviceApiId", runtime.ParamLocationPath, ctx.Param("serviceApiId"), &serviceApiId)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter serviceApiId: %s", err))
+ }
+
+ // Parameter object where we will unmarshal all parameters from the context
+ var params GetServiceApisServiceApiIdParams
+ // ------------- Required query parameter "aef-id" -------------
+
+ err = runtime.BindQueryParameter("form", true, true, "aef-id", ctx.QueryParams(), ¶ms.AefId)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter aef-id: %s", err))
+ }
+
+ // ------------- Optional query parameter "supp-feat" -------------
+
+ err = runtime.BindQueryParameter("form", true, false, "supp-feat", ctx.QueryParams(), ¶ms.SuppFeat)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter supp-feat: %s", err))
+ }
+
+ // Invoke the callback with all the unmarshalled arguments
+ err = w.Handler.GetServiceApisServiceApiId(ctx, serviceApiId, params)
+ return err
+}
+
+// This is a simple interface which specifies echo.Route addition functions which
+// are present on both echo.Echo and echo.Group, since we want to allow using
+// either of them for path registration
+type EchoRouter interface {
+ CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+ TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
+}
+
+// RegisterHandlers adds each server route to the EchoRouter.
+func RegisterHandlers(router EchoRouter, si ServerInterface) {
+ RegisterHandlersWithBaseURL(router, si, "")
+}
+
+// Registers handlers, and prepends BaseURL to the paths, so that the paths
+// can be served under a prefix.
+func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL string) {
+
+ wrapper := ServerInterfaceWrapper{
+ Handler: si,
+ }
+
+ router.GET(baseURL+"/service-apis/:serviceApiId", wrapper.GetServiceApisServiceApiId)
+
+}
+
+// Base64 encoded, gzipped, json marshaled Swagger object
+var swaggerSpec = []string{
+
+ "H4sIAAAAAAAC/6RW0W7buBL9FYL3PuwCsmTJcdL4zZs2hbDA1rCMfWkDg5FGNrsSyQ4pp9nAH7S/sV+2",
+ "GFJJnMQ10vgliuzhOWdmznB8x0vdGq1AOcsnd9yWa2iF/zc3m9NpVSFYOxdqBfRZBbZEaZzUik/4HAyC",
+ "paMsn21OmQjRDCk85hE3qA2gk+ABQVX0+D9CzSd8UWTnaZYtL3TbavVeOBHfirb5X/IoKOnVJPdS+Dbi",
+ "1gl0R+NsI47wrZMIFZ987kEjL/Eq4u7WAJ9wff0VSkekc905qVa5qvXBMgjFprOcYQhnUtUaW0FxL8vR",
+ "B827JrxLB63dSWxvBvPHQ6SrlSoPx9IH1QJR3L7I8AnbgRQ98k+kiF2zp9UC6hnqWgasnU5l1KnpLL9c",
+ "zrrrRtr1sgDcyBKW01n+48ZNH/G2EZdmc0Jt9LbcW7tXmuHkib8P19PTnh6mPWi6V/I869tOJV92jYLh",
+ "uwNUonmvS/uycaOPsxlbFCw7j7MsY3+mZ/EoHrJQH9/ISxQt3Gj8i9UamY//Q6NbX+tOVRRhecQ7bPiE",
+ "r50zkyS5ubmJRytjYo2rpHYmKQyUNhFYruUGkux8aQEl2CSQJr52eyeH+Il1vmdevqh//2HZMEujIOoT",
+ "roSSf/svRcNmAp0CtOyX6Tz/LWLTRV5E7OKimEbsw6LII7Yo3vvHYkp/Ln6Nv6hp0zCUq7WzjOyMG6ji",
+ "L4pH3ElHVuXBmr2cJY07+ZJHfANog+Y0TuPhQDRmLeKMUtMGlDCSih0P4yHNgnBr34vEBnMPhJE2uevf",
+ "pkbm1Za+X4HbN2sOJWzAMreGQ9cJDZx/ySs+4R/BFQ/4ttih8oqoyw7Q8snn54R5BcrJWgIyXTPBTJhM",
+ "qFgvmIUaSAqm3HjElWipXvYpzaNxHXYQ9duEUuyNax1KtSKTHxbhM/9weU/6rQO8fWQVUA/kkXwLzWrZ",
+ "OEAmEaGBjVCOTGG0skD2aISDijnNOmU7YzTSaw3CdQj2B8IocEAxfFfLzvU3PktftaiKe8bLe8Lt9ory",
+ "7fURbDYc0qPUyoHyPhLGNLL0lki+Wkrz7qWMQ2vF7zd/qzwt1qffY3L6aHj2k4v3QXBCZz3EuyMg3hHE",
+ "Scj7TRB01kOkR0CkAWJ0BMQoQJwcAXESIE6PgDj1EOkRKtKgIjt/O0R2ThDjI5o6Dk0dH9GRcehIBbXo",
+ "GvdmmPvz260fIr9h+is3bNA7YeRca7dNSmFkPehv9gHd7MkmpUUjUIrr/idhHx12RC/Nb2E7SRL4LlrT",
+ "QFzqlj8f2P4gE5ZVUEsFFZOK2e66bERngZ3FY7pmn/46INlX2/8CAAD//0fkW+0SDAAA",
+}
+
+// GetSwagger returns the content of the embedded swagger specification file
+// or error if failed to decode
+func decodeSpec() ([]byte, error) {
+ zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, ""))
+ if err != nil {
+ return nil, fmt.Errorf("error base64 decoding spec: %s", err)
+ }
+ zr, err := gzip.NewReader(bytes.NewReader(zipped))
+ if err != nil {
+ return nil, fmt.Errorf("error decompressing spec: %s", err)
+ }
+ var buf bytes.Buffer
+ _, err = buf.ReadFrom(zr)
+ if err != nil {
+ return nil, fmt.Errorf("error decompressing spec: %s", err)
+ }
+
+ return buf.Bytes(), nil
+}
+
+var rawSpec = decodeSpecCached()
+
+// a naive cached of a decoded swagger spec
+func decodeSpecCached() func() ([]byte, error) {
+ data, err := decodeSpec()
+ return func() ([]byte, error) {
+ return data, err
+ }
+}
+
+// Constructs a synthetic filesystem for resolving external references when loading openapi specifications.
+func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) {
+ var res = make(map[string]func() ([]byte, error))
+ if len(pathToFile) > 0 {
+ res[pathToFile] = rawSpec
+ }
+
+ pathPrefix := path.Dir(pathToFile)
+
+ for rawPath, rawFunc := range externalRef0.PathToRawSpec(path.Join(pathPrefix, "TS29122_CommonData.yaml")) {
+ if _, ok := res[rawPath]; ok {
+ // it is not possible to compare functions in golang, so always overwrite the old value
+ }
+ res[rawPath] = rawFunc
+ }
+ for rawPath, rawFunc := range externalRef2.PathToRawSpec(path.Join(pathPrefix, "TS29222_CAPIF_Publish_Service_API.yaml")) {
+ if _, ok := res[rawPath]; ok {
+ // it is not possible to compare functions in golang, so always overwrite the old value
+ }
+ res[rawPath] = rawFunc
+ }
+ for rawPath, rawFunc := range externalRef1.PathToRawSpec(path.Join(pathPrefix, "TS29571_CommonData.yaml")) {
+ if _, ok := res[rawPath]; ok {
+ // it is not possible to compare functions in golang, so always overwrite the old value
+ }
+ res[rawPath] = rawFunc
+ }
+ return res
+}
+
+// GetSwagger returns the Swagger specification corresponding to the generated code
+// in this file. The external references of Swagger specification are resolved.
+// The logic of resolving external references is tightly connected to "import-mapping" feature.
+// Externally referenced files must be embedded in the corresponding golang packages.
+// Urls can be supported but this task was out of the scope.
+func GetSwagger() (swagger *openapi3.T, err error) {
+ var resolvePath = PathToRawSpec("")
+
+ loader := openapi3.NewLoader()
+ loader.IsExternalRefsAllowed = true
+ loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) {
+ var pathToFile = url.String()
+ pathToFile = path.Clean(pathToFile)
+ getSpec, ok := resolvePath[pathToFile]
+ if !ok {
+ err1 := fmt.Errorf("path not found: %s", pathToFile)
+ return nil, err1
+ }
+ return getSpec()
+ }
+ var specData []byte
+ specData, err = rawSpec()
+ if err != nil {
+ return
+ }
+ swagger, err = loader.LoadFromData(specData)
+ if err != nil {
+ return
+ }
+ return
+}
diff --git a/capif/internal/readonly/routinginfoapi/routinginfo-types.gen.go b/capif/internal/readonly/routinginfoapi/routinginfo-types.gen.go
new file mode 100644
index 0000000..bd908df
--- /dev/null
+++ b/capif/internal/readonly/routinginfoapi/routinginfo-types.gen.go
@@ -0,0 +1,42 @@
+// Package routinginfoapi provides primitives to interact with the openapi HTTP API.
+//
+// Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
+package routinginfoapi
+
+import (
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/aggregatecommon"
+ externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
+ externalRef2 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
+ externalRef3 "oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi"
+)
+
+// Represents IPv6 address range.
+type Ipv6AddressRange struct {
+ // string identifying a Ipv6 address formatted according to clause 4 in IETF RFC 5952. The mixed Ipv4 Ipv6 notation according to clause 5 of IETF RFC 5952 shall not be used.
+ End externalRef1.Ipv6Addr `json:"end"`
+
+ // string identifying a Ipv6 address formatted according to clause 4 in IETF RFC 5952. The mixed Ipv4 Ipv6 notation according to clause 5 of IETF RFC 5952 shall not be used.
+ Start externalRef1.Ipv6Addr `json:"start"`
+}
+
+// Represents an API routing information.
+type RoutingInfo struct {
+ RoutingRules []RoutingRule `json:"routingRules"`
+}
+
+// Represents an API routing rule.
+type RoutingRule struct {
+ // Represents the AEF profile data.
+ AefProfile externalRef3.AefProfile `json:"aefProfile"`
+ Ipv4AddrRanges *[]externalRef0.Ipv4AddressRange `json:"ipv4AddrRanges,omitempty"`
+ Ipv6AddrRanges *[]Ipv6AddressRange `json:"ipv6AddrRanges,omitempty"`
+}
+
+// GetServiceApisServiceApiIdParams defines parameters for GetServiceApisServiceApiId.
+type GetServiceApisServiceApiIdParams struct {
+ // Identifier of the AEF
+ AefId string `json:"aef-id"`
+
+ // To filter irrelevant responses related to unsupported features
+ SuppFeat *externalRef2.SupportedFeatures `json:"supp-feat,omitempty"`
+}
diff --git a/capif/internal/readonly/securityapi/generator_settings_server.yaml b/capif/internal/readonly/securityapi/generator_settings_server.yaml
index 386935b..ee5cb5a 100644
--- a/capif/internal/readonly/securityapi/generator_settings_server.yaml
+++ b/capif/internal/readonly/securityapi/generator_settings_server.yaml
@@ -25,6 +25,6 @@
- server
- spec
import-mapping:
- TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
TS29222_CAPIF_Publish_Service_API.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi
\ No newline at end of file
diff --git a/capif/internal/readonly/securityapi/generator_settings_types.yaml b/capif/internal/readonly/securityapi/generator_settings_types.yaml
index 4084b59..ed334fb 100644
--- a/capif/internal/readonly/securityapi/generator_settings_types.yaml
+++ b/capif/internal/readonly/securityapi/generator_settings_types.yaml
@@ -24,6 +24,6 @@
generate:
- types
import-mapping:
- TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common
+ TS29122_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29122
TS29571_CommonData.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/common29571
TS29222_CAPIF_Publish_Service_API.yaml: oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi
\ No newline at end of file
diff --git a/capif/internal/readonly/securityapi/security-server.gen.go b/capif/internal/readonly/securityapi/security-server.gen.go
index b85b594..631c90f 100644
--- a/capif/internal/readonly/securityapi/security-server.gen.go
+++ b/capif/internal/readonly/securityapi/security-server.gen.go
@@ -16,7 +16,7 @@
"github.com/deepmap/oapi-codegen/pkg/runtime"
"github.com/getkin/kin-openapi/openapi3"
"github.com/labstack/echo/v4"
- externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common"
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
externalRef2 "oransc.org/nonrtric/plt/capif/internal/readonly/publishserviceapi"
)
diff --git a/capif/internal/readonly/securityapi/security-types.gen.go b/capif/internal/readonly/securityapi/security-types.gen.go
index 02321ed..d8a7a72 100644
--- a/capif/internal/readonly/securityapi/security-types.gen.go
+++ b/capif/internal/readonly/securityapi/security-types.gen.go
@@ -4,7 +4,7 @@
package securityapi
import (
- externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common"
+ externalRef0 "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
externalRef1 "oransc.org/nonrtric/plt/capif/internal/readonly/common29571"
)
diff --git a/capif/internal/security/security.go b/capif/internal/security/security.go
index 8072de3..07624b4 100644
--- a/capif/internal/security/security.go
+++ b/capif/internal/security/security.go
@@ -28,7 +28,7 @@
"oransc.org/nonrtric/plt/capif/internal/invokermanagement"
"oransc.org/nonrtric/plt/capif/internal/providermanagement"
"oransc.org/nonrtric/plt/capif/internal/publishservice"
- "oransc.org/nonrtric/plt/capif/internal/readonly/common"
+ "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
"oransc.org/nonrtric/plt/capif/internal/readonly/securityapi"
)
@@ -105,7 +105,7 @@
}
func sendCoreError(ctx echo.Context, code int, message string) error {
- pd := common.ProblemDetails{
+ pd := common29122.ProblemDetails{
Cause: &message,
Status: &code,
}
diff --git a/capif/internal/security/security_test.go b/capif/internal/security/security_test.go
index 2685ed0..b3c4f5f 100644
--- a/capif/internal/security/security_test.go
+++ b/capif/internal/security/security_test.go
@@ -39,7 +39,7 @@
servicemocks "oransc.org/nonrtric/plt/capif/internal/providermanagement/mocks"
"oransc.org/nonrtric/plt/capif/internal/publishservice"
publishmocks "oransc.org/nonrtric/plt/capif/internal/publishservice/mocks"
- "oransc.org/nonrtric/plt/capif/internal/readonly/common"
+ "oransc.org/nonrtric/plt/capif/internal/readonly/common29122"
"oransc.org/nonrtric/plt/capif/internal/readonly/securityapi"
)
@@ -70,7 +70,7 @@
assert.NotEmpty(t, resultResponse.AccessToken)
assert.Equal(t, "scope#aefId:path", *resultResponse.Scope)
assert.Equal(t, securityapi.AccessTokenRspTokenTypeBearer, resultResponse.TokenType)
- assert.Equal(t, common.DurationSec(0), resultResponse.ExpiresIn)
+ assert.Equal(t, common29122.DurationSec(0), resultResponse.ExpiresIn)
invokerRegisterMock.AssertCalled(t, "IsInvokerRegistered", "id")
invokerRegisterMock.AssertCalled(t, "VerifyInvokerSecret", "id", "secret")
serviceRegisterMock.AssertCalled(t, "IsFunctionRegistered", "aefId")
diff --git a/capif/internal/specificationfixer/specificationfixer.go b/capif/internal/specificationfixer/specificationfixer.go
new file mode 100644
index 0000000..2efbf4b
--- /dev/null
+++ b/capif/internal/specificationfixer/specificationfixer.go
@@ -0,0 +1,71 @@
+// -
+// ========================LICENSE_START=================================
+// O-RAN-SC
+// %%
+// Copyright (C) 2022: Nordix Foundation
+// %%
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ========================LICENSE_END===================================
+//
+
+package main
+
+import (
+ "flag"
+ "io/ioutil"
+ "log"
+
+ "gopkg.in/yaml.v2"
+)
+
+var apiDir *string
+
+func main() {
+ apiDir = flag.String("apidir", "", "Directory containing API definitions to fix")
+ flag.Parse()
+
+ m := getData("TS29571_CommonData.yaml")
+ components := m["components"]
+ cMap := components.(map[interface{}]interface{})
+ schemas := cMap["schemas"].(map[interface{}]interface{})
+ snssaiExtensionData := schemas["SnssaiExtension"].(map[interface{}]interface{})
+ props := snssaiExtensionData["properties"].(map[interface{}]interface{})
+ wildcardSdData := props["wildcardSd"].(map[interface{}]interface{})
+ delete(wildcardSdData, "enum")
+
+ writeFile("TS29571_CommonData.yaml", m)
+}
+
+func getData(filename string) map[string]interface{} {
+ yamlFile, err := ioutil.ReadFile(*apiDir + "/" + filename)
+ if err != nil {
+ log.Fatalf("Error reading yamlFile. #%v ", err)
+ }
+ m := make(map[string]interface{})
+ err = yaml.Unmarshal(yamlFile, m)
+ if err != nil {
+ log.Fatalf("Unmarshal: %v", err)
+ }
+ return m
+}
+
+func writeFile(filename string, data map[string]interface{}) {
+ modCommon, err := yaml.Marshal(data)
+ if err != nil {
+ log.Fatalf("Marshal: #%v ", err)
+ }
+ err = ioutil.WriteFile(*apiDir+"/"+filename, modCommon, 0644)
+ if err != nil {
+ log.Fatalf("Error writing yamlFile. #%v ", err)
+ }
+}