// 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/+R97XIbt7Lgq6DmbpWTWoqUJX/Eun/Wx45PlOPE3kg+2arYJYIzTRLREGAAjGjG5ar7", "EPsmu7dqf+z9tS/g80Zb6AZmMBwMSdmWo5PrHy5JMwM0uhv9he7GuyxXi6WSIK3JTt5lJp/DguOPj40R", "MwnFOTeX7vcCTK7F0gols5PWUyYM48y6n7hhwrrfNeQgrqBgkzWzc2A/K30JepgNsqVWS9BWAM6Sq8WC", "ywJ/FhYW+MN/0TDNTrJ/GTXAjTxkoyf0QfZ+kNn1ErKTjGvN1+73X9XEfe3/bKwWcub/frHUQmlh19EL", "QlqYgQ5v0F8Tn0u+SD/YPqax3FY7l+Pwd0ZvuhVxc9kPSFWJwj2YKr3gNjuhPww2X3w/yDT8VgkNRXby", "S3jJIcevpYYtWsIGliKUxFANGnq9qedVk18htw7Ax1dclHxSwvdqcgbWOnA6nHMm5KwEZug5U1PG2fdq", "wtxoJsEgcyVy+rE9zs9zkGwmrkAOWCkWwiKfXfFSFO7/Cgyzyv3NAPODDNkLWa5ZZRyMbCXsnBHScHI3", "d82CHeRvMlsBU16VtgvX+RyYf0hwMDNXK+mBYZUBzVYO9gIs6IWQOP9cmICSIQ0fjZmeov7LyCpVWrH0", "EwnZTOT4UU95DjgoFMK6pdOIHv4pLw0Musi1c9AOaF6WasXcp5uAMj617p05sF/VhM25YRMAyUw1WQhr", "oRiyn1VVFkwsluWaFVACfVaWDN4KQwNyc2nYVGka+lc1GTAuCydA1GIpSveOsMPXsmH0iVIlcIkruuJl", "Fz8v13auJIO3Sw3GCIXInwBzb1fcQuFwpHRBCwx0AFxJm3Q1XDVtBl3WuIR1F4bTAqQVUwHaD1Kz/IAt", "KmMdPJUUv1XEiJ5ov/qNkJzHbQyuZ4m98FiuGby1mjOuZ9XCSZjAb5Pleug+NMMztYCXtLfWX33NckeG", "ykDh3sw1cAu0VL//1hEMzRZvJMs1WEgsFlAIbqFcMw1uKMZxqQVMhRTug4ETBDi9m3KAOFGV9RBxbUVe", "lVzXdOjhB1NNgvjcJnUTgurMf1lv9WuPcO4/vxJG+E12zRH+7r4UpRPAm1Lc8ZiHbE/Je9agYkMAV5MD", "94QwTjwX0MqeVFqDtOWaKScqeRgXmTgSlmbIxt89Pvvu26cXz06ff3vx8vH5d2MyBAqhIbdKr9mS2zn7", "r2z8Ohv9C/57nY0ZXy5BFlAQCUFWC7e+qSjhwr2fDbJC6PAj/tkrrTk3cygumjffJPZIH126MtRjIFp9", "tDFJQ3DDTp+GLYPLdoLjL6WDXw/Zj4pJME6cGKur3FYaDPsKNYQZsELkbiquBZivGdfATLVcKm03l+6B", "Hzjj4fjILbpU3GYD5Ot9FxmxTrwza2YcpLSnVagy2hKOjf034xPGyxVfG3xpyMYo11Gejk+IPfBrL7pe", "nZIuR4R6DaDZV6W4BMYD0hgvigMlvx6y8QomqWFWMGm0FnLdgks+AyfUBmxSWSaVJQXqZyG1hHw8ZOO5", "KApwAEq4Ao1D/+smL3vR6CAlJeNeROSgAetml7xsy5pArQahNFOGQsfjJRtkK5jspFmaI4MR1PAJGc/C", "sB8QBZo0o7AoEfnC6a2ExVTyCZTXs2T9Sve3wlOWXsdI2hBhfhsTeNGcu+SZw1ZC5z0XxoYNjBKpH29d", "HAXr9uNWfN5SFD3LbaZILTC4MZ1l+QdMgzNeUJNzZshm9sa34194C3llYZd71e+71AwUPQ7gpQkXfZJa", "0bdaK91dz19BghY5A/eYaTBLJQ2kHMEisSe+Oz9/ychbYe6N2kqoB2KnbsfmZVWQWeewseTrUvGCGbfP", "uW0QSNC2cOtsUQRNSPKrhJLD1/KJm+z+4bFTaWgkocRBA5FbPuEG3JNJZdZD5sxxBDQAxVaiLFmupOVC", "Ms7u/ARWrw8eO3P5Dr06B47mpwNPyELk3ILxBvVqLvI5s2JBFqkjBRjLci6dbtJgtXC29TPlLPMg/fyA", "wqB8dGzCnQ4OIuOOYdUyCL68FCAt2r6KGbUAZ3/OmAZulEQJiVIb3tImELxkE55fqumUZGHtgAaN1fV+", "F2AMn6V4b4O5kO7N+ynOelbyBchc/R208f7Qnlx+1XyxHYrwopeRKSi+p+gCL8sX0+zkl+3S4iy4QO6r", "94NNgHluxVWtq2OGf9r8FuyzkhvLwhfMOTPeUUo6CWTJpwSLe4C+kFiAsXyxjClZcAsH7klqTJEY7tWr", "06cBwu8xtrAjLLFvRMRplDogUi2L9GrOwyIcDIghenW456I26I8AB9Q100aRkppkb96/IW74ASx3wgAJ", "WhToxvDyZYvQHRxs+G16Iqzmes0WfjBvY5sh+0FplPjLEt7GBqYXAwvl/GlUdZWTbmzMh5NhPnbbn+gc", "3M5LQFcO3nI3lt89yNUn2dlSCwvsmRazuTM5KwN6CAsuSgf1eqJB/reJt3eVnoU3aMNlZ/gCO7P/7/9e", "QRlpxNauOYuMizSerK6g59uaZYL9hXTASBSXucMABaWWJVj/syRkCSUPplzQG/UPS+6keTbIfqugwh+4", "zufiKvqRjHEa/sALX3yMP1dAzyuHk4N4tqTZV6/hyZzLGXRlFwnddIyHnkVBCK8IcajhZ9liG/ugZncP", "Vo8gPOfm0pxViwXX61SEb7EsxVRAwUpvpFGUJ/gHQ/aEdCPpX3zY2PbuT04Zu9eBO03IzWXXYMCv9jbf", "MM7qAd7DcjN9Kzf/vQJac7SfMPyYndx3aqyRCX277P0gw9jTxWSN8dlNWfMm/HQhZIvja5b13Pzmfcf0", "J0DeZQshxcJtmLtp5fzJkuuZKJ2pMmkk1yDIoeenf/u2EUPJKJKaTg20AT1MAdrg6d01QrNmT4HTt6Io", "JGCus6qIaptb4iewlZbkhzr2ouAzDztaeKWOS2jFoffWlB2O7ufen8D4yHXHKdp/Q5Fh85EbyftlT5Sc", "ilmluU2adWbOF1x+ixZpkTwAoADjHNgZvsqmwnn3mkszBc0evzzFiFTw3IbpkKFVms/gucp5Otr+tI5n", "oSPgpLHjEJzLfzzcaWBszjLYWF0aS+u/ASx/qqRMnqSc1n7DKkLFCl1BtuBrdgmwZJo+x2dpSbrozNPF", "UqOmenQO6befanW5Bdrgk8XajNWKtrZbaCFDdmqZmeM5QmXIIxrTI8f8MGZuKd6yjYP55EW5STDgM1Pu", "fwlv7ZCdeidSGDZ2omA8YOM2Esbsh1dn587OGmNwe5wOOG8QeQORNdb6cJQi+k8wE8aChoJ8+u624EWh", "waRFoRT5Zb/PX3LrbOM0FdXUrriGLSTeJRJ+rqlCIqmOx1zUJ4jmepL8k048a1wMapTFJ58BGYMsp5g3", "QplFmOhZQYpqZ5BXWth1HQTZ2GH7esPb3GCScU/mkF+qKnHweAZoajm55PWLnYPQ7Oy7x0f3H7DcfWiq", "xYAZ8TsGsidrC4YCBAUYBwIrvXwKkZTcz9YE9TdcCZwN3WEMyZ9kzZHOcKZIzGUn2fH9yeG9R3fzo4eT", "w+Pj4+LudHLv/jQ/fPjNI373KOeHDyZ3iwf3Douj+w8ePfzmcPLN4cMC7h/eKx4eHj2CQzeQ+B2yk7v3", "ju6hP02zlWo2E3IWT/XgePLwKH9wPHl07+jetLh7PHl0/PBwOnlwePjg0eE3h/kxv3v/4d2H+fSYF/fu", "HT04vj+5+83D/AH/5tH9w4ePmqmOHr7vmlgBIy8RgM7JI7dzJ401CSqv54L8ik/Zwjgo3zCgVXJn54UY", "jddoNQHwLIUblnudCQWFAupJhuxUMlUWoJmPZpjgn/uxcN4VN+zXytBp+et6Oez06euMbPBgjPhRmKhD", "T5ygwODQ2Ju3B6asZiOTg4QDt9tGdKh5cPq0LTObTe5ZZk87g2B/Jko4W0K+0+SgwQdtMu3eTY1JlPLC", "3DNyXjaokkpX+Aj28IGHTcY4x18J9YWYTkFj1G7OJVs5FepIWavNgWOOeFCMQYI0lXaE80fNzTbGqCWS", "87MwX4rUm5G+/UhSk7or4JaQi6nwEgrpgUaYl1Ue6Mgka5NmmSRJsMjCXolHDBAnPe05T0DYFrXxmMkx", "UM686zoi0JbRiQjrpnk550FuDbLlfgj+Wdh5E1/ZC9UDb1XlKM4mPagfMKWdpzRgBSxBFpjmI/HcitTv", "n5w2+9pLETl6ojEdqsZBgm3k7YTNKnkp1UpibLNUvCD71BGsZYc266fBfiJoMKPE260fbXigodHCXa8t", "cUNGwxcxEL6AeusnfptedBqV1mpEralWC8aZjj4LKmUQk9L7aqq93UFfObvjGQ5FXp0GhozmNIl/zf0N", "3voTOpyQTrWak8AvxQPNxqz3w82wRTxRvd0+M69E4vtTuYZSMtuCY2OLe/pfV+d+LkG4Reip/BLs6Yvv", "1eQVRlKTCU8GbJ1pOmDG2VHqCjQLX9PxLiWvUEDCDNkzp8ZghQG7gTN44UqoylwQNGOysCYNc5MR1EbA", "Zzo6Cz59e6Af+SLO4krnDLaAvlZIMc5vrjOK7icDtRqmGsz8og7Kb439RGfQ3jPy39NxAK3mjqGDAW8H", "Y4aStD4jyBh/3mcG3p7GX52lgUcGQhbiShQVp9MFtsJZZiBBUzxIsQWX6zCIzw9dap5bkfOyN73w+kjs", "z+a+7tHmJ5xsJs4zfT53lPHdpuG2veY2VH928hlIPJas9xaR2jgHYjwy0bdjBlfo0mDKp1U+1SvonOhN", "99DtTU+vIXsSxqQMtRnY+Dk5shhIdNQPVA6/l2qGvtKaSQCfTrMsRS5suQ7TToAEgMHDrFzY9aBeiPPJ", "KHEtvOvGUJJSyr6yCuFpTU1BTY5Qfo2WkHvdvXLHOHgYhkQdRVNSRC13itAEaV6EwOi+Sa2pQUKuUwjF", "9YsySiKxqo2VEatk8wen/oe7Bd4GD6vlttzX7UuPbOAaDDy+bX5Lmr99qEgcQ3DLLoWj6PRaOKhPtMvy", "ezXBHIOypBiqqQs2HIeUarYVxnNuLp+rWZ/6O/csz/J5JS+99rOK8WaHaqUWrAAS0gU99ClTDgDcm/xK", "icJ9XNAS2xI0xbUO7m4aigOiZhkP2pD9wNd1wtSiKq1YYhaSBApiwVubPO/GsOwuxjynuO71eC6MPMja", "6O/ynRt+H9PjHDHZb3sgMjrGhz8c/zjrI84zunZWz35oo0qhvcL0+5gxPgb/qXZMu6zqY775kurZY7Au", "z9qafrSFE0l47MOL9OY2bvTHiIEfP8K09edXe3BQyX9fe8Je6L4ow8/dM05hqDqJRNZUSGHmGGbyJzq0", "pSYwVT7g2j5yFIaBnCqdQ+EEkM+YJASM2+BAMSYLtLcSKT5562fvVcDJpzJ456ztE75qFnnd729qk1wj", "c3PzqC+xd8JYya0TJ2omU/KbA62msM2xW8hK3Qhg7JMB9Ol5dv7B8Yf/yf7xbx/+/cN/fPjfH/79H//2", "4f98+I8P/ys269FfixNi/CwX+aLITrJ3/tf3eGRSycsLimEcuzVZ5w5d8KoQKqTMON/fH72NNH45MtOR", "c5DpCOju0fEQh4wJ/fLHv7pflyY7Obo3yKaaL5wEye4e3D3MBplY8BmYC6UvrkQByjmW+JdskKnKLitL", "JT/w1oIknsiGS3+8jkvxb3XhoplqyEZpdPnapM54Wim7dbwo7oJeAhx4bB7QJ1kn3hMzxw4Pss4u3bcC", "eYeHHvPALuc1vNrvvqYrBDZ9ytSGS5eTnwdjkArIsTrUhCBTONEKmfcDJoYwDHL9imuBOesaliXPMYg5", "vJ4l9DmL0G8u//omDLE/vqb9phK8B9mqzp/ZBay3VPZOCt+011Ll9HHRfM18O+rnI8RdI+O5zm2u80ON", "mtqDzZTnlAfZTHib0pNj/vmI/OQ41ber0StjGUhVzeZxxQ/jE6o29mIoVEY2Zdk+HIkZzcMeW/ifctt9", "rNOyJ++HmfootS1qQc/q0O9kXXsujkA0cmzXv64OD48eUHgP3RykGBY/Ub0c1rc+LkvWUA+Pp9SScoT/", "lSlv4G28IGZSaSjYV6h5VCg7HYed7d1xqSwDzX2aYl2zEyrqYyf3613+ehsdLyQclEL6enofTsc0kDu1", "u1Ou2Ryrqx1o4fCOcj7ZiyvQK2eDGhY8jXJNaK3BDKUnSRctFct5rmY+RlPLAAoXhdhEqPV2QCNVcELg", "uhRUrZgM6Jx9jJRIMtfHpFB+2lbeslPCpKmd0AC6X32Zd8TqgobNBYrlRbTGjcOYl8w/63jqW1NGNxiS", "IqxyxszaWFjsHutT00F3OH61IIrW3krzbGr80mmd7990yrN8JUpbSQQZ1NDtuUgFLEKBMtkhiaQX/2Bv", "q3OT6NvxE0bvZzdKNe7Lvv+EVGLINVV33DQP+JlaZE5OEXFKPz7OxEy+uC4mQrbwRX/E4rMvO+b69Go7", "UG1ZteUW+sy/TwsQJY23aLC9gCr6oPoMsOyAoG2HG8u1pbwpvuKXKNJNCeD8OCwhxxTkyhaUZ2XB+LfV", "dOq0ZNICjydrlQekaoioDtzp2tgOCtHMLel1wlyU/Pf19qBqOzjqD+bJoIg7+GB2X9P5icTMnY2YqzA+", "HBvOJfrO0m+KtQb1mreQuM9J+As3It8i+T/a/u8JdG+PJn+uaoxPjPVG8q2NLV+W71RdiImSLfhzHaXX", "dUXM9YK5e4RwSd9g8cWZgzxWrRe8SqWVvjKg3QQOsug04fTpgC25MSuli/CIFAy1mWPchld1pDkdMyDO", "kISOc5plzq1dZu8djI6ZqM2FtDy3TdeCursBOwfu9FelS/+lORmNpiHKLNSoW4X5EzXVecb1wudOYNVb", "NshKkYPP/fPz/PXl86vjzvir1Wo4k9VQ6dnIf2NGs2V5cDw8HIIczu2CCruFLVvQ+uki2pxkd4eHw0Os", "21yC5EuRnWTH+CfKXkXKjPhSjPLNwr8Z2Qt1Kddpga1DbLtC0DELZQ3iUEeHhwGlIPF7vlyWPml59KuP", "WxA/7+L2ZEUiUq6Ncem2eFlnLxL/BTniIKbkpniYumdJ1I3G8pmheh/LsY63GeNbWSyV8JlOM99przNg", "TYd60PcDwm2o4lwqk8ApnXdQ1pkXBX9Rxfqz4bHd+KKLP2xypPxJShbvfqsreH+DFN4C0IobZqo8BzOt", "ynIdmkIVTEjvbUe5ZGa40f7xs0BHhWMJ+PABC3VhbXYjZDMeshSRZTY5I+oWFHMe1ea2hvs+dO6inong", "GbHNWqPfQgF8msGwwtjns9wEgzU1+AlkdcoWqFwBK64pK2v4pXmuVXKdAPlHEiiI1VqsDELZDyyWdk1d", "FMSUSUX5RQtu8znWCwF9eHtY8hnYfF63fXCI38F0LyaY89MUxU+xDh/7hMqCGaXrnqgNDzr1Onrn/v+R", "L+D9Ng0S2nW1W1798i4Tbim+qMKryDBgh0cGEco2LZg3N8g/3aZjPRKVnm2qIp/CFTqk9XSP20KcUzlV", "te1r/OaKmpR2iGL2IIXJviDGTApl9UtN87gE9spOgznsvYa5qXtjsJmqlsu/Ns2OW/h7R8dK/dyMe4tU", "925ers+o+jl5V0Lcmz9GG6OpnJIqouHG0O9xt0Kjj2QRtZFMo31kwDaeVY/1hEx8Vh95fDEq3IgebZ38", "JYhx3gkKWBWqg/bRo/d660j8cM7u4nkOSwsFboZ7R0d9R42hO0QnhUsq67t+h8YRIRJh6qKVml2+pJp8", "JeHtEnIHNIaHhnRO0c+uIcCz2RojrIu80LCOBAfX1RdbxQc2b/qTyJBWI6oEDVAL4mMBJj5+M7VXdkv4", "YlPYcQ83HhrWXbLCEiJW2K5+nFNjelaMHISPRu98uvMO5eNTgvewpOrs6dvJOriQHpFHAUw5VbeULZq8", "/B3ET3zRR/ZRqWYWsxF3kf+5mp27F28PF1h4a0fLkosNKmyO1E/sUpGDkVRZ1Lor7gCL38y5Uz1YV7EG", "extZpe4dOoVVVEoxj8uO9uKg+JN6vHD03ytJ9rSnomP8L8pSn9+i6iRT/elNKpJBfwKbinJksM50wdds", "zq+AwXQKuQ0l79gTkEbghq2gLP37IUrm8LYA7uO282rBpSGfo7nl5Erwbo/7oT8nMcztEccPY9xOdNSA", "u6rZVGMmpLHA8VQtbLzoZKbP9f57nftwYyp1s0vzRwfPa0f5qjlYiuPn28PnT6IaTeoXJwydkkJ+Wbd9", "47mteFmuGW+m8+0MarQSAQ4WMzuKMjX6tWNTundjOI7STRLo/Rs2Xgiw9gc0ooSUgMhmrenwXPg0sGrd", "4yHuAbQFc6N3/kRup4lZ5w/t1gX1kLfWzKwTizu0Cmeje8Y6VvW5806KOUoXYDH7ty6UCtbsHuTZR297", "qdpNXvjSdPv8Wrw/IeNWqPNboml7uW8/fRvYuc2RI+17Xx40qft9/Ecv1sLi5jihlSTXv5GR7gTUFz1h", "6rQL3UftfkE2qjbYaEPYBfD9GWZTHtnisw6PNSRxSqn50mxylBEzeaCm0y0uiJjJF9Npts/evH2I9Jkv", "KGlbOS+/YDprg7MfuL6Mk124M+IpLW0Htp/w0t8zEJS/Vaz0tlo4Y3b2AHbUuKOBzRRd7IjDD9MkkTso", "Im90U/sp+rdzXaj3JfdyNx/zn2Iz782Djys7B2mpdMHXajhuqK/+6jFyPpkhNfBi7d5y41HD21b9iGgI", "3mVX68tTkiZrRLLsj+YManW92U67N64lFev/4naz1PXZg7y/qE26xkAHl+seJKT54CCPUpKTwiuRvnzT", "dmo9USq7pFaNtM6Ps0n/iWXOz3EbCwp1QeisG5qYoo3tBEYJBZ0QU/WYlyUH7UhZ4BXMgxayufTLyxfQ", "B6XKeYmijZfmc8uzK2itpjIdVrW+xLpHveZzKKoS/FnOzWVixPeHp3wnX2dZ56b1CaoflQ+ftS8jjVKM", "KdB5ePz5shhb7dwTwL8EHdLknoIUJDTvHT5KZNjXSdBS2aDpqKSX2GnAjAqPo24m4YI/Wjr2jWBSrXxM", "9/jLqpawi7h0UCqKCUXdiSaVpbtT6ZYFLhXKWdpt19yxPuLE6/EjbOzaSshTxjO4TmQwJoOq/XslKlD9", "ExxO+JX07UVvD0VlDx+nLc7nEMbqnkaktkhz6GoY91IjZqNVaFbkb1BvxsY984eERz5RLb1qapd9g7X1", "UuQYkY7re5dazTQYM/AXwfmbsjWbclFWGnbqlqBRDMiiFVN06A6jOynmLKId22S04OsDcaCr/pOGH/ja", "R00q+afIE9i4gufP5Y+dR22Yo0tIV7sabelKslHP5ULshS+lL+t+foZxRq0pYlO0aRRB9WH7cHHHikfv", "LoJsAyZfj058TfctjULf+BE19thiJ7WvW7mhcon2JKmU9ri5eu3J+LsnvlxsInldRgLc8AaK53CvRVRb", "EWuBm90cNSS8JP+fmgp5A+rezQNwjl7myv1H1EOLUc6G7JUBNjYbGG06sI+pm92s0sAQlVjEoEKyxW2J", "3T6h22yiC/8ptGLWi1LIy/ruYrxYiDBA9TSWLh/xSHFmIy9LOnSfAEhGLdNpR/sG477Xk9OQ9dZurLtG", "fBBSN8THmQeIMxNvJgSmdckR18DTwiJukL+vyIhJeqPiI3VJw76S5A8QIsk7ClLw1v0q8U5vhR54TIhB", "UFpBA/mm/rTE27VX8A6M5gKhGAf+ZhV/6bvS1vgdT5Tiul7YTk5/7FShm6a54TvozPaAjSvt81so+YGg", "aOQNvmusKMsGhGh74Hijd+GCj/ejd/gX8fuWkpy417/S8MQz4YapuPfVLXhZZteuDK9eq5Jn0L3I9nfY", "vHumvrgkMWtY/T6zNjf5vLnxHde536G/Dq25luO27Z64R0FzD0XyRpKWRRltlG1Su+bI/9zMOEg5516a", "iPYtDv5euAKmoFl9zQnpZsQGavnX2dHhN6+zxtGoG2VhB/2JsxE2E2xpeaa23Kgqt5Vz1CI4BaB4aRSN", "YdQClAQGpcFxmv5YKTCRWxCBc+AFHj97FP6PA5rm4AmXB0/dOg9e4QBZAofRpaApHCotZkLyEud04+M1", "pNSAq1Rxw676/h1h60ZaQvr7c0QsrrGnVn0nF5eMC3yjgElF9yLusbYXHrCDZx6wbGe14z6GjMot2ANj", "NfBFW0LU/vxESLe/B7sztZ/QHGbj0q6PDE4he3VCU0eH3+x63bNjixGjrMF7dx8mR9D+c+cAYOkum4Bd", "gWd2j86opDDUGfosRX/TMG5/3ZE7tbEceBndm/uJ/qOtC1d27NqwA5ud4xlvqVXuO4dNwH1Yzz9Zt/Yd", "mRLj3i10wvDmXaq9J+kSo8Ov5LZoINQMPibdr3fYjwqDev6Km9ZD3J9TpXMxKdcsL5VvEvjd+flLlisp", "Icd8Fmq/7iOfXvD6VjqmRS9g8Jbnlhm+AG9CWoXN/dwnhaqcdUcfmOFrGah6B29xpN3keWECKQqwiSrW", "vao0DmW6KRq3oosWH5ZyP5NCpRYkoyw6y+3eGNTKf+w0NRDWQDkdNvIMU4G7ovd7NQmpBhjz/K0CLcAM", "okYHg43y0GGrAM4kBn388rTdaiE+aVaLRSV9e0Yn0rudOjYSIRMT+POWH2qY2OOXp4PmZuw4f9xNSt0D", "3DIcbbUqA0SdyTBlL2FcEMHqWZDHG27zGMR4jvudrskiNzeewzPI+zfv/38AAAD//4MAez5ZmAAA", } // 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 }