// 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/+R97XIbt7Lgq6B4t8pJLUXqy3as82d9/JHIx461lnyyVccuCZxpkrCGAANgRDMuVd2H", "2DfZvVX7Y++vfYHcN9pCNzCD4WBIyrYcndz8cCTNDNDobvQXuhufepmazZUEaU3v6FPPZFOYcfzxsTFi", "IiE/4+bS/Z6DybSYW6Fk76jxlAnDOLPuJ26YsO53DRmIK8jZaMnsFNgvSl+CHvT6vblWc9BWAM6SqdmM", "yxx/FhZm+MN/0TDuHfX+ZVgDN/SQDZ/QB73rfs8u59A76nGt+dL9/kGN3Nf+z8ZqISf+7+dzLZQWdhm9", "IKSFCejwBv018bnks/SD9WMay225cTkOf6f0plsRN5fdgJSlyN2DsdIzbntH9If+6ovX/Z6GX0uhIe8d", "/SO85JDj11LBFi1hBUsRSmKo+jW93lfzqtEHyKwD8PEVFwUfFfBCjU7BWgdOi3NOhZwUwAw9Z2rMOHuh", "RsyNZhIMMlUiox+b4/wyBckm4gpknxViJizy2RUvRO7+LcEwq9zfDDA/yIC9lsWSlcbByBbCThkhDSd3", "c1cs2EL+KrPlMOZlYdtwnU2B+YcEBzNTtZAeGFYa0GzhYM/Bgp4JifNPhQkoGdDw0ZjpKaq/DK1ShRVz", "P5GQ9USOH/WYZ4CDQi6sWzqN6OEf88JAv41cOwXtgOZFoRbMfboKKONj696ZAvugRmzKDRsBSGbK0UxY", "C/mA/aLKImdiNi+WLIcC6LOiYPBRGBqQm0vDxkrT0B/UqM+4zJ0AUbO5KNw7wg7eyZrRR0oVwCWu6IoX", "bfycLO1USQYf5xqMEQqRPwLm3i65hdzhSOmcFhjoALiSJukquCra9NuscQnLNgzHOUgrxgK0H6Ri+T6b", "lcY6eEopfi2JET3RPviNkJzHbQyuJ4m98FguGXy0mjOuJ+XMSZjAb6P5cuA+NINTNYMT2lvL775nmSND", "aSB3b2YauAVaqt9/ywiGeovXkuUGLCRmM8gFt1AsmQY3FOO41BzGQgr3Qd8JApzeTdlHnKjSeoi4tiIr", "C64rOnTwgylHQXyuk7oJQXXqv6y2+o1HOPOfXwkj/Ca74Qh/d1+KwgngVSnueMxDtqXkPa1RsSKAy9GO", "e0IYJ54LaGVPSq1B2mLJlBOVPIyLTBwJSzNgFz89Pv3p2dPz58cvn52fPD776YIMgVxoyKzSSzbndsr+", "K7t41xv+C/73rnfB+HwOMoecSAiynLn1jUUB5+79Xr+XCx1+xD97pTXlZgr5ef3m+8Qe6aJLW4Z6DESr", "jzYmaQhu2PHTsGVw2U5w/LVw8OsB+1kxCcaJE2N1mdlSg2HfoYYwfZaLzE3FtQDzPeMamCnnc6Xt6tI9", "8H1nPBzsu0UXitteH/l620VGrBPvzIoZ+yntaRWqjKaEYxf+m4sjxosFXxp8acAuUK6jPL04IvbAr73o", "entMuhwR6jWAZt8V4hIYD0hjPM93lPx+wC4WMEoNs4BRrbWQ62Zc8gk4odZno9IyqSwpUD8LqSXk4wG7", "mIo8BweghCvQOPRfVnnZi0YHKSkZ9yIiBw1YN7vkRVPWBGrVCKWZeih0PF56/d4CRhtplubIYATVfELG", "szDsFaJAk2YUFiUinzm9lbCYCj6C4maWrF/p9lZ4ytJrGUkrIsxvYwIvmnOTPHPYSui8l8LYsIFRInXj", "rY2jYN1+3orPGoqiY7n1FKkFBjemtSz/gGlwxgtqcs4M2cze+Hb8Cx8hKy1scq+6fZeKgaLHAbw04aJP", "Uit6prXS7fX8CBK0yBi4x0yDmStpIOUI5ok98dPZ2Qkjb4W5NyoroRqIHbsdmxVlTmadw8acLwvFc2bc", "Pue2RiBB28Cts0URNCHJrxJKDt7JJ26y+7sHTqWhkYQSBw1EbvmIG3BPRqVZDpgzxxHQABRbiKJgmZKW", "C8k4u/cGrF7uPHbm8j16dQoczU8HnpC5yLgF4w3qxVRkU2bFjCxSRwowlmVcOt2kwWrhbOvnylnmQfr5", "AYVB+ejYhDsdHETGPcPKeRB8WSFAWrR9FTNqBs7+nDAN3CiJEhKlNnykTSB4wUY8u1TjMcnCygENGqvt", "/c7AGD5J8d4KcyHd6/dTnPW84DOQmfo7aOP9oS25/Kr+Yj0U4UUvI1NQvKDoAi+K1+Pe0T/WS4vT4AK5", "r677qwDzzIqrSlfHDP+0/i3YZwU3loUvmHNmvKOUdBLIkk8JFvcAfSExA2P5bB5TMucWdtyT1JgiMdzb", "t8dPA4QvMLawISyxbUTEaZQqIFLO8/RqzsIiHAyIIXp1sOWiVuiPAAfU1dNGkZKKZO+v3xM3/LVQ2WUh", "jO3WTQsUy8ZLIQ24N9GhhpxloFE+YOCMNJhy0sLMIRNjkQUSb6WeYnieSauXqZhF+6XWVlofgaL1nH9O", "GKr+NA4odWy0l9zYN2gwQn484xM4lmPVRvMzqcrJNJbcaDDySMDNBWTO4JuQM5qL8Ricg+N9GXST3deM", "s6kydkdDwa24Avb2zcsgLh177WgPDhMOngE7U07Ak+FP9u+bl333JyfJpXOm3/U+OT1xPfykZOVsmXI8", "Fh/BXL/rkSxtot990MStLpJbyQ/TMF82xKxWCIJTRSN1kOIVWO5UHoqtPEdnnRcnTaZZnXglOqFHwmqu", "l2zmBwvYH7BXSqNdMy/gY+xGeWU3UzkUZNCVToezCz4YDbILt5FqgjvEXgIGLOAjd2N5xsZ1HPVO51pY", "YM+1mEydY1Ua0AOYcVE4qJcjDfK/jbxXp/QkvEFqpXeKL7BT+//+7xUUEV4beDqNTOg0nqwuoePbSjAG", "LwOlDcZbucwcBij0Oi/A+p896wkld8Zc0BvVD3PubJZev/drCSX+wHU2FVfRj+Ry0vA73sTAx/hzCfS8", "dDjZiWdLOjfVGp5MuZxAW6yQaZGOZNKzKNTmzT0cavBVFMkK61dC3YPVwfpn3Fya03I243qZimPP5oUY", "C8hZ4cU9xTKDFzxgT8gCJCsTH9YerPuTE1zudeDO3uPmsm0W41dbOyl4muAB3sI/6dz05r+XQGuO9hMG", "2XtH952xVsuErl123e9hhPV8tMRTiFWN+j78dC5kg+MrlvXc/P665eASIJ96MyHFzG2YvbQJ+sWS67ko", "nEE+qiVXP8ihl8d/e1aLoWSsVI3HBpqA7qYArfH06QYHEGZLgdO1oijwZW6yqohqq1viDdhSS4q2OPai", "IxYedrTwpisu4SaWTXRAtsrR3dz7Bow/n2m5/ttvKDLfP3Mj+ejDEyXHYlJqbpPOi5nyGZfP0O/Kk8dc", "FEafAjvFV9lYFMCs5tKMQbPHJ8cYdw3xiUE6MG6V5hN4qTKePlN6WkVt0d110thxCM7lPx5sNPJWZ+mv", "rC6NpeXfAOZvSimT54XHlXe8iFBB5iSb8SW7BJgzTZ/js7QknbXmaWOpVlMdOof025tKXa6BNkQeYm3G", "KkVb2S20kAE7tsxM8bSsNOT3X9Ajx/xwwdxSvP8WH1lRrMBNgmHNiXL/SvhoB+zYh0qEYRdOFFz02UUT", "CRfs1dvTM2dnXeARzkX6WGWFyCuIrLDWhaMU0d/ARBjr7GmKXLW3Bc9zDcbc8ES+4NaZzmkKqrFdcA1r", "yLtJHPxSUYTEURVxPK9cGnMzKf5FZ/o+MBdQFZ/rB0T0exmd6CCEvQgLHdCnqHUKWamFXVYhvpWdtW2s", "Z12Qh2Tbkylkl6pMuNSngCaWk0der9gpCM1Of3q8f/8By9yHppz1mRG/4THNaGnBUPgrB+NAYIWXSyFO", "mPnZ6iOrFRcCZ8NgDx44HfXqA8vBRJF46x31Du6Pdg8f7WX7D0e7BwcH+d54dHh/nO0+/OER39vP+O6D", "0V7+4HA337//4NHDH3ZHP+w+zOH+7mH+cHf/Eey6gcRv0DvaO9w/xGgRzVaoyUTISTzVg4PRw/3swcHo", "0eH+4TjfOxg9Oni4Ox492N198Gj3h93sgO/df7j3MBsf8PzwcP/Bwf3R3g8Pswf8h0f3dx8+qqfaf3jd", "Nq0CRk4QgNa5OrdTJ4U1CSiv34Lcis+Qwzgo1zBc691q71J7TVYRAE8KuXH+M+pKyCnQVU0yYMeSqSIH", "zXyszgSX2o+F8y64YR9KQx75u2o57Pjpux7Z3sEI8aMwUQVWOUGBoc8Lb9bumKKcDE0GEnbcbhvSkf3O", "8dOmrKw3uGeZLe0Lgv25KOB0DtlGU4MG7zfJtHk31aZQyvtyz8hpWaFKKhnnM9jDh9VWGeMMfyXU12EZ", "O+WSLZzqdKSs1GXfMUc8KEbYQZpSO8L5RIp6G2NMHsn5VZgvRerVOPZ2JKlI3RZwPuzHQ+yXk/HlZZUH", "OjLFmqSZJ0kSLLGwV+IRA8RJD3vKExA2RW08ZnIMlDOf2g4INGV04vxg1ayc8iC3+r35dgj+RdhpHVfZ", "CtV9b01lKM5GHajvM6Wdh9RnOcxB5pjEJvFUltTvn5w229pKETk6ojAtqsbBgXXkbYXLSnkp1UJi5L5Q", "PCe71BGsYX/W66fB3hA0mC/l7dXPNjzQ0GjgrtOWuCWj4ZsYCN9AvXUTv0kvOmtNazWi1lirGeNMR58F", "ldKPSel9NNXc7qCvnN3xHIeqTnCQ0Zwm8a+5v8FHf/6ME9KZbX3O/a14oN6Y1X64HbaIJ6q221fmlUh8", "fynXUMJxU3CsbHFP/5vq3K8lCNcIPZVdgj1+/UKN3mIENZnOZ8BWedR9Zpwdpa5As/A1JS9QahYFIsyA", "PXdqDBYYqOs7gxeuhCrNOUFzQRbWqGbu1HHVVzoYDv58c6Cf+SzOUUxnxDaAvlEoMc7er/Ll7icDtBrG", "Gsz0vArGr435RBkW3jPy39MxAK3mnqEDAW8HY/6dtD7fzRh/mm363p7GX52lgUcFQubiSuQlp1MFtsBZ", "JiBBUxxIsRmXyzCIz36ea55ZkfGiM3n25kjsrlW46cH9F5zbJ07rfbVCVM/QpOG6vRYfPndtOk9ypWuS", "J06Jq2wlt/GcP+MhTeejbRUI6vfstJyNJJ5dbiRU+hw9lalWn8vTT9Uk6zDlRE93lcIpSDy4raQQbQrj", "XK2LoYm+vWBwhc4fpn5b5VM+g3aO3nQPHTI9Zw/YkzAmZapOwMbPyeXHUKvbJ2E/hN8LNUGvcskkgE+r", "mxciE7ZYhmlHQKLS4HFfJuyyXy3Eea+UwBredWMoSaml31mF8DSmHgeW+aBG36PN6F53r9wzDh6GQWPH", "+yl5q+YblU2CNK9D6Hjb5PbUICHnMQQsu4U+JZNZ1cTKkJWy/oMzlAabVcMKo6r5uhz49UuPvIUKDDzg", "rn9LOgpdqEgc1HDLLoWj6PhGOKjO/IvihRphrlFRUKTZVIVbjkMKNVkL4xk3ly/VpEtmnXmWZ9m0lJfe", "TrCK8XqHaqVmLAdSZzk99KmTDgDcm/xKidx9nNMSm7omxbUO7nY6mgOiYhkP2oC94ssqcXJWFlbMMRtR", "AoX74KNNZgQEybWWMc8oAn4znqtlYhP9bb5zw29jpJ0hJrutNERGy0zz6QOfZ6fF+YY3zu7bDm39m+iw", "zQafP634UouvWV75Od98S0OmUsT+YGdtGuIaTiThsQ0v0pvruNEftAZ+/AwnwJ/wfRU/YBHG+lLGaJ3k", "fcFX51mV9bTtx40z0ttksxvkQG/gvDBOkvHidOdkYUt9cFaXhzptEnK7VwIl22QYfXken39w8Pv/ZP/x", "r7//2+///vv//v3f/uNff/8/v//77/8rdh/QL4wTbvws59ks7x31Pvlfr/FoppSX5xQrOXBrss7tOudl", "LlRIyRmLAvwR35A8hqEZD50jTkdNe/sHAxwyJvLJzz+6X+emd7R/2O+NNZ+5/dfb29nb7fV76HCYc6XP", "r0QOyjmw+Jdev6dKOy8tFc7BRwuS+KE3mPvje1yKf6sNF81UQTZMo8tX+LXG00rZteNF8R20sWHHY9M7", "U71WXClmjg0OUJW9um0d/4ZIQMwDm5zk8Gq3m5yus1n1XVMbLt2U4SyYUtSGAWusTQhmhZOzUL/SZ2IA", "AzaCsdLArrgWWPmhYV7wDIOlg5vZEV+zlcNtVDFQPuH5aHnu0/JvlFbptVgC1i1tnhuYR07Mn1tVZtON", "GoG0tFwGPY3/y6sqkZAKtR2G7k6ni9sq+wglDDeh+LalIqvWW6rJRtxKo9pMG7pqRIi7QYZ4lQte5dMa", "NbY7qyniKX+ynvAupXPH/PMZ+dxxanTbQimNZdCuJuEj6kHgxWqol66bNfgwLmaADzos463N3ru07T7X", "hdmS98NMXZRaF8OgZ1XIfLSs/BhHIBqZam2I896Vu7v7DyjYh04PUgxLIqmKFqveHxcFq6mHx3pqTjnV", "f2HKG6wrL4iJVBpy9h1qUhWK0S/CzvbOuVSWgeY+rbOq5At9NmKX9/tN3nsTHa8l7BRC+i4b/hgC02fu", "GZZVrRym2HPBgRYOPUkxsNdXoBfOpjYs+E/FktBagRlKdZKKKhXZeakmPmJTyQAKHoVIRegA4YBGquCE", "wHUhqIY5Gd45/RwpkWSuOuV0JYJHTKQBc5EywKQjzIYWEqMgvn44keGxLlv1y6TAmk0WJk1tonqN2xWs", "eue0qh1Zlfhifh6tceUw5IT5Zy2Xf22G7govU6hWTphZGguzzWN9afbtNvIrWncjq7YuGE5n0V6/b1XB", "+YKfpm4Joqum2cttKkrbHHhTm3aV4OtxE0bvZjXK6O4qcvjMjG3INBXQ3Dbt/UwNEienWFMg7jEqJvL1", "TTAQErLPuwM1X325gcvTK2xBtGa1llvoshJ9dEzH1RLbR9eSNl402FZA5V1QfQVYNkDQNNeN5dpSWhpf", "8EsU36YAcO4r9p9wAg6Mf0WNx06DJq3z7jBioh6LOkdQUXRtI/lilDpl0f3xwh8oJMxYc17w35bra5Oa", "dS4+8YEMj7j/F2ZP1n3jSK7Uxoq3zQwbCynMNJxmfG6uwjZU7FfrW0PPLsfhr9yIbI1Y//o+wR8dqI6k", "VBMVvjuHU1IhqEvGn+c7YUKR1ud5Et3CiDQFVqicuiXECvGcl6nc27cGtJvAQRWVkx0/7bM5N2ahdB4e", "kWqgTpOM2/CqjvSdozIiD5nUsUS9xKm18961g1H4HgZ4vJnZWilUDU7YGXCneUpd+C/N0XA4DiFyoYbt", "ElVK72DPuZ75tAksCez1e4XIwCdI+nl+PHl5ddAaf7FYDCayHCg9GfpvzHAyL3YOBrsDkIOpnVHVu7BF", "A1o/XUSbo97eYHewi0Wtc5B8LnpHvQP8E6X4ImWGfC6G2WpV5IQ0fVXndpxj9yDbLJ90jEKplTjU/u5u", "QClI/J7P54XP7B5+8EEKYuxNbJ8s10TKNTEu3d4tqhRP4r8gIBzElAEWD1MlAkUNqSyfGCqKshyLnOsx", "nsl8roRPB5v4ZputASs6VINe9wm3ocR1rkwCp3RYQ6l5Xp3+VeXLr4bHZu+bNv6wz5nyx0C9eOdbXcL1", "LVJ4DUALbpgpswzMuCyKZegL51w/71pHCXdmsNIB9qtAR9V1CfjwAQvFc012I2QzHlI5kWVWOSNqGBZz", "HhUuN4Z7EZr3UdtU8IzYZK3hr6E7QJrBsPzap7LcBoPVDQoSyGrVdlBNB5ajU0LW4FvzXKMePQHyzyRQ", "EKuVWOmH2iiYze2SWkyIMZOKUotm3GZTLKoC+vDusORzsNm06onhEL+B6V6PMN2n7hgwxiYF2CpY5swo", "XbVFrnnQqdfhJ/fvz3wG1+s0SOjY1+x6949PPeGW4itPvIoMA7Z4pB+hbNV6eX+L/NPuO9ghUenZqiry", "2VuhSWJHA8k1xDmWY1UZtXFrKt+nuEUUswUpTO8bYsykUFa9VPePTGCvaPWYxPaLmJa6NQbrqSq5/KHu", "d97A3yc6Q+rmZtxbpLo383J1INXNyZty4d7/MdpYhDTlVakiam4MLV83KzT6SOZRJ9k02oejZku3AugM", "okmDNzBTV9BoAPctqXEr+rReSoIiZ+W8AMO+W/hksaph3fe+skAjRqLypwqPg15btx52Byp4lsEcy31B", "Wi3AsCm/Auoq7yf5tnrurYSPc8gs5NQldLDClcQLFbS+4Mxt7wgFCQZdu7n/GL66vV2+lrnQX1rDYFNu", "2URZwmeU2YBb/y6xAgkorATp6v4Y1oBskiv06pJNIBsdPtdoFuevmJrV4nqTDs0ybJSpbNQzjQISJ5T/", "HBzZVRfTZZrX5ZzX/bQEOwtlPrkCI+9ZElxcLpPdIztiBthz0jEL1p6arrIi06TzNrb1it5MDhrfwdHF", "PQZsHYDsCC+glXdaJQD8cyvGRh5MSje2Qt9WhRrjbRzNw85qVD/cgptKLSJVDvf3uxJvQm+pJkC+JTTd", "jBPaToV4u6lKXyt76o8Xqmv4ubIUVhYZ1kVh2jUcXNVwrpV72PrxTyLsGm0sOzQwIViAiZNRTEuf3DFl", "yz3cmEJT9dgMS4hYYRstml4xchA+Gn7ypUAbvDNfLrNFqKGqLLqbrIML6RB5dEwnx+qOskVds7aB+Ikv", "usg+LNTE+rrb9eR/qSZn7sW7wwUWPtrhvOBihQqrI3UTu1CTbuuHGn/GtyTgN1PuVA/WHC7B3llznRvL", "xrCIygyncUnuVhwUf1KNFxLhOiXJlvZUlNT2TVnq61tUrdTiP71JRTLoT2BTUcYo+jkzviT/BsZjyGxo", "nIMdhWkEbtgCisK/H46RHN5mwP3B5rSccWkoKFffBHglePseqIFPIjDM7RHMVsHtRB427qp6U10wIY0F", "jrkjYeNFaQtdsem/Vyl9t6ZSV28y+ezT5SqSfFVnXcQHzOvPl59E/Quo26wwlBcE2WXVNJZntuRFsWS8", "ns43RarQSgTYmU3sMEpA7NaOdVn7reE4yqJMoPdv2L4pwNod8Y/yLAMi67WmfezwaWDVqlNU3ElwDeaG", "n6o7Mq63weJWuiC+duNumplVmU2LViFxaMvDgEWVcbWRYo7SOVishQkJPZU1uwV5ttHbXqq2k6m+Nd2+", "vhZfkyB2F9T5HdG0ndy3nb4N7NzkyKH2nbN36kK2Lv6jFythcXuc0Mj97t7ISHcC6pumYLSajW+jdr8h", "G5UrbNQ6YyLwfZJP3QKhwWctHqtJ4pRS/aVZ5SgjJnJHjcdrXBAxka/H4942e/PuIdKnhqKkbSSF/gOr", "NGqcveL6Ms4G5c6Ip0TsDdh+wgt/S1FQ/laxwttqIQnL2QPYbeqeBjZRdPk5Dj9Ik0RuoIi81U3tp+je", "zlUZ/rfcy+2yg3+Kzbw1Dz4u7RSkpUI+X7nouKG6HrfDyPlihtTA86V7y41HbfMb1ZSiJnibXa0v1kya", "rBHJen80Z9BFGauXcXTGtaRi3V/cbZa6OXuQ9xddsqIx0MHlsgMJaT7YyaLKm6TwSlTp3LadWk2UOuOt", "VCOt8/Ns0n9imfNL3OKJQl0Q+vOHVuhoYzuBUUBOKVRUS+1lyU4zUhZ4Bat9hKwvxvXyBfROoTJeoGjj", "hfna8uwKGqspTYtVrW+g0qFesynkZQH+LOf2UhWNQwDknUctvutAlbzdJah+Vj581rywP6q/oUDn7sHX", "S/NvXAqTAP4EdMgjfwpSkNA83H3UWXjto6pe01GDC2KnPjMqPA7Xp0aXYNPSsSsUk2rhY7oH31a1hF3E", "pYNSUUwo6tw3Ki2blcb6O5q4VChnabfdcMf6iBOvxo+wsWkrIU8Zz+A6keKfDKp275WoXcOf4HDCr6Rr", "L3p7KCr4+zxtcTaFMFb7NCK1RepDV8O4lxoxG4XUOUPhxmhs3DN/SHjkC9XS27qTh28+upyLDCPScbeL", "uVYTDcb0/TWybnLUO2MuilLDRt0SNIoBmTdiig7dYXQnxZxFtGGbDGd8uSN2dNl90vCKL33UpJR/ijyB", "lQv8/lz+2Fl0mUN0UX/iKkJhYtWkS8mGHVcTste+sUxR9bo1jDNq1BSbonXbJKqC3oaLW1Y8encRZCsw", "VU3C1vM1dfPbmWuVl9k6496Jydf48kl4906oBUxyHH6Yw6TJVNWgIyEdJlO1yfTtXN740xY3PiGAzMr9", "PJs0yH73LScN/YFG31yrzEksXzJ1uLd3+7vsJciJnYabVvK/xJcg5CJHJYTylTOPgh3/yRR4HqzTvYPb", "h/SELwvFc2xcXXA9AT/1/W9xXFA13GCvIBecnVHD+yn4+wKIo4INiXc2IC3J9Vk9Rzzcf3T7QJ/VhKSO", "W82239TMk+JFvumDnWplbYH9JaAY/1PZHKdW+dvrZspYpiGjDlpVrjSulywB9rNC84RbJhA55Tyc9tYH", "Hv6KunCmjka7p7KlNl25mICx6LKt0Jg9qTp44S0DJz//iHh+cfLsR+ZZyQ06L7iUVauMrU2d6o4HM8Tm", "X7AIYkloyhAP0p6R9I8MILrWdxiuKRtSP8Q1DnXzds9bKjxvTpIqDo7v8qpCXv6qw28XxE7ezpjSFuGG", "QifjwzWKUZV67C7c7raqIOEFBYqpt6wXQ4ffRAxpYAv3D1EPQwtyMmBvDbALs4LR+sKvC0dnutaRISqx", "HFyFrLy7csj3hC5P5fUdll6mLmeFkJf+UjFiUI8B6kxg6a5Lj5TSYIAkKpujG7rI9PP3WfmWv86VqmzA", "OgxQixBC6ooIOfUAcWbizYTANO7U5Rp4WljE97FtKzJikt6q+EjdCbitJPkDhEjySrwUvFXTf0ckh3HI", "Gxfj9YN3E1wVf4ccLfFu7RW8crG+rzbGgb/I020dDU5BGr/jiVJcVwvbyOmPnc/kpvHmT3RE0hywjrn6", "REjKkiMoanmD7xoriqIGIdoeON7wU7hP8nr4Cf8iflvT3CC+Wk5peOKZcMXd2vqmUIeShG8WXr1RT4R+", "a17xG6xedVrdk5mYNax+m1nri2Pf3/qOa10nuGXZ4J3aPXHLtvraw+QFmA2rMtoo66R2xZH/uZmx/2mN", "M9W8NNBfQ57DGDSrbtUk3YzYQC3/rre/+8O7Xh2RqvoLo4OApfirlRi0PFNZbtTfqJGc2iA4nVTwwiga", "w6gZKAkMCoPj1G2FU2AityACybGvUfg/dmianSdc7jx169x5iwP0EjisOv2lcai0mAjJC5zTjT9gx2Pf", "t7hQcZ/j6rpXYav+w0L661pFLK6xFXF1BTSXjAt8I4dRSdfwb7G21x6wnecesN7GvjHbGDIqs2B3jNXA", "Z39UDOpwyxiUP6T8YdPrnh0bjBillx/uPUyOoP3nzgHAJkhsBHYBntk9OqPmLKFji09nJwDwnmalW3Kn", "MpYDL6N7cz9xDUXjfs8NuzbswHrneMbz0R03+wjch9X8o2Vj35EpcdG5hY6Yo9kFdTEj6RKjw6/krmgg", "CrLQ4WW33onCK62HuD/HSmdiVCxZVijfW/2ns7MTlikpIcPER387Bh2RecHrO4uaBr2AwUeeWWb4DLwJ", "aRX2RMcIpiqddUcfmME7Gah6z7As7CbPCyNIUYCNVL7sVKXxmRcGJyu3oo0WH9ByP5NCpWaOw16U9NO+", "rbSRKN9qDxcCdZU8w5qRtuh9oUYhJw0Px34tQQsw/ahlXH+l0c6gUSltEoM+PjluNq2LU5LUbFZK39Xe", "ifR2z8OVjPnEBD4Y96qCiT0+Oe5X2daNQiM3KfVhc8twtNWqCBC1JsPc7oRxQQSrZkEer7nNYxDjOe53", "upWZ3Nx4Ds8g1++v/38AAAD//9NI25umqQAA", } // 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 }