1 // Package invokermanagementapi provides primitives to interact with the openapi HTTP API.
3 // Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
4 package invokermanagementapi
16 "github.com/deepmap/oapi-codegen/pkg/runtime"
17 "github.com/getkin/kin-openapi/openapi3"
18 "github.com/labstack/echo/v4"
19 externalRef0 "oransc.org/nonrtric/capifcore/internal/common29122"
20 externalRef1 "oransc.org/nonrtric/capifcore/internal/common29571"
21 externalRef2 "oransc.org/nonrtric/capifcore/internal/publishserviceapi"
24 // ServerInterface represents all server handlers.
25 type ServerInterface interface {
27 // (POST /onboardedInvokers)
28 PostOnboardedInvokers(ctx echo.Context) error
30 // (DELETE /onboardedInvokers/{onboardingId})
31 DeleteOnboardedInvokersOnboardingId(ctx echo.Context, onboardingId string) error
33 // (PATCH /onboardedInvokers/{onboardingId})
34 ModifyIndApiInvokeEnrolment(ctx echo.Context, onboardingId string) error
36 // (PUT /onboardedInvokers/{onboardingId})
37 PutOnboardedInvokersOnboardingId(ctx echo.Context, onboardingId string) error
40 // ServerInterfaceWrapper converts echo contexts to parameters.
41 type ServerInterfaceWrapper struct {
42 Handler ServerInterface
45 // PostOnboardedInvokers converts echo context to params.
46 func (w *ServerInterfaceWrapper) PostOnboardedInvokers(ctx echo.Context) error {
49 // Invoke the callback with all the unmarshalled arguments
50 err = w.Handler.PostOnboardedInvokers(ctx)
54 // DeleteOnboardedInvokersOnboardingId converts echo context to params.
55 func (w *ServerInterfaceWrapper) DeleteOnboardedInvokersOnboardingId(ctx echo.Context) error {
57 // ------------- Path parameter "onboardingId" -------------
58 var onboardingId string
60 err = runtime.BindStyledParameterWithLocation("simple", false, "onboardingId", runtime.ParamLocationPath, ctx.Param("onboardingId"), &onboardingId)
62 return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter onboardingId: %s", err))
65 // Invoke the callback with all the unmarshalled arguments
66 err = w.Handler.DeleteOnboardedInvokersOnboardingId(ctx, onboardingId)
70 // ModifyIndApiInvokeEnrolment converts echo context to params.
71 func (w *ServerInterfaceWrapper) ModifyIndApiInvokeEnrolment(ctx echo.Context) error {
73 // ------------- Path parameter "onboardingId" -------------
74 var onboardingId string
76 err = runtime.BindStyledParameterWithLocation("simple", false, "onboardingId", runtime.ParamLocationPath, ctx.Param("onboardingId"), &onboardingId)
78 return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter onboardingId: %s", err))
81 // Invoke the callback with all the unmarshalled arguments
82 err = w.Handler.ModifyIndApiInvokeEnrolment(ctx, onboardingId)
86 // PutOnboardedInvokersOnboardingId converts echo context to params.
87 func (w *ServerInterfaceWrapper) PutOnboardedInvokersOnboardingId(ctx echo.Context) error {
89 // ------------- Path parameter "onboardingId" -------------
90 var onboardingId string
92 err = runtime.BindStyledParameterWithLocation("simple", false, "onboardingId", runtime.ParamLocationPath, ctx.Param("onboardingId"), &onboardingId)
94 return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter onboardingId: %s", err))
97 // Invoke the callback with all the unmarshalled arguments
98 err = w.Handler.PutOnboardedInvokersOnboardingId(ctx, onboardingId)
102 // This is a simple interface which specifies echo.Route addition functions which
103 // are present on both echo.Echo and echo.Group, since we want to allow using
104 // either of them for path registration
105 type EchoRouter interface {
106 CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
107 DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
108 GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
109 HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
110 OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
111 PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
112 POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
113 PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
114 TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
117 // RegisterHandlers adds each server route to the EchoRouter.
118 func RegisterHandlers(router EchoRouter, si ServerInterface) {
119 RegisterHandlersWithBaseURL(router, si, "")
122 // Registers handlers, and prepends BaseURL to the paths, so that the paths
123 // can be served under a prefix.
124 func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL string) {
126 wrapper := ServerInterfaceWrapper{
130 router.POST(baseURL+"/onboardedInvokers", wrapper.PostOnboardedInvokers)
131 router.DELETE(baseURL+"/onboardedInvokers/:onboardingId", wrapper.DeleteOnboardedInvokersOnboardingId)
132 router.PATCH(baseURL+"/onboardedInvokers/:onboardingId", wrapper.ModifyIndApiInvokeEnrolment)
133 router.PUT(baseURL+"/onboardedInvokers/:onboardingId", wrapper.PutOnboardedInvokersOnboardingId)
137 // Base64 encoded, gzipped, json marshaled Swagger object
138 var swaggerSpec = []string{
140 "H4sIAAAAAAAC/+xa75LbthF/FQzSmSRTmpR4vjqnb8pdnHKa5DSW3H7IeW4gcikiRwIsAJ6i3uiB+hp9",
141 "sg7+UCJFSlZP7tXjyuOxJQpYLPbPb39Y4gnHvCg5A6YkHj1hGWdQEPNxPIki9sgfQPzABM8LYOoGFKG5",
142 "+TUBGQtaKsoZHuGIpVwURH9DZM4rhVQGaDyJkBOBVEYUEvD3CqSCBCmOOJtzIhLs4VLwEoSiYCSTkrpJ",
143 "UdJdScukTmZ0g4iUdMEgQfOVWfJ6PIneopgLQGnFYqOQ4htt6pnLjOaAOHtlVKBssTvCR9OM5DliXKE5",
144 "oFKABKYQZWbgn2ezCZrcTmf1jlAqeNFZxS3co5NnDWCXR1RJyNN6yfZy+glXGQi7qFtPIsISJECWnEmQ",
145 "/h3DHhZAkluWr/BIiQo8rFYl4BGWSlC2wGuvadmtv7om/hEYCBoj2nCqgJw4v+3uUlZxhohEiQ0OxFMz",
146 "JIFHGgPiwnwjZZnT2MiyyvYp9xOVSqvzBwEpHuGvgm1sBi4wg/EkMsPWHmZc0dQJvQGpKNtsyEmYTcOr",
147 "YRjeX/Oi4OyGKOKvSJH3Cn4vqBbqopKyxY6NDil12ztprV1i3DUDqX5paNu1+RSUsa2oQIfytJrrX+c2",
148 "iOogOxDgEliCCFJ6WNMu1jEp1SlCmf4b56SSgN74f/KRWzUluTSe4gVV2ssm4JZUQstXc85zIGZfsipL",
149 "LhQkb4GoStjEbRj98s3wKKNPO3LWHl7CXPL4wRjsmrOULp7p0r91Ba2dU6iABI9+3ePu/bH1YWMNPv8N",
150 "YhOH+4FyQlScdZ39DlyC6zRuouTXEkEtYpNPimtIqMpEJ6B/CC7PSf0CSb3uj4B6m22rzzJAOZVK20+C",
151 "MMYbTyJpy+FujaRSwz1fWpdYV2APUwXFboKF2gAaCu4n1TynMrufWvH340l0IN/soPEkumnoufZwQVlk",
152 "lxlu9keEICv94+0+8+0N62ZlbUacC6NmoT0Q0Nf6oQkG6DdtO3UWLsTjnOr8ibezPVQK/kiTgzxhfwi7",
153 "JYyl47/A6hhlSjMYPcCqT+g2IKcQC1DHSNzOQdJMev6udkCwb4t9QLeNg8PFrIlv7WrE01ZocOFwTVOZ",
154 "KleHgqGPhH4EU/bNfBYwCZC8EjH8xONPgEh2v3t5wB3WTOAOI8oSE8EakGOQMq3ypgV9dFuXaiTrqaac",
155 "3+Gewr3jd6dE19V6IPyuQDCS3/C4h/Bf/DiZoNkUhVd+GIbor8M3/qU/QNYCJnDfClLAkosHlHKBzPhf",
156 "uFDZnFcsMSCIPVyJHI9wplQpR0GwXC79i0VZ+lwsglSVwbSEWAZExBl9hCC8upcgKMjArhpoQ2p06T8l",
157 "6GWbJa0gjCxAx4GP0B371z9ROAhDz6p2KxaE0X8Yz5IcTYhQDIRE34zfRd97aDyLph66vp6OPfTDbBp5",
158 "aDa9Mf/Nxvqf62+NzHGeI0EXmZI6oEE8QuLyj6pcG9hC9ngS3bvYvP95o5V+jD38CELaTQz90B8YtCiB",
159 "kZJqs/sDf6CThKjMeCVwqACJE2ieltyGdkzyfE7iB/PwQGV9cgzTn/Nk9VWwZ+S6Kbptb4MHq05B2x4F",
160 "G+ClkyIHx7Pcwt/zxKBqzJkCpmzmb8hF8Ju0etokOr5wt2Bq3Q5/nWA2Ee0ZSksNB6/79oaurVrom1YW",
161 "bnbUtNe32mEXgzf/ITxs1Aj0XCPiuxNEfKdFvB4Mni1CzzUihieIGFoRFyeIuLAiXp8g4rURMTxhI0O7",
162 "keEJGxnajQwvTxBxaUSEV88XEV5pEZcnxMWljYvLE5x6aZ2aQEpcCXyWmHr+2vzxdpL2WgBRYPgHLE0V",
163 "faRJRfIWPJWCpzQHzTo05zD5GyV4hCdcqtsOsP530OoQTzkGsYYvpsn+RlzNSCBp8JR8pQ2bAUlcVWoy",
164 "px1vcaYIZdKUivfvovqcwGCZr1BsfGnaXYaBeYjEMXdtO3t0lUpUsaoEoCdS0necq3VASvrKKfhqW/uD",
165 "x2G3ZgZPjRNisr6rK9PW7l7DhrtkWtsmHIT9HL5ByTMiteZQmjN3BmhbqDYtHsISfQwsBddWNMcn5Z/B",
166 "/Azm/z9g7uGPJqhNtRz6+gI35rnprPXDfhfu7ZQO4DfaHuYtBdEnGmXA7NfOuc2AAaIJMM2E9ee2Ag2I",
167 "bCJnjWlYn2TwyBB77GFGCnMea2twPCR9OIbYanjaUxkLouLMnNAbGqAlkYinqduHf2a6nyU4njGlgynm",
168 "wNzXif+ZJ/rc2sWKOj9d/7uLGXZmxJJx3aHakKYuVnzy1D6GhhYgFvDKbPyPn4oI2hcaR/HSwf+Il87M",
169 "a4qUMtrsODea75pfFdp7dIeuGvJFkKi7l62WtXv/sitIgKqEe7mmh9U8bs6TlX9nWusfaSr46PkanyH4",
170 "zE/P/PRFa4mHFVloVMdRP3XqvMDFH3T9qT6zhmyzyLl3MF9IY7ZnZ+cG7Rkzz5j5WTVo35vMlM+h3pNK",
171 "fXFn9ZfvK7dt0k96e9zRvo6kaW/PpQP8+R4P+ra04fa71PpZXd2e+lMvdLDLe+C00BD5tWxdqOlT3UNL",
172 "qjLEOHL2dT5r3mCtvdE8qJyL4rkonoviCxZFD5s7Iq5I2bswR7y/wh5+JIKSeb65I6VnWNhw6m3u1MDv",
173 "RLN6P+YF3sVCN3HnjvDmgvClLgPtiz5a7w/rfwcAAP//IwRBszUwAAA=",
176 // GetSwagger returns the content of the embedded swagger specification file
177 // or error if failed to decode
178 func decodeSpec() ([]byte, error) {
179 zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, ""))
181 return nil, fmt.Errorf("error base64 decoding spec: %s", err)
183 zr, err := gzip.NewReader(bytes.NewReader(zipped))
185 return nil, fmt.Errorf("error decompressing spec: %s", err)
188 _, err = buf.ReadFrom(zr)
190 return nil, fmt.Errorf("error decompressing spec: %s", err)
193 return buf.Bytes(), nil
196 var rawSpec = decodeSpecCached()
198 // a naive cached of a decoded swagger spec
199 func decodeSpecCached() func() ([]byte, error) {
200 data, err := decodeSpec()
201 return func() ([]byte, error) {
206 // Constructs a synthetic filesystem for resolving external references when loading openapi specifications.
207 func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) {
208 var res = make(map[string]func() ([]byte, error))
209 if len(pathToFile) > 0 {
210 res[pathToFile] = rawSpec
213 pathPrefix := path.Dir(pathToFile)
215 for rawPath, rawFunc := range externalRef0.PathToRawSpec(path.Join(pathPrefix, "TS29122_CommonData.yaml")) {
216 if _, ok := res[rawPath]; ok {
217 // it is not possible to compare functions in golang, so always overwrite the old value
219 res[rawPath] = rawFunc
221 for rawPath, rawFunc := range externalRef2.PathToRawSpec(path.Join(pathPrefix, "TS29222_CAPIF_Publish_Service_API.yaml")) {
222 if _, ok := res[rawPath]; ok {
223 // it is not possible to compare functions in golang, so always overwrite the old value
225 res[rawPath] = rawFunc
227 for rawPath, rawFunc := range externalRef1.PathToRawSpec(path.Join(pathPrefix, "TS29571_CommonData.yaml")) {
228 if _, ok := res[rawPath]; ok {
229 // it is not possible to compare functions in golang, so always overwrite the old value
231 res[rawPath] = rawFunc
236 // GetSwagger returns the Swagger specification corresponding to the generated code
237 // in this file. The external references of Swagger specification are resolved.
238 // The logic of resolving external references is tightly connected to "import-mapping" feature.
239 // Externally referenced files must be embedded in the corresponding golang packages.
240 // Urls can be supported but this task was out of the scope.
241 func GetSwagger() (swagger *openapi3.T, err error) {
242 var resolvePath = PathToRawSpec("")
244 loader := openapi3.NewLoader()
245 loader.IsExternalRefsAllowed = true
246 loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) {
247 var pathToFile = url.String()
248 pathToFile = path.Clean(pathToFile)
249 getSpec, ok := resolvePath[pathToFile]
251 err1 := fmt.Errorf("path not found: %s", pathToFile)
257 specData, err = rawSpec()
261 swagger, err = loader.LoadFromData(specData)