152 lines
7.3 KiB
Go
152 lines
7.3 KiB
Go
// Package api provides primitives to interact with the openapi HTTP API.
|
|
//
|
|
// Code generated by github.com/deepmap/oapi-codegen version v1.9.0 DO NOT EDIT.
|
|
package api
|
|
|
|
import (
|
|
"bytes"
|
|
"compress/gzip"
|
|
"encoding/base64"
|
|
"fmt"
|
|
"net/url"
|
|
"path"
|
|
"strings"
|
|
|
|
"github.com/getkin/kin-openapi/openapi3"
|
|
)
|
|
|
|
// Base64 encoded, gzipped, json marshaled Swagger object
|
|
var swaggerSpec = []string{
|
|
|
|
"H4sIAAAAAAAC/9xb3W4cN5Z+FaKyQBJsdbdseRdYXa1jx44M/wiRnFzYQotddbqLEossk6xu9xoC8hD7",
|
|
"JjMB5mJyNS+gvNHg8Kd+uthqKZE8yfjCqK4iD885PL8fqU9JJstKChBGJwefEp0VUFL7+FhrthCQn1B9",
|
|
"gb9z0JlilWFSJAe9r4RpQonBJ6oJM/hbQQZsCTmZrYkpgPwo1QWocZImlZIVKMPArpLJsqQit8/MQGkf",
|
|
"/kPBPDlIvpi0zE08Z5MnbkJymSZmXUFykFCl6Bp/n8sZzvavtVFMLPz7aaWYVMysOwOYMLAAFUa4t5Hp",
|
|
"gpbxD9fT1Iaaeqc4qL9jNxIlovpiOyN1zXL8MJeqpCY5cC/SzYGXaaLgQ80U5MnBuzAIleNlaXjriLCh",
|
|
"pY5Kulyl7X6dNuvK2TlkBhl8vKSM0xmHF3J2DMYgOwPLOWZiwYFo953IOaHkhZwRpKYjBlJIlrnHPp0f",
|
|
"CxBkwZYgUsJZyYy1syXlLMf/a9DESHyngXgiY/JG8DWpNfJIVswUxCnNLo5rNyY4UP6mseUwpzU3Q75O",
|
|
"CiD+o+OD6EKuhGeG1BoUWSHvORhQJRN2/YLpoJIxkoecGeTS0fdLzSnXkA71YApQSJ9yLlcEp27SJHRu",
|
|
"cEwB5FzOSEE1mQEIoutZyYyBfEx+lDXPCSsrviY5cHDTOCfwkWlHkOoLTeZSOdLncpYSKnL0dVlWjOMY",
|
|
"ZsbvRWuTMyk5UIESXcB6qKzDHIRhcwbK020MIyVlrQ2ZAakF+1C77WKiESHs2GCjWtu/heZYWULOqAG+",
|
|
"JgrQngm1y+QwZ4LhhBRN1QqOS6aWH1kb96qiyrCs5lQ1u7hFDbqeBQe/Li5EXOnYz2yM8dYUTvz0JdNs",
|
|
"07aMqq9TENpw36L8Xrw9dC6MygrWpMhXnF0AoeQbDiIHRWiej6T4ekyOwSC5M7shZ84RXMaggmD0VILy",
|
|
"Zg1TUINL1zwXX1pjaHwJRG59SccVvREE0fj8oBsGruN2nzbiVz0b4RdnDs4Yw56TJ7VSIAxfE4mRhga6",
|
|
"1ro7sUaPydl3j4+/+/bp9Nnhy2+nR49PvjtzeTRnCjIj1ZpU1BTkP8nZ+2Tyhf33PjkjtKpQpbkTG0Rd",
|
|
"onxzxmGK45M0yZkKj/a1j/kF1QXk03bkacR5thnNMMp5DXSk73isC7BUk8OnRy6ar63YaDTeJMbktSQC",
|
|
"tIEcFVNnplagyVc2wOqU5CzDpahioL8mVAHRdVVJZTZF98ynmHv3H6LQXFKTpNYWdgoZly7ko3ZNV8cw",
|
|
"TV5RQRegXORjxro+LTGUR5IXpzPgtysqvDJvXhDFku4gX224gzcJx15nzV2+gdqKpOKXTJtgDNa6t+tt",
|
|
"qKNQaPw2iU96EXGLuO0SMQFDRTkQy38gCioFGlkglGhXvvg6yEaij5DVBnZVutvLyMaAOp8De/GN60yJ",
|
|
"SfStUlIhsc1aO4de/Rg8Zli8lqA1XcT43WDI0mzHx7h5xmkJIpM/gNJWsZ9uqpllO+N6LsJA71cxLl64",
|
|
"5oBy/maeHLy73sKOQ1mEsy7TgSIVUAMxi8EPTApiWAna0LLCeBTUnVMDI/wSK1tYhNzbt4dPQ5p5Yev3",
|
|
"HaX/TbsODBVN01FX+R1Ls7E7ltOgs3a9htnTy1O3Qa/A0Jwaajcqz23ZRflRT/cDiTf6UjVjRlG1JqUn",
|
|
"5tOuHpNXUlnHrTh87OacjArMWqXEstdGrBq9nJzR8WycnREhjdNDKFEvYI3+DR8p0vIGbQ3tIDmuFDNA",
|
|
"nim2KDALYY0yhpIyjlyvZwrE/858CpRqEUY4H0iO7QBybP7x9yXwTmDrGfJxJ0fE9eSquejcxkBCAqWZ",
|
|
"YUvb21GRoQZcm1dxMP5ZOGUxKUZzytyI5qGitbYPH2qo7QNVWYG9f/Po8rMjP0LLsGnfE+m9sM+OSo0q",
|
|
"GnUXT9JkRW1vM5pLNcJKRkcT/PewYNqAgtwF42HIoXmuQMcNilNtplYp/d6+k7xZdrE9nHNq0Eni2V3O",
|
|
"zYqqLan/Rr7rRGrdt0m106ZP76fSna3s78IVGl2kjVK7+EJQRppkrjS2XCabWu5oZotEsZh+DFmtmFlv",
|
|
"yXc3TmLXZa9eKogWim2L2LbTWBeEvLcRKspOkLu/sOE/7F/9P/n1p6ufr365+uvVz7/+dPW3q1+u/tIF",
|
|
"fg7+a69fdPpVplmZJwfJJ//zEnewqMXFVLP/g+RgH2UyimZmSuucyRBy0Cltd3GQTJSdOdHzybmcoQGD",
|
|
"gAcP98eWZDeVHL1+jj8rnRw8fJQmcyxudHKQPBg92MPCvqQL0FOppkuWg8RKxb5J0kTWpqqNa2rgowHh",
|
|
"6oVkXNmQ4ziYulF9ltwiDVMdv9AMt2rkBR+5KQ7v61tXu487cm2T126KJjZdOW5OBFrsbNeuNB+GdlCD",
|
|
"653BO7PH+xquYr7RAS9vkU+azNGEevT9NrNE8oTPMbFYjzy8tRVFpEltvhELXAiDyZ36Eh191NUiDney",
|
|
"gpD39d7ew/8mXC60AzYsrs3Ml9oX+hah2zSGbrro8/BGwIgz4WEmkbMMF1wVFClmDVxQ2L4eqw4LSyJD",
|
|
"uPCYvFmCWmFs0KRSsGSy1nztZAmLNhVOrCDkMoLBvpQLgkx10DxcLSUrxjnWQgFlQKatKuyCQBVnrrcZ",
|
|
"JpWeLdwU8o4VOG53XA5X1MRbht+egSFTYOKffmcm3XAkv1IvCUaX6CTR0636OGYL8ea2mghJdbq9k7pz",
|
|
"sTsFwRZpB1xdI7WhBp4UVCxgKLrz2GkbKG5VOW3u1iaxGzGVb+PqDnjZwUE/6GpDlXF1Nl3RC1uOaQ6A",
|
|
"LRvY8ihNdFGbXK4sXAraj5bzOUaCSGx1zmILrGPk2om3sgxMaY05ftCwalC49xhuMYS5weTwaUoqqvVK",
|
|
"qjx8ct7hDnAINWGo6rg9xhmrL4vsUs2yNvAUxlTJJfLIxFw6dEMYmpkWUGiAB3ICFJ2vVtzP1AeTyTyU",
|
|
"Z0xOhn3k9w63fkZVSUoHXZHHR4dYuLIMhIbOOs+PXi73B/RXq9V4IWqs1iZ+jp4sKj7aH++NQYwLU7oG",
|
|
"jxne49Yvl3Twj+TBeG+8h6NlBYJWDEs7+wpzoynszkxoxWylZW1SaqsKtEyrzMPcYdclMw5K8Jb+jczX",
|
|
"QX0g7BxaVRzTFJNicq5d1HB2u8uq+7jJ5UCrFleVvkxOukaP1aP1Al1J1BSu9HBv77NytqKa6DrLQM9r",
|
|
"ztfEnWpBTpjwuXvJ8ppydxA23jgFvBM2XScT4c9+IKFRsb5ZlyVV62ZXCSUCVhaDxaTemJMHXjtIpc3f",
|
|
"FMtHC43q5LRH7kU4ydFofAREXkkmjJW3sbFJkyYWEDG052AauPged3WITUdU1wxq8ekNBT4HQ/gAw7bw",
|
|
"bgFMbUD816iuXapR/3l7tN3T36dzOZuy/HKrCp+ByQrnql2E+N2nhKFU/oTHhyBHbOBRaUePu7r703vc",
|
|
"p2uczobv/nZYye0HQmfuiNXu3Q3s1k0SuQ+iJXIe1N6pgbbZ7A8NjnxvqthEwyNqEbhTnAQWIsaKCmks",
|
|
"zMvVHE+/avJHUBa2qhvKcnWEwz5rDb4HkCQrILtwv5jGDqOmGAppu5wGtcQeIKjVJe6J8pjbaNVCbtEc",
|
|
"FMA5D83dTyKK9BARRbd9YOD+s+akAUx5E1v4jDmnFvCxgsxATsCP6ZpQYN8nnlXYz2B1/sVpZJLbErTY",
|
|
"dqbetCjNFmIk5/Nryhnsiebzobs+GpamfzxF+trahvReVf3uFINxq7NXVF10y2mqSajad2j7CeX+RCP4",
|
|
"O/bzPoCEwuBC2KsdsP5SAVlIdynLkh/Ht0Ts2BFxr07tl9juzg0w9zl9ediu/imc+cY2+Lg2BQjj0CuP",
|
|
"kaE1hGtAq+bU+44NUgHN1zgK6blbFz3cjrUbPjRX42HBaL7vbFnyr7YMyynJ7HfSYhCX6bZgRrbP+GOb",
|
|
"1O3Nw5Ukq3AXrQAF7r7YeosS4nYwyjqITTR4RdCdew1k3YUi6n3dpEYn5w3i2b9X3vPx3O+bU8KYnGBt",
|
|
"mtnLqjN7x4xmGDA45K7ed6i9jyXtKULPVlIiFUauoJUQX0CNuMwot6GNcn3X8WwJPWlqPTBV42/bb0mv",
|
|
"WQF5zeHEnaHeX1/dvfsf2Vh7678LKGwLVK+lvzXcvwlp+4twUeoyTR7t7d8d0tM7FI4wfwQqYBtPQTAX",
|
|
"NB/t/U/kirkzQKaJkCZkOne85cwpJVqGz/byNfRuhDnR7ZEuEXLlRH24/3lTS/AiKpBLOTOUCVt2W+5S",
|
|
"MquNu7i5kPYOuZA2zjpvu6XHvnHUaUO/o41drmRtSnsDVxHYqeMhk0/2QMHDJ3Ff6RwM3gRB8QR/P4Ry",
|
|
"9+miI8k2X/T1EBOOxYBh3DpbnBQQaK1saM2gChk16iIn/qDSZmQfNbpm5DbN+onp07Y+06X/Z0lLb9sz",
|
|
"Y3doatYVyyxM0j3irZRcKNA69VfO/N8QKDKnjNcKduaWkFE0iLyHhqG6A3WMYlgRBU9Vy2Dj7jRiknSK",
|
|
"rsFfX/QhtgFkzIwGPh+3TmKBpMs0dgvG9wSWuQ81KAY67cDI6QYqN+5hlzpC9PHRYR/I7paEsixr4Y/S",
|
|
"mSkGrHfIe91enl7+MwAA//9VEH3t7TYAAA==",
|
|
}
|
|
|
|
// 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
|
|
}
|