// 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/+R97XIUubLgqyjqbsTMxLa7jW1g8P2zHBjOmAMDi82ZjTgQtroqu1u4WuqRVG76EETc", "h9g32b0R+2Pvr30BzhttKFOqUnWputsGM5y5/CBsV5WUykzllzJTH7JczRdKgrQmO/6QmXwGc44/PjRG", "TCUUZ9xcut8LMLkWCyuUzI5bT5kwjDPrfuKGCet+15CDuIKCjVfMzoD9qvQl6GE2yBZaLUBbAThLruZz", "Lgv8WViY4w//RcMkO87+ZdQAN/KQjR7RB9nHQWZXC8iOM641X7nf36mx+9r/2Vgt5NT//XyhhdLCrqIX", "hLQwBR3eoL8mPpd8nn6weUxjua22Lsfh75TedCvi5rIfkKoShXswUXrObXZMfxisv/hxkGn4rRIaiuz4", "b+Elhxy/lhq2aAlrWIpQEkM1aOj1tp5Xjd9Bbh2AD6+4KPm4hKdqfArWOnA6nHMq5LQEZug5UxPG2VM1", "Zm40k2CQmRI5/dge59cZSDYVVyAHrBRzYZHPrngpCvd/BYZZ5f5mgPlBhuyFLFesMg5GthR2xghpOLmb", "u2bBDvLXma2ACa9K24XrbAbMPyQ4mJmppfTAsMqAZksHewEW9FxInH8mTEDJkIaPxkxPUf9lZJUqrVj4", "iYRsJnL8qCc8BxwUCmHd0mlED/+ElwYGXeTaGWgHNC9LtWTu03VAGZ9Y984M2Ds1ZjNu2BhAMlON58Ja", "KIbsV1WVBRPzRbliBZRAn5Ulg/fC0IDcXBo2UZqGfqfGA8Zl4QSImi9E6d4RdvhGNow+VqoELnFFV7zs", "4uflys6UZPB+ocEYoRD5Y2Du7YpbKByOlC5ogYEOgCtpk66Gq6bNoMsal7DqwnBSgLRiIkD7QWqWH7B5", "ZayDp5Lit4oY0RPtnd8IyXncxuB6mtgLD+WKwXurOeN6Ws2dhAn8Nl6shu5DMzxVc3hJe2v1/Q8sd2So", "DBTuzVwDt0BL9ftvFcHQbPFGslyDhcR8DoXgFsoV0+CGYhyXWsBESOE+GDhBgNO7KQeIE1VZDxHXVuRV", "yXVNhx5+MNU4iM9NUjchqE79l/VWv/YIZ/7zK2GE32TXHOGv7ktROgG8LsUdj3nIdpS8pw0q1gRwNd5z", "TwjjxHMBrexRpTVIW66YcqKSh3GRiSNhaYbs4ueHpz//9Pj8ycmzn85fPjz7+YIMgUJoyK3SK7bgdsb+", "K7t4k43+Bf+9yS4YXyxAFlAQCUFWc7e+iSjh3L2fDbJC6PAj/tkrrRk3MyjOmzffJvZIH126MtRjIFp9", "tDFJQ3DDTh6HLYPLdoLjT6WDXw/ZL4pJME6cGKur3FYaDPseNYQZsELkbiquBZgfGNfATLVYKG3Xl+6B", "Hzjj4fDALbpU3GYD5OtdFxmxTrwza2YcpLSnVagy2hKOXfhvLo4ZL5d8ZfClIbtAuY7y9OKY2AO/9qLr", "9QnpckSo1wCafV+KS2A8II3xothT8ochu1jCODXMEsaN1kKum3PJp+CE2oCNK8uksqRA/SyklpCPh+xi", "JooCHIASrkDj0P+6zsteNDpIScm4FxE5aMC62SUv27ImUKtBKM2UodDxeMkG2RLGW2mW5shgBDV8Qsaz", "MOw5okCTZhQWJSKfO72VsJhKPobyepasX+nuVnjK0usYSWsizG9jAi+ac5s8c9hK6LxnwtiwgVEi9eOt", "i6Ng3d5sxWctRdGz3GaK1AKDG9NZln/ANDjjBTU5Z4ZsZm98O/6F95BXFra5V/2+S81A0eMAXppw0Sep", "Ff2ktdLd9fwZJGiRM3CPmQazUNJAyhEsEnvi57Ozl4y8FebeqK2EeiB24nZsXlYFmXUOGwu+KhUvmHH7", "nNsGgQRtC7fOFkXQhCS/Sig5fCMfucnu7h86lYZGEkocNBC55WNuwD0ZV2Y1ZM4cR0ADUGwpypLlSlou", "JOPsu1dg9WrvoTOXv6NXZ8DR/HTgCVmInFsw3qBezkQ+Y1bMySJ1pABjWc6l000arBbOtn6inGUepJ8f", "UBiUj45NuNPBQWR8Z1i1CIIvLwVIi7avYkbNwdmfU6aBGyVRQqLUhve0CQQv2Zjnl2oyIVlYO6BBY3W9", "3zkYw6cp3ltjLqR7836Ks56UfA4yV38Fbbw/tCOXXzVfbIYivOhlZAqKpxRd4GX5YpId/22ztDgNLpD7", "6uNgHWCeW3FV6+qY4R83vwX7rOTGsvAFc86Md5SSTgJZ8inB4h6gLyTmYCyfL2JKFtzCnnuSGlMkhnv9", "+uRxgPApxha2hCV2jYg4jVIHRKpFkV7NWViEgwExRK8Od1zUGv0R4IC6ZtooUlKT7O3Ht8QNz8FyJwyQ", "oEWBbgwvX7YI3cHBmt+mx8Jqrlds7gfzNrYZsudKo8RflPA+NjC9GJgr50+jqqucdGMXfDge5hdu+xOd", "g9t5CejKwXvuxvK7B7n6ODtdaGGBPdFiOnMmZ2VAD2HORemgXo01yP829vau0tPwBm247BRfYKf2//3f", "KygjjdjaNaeRcZHGk9UV9Hxbs0ywv5AOGIniMncYoKDUogTrf5aELKHk3oQLeqP+YcGdNM8G2W8VVPgD", "1/lMXEU/kjFOw+954YuP8ecK6HnlcLIXz5Y0++o1PJpxOYWu7CKhm47x0LMoCOEVIQ41/CJbbG0f1Ozu", "weoRhGfcXJrTaj7nepWK8M0XpZgIKFjpjTSK8gT/YMgekW4k/YsPG9ve/ckpY/c6cKcJubnsGgz41c7m", "G8ZZPcA7WG6mb+Xmv1dAa472E4Yfs+O7To01MqFvl30cZBh7Oh+vMD67Lmvehp/OhWxxfM2ynpvffuyY", "/gTIh2wupJi7DXMnrZw/W3I9EaUzVcaN5BoEOfTs5C8/NWIoGUVSk4mBNqD7KUAbPH24RmjW7Chw+lYU", "hQTMdVYVUW19S7wCW2lJfqhjLwo+87CjhVfquIRWHHpnTdnh6H7ufQXGR647TtHuG4oMmxtuJO+XPVJy", "IqaV5jZp1pkZn3P5E1qkRfIAgAKMM2Cn+CqbCOfday7NBDR7+PIEI1LBcxumQ4ZWaT6FZyrn6Wj74zqe", "hY6Ak8aOQ3Au//Fwq4GxPstgbXVpLK3+ArB4VUmZPEk5qf2GZYSKJbqCbM5X7BJgwTR9js/SknTemaeL", "pUZN9egc0m+vanW5Adrgk8XajNWKtrZbaCFDdmKZmeE5QmXII7qgR4754YK5pXjLNg7mkxflJsGAz1S5", "/yW8t0N24p1IYdiFEwUXA3bRRsIFe/769MzZWRcY3L5IB5zXiLyGyBprfThKEf0VTIWxoKEgn767LXhR", "aDBpUShFftnv85fcOts4TUU1sUuuYQOJt4mEX2uqkEiq4zHn9QmiuZ4k/6wTzxoXgxpl8clnQMYgyynm", "jVBmESZ6VpCi2inklRZ2VQdB1nbYrt7wJjeYZNyjGeSXqkocPJ4CmlpOLnn9YmcgNDv9+eHB3Xssdx+a", "aj5gRvwdA9njlQVDAYICjAOBlV4+hUhK7mdrgvprrgTOhu4whuSPs+ZIZzhVJOay4+zw7nj/6MGd/OD+", "eP/w8LC4Mxkf3Z3k+/d/fMDvHOR8/974TnHvaL84uHvvwf0f98c/7t8v4O7+UXF//+AB7LuBxN8hO75z", "dHCE/jTNVqrpVMhpPNW9w/H9g/ze4fjB0cHRpLhzOH5weH9/Mr63v3/vwf6P+/khv3P3/p37+eSQF0dH", "B/cO747v/Hg/v8d/fHB3//6DZqqD+x+7JlbAyEsEoHPyyO3MSWNNgsrruSC/4lO2MA7KNwxoldzZeSFG", "4zVaTQA8S+GG5V5nQkGhgHqSITuRTJUFaOajGSb4534snHfJDXtXGTotf1Mvh508fpORDR6MET8KE3Xo", "iRMUGBy68Obtnimr6cjkIGHP7bYRHWrunTxuy8xmk3uW2dHOINifiBJOF5BvNTlo8EGbTNt3U2MSpbww", "94yclzWqpNIVbsAePvCwzhhn+CuhvhCTCWiM2s24ZEunQh0pa7U5cMwRD4oxSJCm0o5w/qi52cYYtURy", "fhHmS5F6PdK3G0lqUncF3AJyMRFeQiE90AjzssoDHZlkbdIskiQJFlnYK/GIAeKkpz3jCQjbojYeMzkG", "ypkPXUcE2jI6EWFdNy9nPMitQbbYDcG/Cjtr4is7oXrgraocxdm4B/UDprTzlAasgAXIAtN8JJ5bkfr9", "g9NmV3spIkdPNKZD1ThIsIm8nbBZJS+lWkqMbZaKF2SfOoK17NBm/TTYK4IGM0q83XpjwwMNjRbuem2J", "WzIavoqB8BXUWz/x2/Si06i0ViNqTbSaM8509FlQKYOYlN5XU+3tDvrK2R1PcCjy6jQwZDSnSfxr7m/w", "3p/Q4YR0qtWcBH4tHmg2Zr0fboct4onq7faFeSUS35/LNZSS2RYca1vc0/+6OvdLCcINQk/ll2BPXjxV", "49cYSU0mPBmwdabpgBlnR6kr0Cx8Tce7lLxCAQkzZE+cGoMlBuwGzuCFK6Eqc07QXJCFNW6Ym4ygNgK+", "0NFZ8OnbA/3C53EWVzpnsAX0tUKKcX5znVF0Nxmo1TDRYGbndVB+Y+wnOoP2npH/no4DaDXfGToY8HYw", "ZihJ6zOCjPHnfWbg7Wn81VkaeGQgZCGuRFFxOl1gS5xlChI0xYMUm3O5CoP4/NCF5rkVOS970wuvj8T+", "bO7rHm1+xslm4jzT53NHGd9tGm7aa25D9Wcnn4LEY8l6bxGpjXMgLkYm+vaCwRW6NJjyaZVP9Qo6J3rT", "PXR709NryB6FMSlDbQo2fk6OLAYSHfUDlcPvpZqir7RiEsCn0yxKkQtbrsK0YyABYPAwKxd2NagX4nwy", "SlwL77oxlKSUsu+tQnhaU1NQkyOUP6Al5F53r3xnHDwMQ6KOoikpohZbRWiCNC9CYHTXpNbUICHXKYTi", "+kUZJZFY1cbKiFWy+YNT/8PtAm+Nh9ViU+7r5qVHNnANBh7fNr8lzd8+VCSOIbhll8JRdHItHNQn2mX5", "VI1NXaPhmKJU041gnXFz+UxN+zTemedyls8qeekVnlWMN5tSKzVnBZBcLuihz5JyAOB25FdKFO7jglbV", "FpopRnVwdzNPHBA1l3jQhuw5X9U5UvOqtGKBiUcSKG4F723yiBsjsdt48YxCuddjszDyIGujv8tqbvhd", "rI0zxGS/uYHI6Ngb/jz8ZgZHnFp07USe3dBGxUE7ReZ3sVx82P1zTZd2JdVNvvmaGtljsK7I2phxtIET", "6cxlF16kNzdxoz857PAj/f3WTGB/zrWLFRydbvXz0zKM97kc1TnP+oyvznV8Mnqd72+LK6+RHbl+nJZg", "1jBWklfjZMhk2ntzaNQUjzkFFDI/14IEu2TZfH4um39w+Ol/sn/826d///Qfn/73p3//x799+j+f/uPT", "/4pNZ/SJ4qQTP8t5Pi+y4+yD//UjHktU8vKc4gSHbk3WuRznvCqECmkpzr/2x1sjjV+OzGTknFA6Zrlz", "cDjEIWNCv/zlz+7XhcmOD44G2UTzudt92Z29O/vZIBNzPgVzrvT5lShAOecN/5INMlXZRWWprAbeW5DE", "E9lw4Y+wcSn+rS5cNFMN2SiNLl//0xlPK2U3jhfFNtAShz2PzT36JOvEVGLm2OKl1Rmcu1b5bvGCYx7Y", "5iCGV/tdxHQW/rrfltpw6ZLts2B9UZE2VmCaEMgJp0Yhu33AxBCGbAwTpYFdcS0wL1zDouQ5BgqH1zM9", "vmSh9+3lON+G5fP7143fVhL1IFvWOSrbgPVafufE63UDKVWyHhem18y3pUY9Qtw1sorr/OE6B9Ooid1b", "TytOuWzNhN9SCnDMPzfIAY7TabsavTKWgVTVdBZX1TA+popeL4ZC9WFT+uxDfpg1POyxI/8pt91NvYQd", "eT/M1EepTWECelaHV8er2lVwBKKRqXqdOO9Ntb9/cI9CaOhXIMWwwIhq0rCG9GFZsoZ6eASkFpSH+69M", "eQNv7QUxlUpDwb5HzaNCaedF2Nne25DKMtDcpwLWdTGhaj32Kn/Y5iC30fFCwl4ppK9Z9yFrTLX4zrC8", "LoyeYQWzAy0ckFFeJXtxBXrpbFDDgqdRrgitNZihvCPFucngyTM19UGRWgZQfCa4XqGe2gGNVMEJgetS", "UEVgMoJyehMpkWSum6Qpft5W3rBTwqSpndAAulaE4+sN2mKKN37pjcSQWJxHGFg7DnnJ/LOOD3zzjM41", "XqYAqJwyszIW5tsn+n2828/PEY282DYKfLmgW3nwI2n/ePEmTMiN3lEYNw5wLZAjKrdSSpt6wp1TSAmq", "ZyKVYRFqnX0kpqsb/YOdjWtPhh0LYsLo/WBT1nJfIv9nZCVDrqlQpPvoMzln3eqhmVpUTE4RMUI/Pk7F", "VL64LiZC4vF5f2Dmiy87Zur0ajtQbVi15Rb6rNzPkxRJGzUabCegij6ovgAsWyBouxvGcm1J8PAlv0TN", "ZUoA565iNTpmM1e2oJQtC8a/rSYTZwwkHY32nu7IkD9xI/INiu7mBvdGnv4dtMpuwrtLL5I3mMd/6gaO", "Res5r1IZiq8NaDesUyZR8c3J4wFbcGOWShfhEQkY6ljGuA2v6khyOhLgkjDtwNGrwffM2kX20cHoSEgd", "E6TluW0K4OtCeXYG3MmvSpf+S3M8Gk1CMFWoUbeg7xX1Z3nC9dwfw2MBVTbISpGDTyPz8/z55bOrw874", "y+VyOJXVUOnpyH9jRtNFuXc43B+CHM7snGqEhS1b0PrpIrV5nN0Z7g/3sQRwAZIvRHacHeKfKBESKTPi", "CzHK12vIpqQv6qqgkwK7UNh2sZljEUpAw6EO9vcDSkHi93yxKH3+6+idd8+J3bYxY7K4DSnXxrh0G6us", "E+GI/8LudRBTnkw8TN3+ImpsYvnUUOmI5VgS2ozxkywWSvikmalv2tYZsKZDPejHAeE2FAQulEnglML6", "lMDkd+qfVLH6Ynhs91Do4g/75Sh/YJDFe97qCj7eIoU3ALTkhpkqz8FMqrJchf5CBRPSO5VRWpIZrnUS", "/CLQUQ1SAj58wEKJUZvdCNmMh4Q3ZJl1zogaz8ScR2WereGehiZQ1H4PPCO2WWv0W6ilTjMYFqv61Ijb", "YLCmnDuBrE4GPGW+Y/EuJfgMvzbPtap3EyD/QgIFsVqLlUGoIIH5wq6oIF9MmFSUqjLnNp9h6QnQh98O", "Sz4Bm8/qDgIO8VuY7sUYc0ma+uoJlnRjy0lZMKN03V6z4UGnXkcf3P+/8Dl83KRBQuendvekv33IhFuK", "z8/3KjIM2OGRQYSydafz7S3yT7d/VY9EpWfrqsinBoVmWz2NyDYQ50ROVG1xGr+5on6XHaKYHUhhsq+I", "MZNCWf1S04csgb2y06sM23hhmuPOGGymquXyu6Zvbgt/H+j0pJ+bcW+R6t7Oy/VRTD8nb0u0evv7aGM0", "lVNSRTTcGFoHbldo9JEsoo6EabSPDNjG8emxnpCJT+vI/lejwq3o0dYBV4IYZ80Bgq/3tyoUmuyiR496", "SxL8cM7u4nkOCwsFboajg4O+E7XQaKANkO+cRg2kQw8CH/Wv618mDbt8TTX5WsL7BeQOaAwPDCkc38+u", "vlar02UhrIu80LCOBAfXifwbxQf2AfqDyJBWT6MEDVAL4mMBJj5lMrVX9o3wxbqw4x5uPBurGy6FJUSs", "sFn9OKfG9KwYOQgfjT74NNotysenmu5gSdVZud8m6+BCekQenY3KifpG2aLJ995C/MQXfWQflWpqMelu", "G/mfqemZe/Hb4QIL7+1oUXKxRoX1kfqJXSpyMJIqi7pAxc1E8ZsZd6oH8/VXYL9FVqnbUE5gGaXoz+IK", "lp04KP6kHi+ccPdKkh3tqei0+quy1Je3qDo5Q394k4pk0B/ApqJUECxZnPMVm/ErYDCZQG5D9TS2l6MR", "uGFLKEv/foiSObzNgfu47ayac2nI52guzLgSvNsufeiPcgxze8TxwwVuJzpqwF3VbKoLJqSxwDFnP2y8", "6OSxz/X+a320fWsqdb3h742D57WjfNXkAsTx883h80dRuR+1HhMY+8OGBnUHMZ7bipflivFmOl8ZX6OV", "CLA3n9pRdFLfrx09GW8Tx1G6QQK9f8Ea/gBrf0AjSkgIiGzWmg7PhU8Dq9btAuJ2MhswN/rgT+S2mphN", "As9WXVAP+c2amXX+bIdWIZ1lx1jHsj7t3UoxR+kCLCa5hvPK2pqNJYv2Tev2mnzgtJYO3e1q0tyG9kyk", "pPSjDZUmAfVV4/mdPn+7CLmvqB6rNfW4xloBfH9i1NRctXiqo0EbkjgREBWXrXOUEVO5pyaTDQafmMoX", "k0m2i2Hz7SHS5xmgPGplGPztrRMjDc6ec30ZpxZwZzJREsgWbD/ipW8QHkStVaz0mjGc6Dnpi6Xw32lg", "U0U3suHwwzRJ5BaKyFvd1H6K/u1cV/98zb3czX76p9jMO/Pgw8rOQFrKh/YJ4I4b6jt7elTKZzOkBl6s", "3FtuPOpU2UpKFw3Bu+xqfc570kCISJb93pxBPWrX++D2RhGkYv1ffNssdX32IFs76m+s0a3kctWDhDQf", "7OVRAmBSeCWSBW9VkMUTpc7ya9VI67yZQ/9PLHN+jYvRKbAAoSVm6D6IAQonMEoo6DyOSlK8LNlrxyUC", "r2B7QiGb23q8fAG9V6qclyjaeGm+tDy7gtZqKtNhVevrNnvUaz6DoirBR85v79w7vvg3FXjyxVt1JlCf", "oPpF+WBF+xbBKAefwkr7h18uZ6zVhzkB/EvQISnpMUhBQvNo/0Gir0tdJSCVDZqO6gSJnQbMqPAYL0mF", "1s1ctHQsRmdSLX0E7fDrqpawi7h0UCrywKMeI+PK0qWH1B6dS4VylnbbNXes9+95PX6EjW1bCXnKeAbX", "iXyxZAirf69EVW9/gFCwX0nfXvT2UJTafTNtcTaDMFY39pvaIs0Rl2HcS42YjZah5Yi/+rgZG/dMPP4/", "i1p63RRE+jZJq4XIMf4XFw0utJpqMGbgb3DyV9xqNuGirDRs1S1BoxiQRSuC49AdRndSzFlEW7bJaM5X", "e2JPV/1x3ed85aMmlfxDnMqu3Z3xx/LHzqL+qdHtgYlbQISJVZOuJBv13ArCXvj63LLuymUYZ1TvHpui", "TfU5NUnchYs7Vjx6dxFkazD5Ilfia7ooZRQaPo+oW8AGO6l9T8ItJae3J0klEMddkWtPxjeN/3qxiWSf", "+wS44Q0Uz6EhfZTJHmuB290cNSS8JP+fOpV4A+ro9gE4Qy9z6f4j6qHFKKdD9toAuzBrGG1aJ184OlOD", "fIaoxJRxFY62v5XY7SO6hiK6qZtCK2Y1L4W8rC8dxRtBCANUvWDp1gCPFGc28rKkI068+J96HdOO9p2B", "fQMZpyHrrd1Yd434IKSuiY9TDxBnJt5MCEzrdhKugaeFRdzZeleREZP0VsVHqrv6rpLkdxAiyebiKXjr", "rnN4Ga9CDzwmxCAoraCBfDduWuK3tVeweX1z80eMA38lgr+tWWlr/I4nSnFdL2wrpz90qtBN01zNG3Rm", "e8DGlfbZBHTUTFA08obum7eiLBsQou2B440+hM78H0cf8C/i7xsKIOIm3UrDI8+Ea6bizncu4C13Xbsy", "vHqtuolB9wbKv8P6pRH1jQOJWcPqd5m1uYLj7a3vuE5j9v6qn6af/re2e+LuMU0D+eRVAi2LMtoom6R2", "zZH/uZlxkHLOvTQR7fbr/kKnAiagWX0/AelmxAZq+TfZwf6Pb7K1S80xjCTLlb+JfC2dkZZnasuNaiBb", "GR4tglMAipdG0RhGzUFJYFDS/epN050UmMgtiEC6/LxB4f/Yo2n2HnG599itc+81DpAlcBjd5pfCodJi", "KiQvcU43Pt4fSF19ShV3AaovzhC27s6zfjU9rRsb9dSX6XDJuMA3ChhXdKHZDmt74QHbe+IBy7bWlu1i", "yKjcgt0zVgOftyVE7c+PhXT7e7A9L/YRzWHWbtu5YXAK2asTmjrY/3Hb654dW4wY5Wgd3bmfHEH7z50D", "gIWSbAx2CZ7Zw738jdAJVV0+J8xfEYrbX3fkTm0sB15G9+Zuoqlh66aELbs27MBm53jGW2iV+4ZDY3Af", "1vOPV619R6bERe8WOmZ4ZSZVOpN0idHhV/KtaCDUDD4m3a932C8Kg3r+borWQ9yfE6VzMS5XLC+V7zz2", "89nZS5YrKQFv//ZNlH3k0wveiZDCzMC06AUM3vPcMsPn4E1Iq7BjmPukUJWz7ugDM3wjA1W/w+vXaDd5", "XhhDigJsrIpVryqNQ5luisat6KLFh6Xcz6RQqeHDKIvOcrtXfbSyzTol5MIaKCfDRp5h4mVX9D5V45Bq", "gDHP3yrQAswgKisfrBXjDVvlRiYx6MOXJ+3C9vikWc3nlfQ935xI7/ZFWEsXTEzgz1ue1zCxhy9PBs2V", "tnG2rpuUarXdMhxttSoDRJ3JMD0vYVwQwepZkMcbbvMYxHiO+53utyE3N57DM8jHtx//fwAAAP//DJJm", "NRKUAAA=", } // 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 }