// 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/+R97XIbt7Lgq6DmblWSWoqUJX/Eun/Wx45PlOPE3kg+2apjlwTONElEQ4ABMKIZl6ru", "Q+yb7N6q/bH3176A7xttoRuYwXAwJCVLjm5ufjiSZgZodDf6C92Nj1mu5gslQVqTHX3MTD6DOccfnxkj", "phKKU24u3O8FmFyLhRVKZketp0wYxpl1P3HDhHW/a8hBXELBxitmZ8B+UfoC9DAbZAutFqCtAJwlV/M5", "lwX+LCzM8Yf/omGSHWX/NGqAG3nIRs/pg+xqkNnVArKjjGvNV+73X9XYfe3/bKwWcur/frbQQmlhV9EL", "QlqYgg5v0F8Tn0s+Tz/YPKax3FZbl+Pwd0JvuhVxc9EPSFWJwj2YKD3nNjuiPwzWX7waZBp+q4SGIjv6", "R3jJIcevpYYtWsIaliKUxFANGnq9r+dV418htw7AZ5dclHxcwg9qfALWOnA6nHMi5LQEZug5UxPG2Q9q", "zNxoJsEgMyVy+rE9zi8zkGwqLkEOWCnmwiKfXfJSFO7fCgyzyv3NAPODDNlrWa5YZRyMbCnsjBHScHI3", "d82CHeSvM1sBE16VtgvX6QyYf0hwMDNTS+mBYZUBzZYO9gIs6LmQOP9MmICSIQ0fjZmeov7LyCpVWrHw", "EwnZTOT4UU94DjgoFMK6pdOIHv4JLw0Musi1M9AOaF6Wasncp+uAMj6x7p0ZsF/VmM24YWMAyUw1ngtr", "oRiyX1RVFkzMF+WKFVACfVaWDD4IQwNyc2HYRGka+lc1HjAuCydA1HwhSveOsMN3smH0sVIlcIkruuRl", "Fz9vVnamJIMPCw3GCIXIHwNzb1fcQuFwpHRBCwx0AFxJm3Q1XDVtBl3WuIBVF4bjAqQVEwHaD1Kz/IDN", "K2MdPJUUv1XEiJ5ov/qNkJzHbQyup4m98EyuGHywmjOup9XcSZjAb+PFaug+NMMTNYc3tLdWX3/DckeG", "ykDh3sw1cAu0VL//VhEMzRZvJMs1WEjM51AIbqFcMQ1uKMZxqQVMhBTug4ETBDi9m3KAOFGV9RBxbUVe", "lVzXdOjhB1ONg/jcJHUTgurEf1lv9WuPcOo/vxRG+E12zRH+7r4UpRPA61Lc8ZiHbEfJe9KgYk0AV+M9", "94QwTjwX0MqeV1qDtOWKKScqeRgXmTgSlmbIzr9/dvL9dy/OXh6/+u7szbPT78/JECiEhtwqvWILbmfs", "v7Lzd9non/C/d9k544sFyAIKIiHIau7WNxElnLn3s0FWCB1+xD97pTXjZgbFWfPm+8Qe6aNLV4Z6DESr", "jzYmaQhu2PGLsGVw2U5w/KV08Osh+0kxCcaJE2N1ldtKg2Ffo4YwA1aI3E3FtQDzDeMamKkWC6Xt+tI9", "8ANnPBweuEWXittsgHy96yIj1ol3Zs2Mg5T2tApVRlvCsXP/zfkR4+WSrwy+NGTnKNdRnp4fEXvg1150", "vT0mXY4I9RpAs69LcQGMB6QxXhR7Sn4zZOdLGKeGWcK40VrIdXMu+RScUBuwcWWZVJYUqJ+F1BLy8ZCd", "z0RRgANQwiVoHPqf13nZi0YHKSkZ9yIiBw1YN7vkZVvWBGo1CKWZMhQ6Hi/ZIFvCeCvN0hwZjKCGT8h4", "Fob9iCjQpBmFRYnI505vJSymko+hvJ4l61e6uxWesvQ6RtKaCPPbmMCL5twmzxy2EjrvlTA2bGCUSP14", "6+IoWLc3W/FpS1H0LLeZIrXA4MZ0luUfMA3OeEFNzpkhm9kb345/4QPklYVt7lW/71IzUPQ4gJcmXPRJ", "akXfaa10dz1/BQla5AzcY6bBLJQ0kHIEi8Se+P709A0jb4W5N2oroR6IHbsdm5dVQWadw8aCr0rFC2bc", "Pue2QSBB28Kts0URNCHJrxJKDt/J526yR/uHTqWhkYQSBw1EbvmYG3BPxpVZDZkzxxHQABRbirJkuZKW", "C8k4++pnsHq198yZy1/RqzPgaH468IQsRM4tGG9QL2cinzEr5mSROlKAsSzn0ukmDVYLZ1u/VM4yD9LP", "DygMykfHJtzp4CAyvjKsWgTBl5cCpEXbVzGj5uDszynTwI2SKCFRasMH2gSCl2zM8ws1mZAsrB3QoLG6", "3u8cjOHTFO+tMRfSvXk/xVkvSz4Hmau/gzbeH9qRyy+bLzZDEV70MjIFxQ8UXeBl+XqSHf1js7Q4CS6Q", "++pqsA4wz624rHV1zPAvmt+CfVZyY1n4gjlnxjtKSSeBLPmUYHEP0BcSczCWzxcxJQtuYc89SY0pEsO9", "fXv8IkD4A8YWtoQldo2IOI1SB0SqRZFezWlYhIMBMUSvDndc1Br9EeCAumbaKFJSk+z91Xvihh/BcicM", "kKBFgW4ML9+0CN3BwZrfpsfCaq5XbO4H8za2GbIflUaJvyjhQ2xgejEwV86fRlVXOenGzvlwPMzP3fYn", "Oge38wLQlYMP3I3ldw9y9VF2stDCAnupxXTmTM7KgB7CnIvSQb0aa5D/beztXaWn4Q3acNkJvsBO7P/7", "v5dQRhqxtWtOIuMijSerK+j5tmaZYH8hHTASxWXuMEBBqUUJ1v8sCVlCyb0JF/RG/cOCO2meDbLfKqjw", "B67zmbiMfiRjnIbf88IXH+PPFdDzyuFkL54tafbVa3g+43IKXdlFQjcd46FnURDCK0IcangrW2xtH9Ts", "7sHqEYSn3FyYk2o+53qVivDNF6WYCChY6Y00ivIE/2DInpNuJP2LDxvb3v3JKWP3OnCnCbm56BoM+NXO", "5hvGWT3AO1hupm/l5r9XQGuO9hOGH7OjR06NNTKhb5ddDTKMPZ2NVxifXZc178NPZ0K2OL5mWc/N7686", "pj8B8jGbCynmbsM8SCvnz5ZcL0XpTJVxI7kGQQ69Ov7bd40YSkaR1GRioA3ofgrQBk8frxGaNTsKnL4V", "RSEBc51VRVRb3xI/g620JD/UsRcFn3nY0cIrdVxCKw69s6bscHQ/9/4MxkeuO07R7huKDJsbbiTvlz1X", "ciKmleY2adaZGZ9z+R1apEXyAIACjDNgJ/gqmwjn3WsuzQQ0e/bmGCNSwXMbpkOGVmk+hVcq5+lo+4s6", "noWOgJPGjkNwLv/xcKuBsT7LYG11aSyt/gaw+LmSMnmSclz7DcsIFUt0Bdmcr9gFwIJp+hyfpSXpvDNP", "F0uNmurROaTffq7V5QZog08WazNWK9rabqGFDNmxZWaG5wiVIY/onB455odz5pbiLds4mE9elJsEAz5T", "5f6V8MEO2bF3IoVh504UnA/YeRsJ5+zHtyenzs46x+D2eTrgvEbkNUTWWOvDUYroP8NUGAsaCvLpu9uC", "F4UGY655Vlly6+ziNAXVxC65hg3k3SYOfqkpQuKojsWc1aeH5npS/LNOO33IIqAqPvEMiBhkOcW6EcIs", "wkIP9ClqnUBeaWFXdfBjbWft6gVvcn9Jtj2fQX6hqsSB4wmgieXkkdcrdgZCs5Pvnx08esxy96Gp5gNm", "xO8YwB6vLBgKDBRgHAis9HIpRFByP1sTzF9zIXA2dIMxFH+UNUc5w6ki8ZYdZYePxvsPnz7ID56M9w8P", "D4sHk/HDR5N8/8m3T/mDg5zvPx4/KB4/3C8OHj1++uTb/fG3+08KeLT/sHiyf/AU9t1A4nfIjh48PHiI", "fjTNVqrpVMhpPNXjw/GTg/zx4fjpw4OHk+LB4fjp4ZP9yfjx/v7jp/vf7ueH/MGjJw+e5JNDXjx8ePD4", "8NH4wbdP8sf826eP9p88baY6eHLVNa0CRt4gAJ0TR25nTgprElBevwW5FZ+uhXFQrmEgq+TOvguxGa/J", "agLgGQo3LPe6EgoKAdSTDNmxZKosQDMfxTDBL/dj4bxLbtivlaFT8nf1ctjxi3cZ2d7BCPGjMFGHnDhB", "gUGhc2/W7pmymo5MDhL23G4b0WHm3vGLtqxsNrhnmR3tC4L9pSjhZAH5VlODBh+0ybR9NzWmUMr7cs/I", "aVmjSipN4Qbs4QMO64xxir8S6gsxmYDGaN2MS7Z0qtORslaXA8cc8aAYewRpKu0I54+Ym22M0Uok560w", "X4rU6xG+3UhSk7or4BaQi4nwEgrpgcaXl1Ue6MgUa5NmkSRJsMTCXolHDBAnPewZT0DYFrXxmMkxUM58", "7Dog0JbRicjqulk540FuDbLFbgj+RdhZE1fZCdUDb03lKM7GPagfMKWdhzRgBSxAFpjeI/G8itTvn5w2", "u9pKETl6ojAdqsbBgU3k7YTLKnkh1VJiTLNUvCC71BGsZX8266fBfiZoMJPE26s3NjzQ0GjhrteWuCOj", "4YsYCF9AvfUTv00vOoVKazWi1kSrOeNMR58FlTKISel9NNXe7qAvnd3xEocib04DQ0ZzmsS/5v4GH/zJ", "HE5Ip1nNCeCX4oFmY9b74W7YIp6o3m63zCuR+P5crqFUzLbgWNvinv7X1bm3JQg3CD2VX4A9fv2DGr/F", "CGoy0cmArTNMB8w4O0pdgmbhazrWpaQVCkSYIXvp1BgsMVA3cAYvXApVmTOC5pwsrHHD3GQEtRFwS0dm", "wZ9vD/QTn8fZW+lcwRbQ1wolxnnNdSbRo2SAVsNEg5md1cH4jTGf6OzZe0b+ezoGoNV8ZehAwNvBmJkk", "rc8EMsaf85mBt6fxV2dp4FGBkIW4FEXF6VSBLXGWKUjQFAdSbM7lKgzi80IXmudW5LzsTSu8PhL7s7iv", "e6T5GSeaiXNMn8cdZXq3abhpr7kN1Z+VfAISjyPrvUWkNs6BOB+Z6NtzBpfo0mCqp1U+xSvonOhN99Dt", "TU+vIXsexqTMtCnY+Dk5shhAdNQPVA6/l2qKvtKKSQCfRrMoRS5suQrTjoEEgMFDrFzY1aBeiPPJKGEt", "vOvGUJJSyb62CuFpTU3BTI5QfoOWkHvdvfKVcfAwDIU6iqakiFpsFaEJ0rwOAdFdk1lTg4QcpxCG6xdl", "lDxiVRsrI1bJ5g9O/Q+3C7w1HlaLTTmvm5ce2cA1GHhs2/yWNH/7UJE4fuCWXQhH0cm1cFCfZJflD2qM", "uQVlSfFTUxdqOA4p1XQjjKfcXLxS0z71d+pZnuWzSl547WcV480O1UrNWQEkpAt66FOlHAC4N/mlEoX7", "uKAltiVoimsd3N30EwdEzTIetCH7ka/qRKl5VVqxwOwjCRTEgg82ec6NYdltjHlKcd3r8VwYeZC10d/l", "Ozf8LqbHKWKy3/ZAZHSMD38ofjPrI84vunY2z25oowqhnUL0u5gxPgb/uXZMu5zqJt98SfXsMVgfV2xM", "O9rAiSQ8duFFenMTN/rjw8CPNzBt/bnVrVi3yzDW5zJG53zqM746y+tcnl0/bp383SWbXSPncQvnhXGS", "jBenNyYT2ZvjoKYczGmTkMu55v7vkjfz+dlp/sHhp//J/v1fPv3rp3/79L8//eu//8un//Pp3z79r9go", "Rm8nTiPxs5zl8yI7yj76X6/wwKGSF2cUATh0a7LOmTjjVSFUSDRxnrM/uBpp/HJkJiPnXtIByoODwyEO", "GRP5zU9/db8uTHZ08HCQTTSfu/2XPdh7sJ8NMjHnUzBnSp9digKUc8vwL9kgU5VdVJYKZeCDBUn8kA0X", "/lAal+Lf6sJFM9WQjdLo8hU9nfG0UnbjeFHUAm1s2PPY3KNPsk60JGaOLf5XnZO5a93uFv825oFtrl94", "td/5S+fVr3tkqQ2XLsI+DaYUlV1jTaUJIZpwHhTy1QdMDGHIxjBRGtgl1wIzvTUsSp5jCHB4PTviNku3", "7y5r+TbNGCeOz6yq8tlWyU3aVK6CPsX/FXX2dkjE2W0l96cC/a7SsQfZss522Qasty92TuFet7JSxe9x", "iXvN9Fuq3SPEXSM/uc5ErrM5jZrYvfUE5ZTf10x4n5KJY/65QTZxnJjbtSQqYxlIVU1ncX0O42OqDfbi", "L9QxNkXUPoiI+cfDHgt2Z/P0Pm27m7oaO/J+mKmPUptiDfSsDtiOV7W/4QhEI1MdPHHeu2p//+AxBeXQ", "OUGKYakSVbdhNeqzsmQN9fBQSS0oo/efmfKG5doLYiqVhoJ9jRpPhSLR87CzvRMtlWWguU8qrCtsQv17", "7Jp+s83LbqPjtYS9Ukhf/e6D4Ji88ZVheV1iPcNaaAdaOHIjxcBeX4JeOtvXsODnlCtCaw1mKBRJKqpU", "BOaVmvrISi0DKMgTIgqhMtsBjVTBCYHrUlBtYTIMc3ITKZFkrpskPH7eVt6wU8KkqZ3QALpbNZj3BOvy", "g/UFisVZtMa1I5Q3zD/r+NcbkzzXGJLionLKzMpYmG8f63MTOHcRQtG6W4mZTTVeOhHz6n2nkMrXjLQV", "RJA/Dc1eiVQiQyglJhskkabiH+xs6a4TfDNuwuj9rEZJwX158jdM+oVcUw3GXdPez9QicXKKDdWXHqNi", "Kl9fBwMhp/esPypy68sNXJ5eYQeiDau13EKfqedDUTpOuN89lJU01KLBdgKq6IPqFmDZAkHb5jaWa0uZ", "TXzJL1B8mxLA+YpY3O0EHBj/ippMnBpMmtj9MbtESQ+VZTtlGhs6vp6hyXpzfzz30fuELWrOSv77anN5", "S7tUwp+dk/UQN9fBBLymKRPJlcbi8AaWYRMhhZmFo4ObHnfvQsVBvb4N9Oyz/v/Cjcg3iPXbN+z/6Khw", "JKXaqPCl705JhQgqWXCe74QJdT43cwf6hRFpCixyOHFLiBXiGa9S6ZtvDWg3gYMqqkg6fjFgC27MUuki", "PCLVQG3cGLfhVR3pO0dlRB4yqWOJZokzaxfZlYPRcQm1kZCW57ZRCnX3AHYK3GmeSpf+S3M0Gk1CPFqo", "UbfK8WdqWvOS67nPUcCqsmyQlSIHn2Pn5/nrm1eXh53xl8vlcCqrodLTkf/GjKaLcu9wuD8EOZzZORVO", "C1u2oPXTRbQ5yh4M94f7WBe5AMkXIjvKDvFPlCWKlBnxhRjl64V1U9L0danUcYGtOWy7As8xCmXn4VAH", "+/sBpSDxe75YlD45ePSrjzQQY29j+2TFH1KujXHp9m5ZZwkS/wUB4SCmJKJ4mLonSNTtxfKpoboay7FO", "thnjO1kslPAZRVPfya4zYE2HetCrAeE2VEkulEnglE5GKLvLq9O/qGJ1a3hsN5bo4g+bCCl/5pLFO9/q", "Cq7ukMIbAFpyw0yV52AmVVmuQtOlggnp/eMoZ8sM19or3gp0VKCVgA8fsFB/1WY3QjbjIRsQWWadM6Ju", "PDHnUe1ra7gfQmcs6kkInhHbrDX6LRSYpxkMK3h93shdMFhT455AVqc8gMoCsKKZsp+GX5rnWiXNCZB/", "IoGCWK3FyiCU18B8YVfUpUBMmFSUxzPnNp9hXQ7Qh/eHJV+CzWd1WwWH+C1M93qMuTVN0fkE69yxD6cs", "mFG67jna8KBTr6OP7t+f+ByuNmmQ0A6r3VLqHx8z4Zbiixe8igwDdnhkEKFs3Xp5f4f8023q1SNR6dm6", "KvKpUqEDWU93tg3EOZYTVRu1xm+uqAlohyhmB1KY7AtizKRQVr/UNGdLYK/sNHDD3maYA7ozBpuparn8", "a9NMuIW/j3QQ1M/NuLdIdW/n5fpUqZ+TtyWevf9jtDGayimpIhpuDP0Utys0+kgWUZvGNNpHBmzjX/VY", "T8jEJ/UhxRejwp3o0dZZXYIYpx3P3qpQhbOLHn3YW6/hh3N2F89zWFgocDM8PDjoOxwM3RfaAPl2ctRV", "OzRmCOEEUxeH1OzyJdXkWwkfFpA7oDHIM6SThX52DRGb9dYTYV3khYZ1JDi4rnLYKD6wOdKfRIa0Gj0l", "aIBaEB8LMPGBmam9snvCF+vCjnu48Ziv7kIVlhCxwmb145wa07Ni5CB8NPro04q3KB+feruDJVVnKd9P", "1sGF9Ig8ikLKibqnbNHkv28hfuKLPrKPSjW1mLe4jfyv1PTUvXh/uMDCBztalFysUWF9pH5il4ocjKTK", "otZYcYdV/GbGnerB+oUV2PvIKnVvzgkso5KFWVzesxMHxZ/U44XD+l5JsqM9FR28f1GWun2LqpP+9Kc3", "qUgG/QlsKspqwXrOOV+xGb8EBpMJ5DaUlmPPPRqBG7aEsvTvhyiZw9scuI/bzqo5l4Z8juYWkUvBuz3k", "h/6MxDC3R/AwDrcTHTXgrmo21TkT0ljgeDQWNl50KtPnev+9zli4M5W63gX5xsHz2lG+bA6V4vj55vD5", "86gWkvqxCUPHnpBf1G3VeG4rXpYrxpvpfNuAGq1EgL351I6i/Ip+7diUyN0ZjqMkkQR6/4YNDgKs/QGN", "KI0kILJZazo8Fz4NrFr3Uoh77WzA3OijP5HbamLWGT/bdUE95L01M+tU4A6twrnojrGOZX2gvJVijtIF", "WMzXDeeVtTW7A3l20dteqnbPir803W5fi284/74P6vyeaNpe7ttN3wZ2bnPkSPvekntNsn0f/9GLtbC4", "O05opbb1b2SkOwH1RU+YOu04d1G7X5CNqjU2WhN2AXx/htmUU7b4rMNjDUmcUmq+NOscZcRU7qnJZIML", "Iqby9WSS7bI37x8ifeYLStpWzss/MAm1wdmPXF/EyS7cGfGUZ7YF28956fv4B+VvFSu9rRbOmJ09gJ0r", "vtLApoouTsThh2mSyC0UkXe6qf0U/du5Lun7knu5m1X5H2Iz78yDzyo7A2mp2MBXVzhuqK/W6jFyPpsh", "NfBi5d5y41Fj2VbFh2gI3mVX6wtKkiZrRLLsj+YMaiW93q66N64lFev/4n6z1PXZg7y/qA25xkAHl6se", "JKT5YC+PEouTwiuRhHzXdmo9USq7pFaNtM6b2aT/gWXOL3G7CAp1QehgG5qFoo3tBEYJBZ0QU72XlyV7", "7UhZ4BVMZhayuVTLyxfQe6XKeYmijZfmtuXZJbRWU5kOq1pfjN2jXvMZFFUJ/izn7jIx4vu5U76Tr4ys", "c9P6BNVPyofP2pd9RunFFOjcP7y9LMZW2/QE8G9AhzS5FyAFCc2H+08TafJ1ArRUNmg6KsIldhowo8Jj", "vMsYWhfo0dKxwwSTauljuodfVrWEXcSlg1JRTCjqAjSuLN1NSrcYcKlQztJuu+aO9REnXo8fYWPbVkKe", "Mp7BdSKDMRlU7d8rUUnpn+Bwwq+kby96eyiqZ7iZtjidQRirexqR2iLNoath3EuNmI2WoSmQv6G8GRv3", "zB8SHvlMtfS2qTb2jcxWC5FjRDquyF1oNdVgzMBftOZvotZswkVZadiqW4JGMSCLVkzRoTuM7qSYs4i2", "bJPRnK/2xJ6u+k8afuQrHzWp5J8iT2Dtips/lz92GrU7ji75TFzWI0ysmnQl2ajn8h722he/l3XfPMM4", "o2YSsSnatHagIq9duLhjxaN3F0G2BlPdyMTxNd1nNAr92UfUimODndS+1uSOyiXak6RS2uMm5rUn4+94", "+HKxieS1FAlwwxsonsP9EVFtRawF7nZz1JDwkvx/aj/kDaiHdw/AKXqZS/cPUQ8tRjkdsrcG2LlZw2jT", "6fzc0Znus2CISixiUCHZ4r7Ebp/TrTHRhfoUWjGreSnkRX03MF7gQxigehpLl3x4pDizkZclHbqPASSj", "1uS0o30jb98VymnIems31l0jPgipa+LjxAPEmYk3EwLTukyIa+BpYRE3ot9VZMQkvVPxkboMYVdJ8gcI", "keRdACl4676QeGe2Qg88JsQgKK2ggXzzfFri/doreNdEc1FPjAN/g4m/VF1pa/yOJ0pxXS9sK6c/c6rQ", "TdPcoB10ZnvAxpX2+S2U/EBQNPIG3zVWlGUDQrQ9cLzRx3CRxtXoI/5F/L6hJCfuqa80PPdMuGYq7nxF", "Cl5G2bUrw6vXquQZdC+K/R3W73ipLwhJzBpWv8uszY057+98x3XuUeivQ2uuv7hvuyduNNDc95C8+aNl", "UUYbZZPUrjnyPzczDlLOuZcmon1bgr9/rYAJaFZfJ0K6GbGBWv5ddrD/7buscTTq1lbYqX7sbIT1BFta", "nqktN6rKbeUctQhOASheGkVjGDUHJYFBaXCcpqNVCkzkFkTgDHiBx88ehf9jj6bZe87l3gu3zr23OECW", "wGF06WYKh0qLqZC8xDnd+HjNJ7XMKlXcYqu+50bYuvWVkP6eGhGLa+yCVd99xSXjAt8oYFzR/YM7rO21", "B2zvpQcs21rtuIsho3ILds9YDXzelhC1Pz8W0u3vwfZM7ec0h1m7HOuGwSlkr05o6mD/222ve3ZsMWKU", "NfjwwZPkCNp/7hwALN1lY7BL8Mzu0RmVFIY6Q5+l6G/yxe2vO3KnNpYDL6N78yjRqbR1scmWXRt2YLNz", "POMttMp9r68xuA/r+cer1r4jU+K8dwsdMbzZlmrvSbrE6PAruS8aCDWDj0n36x32k8Kgnr9KpvUQ9+dE", "6VyMyxXLS+Xb+n1/evqG5UpKwEv6Q2NWinx6wev74ZgWvYDBB55bZvgcvAlpFbbjc58UqnLWHX1ghu9k", "oOpXeFsi7SbPC2NIUYCNVbHqVaVxKNNN0bgVXbT4sJT7mRQqtSAZZdFZbvdmnlb+Y6epgbAGysmwkWeY", "CtwVvT+ocUg1wJjnbxVoAWYQNToYrJWHDlsFcCYx6LM3x+1WC/FJs5rPK+kbKjqR3u3UsZYImZjAn7f8", "WMPEnr05HjQ3T8f5425S6h7gluFoq1UZIOpMhil7CeOCCFbPgjzecJvHIMZz3O90HRW5ufEcnkGu3l/9", "/wAAAP//yTkr37mXAAA=", } // 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 }