diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 0000000..013f042 --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,8 @@ + + + + + ./tests/ + + + \ No newline at end of file diff --git a/public/openapi/SwaggerDark/.github/FUNDING.yml b/public/openapi/SwaggerDark/.github/FUNDING.yml new file mode 100644 index 0000000..82df96d --- /dev/null +++ b/public/openapi/SwaggerDark/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: amoenus +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/public/openapi/SwaggerDark/LICENSE b/public/openapi/SwaggerDark/LICENSE new file mode 100644 index 0000000..db9ede3 --- /dev/null +++ b/public/openapi/SwaggerDark/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Romans Pokrovskis + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/public/openapi/SwaggerDark/README.md b/public/openapi/SwaggerDark/README.md new file mode 100644 index 0000000..0929e82 --- /dev/null +++ b/public/openapi/SwaggerDark/README.md @@ -0,0 +1,8 @@ +# Amoenus Swagger Dark Theme +CSS with dark theme for SwaggerUI + +[![Install directly with Stylus](https://img.shields.io/badge/Install%20directly%20with-Stylus-238b8b.svg)](https://github.com/Amoenus/SwaggerDark/raw/master/SwaggerDark.user.css) + +## Example +![Screenshot of Amoenus Swagger Dark Theme](https://github.com/Amoenus/SwaggerDark/blob/master/SwaggerDark.png "Amoenus Swagger Dark Theme") + diff --git a/public/openapi/SwaggerDark/SwaggerDark.css b/public/openapi/SwaggerDark/SwaggerDark.css new file mode 100644 index 0000000..c0384aa --- /dev/null +++ b/public/openapi/SwaggerDark/SwaggerDark.css @@ -0,0 +1,829 @@ +a { color: #8c8cfa; } + +::-webkit-scrollbar-track-piece { background-color: rgba(255, 255, 255, .2) !important; } + +::-webkit-scrollbar-track { background-color: rgba(255, 255, 255, .3) !important; } + +::-webkit-scrollbar-thumb { background-color: rgba(255, 255, 255, .5) !important; } + +embed[type="application/pdf"] { filter: invert(90%); } + +html { + background: #1f1f1f !important; + box-sizing: border-box; + filter: contrast(100%) brightness(100%) saturate(100%); + overflow-y: scroll; +} + +body { + background: #1f1f1f; + background-color: #1f1f1f; + background-image: none !important; +} + +button, input, select, textarea { + background-color: #1f1f1f; + color: #bfbfbf; +} + +font, html { color: #bfbfbf; } + +.swagger-ui, .swagger-ui section h3 { color: #b5bac9; } + +.swagger-ui a { background-color: transparent; } + +.swagger-ui mark { + background-color: #664b00; + color: #bfbfbf; +} + +.swagger-ui legend { color: inherit; } + +.swagger-ui .debug * { outline: #e6da99 solid 1px; } + +.swagger-ui .debug-white * { outline: #fff solid 1px; } + +.swagger-ui .debug-black * { outline: #bfbfbf solid 1px; } + +.swagger-ui .debug-grid { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg==) 0 0; } + +.swagger-ui .debug-grid-16 { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC) 0 0; } + +.swagger-ui .debug-grid-8-solid { background: url(data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z) 0 0 #1c1c21; } + +.swagger-ui .debug-grid-16-solid { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII=) 0 0 #1c1c21; } + +.swagger-ui .b--black { border-color: #000; } + +.swagger-ui .b--near-black { border-color: #121212; } + +.swagger-ui .b--dark-gray { border-color: #333; } + +.swagger-ui .b--mid-gray { border-color: #545454; } + +.swagger-ui .b--gray { border-color: #787878; } + +.swagger-ui .b--silver { border-color: #999; } + +.swagger-ui .b--light-silver { border-color: #6e6e6e; } + +.swagger-ui .b--moon-gray { border-color: #4d4d4d; } + +.swagger-ui .b--light-gray { border-color: #2b2b2b; } + +.swagger-ui .b--near-white { border-color: #242424; } + +.swagger-ui .b--white { border-color: #1c1c21; } + +.swagger-ui .b--white-90 { border-color: rgba(28, 28, 33, .9); } + +.swagger-ui .b--white-80 { border-color: rgba(28, 28, 33, .8); } + +.swagger-ui .b--white-70 { border-color: rgba(28, 28, 33, .7); } + +.swagger-ui .b--white-60 { border-color: rgba(28, 28, 33, .6); } + +.swagger-ui .b--white-50 { border-color: rgba(28, 28, 33, .5); } + +.swagger-ui .b--white-40 { border-color: rgba(28, 28, 33, .4); } + +.swagger-ui .b--white-30 { border-color: rgba(28, 28, 33, .3); } + +.swagger-ui .b--white-20 { border-color: rgba(28, 28, 33, .2); } + +.swagger-ui .b--white-10 { border-color: rgba(28, 28, 33, .1); } + +.swagger-ui .b--white-05 { border-color: rgba(28, 28, 33, .05); } + +.swagger-ui .b--white-025 { border-color: rgba(28, 28, 33, .024); } + +.swagger-ui .b--white-0125 { border-color: rgba(28, 28, 33, .01); } + +.swagger-ui .b--black-90 { border-color: rgba(0, 0, 0, .9); } + +.swagger-ui .b--black-80 { border-color: rgba(0, 0, 0, .8); } + +.swagger-ui .b--black-70 { border-color: rgba(0, 0, 0, .7); } + +.swagger-ui .b--black-60 { border-color: rgba(0, 0, 0, .6); } + +.swagger-ui .b--black-50 { border-color: rgba(0, 0, 0, .5); } + +.swagger-ui .b--black-40 { border-color: rgba(0, 0, 0, .4); } + +.swagger-ui .b--black-30 { border-color: rgba(0, 0, 0, .3); } + +.swagger-ui .b--black-20 { border-color: rgba(0, 0, 0, .2); } + +.swagger-ui .b--black-10 { border-color: rgba(0, 0, 0, .1); } + +.swagger-ui .b--black-05 { border-color: rgba(0, 0, 0, .05); } + +.swagger-ui .b--black-025 { border-color: rgba(0, 0, 0, .024); } + +.swagger-ui .b--black-0125 { border-color: rgba(0, 0, 0, .01); } + +.swagger-ui .b--dark-red { border-color: #bc2f36; } + +.swagger-ui .b--red { border-color: #c83932; } + +.swagger-ui .b--light-red { border-color: #ab3c2b; } + +.swagger-ui .b--orange { border-color: #cc6e33; } + +.swagger-ui .b--purple { border-color: #5e2ca5; } + +.swagger-ui .b--light-purple { border-color: #672caf; } + +.swagger-ui .b--dark-pink { border-color: #ab2b81; } + +.swagger-ui .b--hot-pink { border-color: #c03086; } + +.swagger-ui .b--pink { border-color: #8f2464; } + +.swagger-ui .b--light-pink { border-color: #721d4d; } + +.swagger-ui .b--dark-green { border-color: #1c6e50; } + +.swagger-ui .b--green { border-color: #279b70; } + +.swagger-ui .b--light-green { border-color: #228762; } + +.swagger-ui .b--navy { border-color: #0d1d35; } + +.swagger-ui .b--dark-blue { border-color: #20497e; } + +.swagger-ui .b--blue { border-color: #4380d0; } + +.swagger-ui .b--light-blue { border-color: #20517e; } + +.swagger-ui .b--lightest-blue { border-color: #143a52; } + +.swagger-ui .b--washed-blue { border-color: #0c312d; } + +.swagger-ui .b--washed-green { border-color: #0f3d2c; } + +.swagger-ui .b--washed-red { border-color: #411010; } + +.swagger-ui .b--transparent { border-color: transparent; } + +.swagger-ui .b--gold, .swagger-ui .b--light-yellow, .swagger-ui .b--washed-yellow, .swagger-ui .b--yellow { border-color: #664b00; } + +.swagger-ui .shadow-1 { box-shadow: rgba(0, 0, 0, .2) 0 0 4px 2px; } + +.swagger-ui .shadow-2 { box-shadow: rgba(0, 0, 0, .2) 0 0 8px 2px; } + +.swagger-ui .shadow-3 { box-shadow: rgba(0, 0, 0, .2) 2px 2px 4px 2px; } + +.swagger-ui .shadow-4 { box-shadow: rgba(0, 0, 0, .2) 2px 2px 8px 0; } + +.swagger-ui .shadow-5 { box-shadow: rgba(0, 0, 0, .2) 4px 4px 8px 0; } + +@media screen and (min-width: 30em) { + .swagger-ui .shadow-1-ns { box-shadow: rgba(0, 0, 0, .2) 0 0 4px 2px; } + + .swagger-ui .shadow-2-ns { box-shadow: rgba(0, 0, 0, .2) 0 0 8px 2px; } + + .swagger-ui .shadow-3-ns { box-shadow: rgba(0, 0, 0, .2) 2px 2px 4px 2px; } + + .swagger-ui .shadow-4-ns { box-shadow: rgba(0, 0, 0, .2) 2px 2px 8px 0; } + + .swagger-ui .shadow-5-ns { box-shadow: rgba(0, 0, 0, .2) 4px 4px 8px 0; } +} + +@media screen and (max-width: 60em) and (min-width: 30em) { + .swagger-ui .shadow-1-m { box-shadow: rgba(0, 0, 0, .2) 0 0 4px 2px; } + + .swagger-ui .shadow-2-m { box-shadow: rgba(0, 0, 0, .2) 0 0 8px 2px; } + + .swagger-ui .shadow-3-m { box-shadow: rgba(0, 0, 0, .2) 2px 2px 4px 2px; } + + .swagger-ui .shadow-4-m { box-shadow: rgba(0, 0, 0, .2) 2px 2px 8px 0; } + + .swagger-ui .shadow-5-m { box-shadow: rgba(0, 0, 0, .2) 4px 4px 8px 0; } +} + +@media screen and (min-width: 60em) { + .swagger-ui .shadow-1-l { box-shadow: rgba(0, 0, 0, .2) 0 0 4px 2px; } + + .swagger-ui .shadow-2-l { box-shadow: rgba(0, 0, 0, .2) 0 0 8px 2px; } + + .swagger-ui .shadow-3-l { box-shadow: rgba(0, 0, 0, .2) 2px 2px 4px 2px; } + + .swagger-ui .shadow-4-l { box-shadow: rgba(0, 0, 0, .2) 2px 2px 8px 0; } + + .swagger-ui .shadow-5-l { box-shadow: rgba(0, 0, 0, .2) 4px 4px 8px 0; } +} + +.swagger-ui .black-05 { color: rgba(191, 191, 191, .05); } + +.swagger-ui .bg-black-05 { background-color: rgba(0, 0, 0, .05); } + +.swagger-ui .black-90, .swagger-ui .hover-black-90:focus, .swagger-ui .hover-black-90:hover { color: rgba(191, 191, 191, .9); } + +.swagger-ui .black-80, .swagger-ui .hover-black-80:focus, .swagger-ui .hover-black-80:hover { color: rgba(191, 191, 191, .8); } + +.swagger-ui .black-70, .swagger-ui .hover-black-70:focus, .swagger-ui .hover-black-70:hover { color: rgba(191, 191, 191, .7); } + +.swagger-ui .black-60, .swagger-ui .hover-black-60:focus, .swagger-ui .hover-black-60:hover { color: rgba(191, 191, 191, .6); } + +.swagger-ui .black-50, .swagger-ui .hover-black-50:focus, .swagger-ui .hover-black-50:hover { color: rgba(191, 191, 191, .5); } + +.swagger-ui .black-40, .swagger-ui .hover-black-40:focus, .swagger-ui .hover-black-40:hover { color: rgba(191, 191, 191, .4); } + +.swagger-ui .black-30, .swagger-ui .hover-black-30:focus, .swagger-ui .hover-black-30:hover { color: rgba(191, 191, 191, .3); } + +.swagger-ui .black-20, .swagger-ui .hover-black-20:focus, .swagger-ui .hover-black-20:hover { color: rgba(191, 191, 191, .2); } + +.swagger-ui .black-10, .swagger-ui .hover-black-10:focus, .swagger-ui .hover-black-10:hover { color: rgba(191, 191, 191, .1); } + +.swagger-ui .hover-white-90:focus, .swagger-ui .hover-white-90:hover, .swagger-ui .white-90 { color: rgba(255, 255, 255, .9); } + +.swagger-ui .hover-white-80:focus, .swagger-ui .hover-white-80:hover, .swagger-ui .white-80 { color: rgba(255, 255, 255, .8); } + +.swagger-ui .hover-white-70:focus, .swagger-ui .hover-white-70:hover, .swagger-ui .white-70 { color: rgba(255, 255, 255, .7); } + +.swagger-ui .hover-white-60:focus, .swagger-ui .hover-white-60:hover, .swagger-ui .white-60 { color: rgba(255, 255, 255, .6); } + +.swagger-ui .hover-white-50:focus, .swagger-ui .hover-white-50:hover, .swagger-ui .white-50 { color: rgba(255, 255, 255, .5); } + +.swagger-ui .hover-white-40:focus, .swagger-ui .hover-white-40:hover, .swagger-ui .white-40 { color: rgba(255, 255, 255, .4); } + +.swagger-ui .hover-white-30:focus, .swagger-ui .hover-white-30:hover, .swagger-ui .white-30 { color: rgba(255, 255, 255, .3); } + +.swagger-ui .hover-white-20:focus, .swagger-ui .hover-white-20:hover, .swagger-ui .white-20 { color: rgba(255, 255, 255, .2); } + +.swagger-ui .hover-white-10:focus, .swagger-ui .hover-white-10:hover, .swagger-ui .white-10 { color: rgba(255, 255, 255, .1); } + +.swagger-ui .hover-moon-gray:focus, .swagger-ui .hover-moon-gray:hover, .swagger-ui .moon-gray { color: #ccc; } + +.swagger-ui .hover-light-gray:focus, .swagger-ui .hover-light-gray:hover, .swagger-ui .light-gray { color: #ededed; } + +.swagger-ui .hover-near-white:focus, .swagger-ui .hover-near-white:hover, .swagger-ui .near-white { color: #f5f5f5; } + +.swagger-ui .dark-red, .swagger-ui .hover-dark-red:focus, .swagger-ui .hover-dark-red:hover { color: #e6999d; } + +.swagger-ui .hover-red:focus, .swagger-ui .hover-red:hover, .swagger-ui .red { color: #e69d99; } + +.swagger-ui .hover-light-red:focus, .swagger-ui .hover-light-red:hover, .swagger-ui .light-red { color: #e6a399; } + +.swagger-ui .hover-orange:focus, .swagger-ui .hover-orange:hover, .swagger-ui .orange { color: #e6b699; } + +.swagger-ui .gold, .swagger-ui .hover-gold:focus, .swagger-ui .hover-gold:hover { color: #e6d099; } + +.swagger-ui .hover-yellow:focus, .swagger-ui .hover-yellow:hover, .swagger-ui .yellow { color: #e6da99; } + +.swagger-ui .hover-light-yellow:focus, .swagger-ui .hover-light-yellow:hover, .swagger-ui .light-yellow { color: #ede6b6; } + +.swagger-ui .hover-purple:focus, .swagger-ui .hover-purple:hover, .swagger-ui .purple { color: #b99ae4; } + +.swagger-ui .hover-light-purple:focus, .swagger-ui .hover-light-purple:hover, .swagger-ui .light-purple { color: #bb99e6; } + +.swagger-ui .dark-pink, .swagger-ui .hover-dark-pink:focus, .swagger-ui .hover-dark-pink:hover { color: #e699cc; } + +.swagger-ui .hot-pink, .swagger-ui .hover-hot-pink:focus, .swagger-ui .hover-hot-pink:hover, .swagger-ui .hover-pink:focus, .swagger-ui .hover-pink:hover, .swagger-ui .pink { color: #e699c7; } + +.swagger-ui .hover-light-pink:focus, .swagger-ui .hover-light-pink:hover, .swagger-ui .light-pink { color: #edb6d5; } + +.swagger-ui .dark-green, .swagger-ui .green, .swagger-ui .hover-dark-green:focus, .swagger-ui .hover-dark-green:hover, .swagger-ui .hover-green:focus, .swagger-ui .hover-green:hover { color: #99e6c9; } + +.swagger-ui .hover-light-green:focus, .swagger-ui .hover-light-green:hover, .swagger-ui .light-green { color: #a1e8ce; } + +.swagger-ui .hover-navy:focus, .swagger-ui .hover-navy:hover, .swagger-ui .navy { color: #99b8e6; } + +.swagger-ui .blue, .swagger-ui .dark-blue, .swagger-ui .hover-blue:focus, .swagger-ui .hover-blue:hover, .swagger-ui .hover-dark-blue:focus, .swagger-ui .hover-dark-blue:hover { color: #99bae6; } + +.swagger-ui .hover-light-blue:focus, .swagger-ui .hover-light-blue:hover, .swagger-ui .light-blue { color: #a9cbea; } + +.swagger-ui .hover-lightest-blue:focus, .swagger-ui .hover-lightest-blue:hover, .swagger-ui .lightest-blue { color: #d6e9f5; } + +.swagger-ui .hover-washed-blue:focus, .swagger-ui .hover-washed-blue:hover, .swagger-ui .washed-blue { color: #f7fdfc; } + +.swagger-ui .hover-washed-green:focus, .swagger-ui .hover-washed-green:hover, .swagger-ui .washed-green { color: #ebfaf4; } + +.swagger-ui .hover-washed-yellow:focus, .swagger-ui .hover-washed-yellow:hover, .swagger-ui .washed-yellow { color: #fbf9ef; } + +.swagger-ui .hover-washed-red:focus, .swagger-ui .hover-washed-red:hover, .swagger-ui .washed-red { color: #f9e7e7; } + +.swagger-ui .color-inherit, .swagger-ui .hover-inherit:focus, .swagger-ui .hover-inherit:hover { color: inherit; } + +.swagger-ui .bg-black-90, .swagger-ui .hover-bg-black-90:focus, .swagger-ui .hover-bg-black-90:hover { background-color: rgba(0, 0, 0, .9); } + +.swagger-ui .bg-black-80, .swagger-ui .hover-bg-black-80:focus, .swagger-ui .hover-bg-black-80:hover { background-color: rgba(0, 0, 0, .8); } + +.swagger-ui .bg-black-70, .swagger-ui .hover-bg-black-70:focus, .swagger-ui .hover-bg-black-70:hover { background-color: rgba(0, 0, 0, .7); } + +.swagger-ui .bg-black-60, .swagger-ui .hover-bg-black-60:focus, .swagger-ui .hover-bg-black-60:hover { background-color: rgba(0, 0, 0, .6); } + +.swagger-ui .bg-black-50, .swagger-ui .hover-bg-black-50:focus, .swagger-ui .hover-bg-black-50:hover { background-color: rgba(0, 0, 0, .5); } + +.swagger-ui .bg-black-40, .swagger-ui .hover-bg-black-40:focus, .swagger-ui .hover-bg-black-40:hover { background-color: rgba(0, 0, 0, .4); } + +.swagger-ui .bg-black-30, .swagger-ui .hover-bg-black-30:focus, .swagger-ui .hover-bg-black-30:hover { background-color: rgba(0, 0, 0, .3); } + +.swagger-ui .bg-black-20, .swagger-ui .hover-bg-black-20:focus, .swagger-ui .hover-bg-black-20:hover { background-color: rgba(0, 0, 0, .2); } + +.swagger-ui .bg-white-90, .swagger-ui .hover-bg-white-90:focus, .swagger-ui .hover-bg-white-90:hover { background-color: rgba(28, 28, 33, .9); } + +.swagger-ui .bg-white-80, .swagger-ui .hover-bg-white-80:focus, .swagger-ui .hover-bg-white-80:hover { background-color: rgba(28, 28, 33, .8); } + +.swagger-ui .bg-white-70, .swagger-ui .hover-bg-white-70:focus, .swagger-ui .hover-bg-white-70:hover { background-color: rgba(28, 28, 33, .7); } + +.swagger-ui .bg-white-60, .swagger-ui .hover-bg-white-60:focus, .swagger-ui .hover-bg-white-60:hover { background-color: rgba(28, 28, 33, .6); } + +.swagger-ui .bg-white-50, .swagger-ui .hover-bg-white-50:focus, .swagger-ui .hover-bg-white-50:hover { background-color: rgba(28, 28, 33, .5); } + +.swagger-ui .bg-white-40, .swagger-ui .hover-bg-white-40:focus, .swagger-ui .hover-bg-white-40:hover { background-color: rgba(28, 28, 33, .4); } + +.swagger-ui .bg-white-30, .swagger-ui .hover-bg-white-30:focus, .swagger-ui .hover-bg-white-30:hover { background-color: rgba(28, 28, 33, .3); } + +.swagger-ui .bg-white-20, .swagger-ui .hover-bg-white-20:focus, .swagger-ui .hover-bg-white-20:hover { background-color: rgba(28, 28, 33, .2); } + +.swagger-ui .bg-black, .swagger-ui .hover-bg-black:focus, .swagger-ui .hover-bg-black:hover { background-color: #000; } + +.swagger-ui .bg-near-black, .swagger-ui .hover-bg-near-black:focus, .swagger-ui .hover-bg-near-black:hover { background-color: #121212; } + +.swagger-ui .bg-dark-gray, .swagger-ui .hover-bg-dark-gray:focus, .swagger-ui .hover-bg-dark-gray:hover { background-color: #333; } + +.swagger-ui .bg-mid-gray, .swagger-ui .hover-bg-mid-gray:focus, .swagger-ui .hover-bg-mid-gray:hover { background-color: #545454; } + +.swagger-ui .bg-gray, .swagger-ui .hover-bg-gray:focus, .swagger-ui .hover-bg-gray:hover { background-color: #787878; } + +.swagger-ui .bg-silver, .swagger-ui .hover-bg-silver:focus, .swagger-ui .hover-bg-silver:hover { background-color: #999; } + +.swagger-ui .bg-white, .swagger-ui .hover-bg-white:focus, .swagger-ui .hover-bg-white:hover { background-color: #1c1c21; } + +.swagger-ui .bg-transparent, .swagger-ui .hover-bg-transparent:focus, .swagger-ui .hover-bg-transparent:hover { background-color: transparent; } + +.swagger-ui .bg-dark-red, .swagger-ui .hover-bg-dark-red:focus, .swagger-ui .hover-bg-dark-red:hover { background-color: #bc2f36; } + +.swagger-ui .bg-red, .swagger-ui .hover-bg-red:focus, .swagger-ui .hover-bg-red:hover { background-color: #c83932; } + +.swagger-ui .bg-light-red, .swagger-ui .hover-bg-light-red:focus, .swagger-ui .hover-bg-light-red:hover { background-color: #ab3c2b; } + +.swagger-ui .bg-orange, .swagger-ui .hover-bg-orange:focus, .swagger-ui .hover-bg-orange:hover { background-color: #cc6e33; } + +.swagger-ui .bg-gold, .swagger-ui .bg-light-yellow, .swagger-ui .bg-washed-yellow, .swagger-ui .bg-yellow, .swagger-ui .hover-bg-gold:focus, .swagger-ui .hover-bg-gold:hover, .swagger-ui .hover-bg-light-yellow:focus, .swagger-ui .hover-bg-light-yellow:hover, .swagger-ui .hover-bg-washed-yellow:focus, .swagger-ui .hover-bg-washed-yellow:hover, .swagger-ui .hover-bg-yellow:focus, .swagger-ui .hover-bg-yellow:hover { background-color: #664b00; } + +.swagger-ui .bg-purple, .swagger-ui .hover-bg-purple:focus, .swagger-ui .hover-bg-purple:hover { background-color: #5e2ca5; } + +.swagger-ui .bg-light-purple, .swagger-ui .hover-bg-light-purple:focus, .swagger-ui .hover-bg-light-purple:hover { background-color: #672caf; } + +.swagger-ui .bg-dark-pink, .swagger-ui .hover-bg-dark-pink:focus, .swagger-ui .hover-bg-dark-pink:hover { background-color: #ab2b81; } + +.swagger-ui .bg-hot-pink, .swagger-ui .hover-bg-hot-pink:focus, .swagger-ui .hover-bg-hot-pink:hover { background-color: #c03086; } + +.swagger-ui .bg-pink, .swagger-ui .hover-bg-pink:focus, .swagger-ui .hover-bg-pink:hover { background-color: #8f2464; } + +.swagger-ui .bg-light-pink, .swagger-ui .hover-bg-light-pink:focus, .swagger-ui .hover-bg-light-pink:hover { background-color: #721d4d; } + +.swagger-ui .bg-dark-green, .swagger-ui .hover-bg-dark-green:focus, .swagger-ui .hover-bg-dark-green:hover { background-color: #1c6e50; } + +.swagger-ui .bg-green, .swagger-ui .hover-bg-green:focus, .swagger-ui .hover-bg-green:hover { background-color: #279b70; } + +.swagger-ui .bg-light-green, .swagger-ui .hover-bg-light-green:focus, .swagger-ui .hover-bg-light-green:hover { background-color: #228762; } + +.swagger-ui .bg-navy, .swagger-ui .hover-bg-navy:focus, .swagger-ui .hover-bg-navy:hover { background-color: #0d1d35; } + +.swagger-ui .bg-dark-blue, .swagger-ui .hover-bg-dark-blue:focus, .swagger-ui .hover-bg-dark-blue:hover { background-color: #20497e; } + +.swagger-ui .bg-blue, .swagger-ui .hover-bg-blue:focus, .swagger-ui .hover-bg-blue:hover { background-color: #4380d0; } + +.swagger-ui .bg-light-blue, .swagger-ui .hover-bg-light-blue:focus, .swagger-ui .hover-bg-light-blue:hover { background-color: #20517e; } + +.swagger-ui .bg-lightest-blue, .swagger-ui .hover-bg-lightest-blue:focus, .swagger-ui .hover-bg-lightest-blue:hover { background-color: #143a52; } + +.swagger-ui .bg-washed-blue, .swagger-ui .hover-bg-washed-blue:focus, .swagger-ui .hover-bg-washed-blue:hover { background-color: #0c312d; } + +.swagger-ui .bg-washed-green, .swagger-ui .hover-bg-washed-green:focus, .swagger-ui .hover-bg-washed-green:hover { background-color: #0f3d2c; } + +.swagger-ui .bg-washed-red, .swagger-ui .hover-bg-washed-red:focus, .swagger-ui .hover-bg-washed-red:hover { background-color: #411010; } + +.swagger-ui .bg-inherit, .swagger-ui .hover-bg-inherit:focus, .swagger-ui .hover-bg-inherit:hover { background-color: inherit; } + +.swagger-ui .shadow-hover { transition: all .5s cubic-bezier(.165, .84, .44, 1) 0s; } + +.swagger-ui .shadow-hover::after { + border-radius: inherit; + box-shadow: rgba(0, 0, 0, .2) 0 0 16px 2px; + content: ""; + height: 100%; + left: 0; + opacity: 0; + position: absolute; + top: 0; + transition: opacity .5s cubic-bezier(.165, .84, .44, 1) 0s; + width: 100%; + z-index: -1; +} + +.swagger-ui .bg-animate, .swagger-ui .bg-animate:focus, .swagger-ui .bg-animate:hover { transition: background-color .15s ease-in-out 0s; } + +.swagger-ui .nested-links a { + color: #99bae6; + transition: color .15s ease-in 0s; +} + +.swagger-ui .nested-links a:focus, .swagger-ui .nested-links a:hover { + color: #a9cbea; + transition: color .15s ease-in 0s; +} + +.swagger-ui .opblock-tag { + border-bottom: 1px solid rgba(58, 64, 80, .3); + color: #b5bac9; + transition: all .2s ease 0s; +} + +.swagger-ui .opblock-tag svg, .swagger-ui section.models h4 svg { transition: all .4s ease 0s; } + +.swagger-ui .opblock { + border: 1px solid #000; + border-radius: 4px; + box-shadow: rgba(0, 0, 0, .19) 0 0 3px; + margin: 0 0 15px; +} + +.swagger-ui .opblock .tab-header .tab-item.active h4 span::after { background: gray; } + +.swagger-ui .opblock.is-open .opblock-summary { border-bottom: 1px solid #000; } + +.swagger-ui .opblock .opblock-section-header { + background: rgba(28, 28, 33, .8); + box-shadow: rgba(0, 0, 0, .1) 0 1px 2px; +} + +.swagger-ui .opblock .opblock-section-header > label > span { padding: 0 10px 0 0; } + +.swagger-ui .opblock .opblock-summary-method { + background: #000; + color: #fff; + text-shadow: rgba(0, 0, 0, .1) 0 1px 0; +} + +.swagger-ui .opblock.opblock-post { + background: rgba(72, 203, 144, .1); + border-color: #48cb90; +} + +.swagger-ui .opblock.opblock-post .opblock-summary-method, .swagger-ui .opblock.opblock-post .tab-header .tab-item.active h4 span::after { background: #48cb90; } + +.swagger-ui .opblock.opblock-post .opblock-summary { border-color: #48cb90; } + +.swagger-ui .opblock.opblock-put { + background: rgba(213, 157, 88, .1); + border-color: #d59d58; +} + +.swagger-ui .opblock.opblock-put .opblock-summary-method, .swagger-ui .opblock.opblock-put .tab-header .tab-item.active h4 span::after { background: #d59d58; } + +.swagger-ui .opblock.opblock-put .opblock-summary { border-color: #d59d58; } + +.swagger-ui .opblock.opblock-delete { + background: rgba(200, 50, 50, .1); + border-color: #c83232; +} + +.swagger-ui .opblock.opblock-delete .opblock-summary-method, .swagger-ui .opblock.opblock-delete .tab-header .tab-item.active h4 span::after { background: #c83232; } + +.swagger-ui .opblock.opblock-delete .opblock-summary { border-color: #c83232; } + +.swagger-ui .opblock.opblock-get { + background: rgba(42, 105, 167, .1); + border-color: #2a69a7; +} + +.swagger-ui .opblock.opblock-get .opblock-summary-method, .swagger-ui .opblock.opblock-get .tab-header .tab-item.active h4 span::after { background: #2a69a7; } + +.swagger-ui .opblock.opblock-get .opblock-summary { border-color: #2a69a7; } + +.swagger-ui .opblock.opblock-patch { + background: rgba(92, 214, 188, .1); + border-color: #5cd6bc; +} + +.swagger-ui .opblock.opblock-patch .opblock-summary-method, .swagger-ui .opblock.opblock-patch .tab-header .tab-item.active h4 span::after { background: #5cd6bc; } + +.swagger-ui .opblock.opblock-patch .opblock-summary { border-color: #5cd6bc; } + +.swagger-ui .opblock.opblock-head { + background: rgba(140, 63, 207, .1); + border-color: #8c3fcf; +} + +.swagger-ui .opblock.opblock-head .opblock-summary-method, .swagger-ui .opblock.opblock-head .tab-header .tab-item.active h4 span::after { background: #8c3fcf; } + +.swagger-ui .opblock.opblock-head .opblock-summary { border-color: #8c3fcf; } + +.swagger-ui .opblock.opblock-options { + background: rgba(36, 89, 143, .1); + border-color: #24598f; +} + +.swagger-ui .opblock.opblock-options .opblock-summary-method, .swagger-ui .opblock.opblock-options .tab-header .tab-item.active h4 span::after { background: #24598f; } + +.swagger-ui .opblock.opblock-options .opblock-summary { border-color: #24598f; } + +.swagger-ui .opblock.opblock-deprecated { + background: rgba(46, 46, 46, .1); + border-color: #2e2e2e; + opacity: .6; +} + +.swagger-ui .opblock.opblock-deprecated .opblock-summary-method, .swagger-ui .opblock.opblock-deprecated .tab-header .tab-item.active h4 span::after { background: #2e2e2e; } + +.swagger-ui .opblock.opblock-deprecated .opblock-summary { border-color: #2e2e2e; } + +.swagger-ui .filter .operation-filter-input { border: 2px solid #2b3446; } + +.swagger-ui .tab li:first-of-type::after { background: rgba(0, 0, 0, .2); } + +.swagger-ui .download-contents { + background: #7c8192; + color: #fff; +} + +.swagger-ui .scheme-container { + background: #1c1c21; + box-shadow: rgba(0, 0, 0, .15) 0 1px 2px 0; +} + +.swagger-ui .loading-container .loading::before { + animation: 1s linear 0s infinite normal none running rotation, .5s ease 0s 1 normal none running opacity; + border-color: rgba(0, 0, 0, .6) rgba(84, 84, 84, .1) rgba(84, 84, 84, .1); +} + +.swagger-ui .response-control-media-type--accept-controller select { border-color: #196619; } + +.swagger-ui .response-control-media-type__accept-message { color: #99e699; } + +.swagger-ui .version-pragma__message code { background-color: #3b3b3b; } + +.swagger-ui .btn { + background: 0 0; + border: 2px solid gray; + box-shadow: rgba(0, 0, 0, .1) 0 1px 2px; + color: #b5bac9; +} + +.swagger-ui .btn:hover { box-shadow: rgba(0, 0, 0, .3) 0 0 5px; } + +.swagger-ui .btn.authorize, .swagger-ui .btn.cancel { + background-color: transparent; + border-color: #a72a2a; + color: #e69999; +} + +.swagger-ui .btn.authorize { + border-color: #48cb90; + color: #9ce3c3; +} + +.swagger-ui .btn.authorize svg { fill: #9ce3c3; } + +.swagger-ui .btn.execute { + background-color: #5892d5; + border-color: #5892d5; + color: #fff; +} + +.swagger-ui .copy-to-clipboard { background: #7c8192; } + +.swagger-ui .copy-to-clipboard button { background: url("data:image/svg+xml;charset=utf-8,") 50% center no-repeat; } + +.swagger-ui select { + background: url("data:image/svg+xml;charset=utf-8,") right 10px center/20px no-repeat #212121; + background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4wICg0MDM1YTRmYjQ5LCAyMDIwLTA1LTAxKSIKICAgc29kaXBvZGk6ZG9jbmFtZT0iZG93bmxvYWQuc3ZnIgogICBpZD0ic3ZnNCIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMjAgMjAiPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTEwIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnNCIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6Y3k9IjEwIgogICAgIGlua3NjYXBlOmN4PSIxMCIKICAgICBpbmtzY2FwZTp6b29tPSI0MS41IgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpZD0ibmFtZWR2aWV3NiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMDAxIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGd1aWRldG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBvYmplY3R0b2xlcmFuY2U9IjEwIgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIiAvPgogIDxwYXRoCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZiIKICAgICBpZD0icGF0aDIiCiAgICAgZD0iTTEzLjQxOCA3Ljg1OWEuNjk1LjY5NSAwIDAxLjk3OCAwIC42OC42OCAwIDAxMCAuOTY5bC0zLjkwOCAzLjgzYS42OTcuNjk3IDAgMDEtLjk3OSAwbC0zLjkwOC0zLjgzYS42OC42OCAwIDAxMC0uOTY5LjY5NS42OTUgMCAwMS45NzggMEwxMCAxMWwzLjQxOC0zLjE0MXoiIC8+Cjwvc3ZnPgo=) right 10px center/20px no-repeat #1c1c21; + border: 2px solid #41444e; +} + +.swagger-ui select[multiple] { background: #212121; } + +.swagger-ui button.invalid, .swagger-ui input[type=email].invalid, .swagger-ui input[type=file].invalid, .swagger-ui input[type=password].invalid, .swagger-ui input[type=search].invalid, .swagger-ui input[type=text].invalid, .swagger-ui select.invalid, .swagger-ui textarea.invalid { + background: #390e0e; + border-color: #c83232; +} + +.swagger-ui input[type=email], .swagger-ui input[type=file], .swagger-ui input[type=password], .swagger-ui input[type=search], .swagger-ui input[type=text], .swagger-ui textarea { + background: #1c1c21; + border: 1px solid #404040; +} + +.swagger-ui textarea { + background: rgba(28, 28, 33, .8); + color: #b5bac9; +} + +.swagger-ui input[disabled], .swagger-ui select[disabled] { + background-color: #1f1f1f; + color: #bfbfbf; +} + +.swagger-ui textarea[disabled] { + background-color: #41444e; + color: #fff; +} + +.swagger-ui select[disabled] { border-color: #878787; } + +.swagger-ui textarea:focus { border: 2px solid #2a69a7; } + +.swagger-ui .checkbox input[type=checkbox] + label > .item { + background: #303030; + box-shadow: #303030 0 0 0 2px; +} + +.swagger-ui .checkbox input[type=checkbox]:checked + label > .item { background: url("data:image/svg+xml;charset=utf-8,") 50% center no-repeat #303030; } + +.swagger-ui .dialog-ux .backdrop-ux { background: rgba(0, 0, 0, .8); } + +.swagger-ui .dialog-ux .modal-ux { + background: #1c1c21; + border: 1px solid #2e2e2e; + box-shadow: rgba(0, 0, 0, .2) 0 10px 30px 0; +} + +.swagger-ui .dialog-ux .modal-ux-header .close-modal { background: 0 0; } + +.swagger-ui .model .deprecated span, .swagger-ui .model .deprecated td { color: #bfbfbf !important; } + +.swagger-ui .model-toggle::after { background: url("data:image/svg+xml;charset=utf-8,") 50% center/100% no-repeat; } + +.swagger-ui .model-hint { + background: rgba(0, 0, 0, .7); + color: #ebebeb; +} + +.swagger-ui section.models { border: 1px solid rgba(58, 64, 80, .3); } + +.swagger-ui section.models.is-open h4 { border-bottom: 1px solid rgba(58, 64, 80, .3); } + +.swagger-ui section.models .model-container { background: rgba(0, 0, 0, .05); } + +.swagger-ui section.models .model-container:hover { background: rgba(0, 0, 0, .07); } + +.swagger-ui .model-box { background: rgba(0, 0, 0, .1); } + +.swagger-ui .prop-type { color: #aaaad4; } + +.swagger-ui table thead tr td, .swagger-ui table thead tr th { + border-bottom: 1px solid rgba(58, 64, 80, .2); + color: #b5bac9; +} + +.swagger-ui .parameter__name.required::after { color: rgba(230, 153, 153, .6); } + +.swagger-ui .topbar .download-url-wrapper .select-label { color: #f0f0f0; } + +.swagger-ui .topbar .download-url-wrapper .download-url-button { + background: #63a040; + color: #fff; +} + +.swagger-ui .info .title small { background: #7c8492; } + +.swagger-ui .info .title small.version-stamp { background-color: #7a9b27; } + +.swagger-ui .auth-container .errors { + background-color: #350d0d; + color: #b5bac9; +} + +.swagger-ui .errors-wrapper { + background: rgba(200, 50, 50, .1); + border: 2px solid #c83232; +} + +.swagger-ui .markdown code, .swagger-ui .renderedmarkdown code { + background: rgba(0, 0, 0, .05); + color: #c299e6; +} + +.swagger-ui .model-toggle:after { background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4wICg0MDM1YTRmYjQ5LCAyMDIwLTA1LTAxKSIKICAgc29kaXBvZGk6ZG9jbmFtZT0iZG93bmxvYWQyLnN2ZyIKICAgaWQ9InN2ZzQiCiAgIHZlcnNpb249IjEuMSIKICAgaGVpZ2h0PSIyNCIKICAgd2lkdGg9IjI0Ij4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGExMCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGRlZnMKICAgICBpZD0iZGVmczgiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii05IgogICAgIGlua3NjYXBlOmN5PSIxMiIKICAgICBpbmtzY2FwZTpjeD0iMTIiCiAgICAgaW5rc2NhcGU6em9vbT0iMzQuNTgzMzMzIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpZD0ibmFtZWR2aWV3NiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMDAxIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGd1aWRldG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBvYmplY3R0b2xlcmFuY2U9IjEwIgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIiAvPgogIDxwYXRoCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZiIKICAgICBpZD0icGF0aDIiCiAgICAgZD0iTTEwIDZMOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02eiIgLz4KPC9zdmc+Cg==) 50% no-repeat; } + +.swagger-ui .expand-operation svg, .swagger-ui section.models h4 svg { fill: #fff; } + +::-webkit-scrollbar-track { background-color: #646464 !important; } + +::-webkit-scrollbar-thumb { + background-color: #242424 !important; + border: 2px solid #3e4346 !important; +} + +::-webkit-scrollbar-button:vertical:start:decrement { + background: linear-gradient(130deg, #696969 40%, rgba(255, 0, 0, 0) 41%), linear-gradient(230deg, #696969 40%, transparent 41%), linear-gradient(0deg, #696969 40%, transparent 31%); + background-color: #b6b6b6; +} + +::-webkit-scrollbar-button:vertical:end:increment { + background: linear-gradient(310deg, #696969 40%, transparent 41%), linear-gradient(50deg, #696969 40%, transparent 41%), linear-gradient(180deg, #696969 40%, transparent 31%); + background-color: #b6b6b6; +} + +::-webkit-scrollbar-button:horizontal:end:increment { + background: linear-gradient(210deg, #696969 40%, transparent 41%), linear-gradient(330deg, #696969 40%, transparent 41%), linear-gradient(90deg, #696969 30%, transparent 31%); + background-color: #b6b6b6; +} + +::-webkit-scrollbar-button:horizontal:start:decrement { + background: linear-gradient(30deg, #696969 40%, transparent 41%), linear-gradient(150deg, #696969 40%, transparent 41%), linear-gradient(270deg, #696969 30%, transparent 31%); + background-color: #b6b6b6; +} + +::-webkit-scrollbar-button, ::-webkit-scrollbar-track-piece { background-color: #3e4346 !important; } + +.swagger-ui .black, .swagger-ui .checkbox, .swagger-ui .dark-gray, .swagger-ui .download-url-wrapper .loading, .swagger-ui .errors-wrapper .errors small, .swagger-ui .fallback, .swagger-ui .filter .loading, .swagger-ui .gray, .swagger-ui .hover-black:focus, .swagger-ui .hover-black:hover, .swagger-ui .hover-dark-gray:focus, .swagger-ui .hover-dark-gray:hover, .swagger-ui .hover-gray:focus, .swagger-ui .hover-gray:hover, .swagger-ui .hover-light-silver:focus, .swagger-ui .hover-light-silver:hover, .swagger-ui .hover-mid-gray:focus, .swagger-ui .hover-mid-gray:hover, .swagger-ui .hover-near-black:focus, .swagger-ui .hover-near-black:hover, .swagger-ui .hover-silver:focus, .swagger-ui .hover-silver:hover, .swagger-ui .light-silver, .swagger-ui .markdown pre, .swagger-ui .mid-gray, .swagger-ui .model .property, .swagger-ui .model .property.primitive, .swagger-ui .model-title, .swagger-ui .near-black, .swagger-ui .parameter__extension, .swagger-ui .parameter__in, .swagger-ui .prop-format, .swagger-ui .renderedmarkdown pre, .swagger-ui .response-col_links .response-undocumented, .swagger-ui .response-col_status .response-undocumented, .swagger-ui .silver, .swagger-ui section.models h4, .swagger-ui section.models h5, .swagger-ui span.token-not-formatted, .swagger-ui span.token-string, .swagger-ui table.headers .header-example, .swagger-ui table.model tr.description, .swagger-ui table.model tr.extension { color: #bfbfbf; } + +.swagger-ui .hover-white:focus, .swagger-ui .hover-white:hover, .swagger-ui .info .title small pre, .swagger-ui .topbar a, .swagger-ui .white { color: #fff; } + +.swagger-ui .bg-black-10, .swagger-ui .hover-bg-black-10:focus, .swagger-ui .hover-bg-black-10:hover, .swagger-ui .stripe-dark:nth-child(2n + 1) { background-color: rgba(0, 0, 0, .1); } + +.swagger-ui .bg-white-10, .swagger-ui .hover-bg-white-10:focus, .swagger-ui .hover-bg-white-10:hover, .swagger-ui .stripe-light:nth-child(2n + 1) { background-color: rgba(28, 28, 33, .1); } + +.swagger-ui .bg-light-silver, .swagger-ui .hover-bg-light-silver:focus, .swagger-ui .hover-bg-light-silver:hover, .swagger-ui .striped--light-silver:nth-child(2n + 1) { background-color: #6e6e6e; } + +.swagger-ui .bg-moon-gray, .swagger-ui .hover-bg-moon-gray:focus, .swagger-ui .hover-bg-moon-gray:hover, .swagger-ui .striped--moon-gray:nth-child(2n + 1) { background-color: #4d4d4d; } + +.swagger-ui .bg-light-gray, .swagger-ui .hover-bg-light-gray:focus, .swagger-ui .hover-bg-light-gray:hover, .swagger-ui .striped--light-gray:nth-child(2n + 1) { background-color: #2b2b2b; } + +.swagger-ui .bg-near-white, .swagger-ui .hover-bg-near-white:focus, .swagger-ui .hover-bg-near-white:hover, .swagger-ui .striped--near-white:nth-child(2n + 1) { background-color: #242424; } + +.swagger-ui .opblock-tag:hover, .swagger-ui section.models h4:hover { background: rgba(0, 0, 0, .02); } + +.swagger-ui .checkbox p, .swagger-ui .dialog-ux .modal-ux-content h4, .swagger-ui .dialog-ux .modal-ux-content p, .swagger-ui .dialog-ux .modal-ux-header h3, .swagger-ui .errors-wrapper .errors h4, .swagger-ui .errors-wrapper hgroup h4, .swagger-ui .info .base-url, .swagger-ui .info .title, .swagger-ui .info h1, .swagger-ui .info h2, .swagger-ui .info h3, .swagger-ui .info h4, .swagger-ui .info h5, .swagger-ui .info li, .swagger-ui .info p, .swagger-ui .info table, .swagger-ui .loading-container .loading::after, .swagger-ui .model, .swagger-ui .opblock .opblock-section-header h4, .swagger-ui .opblock .opblock-section-header > label, .swagger-ui .opblock .opblock-summary-description, .swagger-ui .opblock .opblock-summary-operation-id, .swagger-ui .opblock .opblock-summary-path, .swagger-ui .opblock .opblock-summary-path__deprecated, .swagger-ui .opblock-description-wrapper, .swagger-ui .opblock-description-wrapper h4, .swagger-ui .opblock-description-wrapper p, .swagger-ui .opblock-external-docs-wrapper, .swagger-ui .opblock-external-docs-wrapper h4, .swagger-ui .opblock-external-docs-wrapper p, .swagger-ui .opblock-tag small, .swagger-ui .opblock-title_normal, .swagger-ui .opblock-title_normal h4, .swagger-ui .opblock-title_normal p, .swagger-ui .parameter__name, .swagger-ui .parameter__type, .swagger-ui .response-col_links, .swagger-ui .response-col_status, .swagger-ui .responses-inner h4, .swagger-ui .responses-inner h5, .swagger-ui .scheme-container .schemes > label, .swagger-ui .scopes h2, .swagger-ui .servers > label, .swagger-ui .tab li, .swagger-ui label, .swagger-ui select, .swagger-ui table.headers td { color: #b5bac9; } + +.swagger-ui .download-url-wrapper .failed, .swagger-ui .filter .failed, .swagger-ui .model-deprecated-warning, .swagger-ui .parameter__deprecated, .swagger-ui .parameter__name.required span, .swagger-ui table.model tr.property-row .star { color: #e69999; } + +.swagger-ui .opblock-body pre.microlight, .swagger-ui textarea.curl { + background: #41444e; + border-radius: 4px; + color: #fff; +} + +.swagger-ui .expand-methods svg, .swagger-ui .expand-methods:hover svg { fill: #bfbfbf; } + +.swagger-ui .auth-container, .swagger-ui .dialog-ux .modal-ux-header { border-bottom: 1px solid #2e2e2e; } + +.swagger-ui .topbar .download-url-wrapper .select-label select, .swagger-ui .topbar .download-url-wrapper input[type=text] { border: 2px solid #63a040; } + +.swagger-ui .info a, .swagger-ui .info a:hover, .swagger-ui .scopes h2 a { color: #99bde6; } + +/* Dark Scrollbar */ +::-webkit-scrollbar { + width: 14px; + height: 14px; +} + +::-webkit-scrollbar-button { + background-color: #3e4346 !important; +} + +::-webkit-scrollbar-track { + background-color: #646464 !important; +} + +::-webkit-scrollbar-track-piece { + background-color: #3e4346 !important; +} + +::-webkit-scrollbar-thumb { + height: 50px; + background-color: #242424 !important; + border: 2px solid #3e4346 !important; +} + +::-webkit-scrollbar-corner {} + +::-webkit-resizer {} + +::-webkit-scrollbar-button:vertical:start:decrement { + background: + linear-gradient(130deg, #696969 40%, rgba(255, 0, 0, 0) 41%), + linear-gradient(230deg, #696969 40%, rgba(0, 0, 0, 0) 41%), + linear-gradient(0deg, #696969 40%, rgba(0, 0, 0, 0) 31%); + background-color: #b6b6b6; +} + +::-webkit-scrollbar-button:vertical:end:increment { + background: + linear-gradient(310deg, #696969 40%, rgba(0, 0, 0, 0) 41%), + linear-gradient(50deg, #696969 40%, rgba(0, 0, 0, 0) 41%), + linear-gradient(180deg, #696969 40%, rgba(0, 0, 0, 0) 31%); + background-color: #b6b6b6; +} + +::-webkit-scrollbar-button:horizontal:end:increment { + background: + linear-gradient(210deg, #696969 40%, rgba(0, 0, 0, 0) 41%), + linear-gradient(330deg, #696969 40%, rgba(0, 0, 0, 0) 41%), + linear-gradient(90deg, #696969 30%, rgba(0, 0, 0, 0) 31%); + background-color: #b6b6b6; +} + +::-webkit-scrollbar-button:horizontal:start:decrement { + background: + linear-gradient(30deg, #696969 40%, rgba(0, 0, 0, 0) 41%), + linear-gradient(150deg, #696969 40%, rgba(0, 0, 0, 0) 41%), + linear-gradient(270deg, #696969 30%, rgba(0, 0, 0, 0) 31%); + background-color: #b6b6b6; +} diff --git a/public/openapi/SwaggerDark/SwaggerDark.png b/public/openapi/SwaggerDark/SwaggerDark.png new file mode 100644 index 0000000..9babedb Binary files /dev/null and b/public/openapi/SwaggerDark/SwaggerDark.png differ diff --git a/public/openapi/SwaggerDark/SwaggerDark.user.css b/public/openapi/SwaggerDark/SwaggerDark.user.css new file mode 100644 index 0000000..3f08d59 --- /dev/null +++ b/public/openapi/SwaggerDark/SwaggerDark.user.css @@ -0,0 +1,842 @@ +/* ==UserStyle== +@name Amoenus Swagger Dark +@namespace https://github.com/Amoenus/SwaggerDark +@version 1.0.0 +@description A dark UserCSS style for Swagger +@homepageURL https://github.com/Amoenus/SwaggerDark +@updateURL https://github.com/Amoenus/SwaggerDark/raw/master/SwaggerDark.user.css +@license MIT +@author Amoenus +==/UserStyle== */ + +@-moz-document url-prefix("https://petstore.swagger.io/"), regexp(".*/swagger/index.html$") { +a { color: #8c8cfa; } + +::-webkit-scrollbar-track-piece { background-color: rgba(255, 255, 255, .2) !important; } + +::-webkit-scrollbar-track { background-color: rgba(255, 255, 255, .3) !important; } + +::-webkit-scrollbar-thumb { background-color: rgba(255, 255, 255, .5) !important; } + +embed[type="application/pdf"] { filter: invert(90%); } + +html { + background: #1f1f1f !important; + box-sizing: border-box; + filter: contrast(100%) brightness(100%) saturate(100%); + overflow-y: scroll; +} + +body { + background: #1f1f1f; + background-color: #1f1f1f; + background-image: none !important; +} + +button, input, select, textarea { + background-color: #1f1f1f; + color: #bfbfbf; +} + +font, html { color: #bfbfbf; } + +.swagger-ui, .swagger-ui section h3 { color: #b5bac9; } + +.swagger-ui a { background-color: transparent; } + +.swagger-ui mark { + background-color: #664b00; + color: #bfbfbf; +} + +.swagger-ui legend { color: inherit; } + +.swagger-ui .debug * { outline: #e6da99 solid 1px; } + +.swagger-ui .debug-white * { outline: #fff solid 1px; } + +.swagger-ui .debug-black * { outline: #bfbfbf solid 1px; } + +.swagger-ui .debug-grid { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg==) 0 0; } + +.swagger-ui .debug-grid-16 { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC) 0 0; } + +.swagger-ui .debug-grid-8-solid { background: url(data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z) 0 0 #1c1c21; } + +.swagger-ui .debug-grid-16-solid { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII=) 0 0 #1c1c21; } + +.swagger-ui .b--black { border-color: #000; } + +.swagger-ui .b--near-black { border-color: #121212; } + +.swagger-ui .b--dark-gray { border-color: #333; } + +.swagger-ui .b--mid-gray { border-color: #545454; } + +.swagger-ui .b--gray { border-color: #787878; } + +.swagger-ui .b--silver { border-color: #999; } + +.swagger-ui .b--light-silver { border-color: #6e6e6e; } + +.swagger-ui .b--moon-gray { border-color: #4d4d4d; } + +.swagger-ui .b--light-gray { border-color: #2b2b2b; } + +.swagger-ui .b--near-white { border-color: #242424; } + +.swagger-ui .b--white { border-color: #1c1c21; } + +.swagger-ui .b--white-90 { border-color: rgba(28, 28, 33, .9); } + +.swagger-ui .b--white-80 { border-color: rgba(28, 28, 33, .8); } + +.swagger-ui .b--white-70 { border-color: rgba(28, 28, 33, .7); } + +.swagger-ui .b--white-60 { border-color: rgba(28, 28, 33, .6); } + +.swagger-ui .b--white-50 { border-color: rgba(28, 28, 33, .5); } + +.swagger-ui .b--white-40 { border-color: rgba(28, 28, 33, .4); } + +.swagger-ui .b--white-30 { border-color: rgba(28, 28, 33, .3); } + +.swagger-ui .b--white-20 { border-color: rgba(28, 28, 33, .2); } + +.swagger-ui .b--white-10 { border-color: rgba(28, 28, 33, .1); } + +.swagger-ui .b--white-05 { border-color: rgba(28, 28, 33, .05); } + +.swagger-ui .b--white-025 { border-color: rgba(28, 28, 33, .024); } + +.swagger-ui .b--white-0125 { border-color: rgba(28, 28, 33, .01); } + +.swagger-ui .b--black-90 { border-color: rgba(0, 0, 0, .9); } + +.swagger-ui .b--black-80 { border-color: rgba(0, 0, 0, .8); } + +.swagger-ui .b--black-70 { border-color: rgba(0, 0, 0, .7); } + +.swagger-ui .b--black-60 { border-color: rgba(0, 0, 0, .6); } + +.swagger-ui .b--black-50 { border-color: rgba(0, 0, 0, .5); } + +.swagger-ui .b--black-40 { border-color: rgba(0, 0, 0, .4); } + +.swagger-ui .b--black-30 { border-color: rgba(0, 0, 0, .3); } + +.swagger-ui .b--black-20 { border-color: rgba(0, 0, 0, .2); } + +.swagger-ui .b--black-10 { border-color: rgba(0, 0, 0, .1); } + +.swagger-ui .b--black-05 { border-color: rgba(0, 0, 0, .05); } + +.swagger-ui .b--black-025 { border-color: rgba(0, 0, 0, .024); } + +.swagger-ui .b--black-0125 { border-color: rgba(0, 0, 0, .01); } + +.swagger-ui .b--dark-red { border-color: #bc2f36; } + +.swagger-ui .b--red { border-color: #c83932; } + +.swagger-ui .b--light-red { border-color: #ab3c2b; } + +.swagger-ui .b--orange { border-color: #cc6e33; } + +.swagger-ui .b--purple { border-color: #5e2ca5; } + +.swagger-ui .b--light-purple { border-color: #672caf; } + +.swagger-ui .b--dark-pink { border-color: #ab2b81; } + +.swagger-ui .b--hot-pink { border-color: #c03086; } + +.swagger-ui .b--pink { border-color: #8f2464; } + +.swagger-ui .b--light-pink { border-color: #721d4d; } + +.swagger-ui .b--dark-green { border-color: #1c6e50; } + +.swagger-ui .b--green { border-color: #279b70; } + +.swagger-ui .b--light-green { border-color: #228762; } + +.swagger-ui .b--navy { border-color: #0d1d35; } + +.swagger-ui .b--dark-blue { border-color: #20497e; } + +.swagger-ui .b--blue { border-color: #4380d0; } + +.swagger-ui .b--light-blue { border-color: #20517e; } + +.swagger-ui .b--lightest-blue { border-color: #143a52; } + +.swagger-ui .b--washed-blue { border-color: #0c312d; } + +.swagger-ui .b--washed-green { border-color: #0f3d2c; } + +.swagger-ui .b--washed-red { border-color: #411010; } + +.swagger-ui .b--transparent { border-color: transparent; } + +.swagger-ui .b--gold, .swagger-ui .b--light-yellow, .swagger-ui .b--washed-yellow, .swagger-ui .b--yellow { border-color: #664b00; } + +.swagger-ui .shadow-1 { box-shadow: rgba(0, 0, 0, .2) 0 0 4px 2px; } + +.swagger-ui .shadow-2 { box-shadow: rgba(0, 0, 0, .2) 0 0 8px 2px; } + +.swagger-ui .shadow-3 { box-shadow: rgba(0, 0, 0, .2) 2px 2px 4px 2px; } + +.swagger-ui .shadow-4 { box-shadow: rgba(0, 0, 0, .2) 2px 2px 8px 0; } + +.swagger-ui .shadow-5 { box-shadow: rgba(0, 0, 0, .2) 4px 4px 8px 0; } + +@media screen and (min-width: 30em) { + .swagger-ui .shadow-1-ns { box-shadow: rgba(0, 0, 0, .2) 0 0 4px 2px; } + + .swagger-ui .shadow-2-ns { box-shadow: rgba(0, 0, 0, .2) 0 0 8px 2px; } + + .swagger-ui .shadow-3-ns { box-shadow: rgba(0, 0, 0, .2) 2px 2px 4px 2px; } + + .swagger-ui .shadow-4-ns { box-shadow: rgba(0, 0, 0, .2) 2px 2px 8px 0; } + + .swagger-ui .shadow-5-ns { box-shadow: rgba(0, 0, 0, .2) 4px 4px 8px 0; } +} + +@media screen and (max-width: 60em) and (min-width: 30em) { + .swagger-ui .shadow-1-m { box-shadow: rgba(0, 0, 0, .2) 0 0 4px 2px; } + + .swagger-ui .shadow-2-m { box-shadow: rgba(0, 0, 0, .2) 0 0 8px 2px; } + + .swagger-ui .shadow-3-m { box-shadow: rgba(0, 0, 0, .2) 2px 2px 4px 2px; } + + .swagger-ui .shadow-4-m { box-shadow: rgba(0, 0, 0, .2) 2px 2px 8px 0; } + + .swagger-ui .shadow-5-m { box-shadow: rgba(0, 0, 0, .2) 4px 4px 8px 0; } +} + +@media screen and (min-width: 60em) { + .swagger-ui .shadow-1-l { box-shadow: rgba(0, 0, 0, .2) 0 0 4px 2px; } + + .swagger-ui .shadow-2-l { box-shadow: rgba(0, 0, 0, .2) 0 0 8px 2px; } + + .swagger-ui .shadow-3-l { box-shadow: rgba(0, 0, 0, .2) 2px 2px 4px 2px; } + + .swagger-ui .shadow-4-l { box-shadow: rgba(0, 0, 0, .2) 2px 2px 8px 0; } + + .swagger-ui .shadow-5-l { box-shadow: rgba(0, 0, 0, .2) 4px 4px 8px 0; } +} + +.swagger-ui .black-05 { color: rgba(191, 191, 191, .05); } + +.swagger-ui .bg-black-05 { background-color: rgba(0, 0, 0, .05); } + +.swagger-ui .black-90, .swagger-ui .hover-black-90:focus, .swagger-ui .hover-black-90:hover { color: rgba(191, 191, 191, .9); } + +.swagger-ui .black-80, .swagger-ui .hover-black-80:focus, .swagger-ui .hover-black-80:hover { color: rgba(191, 191, 191, .8); } + +.swagger-ui .black-70, .swagger-ui .hover-black-70:focus, .swagger-ui .hover-black-70:hover { color: rgba(191, 191, 191, .7); } + +.swagger-ui .black-60, .swagger-ui .hover-black-60:focus, .swagger-ui .hover-black-60:hover { color: rgba(191, 191, 191, .6); } + +.swagger-ui .black-50, .swagger-ui .hover-black-50:focus, .swagger-ui .hover-black-50:hover { color: rgba(191, 191, 191, .5); } + +.swagger-ui .black-40, .swagger-ui .hover-black-40:focus, .swagger-ui .hover-black-40:hover { color: rgba(191, 191, 191, .4); } + +.swagger-ui .black-30, .swagger-ui .hover-black-30:focus, .swagger-ui .hover-black-30:hover { color: rgba(191, 191, 191, .3); } + +.swagger-ui .black-20, .swagger-ui .hover-black-20:focus, .swagger-ui .hover-black-20:hover { color: rgba(191, 191, 191, .2); } + +.swagger-ui .black-10, .swagger-ui .hover-black-10:focus, .swagger-ui .hover-black-10:hover { color: rgba(191, 191, 191, .1); } + +.swagger-ui .hover-white-90:focus, .swagger-ui .hover-white-90:hover, .swagger-ui .white-90 { color: rgba(255, 255, 255, .9); } + +.swagger-ui .hover-white-80:focus, .swagger-ui .hover-white-80:hover, .swagger-ui .white-80 { color: rgba(255, 255, 255, .8); } + +.swagger-ui .hover-white-70:focus, .swagger-ui .hover-white-70:hover, .swagger-ui .white-70 { color: rgba(255, 255, 255, .7); } + +.swagger-ui .hover-white-60:focus, .swagger-ui .hover-white-60:hover, .swagger-ui .white-60 { color: rgba(255, 255, 255, .6); } + +.swagger-ui .hover-white-50:focus, .swagger-ui .hover-white-50:hover, .swagger-ui .white-50 { color: rgba(255, 255, 255, .5); } + +.swagger-ui .hover-white-40:focus, .swagger-ui .hover-white-40:hover, .swagger-ui .white-40 { color: rgba(255, 255, 255, .4); } + +.swagger-ui .hover-white-30:focus, .swagger-ui .hover-white-30:hover, .swagger-ui .white-30 { color: rgba(255, 255, 255, .3); } + +.swagger-ui .hover-white-20:focus, .swagger-ui .hover-white-20:hover, .swagger-ui .white-20 { color: rgba(255, 255, 255, .2); } + +.swagger-ui .hover-white-10:focus, .swagger-ui .hover-white-10:hover, .swagger-ui .white-10 { color: rgba(255, 255, 255, .1); } + +.swagger-ui .hover-moon-gray:focus, .swagger-ui .hover-moon-gray:hover, .swagger-ui .moon-gray { color: #ccc; } + +.swagger-ui .hover-light-gray:focus, .swagger-ui .hover-light-gray:hover, .swagger-ui .light-gray { color: #ededed; } + +.swagger-ui .hover-near-white:focus, .swagger-ui .hover-near-white:hover, .swagger-ui .near-white { color: #f5f5f5; } + +.swagger-ui .dark-red, .swagger-ui .hover-dark-red:focus, .swagger-ui .hover-dark-red:hover { color: #e6999d; } + +.swagger-ui .hover-red:focus, .swagger-ui .hover-red:hover, .swagger-ui .red { color: #e69d99; } + +.swagger-ui .hover-light-red:focus, .swagger-ui .hover-light-red:hover, .swagger-ui .light-red { color: #e6a399; } + +.swagger-ui .hover-orange:focus, .swagger-ui .hover-orange:hover, .swagger-ui .orange { color: #e6b699; } + +.swagger-ui .gold, .swagger-ui .hover-gold:focus, .swagger-ui .hover-gold:hover { color: #e6d099; } + +.swagger-ui .hover-yellow:focus, .swagger-ui .hover-yellow:hover, .swagger-ui .yellow { color: #e6da99; } + +.swagger-ui .hover-light-yellow:focus, .swagger-ui .hover-light-yellow:hover, .swagger-ui .light-yellow { color: #ede6b6; } + +.swagger-ui .hover-purple:focus, .swagger-ui .hover-purple:hover, .swagger-ui .purple { color: #b99ae4; } + +.swagger-ui .hover-light-purple:focus, .swagger-ui .hover-light-purple:hover, .swagger-ui .light-purple { color: #bb99e6; } + +.swagger-ui .dark-pink, .swagger-ui .hover-dark-pink:focus, .swagger-ui .hover-dark-pink:hover { color: #e699cc; } + +.swagger-ui .hot-pink, .swagger-ui .hover-hot-pink:focus, .swagger-ui .hover-hot-pink:hover, .swagger-ui .hover-pink:focus, .swagger-ui .hover-pink:hover, .swagger-ui .pink { color: #e699c7; } + +.swagger-ui .hover-light-pink:focus, .swagger-ui .hover-light-pink:hover, .swagger-ui .light-pink { color: #edb6d5; } + +.swagger-ui .dark-green, .swagger-ui .green, .swagger-ui .hover-dark-green:focus, .swagger-ui .hover-dark-green:hover, .swagger-ui .hover-green:focus, .swagger-ui .hover-green:hover { color: #99e6c9; } + +.swagger-ui .hover-light-green:focus, .swagger-ui .hover-light-green:hover, .swagger-ui .light-green { color: #a1e8ce; } + +.swagger-ui .hover-navy:focus, .swagger-ui .hover-navy:hover, .swagger-ui .navy { color: #99b8e6; } + +.swagger-ui .blue, .swagger-ui .dark-blue, .swagger-ui .hover-blue:focus, .swagger-ui .hover-blue:hover, .swagger-ui .hover-dark-blue:focus, .swagger-ui .hover-dark-blue:hover { color: #99bae6; } + +.swagger-ui .hover-light-blue:focus, .swagger-ui .hover-light-blue:hover, .swagger-ui .light-blue { color: #a9cbea; } + +.swagger-ui .hover-lightest-blue:focus, .swagger-ui .hover-lightest-blue:hover, .swagger-ui .lightest-blue { color: #d6e9f5; } + +.swagger-ui .hover-washed-blue:focus, .swagger-ui .hover-washed-blue:hover, .swagger-ui .washed-blue { color: #f7fdfc; } + +.swagger-ui .hover-washed-green:focus, .swagger-ui .hover-washed-green:hover, .swagger-ui .washed-green { color: #ebfaf4; } + +.swagger-ui .hover-washed-yellow:focus, .swagger-ui .hover-washed-yellow:hover, .swagger-ui .washed-yellow { color: #fbf9ef; } + +.swagger-ui .hover-washed-red:focus, .swagger-ui .hover-washed-red:hover, .swagger-ui .washed-red { color: #f9e7e7; } + +.swagger-ui .color-inherit, .swagger-ui .hover-inherit:focus, .swagger-ui .hover-inherit:hover { color: inherit; } + +.swagger-ui .bg-black-90, .swagger-ui .hover-bg-black-90:focus, .swagger-ui .hover-bg-black-90:hover { background-color: rgba(0, 0, 0, .9); } + +.swagger-ui .bg-black-80, .swagger-ui .hover-bg-black-80:focus, .swagger-ui .hover-bg-black-80:hover { background-color: rgba(0, 0, 0, .8); } + +.swagger-ui .bg-black-70, .swagger-ui .hover-bg-black-70:focus, .swagger-ui .hover-bg-black-70:hover { background-color: rgba(0, 0, 0, .7); } + +.swagger-ui .bg-black-60, .swagger-ui .hover-bg-black-60:focus, .swagger-ui .hover-bg-black-60:hover { background-color: rgba(0, 0, 0, .6); } + +.swagger-ui .bg-black-50, .swagger-ui .hover-bg-black-50:focus, .swagger-ui .hover-bg-black-50:hover { background-color: rgba(0, 0, 0, .5); } + +.swagger-ui .bg-black-40, .swagger-ui .hover-bg-black-40:focus, .swagger-ui .hover-bg-black-40:hover { background-color: rgba(0, 0, 0, .4); } + +.swagger-ui .bg-black-30, .swagger-ui .hover-bg-black-30:focus, .swagger-ui .hover-bg-black-30:hover { background-color: rgba(0, 0, 0, .3); } + +.swagger-ui .bg-black-20, .swagger-ui .hover-bg-black-20:focus, .swagger-ui .hover-bg-black-20:hover { background-color: rgba(0, 0, 0, .2); } + +.swagger-ui .bg-white-90, .swagger-ui .hover-bg-white-90:focus, .swagger-ui .hover-bg-white-90:hover { background-color: rgba(28, 28, 33, .9); } + +.swagger-ui .bg-white-80, .swagger-ui .hover-bg-white-80:focus, .swagger-ui .hover-bg-white-80:hover { background-color: rgba(28, 28, 33, .8); } + +.swagger-ui .bg-white-70, .swagger-ui .hover-bg-white-70:focus, .swagger-ui .hover-bg-white-70:hover { background-color: rgba(28, 28, 33, .7); } + +.swagger-ui .bg-white-60, .swagger-ui .hover-bg-white-60:focus, .swagger-ui .hover-bg-white-60:hover { background-color: rgba(28, 28, 33, .6); } + +.swagger-ui .bg-white-50, .swagger-ui .hover-bg-white-50:focus, .swagger-ui .hover-bg-white-50:hover { background-color: rgba(28, 28, 33, .5); } + +.swagger-ui .bg-white-40, .swagger-ui .hover-bg-white-40:focus, .swagger-ui .hover-bg-white-40:hover { background-color: rgba(28, 28, 33, .4); } + +.swagger-ui .bg-white-30, .swagger-ui .hover-bg-white-30:focus, .swagger-ui .hover-bg-white-30:hover { background-color: rgba(28, 28, 33, .3); } + +.swagger-ui .bg-white-20, .swagger-ui .hover-bg-white-20:focus, .swagger-ui .hover-bg-white-20:hover { background-color: rgba(28, 28, 33, .2); } + +.swagger-ui .bg-black, .swagger-ui .hover-bg-black:focus, .swagger-ui .hover-bg-black:hover { background-color: #000; } + +.swagger-ui .bg-near-black, .swagger-ui .hover-bg-near-black:focus, .swagger-ui .hover-bg-near-black:hover { background-color: #121212; } + +.swagger-ui .bg-dark-gray, .swagger-ui .hover-bg-dark-gray:focus, .swagger-ui .hover-bg-dark-gray:hover { background-color: #333; } + +.swagger-ui .bg-mid-gray, .swagger-ui .hover-bg-mid-gray:focus, .swagger-ui .hover-bg-mid-gray:hover { background-color: #545454; } + +.swagger-ui .bg-gray, .swagger-ui .hover-bg-gray:focus, .swagger-ui .hover-bg-gray:hover { background-color: #787878; } + +.swagger-ui .bg-silver, .swagger-ui .hover-bg-silver:focus, .swagger-ui .hover-bg-silver:hover { background-color: #999; } + +.swagger-ui .bg-white, .swagger-ui .hover-bg-white:focus, .swagger-ui .hover-bg-white:hover { background-color: #1c1c21; } + +.swagger-ui .bg-transparent, .swagger-ui .hover-bg-transparent:focus, .swagger-ui .hover-bg-transparent:hover { background-color: transparent; } + +.swagger-ui .bg-dark-red, .swagger-ui .hover-bg-dark-red:focus, .swagger-ui .hover-bg-dark-red:hover { background-color: #bc2f36; } + +.swagger-ui .bg-red, .swagger-ui .hover-bg-red:focus, .swagger-ui .hover-bg-red:hover { background-color: #c83932; } + +.swagger-ui .bg-light-red, .swagger-ui .hover-bg-light-red:focus, .swagger-ui .hover-bg-light-red:hover { background-color: #ab3c2b; } + +.swagger-ui .bg-orange, .swagger-ui .hover-bg-orange:focus, .swagger-ui .hover-bg-orange:hover { background-color: #cc6e33; } + +.swagger-ui .bg-gold, .swagger-ui .bg-light-yellow, .swagger-ui .bg-washed-yellow, .swagger-ui .bg-yellow, .swagger-ui .hover-bg-gold:focus, .swagger-ui .hover-bg-gold:hover, .swagger-ui .hover-bg-light-yellow:focus, .swagger-ui .hover-bg-light-yellow:hover, .swagger-ui .hover-bg-washed-yellow:focus, .swagger-ui .hover-bg-washed-yellow:hover, .swagger-ui .hover-bg-yellow:focus, .swagger-ui .hover-bg-yellow:hover { background-color: #664b00; } + +.swagger-ui .bg-purple, .swagger-ui .hover-bg-purple:focus, .swagger-ui .hover-bg-purple:hover { background-color: #5e2ca5; } + +.swagger-ui .bg-light-purple, .swagger-ui .hover-bg-light-purple:focus, .swagger-ui .hover-bg-light-purple:hover { background-color: #672caf; } + +.swagger-ui .bg-dark-pink, .swagger-ui .hover-bg-dark-pink:focus, .swagger-ui .hover-bg-dark-pink:hover { background-color: #ab2b81; } + +.swagger-ui .bg-hot-pink, .swagger-ui .hover-bg-hot-pink:focus, .swagger-ui .hover-bg-hot-pink:hover { background-color: #c03086; } + +.swagger-ui .bg-pink, .swagger-ui .hover-bg-pink:focus, .swagger-ui .hover-bg-pink:hover { background-color: #8f2464; } + +.swagger-ui .bg-light-pink, .swagger-ui .hover-bg-light-pink:focus, .swagger-ui .hover-bg-light-pink:hover { background-color: #721d4d; } + +.swagger-ui .bg-dark-green, .swagger-ui .hover-bg-dark-green:focus, .swagger-ui .hover-bg-dark-green:hover { background-color: #1c6e50; } + +.swagger-ui .bg-green, .swagger-ui .hover-bg-green:focus, .swagger-ui .hover-bg-green:hover { background-color: #279b70; } + +.swagger-ui .bg-light-green, .swagger-ui .hover-bg-light-green:focus, .swagger-ui .hover-bg-light-green:hover { background-color: #228762; } + +.swagger-ui .bg-navy, .swagger-ui .hover-bg-navy:focus, .swagger-ui .hover-bg-navy:hover { background-color: #0d1d35; } + +.swagger-ui .bg-dark-blue, .swagger-ui .hover-bg-dark-blue:focus, .swagger-ui .hover-bg-dark-blue:hover { background-color: #20497e; } + +.swagger-ui .bg-blue, .swagger-ui .hover-bg-blue:focus, .swagger-ui .hover-bg-blue:hover { background-color: #4380d0; } + +.swagger-ui .bg-light-blue, .swagger-ui .hover-bg-light-blue:focus, .swagger-ui .hover-bg-light-blue:hover { background-color: #20517e; } + +.swagger-ui .bg-lightest-blue, .swagger-ui .hover-bg-lightest-blue:focus, .swagger-ui .hover-bg-lightest-blue:hover { background-color: #143a52; } + +.swagger-ui .bg-washed-blue, .swagger-ui .hover-bg-washed-blue:focus, .swagger-ui .hover-bg-washed-blue:hover { background-color: #0c312d; } + +.swagger-ui .bg-washed-green, .swagger-ui .hover-bg-washed-green:focus, .swagger-ui .hover-bg-washed-green:hover { background-color: #0f3d2c; } + +.swagger-ui .bg-washed-red, .swagger-ui .hover-bg-washed-red:focus, .swagger-ui .hover-bg-washed-red:hover { background-color: #411010; } + +.swagger-ui .bg-inherit, .swagger-ui .hover-bg-inherit:focus, .swagger-ui .hover-bg-inherit:hover { background-color: inherit; } + +.swagger-ui .shadow-hover { transition: all .5s cubic-bezier(.165, .84, .44, 1) 0s; } + +.swagger-ui .shadow-hover::after { + border-radius: inherit; + box-shadow: rgba(0, 0, 0, .2) 0 0 16px 2px; + content: ""; + height: 100%; + left: 0; + opacity: 0; + position: absolute; + top: 0; + transition: opacity .5s cubic-bezier(.165, .84, .44, 1) 0s; + width: 100%; + z-index: -1; +} + +.swagger-ui .bg-animate, .swagger-ui .bg-animate:focus, .swagger-ui .bg-animate:hover { transition: background-color .15s ease-in-out 0s; } + +.swagger-ui .nested-links a { + color: #99bae6; + transition: color .15s ease-in 0s; +} + +.swagger-ui .nested-links a:focus, .swagger-ui .nested-links a:hover { + color: #a9cbea; + transition: color .15s ease-in 0s; +} + +.swagger-ui .opblock-tag { + border-bottom: 1px solid rgba(58, 64, 80, .3); + color: #b5bac9; + transition: all .2s ease 0s; +} + +.swagger-ui .opblock-tag svg, .swagger-ui section.models h4 svg { transition: all .4s ease 0s; } + +.swagger-ui .opblock { + border: 1px solid #000; + border-radius: 4px; + box-shadow: rgba(0, 0, 0, .19) 0 0 3px; + margin: 0 0 15px; +} + +.swagger-ui .opblock .tab-header .tab-item.active h4 span::after { background: gray; } + +.swagger-ui .opblock.is-open .opblock-summary { border-bottom: 1px solid #000; } + +.swagger-ui .opblock .opblock-section-header { + background: rgba(28, 28, 33, .8); + box-shadow: rgba(0, 0, 0, .1) 0 1px 2px; +} + +.swagger-ui .opblock .opblock-section-header > label > span { padding: 0 10px 0 0; } + +.swagger-ui .opblock .opblock-summary-method { + background: #000; + color: #fff; + text-shadow: rgba(0, 0, 0, .1) 0 1px 0; +} + +.swagger-ui .opblock.opblock-post { + background: rgba(72, 203, 144, .1); + border-color: #48cb90; +} + +.swagger-ui .opblock.opblock-post .opblock-summary-method, .swagger-ui .opblock.opblock-post .tab-header .tab-item.active h4 span::after { background: #48cb90; } + +.swagger-ui .opblock.opblock-post .opblock-summary { border-color: #48cb90; } + +.swagger-ui .opblock.opblock-put { + background: rgba(213, 157, 88, .1); + border-color: #d59d58; +} + +.swagger-ui .opblock.opblock-put .opblock-summary-method, .swagger-ui .opblock.opblock-put .tab-header .tab-item.active h4 span::after { background: #d59d58; } + +.swagger-ui .opblock.opblock-put .opblock-summary { border-color: #d59d58; } + +.swagger-ui .opblock.opblock-delete { + background: rgba(200, 50, 50, .1); + border-color: #c83232; +} + +.swagger-ui .opblock.opblock-delete .opblock-summary-method, .swagger-ui .opblock.opblock-delete .tab-header .tab-item.active h4 span::after { background: #c83232; } + +.swagger-ui .opblock.opblock-delete .opblock-summary { border-color: #c83232; } + +.swagger-ui .opblock.opblock-get { + background: rgba(42, 105, 167, .1); + border-color: #2a69a7; +} + +.swagger-ui .opblock.opblock-get .opblock-summary-method, .swagger-ui .opblock.opblock-get .tab-header .tab-item.active h4 span::after { background: #2a69a7; } + +.swagger-ui .opblock.opblock-get .opblock-summary { border-color: #2a69a7; } + +.swagger-ui .opblock.opblock-patch { + background: rgba(92, 214, 188, .1); + border-color: #5cd6bc; +} + +.swagger-ui .opblock.opblock-patch .opblock-summary-method, .swagger-ui .opblock.opblock-patch .tab-header .tab-item.active h4 span::after { background: #5cd6bc; } + +.swagger-ui .opblock.opblock-patch .opblock-summary { border-color: #5cd6bc; } + +.swagger-ui .opblock.opblock-head { + background: rgba(140, 63, 207, .1); + border-color: #8c3fcf; +} + +.swagger-ui .opblock.opblock-head .opblock-summary-method, .swagger-ui .opblock.opblock-head .tab-header .tab-item.active h4 span::after { background: #8c3fcf; } + +.swagger-ui .opblock.opblock-head .opblock-summary { border-color: #8c3fcf; } + +.swagger-ui .opblock.opblock-options { + background: rgba(36, 89, 143, .1); + border-color: #24598f; +} + +.swagger-ui .opblock.opblock-options .opblock-summary-method, .swagger-ui .opblock.opblock-options .tab-header .tab-item.active h4 span::after { background: #24598f; } + +.swagger-ui .opblock.opblock-options .opblock-summary { border-color: #24598f; } + +.swagger-ui .opblock.opblock-deprecated { + background: rgba(46, 46, 46, .1); + border-color: #2e2e2e; + opacity: .6; +} + +.swagger-ui .opblock.opblock-deprecated .opblock-summary-method, .swagger-ui .opblock.opblock-deprecated .tab-header .tab-item.active h4 span::after { background: #2e2e2e; } + +.swagger-ui .opblock.opblock-deprecated .opblock-summary { border-color: #2e2e2e; } + +.swagger-ui .filter .operation-filter-input { border: 2px solid #2b3446; } + +.swagger-ui .tab li:first-of-type::after { background: rgba(0, 0, 0, .2); } + +.swagger-ui .download-contents { + background: #7c8192; + color: #fff; +} + +.swagger-ui .scheme-container { + background: #1c1c21; + box-shadow: rgba(0, 0, 0, .15) 0 1px 2px 0; +} + +.swagger-ui .loading-container .loading::before { + animation: 1s linear 0s infinite normal none running rotation, .5s ease 0s 1 normal none running opacity; + border-color: rgba(0, 0, 0, .6) rgba(84, 84, 84, .1) rgba(84, 84, 84, .1); +} + +.swagger-ui .response-control-media-type--accept-controller select { border-color: #196619; } + +.swagger-ui .response-control-media-type__accept-message { color: #99e699; } + +.swagger-ui .version-pragma__message code { background-color: #3b3b3b; } + +.swagger-ui .btn { + background: 0 0; + border: 2px solid gray; + box-shadow: rgba(0, 0, 0, .1) 0 1px 2px; + color: #b5bac9; +} + +.swagger-ui .btn:hover { box-shadow: rgba(0, 0, 0, .3) 0 0 5px; } + +.swagger-ui .btn.authorize, .swagger-ui .btn.cancel { + background-color: transparent; + border-color: #a72a2a; + color: #e69999; +} + +.swagger-ui .btn.authorize { + border-color: #48cb90; + color: #9ce3c3; +} + +.swagger-ui .btn.authorize svg { fill: #9ce3c3; } + +.swagger-ui .btn.execute { + background-color: #5892d5; + border-color: #5892d5; + color: #fff; +} + +.swagger-ui .copy-to-clipboard { background: #7c8192; } + +.swagger-ui .copy-to-clipboard button { background: url("data:image/svg+xml;charset=utf-8,") 50% center no-repeat; } + +.swagger-ui select { + background: url("data:image/svg+xml;charset=utf-8,") right 10px center/20px no-repeat #212121; + background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4wICg0MDM1YTRmYjQ5LCAyMDIwLTA1LTAxKSIKICAgc29kaXBvZGk6ZG9jbmFtZT0iZG93bmxvYWQuc3ZnIgogICBpZD0ic3ZnNCIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMjAgMjAiPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTEwIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnNCIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6Y3k9IjEwIgogICAgIGlua3NjYXBlOmN4PSIxMCIKICAgICBpbmtzY2FwZTp6b29tPSI0MS41IgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpZD0ibmFtZWR2aWV3NiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMDAxIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGd1aWRldG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBvYmplY3R0b2xlcmFuY2U9IjEwIgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIiAvPgogIDxwYXRoCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZiIKICAgICBpZD0icGF0aDIiCiAgICAgZD0iTTEzLjQxOCA3Ljg1OWEuNjk1LjY5NSAwIDAxLjk3OCAwIC42OC42OCAwIDAxMCAuOTY5bC0zLjkwOCAzLjgzYS42OTcuNjk3IDAgMDEtLjk3OSAwbC0zLjkwOC0zLjgzYS42OC42OCAwIDAxMC0uOTY5LjY5NS42OTUgMCAwMS45NzggMEwxMCAxMWwzLjQxOC0zLjE0MXoiIC8+Cjwvc3ZnPgo=) right 10px center/20px no-repeat #1c1c21; + border: 2px solid #41444e; +} + +.swagger-ui select[multiple] { background: #212121; } + +.swagger-ui button.invalid, .swagger-ui input[type=email].invalid, .swagger-ui input[type=file].invalid, .swagger-ui input[type=password].invalid, .swagger-ui input[type=search].invalid, .swagger-ui input[type=text].invalid, .swagger-ui select.invalid, .swagger-ui textarea.invalid { + background: #390e0e; + border-color: #c83232; +} + +.swagger-ui input[type=email], .swagger-ui input[type=file], .swagger-ui input[type=password], .swagger-ui input[type=search], .swagger-ui input[type=text], .swagger-ui textarea { + background: #1c1c21; + border: 1px solid #404040; +} + +.swagger-ui textarea { + background: rgba(28, 28, 33, .8); + color: #b5bac9; +} + +.swagger-ui input[disabled], .swagger-ui select[disabled] { + background-color: #1f1f1f; + color: #bfbfbf; +} + +.swagger-ui textarea[disabled] { + background-color: #41444e; + color: #fff; +} + +.swagger-ui select[disabled] { border-color: #878787; } + +.swagger-ui textarea:focus { border: 2px solid #2a69a7; } + +.swagger-ui .checkbox input[type=checkbox] + label > .item { + background: #303030; + box-shadow: #303030 0 0 0 2px; +} + +.swagger-ui .checkbox input[type=checkbox]:checked + label > .item { background: url("data:image/svg+xml;charset=utf-8,") 50% center no-repeat #303030; } + +.swagger-ui .dialog-ux .backdrop-ux { background: rgba(0, 0, 0, .8); } + +.swagger-ui .dialog-ux .modal-ux { + background: #1c1c21; + border: 1px solid #2e2e2e; + box-shadow: rgba(0, 0, 0, .2) 0 10px 30px 0; +} + +.swagger-ui .dialog-ux .modal-ux-header .close-modal { background: 0 0; } + +.swagger-ui .model .deprecated span, .swagger-ui .model .deprecated td { color: #bfbfbf !important; } + +.swagger-ui .model-toggle::after { background: url("data:image/svg+xml;charset=utf-8,") 50% center/100% no-repeat; } + +.swagger-ui .model-hint { + background: rgba(0, 0, 0, .7); + color: #ebebeb; +} + +.swagger-ui section.models { border: 1px solid rgba(58, 64, 80, .3); } + +.swagger-ui section.models.is-open h4 { border-bottom: 1px solid rgba(58, 64, 80, .3); } + +.swagger-ui section.models .model-container { background: rgba(0, 0, 0, .05); } + +.swagger-ui section.models .model-container:hover { background: rgba(0, 0, 0, .07); } + +.swagger-ui .model-box { background: rgba(0, 0, 0, .1); } + +.swagger-ui .prop-type { color: #aaaad4; } + +.swagger-ui table thead tr td, .swagger-ui table thead tr th { + border-bottom: 1px solid rgba(58, 64, 80, .2); + color: #b5bac9; +} + +.swagger-ui .parameter__name.required::after { color: rgba(230, 153, 153, .6); } + +.swagger-ui .topbar .download-url-wrapper .select-label { color: #f0f0f0; } + +.swagger-ui .topbar .download-url-wrapper .download-url-button { + background: #63a040; + color: #fff; +} + +.swagger-ui .info .title small { background: #7c8492; } + +.swagger-ui .info .title small.version-stamp { background-color: #7a9b27; } + +.swagger-ui .auth-container .errors { + background-color: #350d0d; + color: #b5bac9; +} + +.swagger-ui .errors-wrapper { + background: rgba(200, 50, 50, .1); + border: 2px solid #c83232; +} + +.swagger-ui .markdown code, .swagger-ui .renderedmarkdown code { + background: rgba(0, 0, 0, .05); + color: #c299e6; +} + +.swagger-ui .model-toggle:after { background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4wICg0MDM1YTRmYjQ5LCAyMDIwLTA1LTAxKSIKICAgc29kaXBvZGk6ZG9jbmFtZT0iZG93bmxvYWQyLnN2ZyIKICAgaWQ9InN2ZzQiCiAgIHZlcnNpb249IjEuMSIKICAgaGVpZ2h0PSIyNCIKICAgd2lkdGg9IjI0Ij4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGExMCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGRlZnMKICAgICBpZD0iZGVmczgiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii05IgogICAgIGlua3NjYXBlOmN5PSIxMiIKICAgICBpbmtzY2FwZTpjeD0iMTIiCiAgICAgaW5rc2NhcGU6em9vbT0iMzQuNTgzMzMzIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpZD0ibmFtZWR2aWV3NiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMDAxIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGd1aWRldG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBvYmplY3R0b2xlcmFuY2U9IjEwIgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIiAvPgogIDxwYXRoCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZiIKICAgICBpZD0icGF0aDIiCiAgICAgZD0iTTEwIDZMOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02eiIgLz4KPC9zdmc+Cg==) 50% no-repeat; } + +.swagger-ui .expand-operation svg, .swagger-ui section.models h4 svg { fill: #fff; } + +::-webkit-scrollbar-track { background-color: #646464 !important; } + +::-webkit-scrollbar-thumb { + background-color: #242424 !important; + border: 2px solid #3e4346 !important; +} + +::-webkit-scrollbar-button:vertical:start:decrement { + background: linear-gradient(130deg, #696969 40%, rgba(255, 0, 0, 0) 41%), linear-gradient(230deg, #696969 40%, transparent 41%), linear-gradient(0deg, #696969 40%, transparent 31%); + background-color: #b6b6b6; +} + +::-webkit-scrollbar-button:vertical:end:increment { + background: linear-gradient(310deg, #696969 40%, transparent 41%), linear-gradient(50deg, #696969 40%, transparent 41%), linear-gradient(180deg, #696969 40%, transparent 31%); + background-color: #b6b6b6; +} + +::-webkit-scrollbar-button:horizontal:end:increment { + background: linear-gradient(210deg, #696969 40%, transparent 41%), linear-gradient(330deg, #696969 40%, transparent 41%), linear-gradient(90deg, #696969 30%, transparent 31%); + background-color: #b6b6b6; +} + +::-webkit-scrollbar-button:horizontal:start:decrement { + background: linear-gradient(30deg, #696969 40%, transparent 41%), linear-gradient(150deg, #696969 40%, transparent 41%), linear-gradient(270deg, #696969 30%, transparent 31%); + background-color: #b6b6b6; +} + +::-webkit-scrollbar-button, ::-webkit-scrollbar-track-piece { background-color: #3e4346 !important; } + +.swagger-ui .black, .swagger-ui .checkbox, .swagger-ui .dark-gray, .swagger-ui .download-url-wrapper .loading, .swagger-ui .errors-wrapper .errors small, .swagger-ui .fallback, .swagger-ui .filter .loading, .swagger-ui .gray, .swagger-ui .hover-black:focus, .swagger-ui .hover-black:hover, .swagger-ui .hover-dark-gray:focus, .swagger-ui .hover-dark-gray:hover, .swagger-ui .hover-gray:focus, .swagger-ui .hover-gray:hover, .swagger-ui .hover-light-silver:focus, .swagger-ui .hover-light-silver:hover, .swagger-ui .hover-mid-gray:focus, .swagger-ui .hover-mid-gray:hover, .swagger-ui .hover-near-black:focus, .swagger-ui .hover-near-black:hover, .swagger-ui .hover-silver:focus, .swagger-ui .hover-silver:hover, .swagger-ui .light-silver, .swagger-ui .markdown pre, .swagger-ui .mid-gray, .swagger-ui .model .property, .swagger-ui .model .property.primitive, .swagger-ui .model-title, .swagger-ui .near-black, .swagger-ui .parameter__extension, .swagger-ui .parameter__in, .swagger-ui .prop-format, .swagger-ui .renderedmarkdown pre, .swagger-ui .response-col_links .response-undocumented, .swagger-ui .response-col_status .response-undocumented, .swagger-ui .silver, .swagger-ui section.models h4, .swagger-ui section.models h5, .swagger-ui span.token-not-formatted, .swagger-ui span.token-string, .swagger-ui table.headers .header-example, .swagger-ui table.model tr.description, .swagger-ui table.model tr.extension { color: #bfbfbf; } + +.swagger-ui .hover-white:focus, .swagger-ui .hover-white:hover, .swagger-ui .info .title small pre, .swagger-ui .topbar a, .swagger-ui .white { color: #fff; } + +.swagger-ui .bg-black-10, .swagger-ui .hover-bg-black-10:focus, .swagger-ui .hover-bg-black-10:hover, .swagger-ui .stripe-dark:nth-child(2n + 1) { background-color: rgba(0, 0, 0, .1); } + +.swagger-ui .bg-white-10, .swagger-ui .hover-bg-white-10:focus, .swagger-ui .hover-bg-white-10:hover, .swagger-ui .stripe-light:nth-child(2n + 1) { background-color: rgba(28, 28, 33, .1); } + +.swagger-ui .bg-light-silver, .swagger-ui .hover-bg-light-silver:focus, .swagger-ui .hover-bg-light-silver:hover, .swagger-ui .striped--light-silver:nth-child(2n + 1) { background-color: #6e6e6e; } + +.swagger-ui .bg-moon-gray, .swagger-ui .hover-bg-moon-gray:focus, .swagger-ui .hover-bg-moon-gray:hover, .swagger-ui .striped--moon-gray:nth-child(2n + 1) { background-color: #4d4d4d; } + +.swagger-ui .bg-light-gray, .swagger-ui .hover-bg-light-gray:focus, .swagger-ui .hover-bg-light-gray:hover, .swagger-ui .striped--light-gray:nth-child(2n + 1) { background-color: #2b2b2b; } + +.swagger-ui .bg-near-white, .swagger-ui .hover-bg-near-white:focus, .swagger-ui .hover-bg-near-white:hover, .swagger-ui .striped--near-white:nth-child(2n + 1) { background-color: #242424; } + +.swagger-ui .opblock-tag:hover, .swagger-ui section.models h4:hover { background: rgba(0, 0, 0, .02); } + +.swagger-ui .checkbox p, .swagger-ui .dialog-ux .modal-ux-content h4, .swagger-ui .dialog-ux .modal-ux-content p, .swagger-ui .dialog-ux .modal-ux-header h3, .swagger-ui .errors-wrapper .errors h4, .swagger-ui .errors-wrapper hgroup h4, .swagger-ui .info .base-url, .swagger-ui .info .title, .swagger-ui .info h1, .swagger-ui .info h2, .swagger-ui .info h3, .swagger-ui .info h4, .swagger-ui .info h5, .swagger-ui .info li, .swagger-ui .info p, .swagger-ui .info table, .swagger-ui .loading-container .loading::after, .swagger-ui .model, .swagger-ui .opblock .opblock-section-header h4, .swagger-ui .opblock .opblock-section-header > label, .swagger-ui .opblock .opblock-summary-description, .swagger-ui .opblock .opblock-summary-operation-id, .swagger-ui .opblock .opblock-summary-path, .swagger-ui .opblock .opblock-summary-path__deprecated, .swagger-ui .opblock-description-wrapper, .swagger-ui .opblock-description-wrapper h4, .swagger-ui .opblock-description-wrapper p, .swagger-ui .opblock-external-docs-wrapper, .swagger-ui .opblock-external-docs-wrapper h4, .swagger-ui .opblock-external-docs-wrapper p, .swagger-ui .opblock-tag small, .swagger-ui .opblock-title_normal, .swagger-ui .opblock-title_normal h4, .swagger-ui .opblock-title_normal p, .swagger-ui .parameter__name, .swagger-ui .parameter__type, .swagger-ui .response-col_links, .swagger-ui .response-col_status, .swagger-ui .responses-inner h4, .swagger-ui .responses-inner h5, .swagger-ui .scheme-container .schemes > label, .swagger-ui .scopes h2, .swagger-ui .servers > label, .swagger-ui .tab li, .swagger-ui label, .swagger-ui select, .swagger-ui table.headers td { color: #b5bac9; } + +.swagger-ui .download-url-wrapper .failed, .swagger-ui .filter .failed, .swagger-ui .model-deprecated-warning, .swagger-ui .parameter__deprecated, .swagger-ui .parameter__name.required span, .swagger-ui table.model tr.property-row .star { color: #e69999; } + +.swagger-ui .opblock-body pre.microlight, .swagger-ui textarea.curl { + background: #41444e; + border-radius: 4px; + color: #fff; +} + +.swagger-ui .expand-methods svg, .swagger-ui .expand-methods:hover svg { fill: #bfbfbf; } + +.swagger-ui .auth-container, .swagger-ui .dialog-ux .modal-ux-header { border-bottom: 1px solid #2e2e2e; } + +.swagger-ui .topbar .download-url-wrapper .select-label select, .swagger-ui .topbar .download-url-wrapper input[type=text] { border: 2px solid #63a040; } + +.swagger-ui .info a, .swagger-ui .info a:hover, .swagger-ui .scopes h2 a { color: #99bde6; } + +/* Dark Scrollbar */ +::-webkit-scrollbar { + width: 14px; + height: 14px; +} + +::-webkit-scrollbar-button { + background-color: #3e4346 !important; +} + +::-webkit-scrollbar-track { + background-color: #646464 !important; +} + +::-webkit-scrollbar-track-piece { + background-color: #3e4346 !important; +} + +::-webkit-scrollbar-thumb { + height: 50px; + background-color: #242424 !important; + border: 2px solid #3e4346 !important; +} + +::-webkit-scrollbar-corner {} + +::-webkit-resizer {} + +::-webkit-scrollbar-button:vertical:start:decrement { + background: + linear-gradient(130deg, #696969 40%, rgba(255, 0, 0, 0) 41%), + linear-gradient(230deg, #696969 40%, rgba(0, 0, 0, 0) 41%), + linear-gradient(0deg, #696969 40%, rgba(0, 0, 0, 0) 31%); + background-color: #b6b6b6; +} + +::-webkit-scrollbar-button:vertical:end:increment { + background: + linear-gradient(310deg, #696969 40%, rgba(0, 0, 0, 0) 41%), + linear-gradient(50deg, #696969 40%, rgba(0, 0, 0, 0) 41%), + linear-gradient(180deg, #696969 40%, rgba(0, 0, 0, 0) 31%); + background-color: #b6b6b6; +} + +::-webkit-scrollbar-button:horizontal:end:increment { + background: + linear-gradient(210deg, #696969 40%, rgba(0, 0, 0, 0) 41%), + linear-gradient(330deg, #696969 40%, rgba(0, 0, 0, 0) 41%), + linear-gradient(90deg, #696969 30%, rgba(0, 0, 0, 0) 31%); + background-color: #b6b6b6; +} + +::-webkit-scrollbar-button:horizontal:start:decrement { + background: + linear-gradient(30deg, #696969 40%, rgba(0, 0, 0, 0) 41%), + linear-gradient(150deg, #696969 40%, rgba(0, 0, 0, 0) 41%), + linear-gradient(270deg, #696969 30%, rgba(0, 0, 0, 0) 31%); + background-color: #b6b6b6; +} +} diff --git a/public/openapi/bindapi.json b/public/openapi/bindapi.json new file mode 100644 index 0000000..2d7476a --- /dev/null +++ b/public/openapi/bindapi.json @@ -0,0 +1,425 @@ +{ + "openapi": "3.0.2", + "info": { + "title": "bindAPI", + "version": "0.0.1", + "description": "TODO …", + "contact": { + "name": "micha Espey", + "email": "tracer@24unix.net" + } + }, + "servers": [ + { + "url": "{schema}://{hostname}/api", + "description": "The bindAPI URL.", + "variables": { + "schema": { + "enum": [ + "https", + "http" + ], + "default": "https" + }, + "hostname": { + "default": "ns2.24unix.net" + } + } + } + ], + "tags": [ + { + "name": "Server" + }, + { + "name": "Domains" + } + ], + "security": [ + { + "ApiKeyAuth": [] + } + ], + "paths": { + "/ping": { + "get": { + "tags": [ + "Server" + ], + "summary": "Returning pong.", + "description": "Can be used to check API or server availability.", + "operationId": "getPong", + "responses": { + "200": { + "$ref": "#/components/responses/ping" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + }, + "security": [ + { + "Authorization": [ + "read" + ] + } + ] + } + }, + "/domains": { + "get": { + "tags": [ + "Domains" + ], + "summary": "Returns all domains.", + "description": "Returns information of a single domain specified by its domain name.", + "operationId": "getDomains", + "responses": { + "200": { + "$ref": "#/components/responses/domain-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "Domains" + ], + "summary": "Create a domain.", + "description": "Create a new domain.", + "operationId": "putDomains", + "requestBody": { + "$ref": "#/components/requestBodies/domain-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/domains/{name}": { + "get": { + "tags": [ + "Domains" + ], + "summary": "Returns a single domain.", + "description": "Returns information of a single domain specified by its domain name.", + "operationId": "getSingleDomain", + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200-ok" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "put": { + "tags": [ + "Domains" + ], + "summary": "Updates a domain.", + "description": "Updates a domain. Only supplied fields will be updated, existing won't be affected.", + "operationId": "putDomain", + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/domain-put" + }, + + "responses": { + "200": { + "description": "OK" + }, + "401": { + "description": "API key is missing or invalid." + }, + "404": { + "description": "Domain not found." + } + }, + "security": [ + { + "Authorization": [] + } + ] + }, + "delete": { + "tags": [ + "Domains" + ], + "summary": "Deletes a domain.", + "description": "Deletes a domain.", + "operationId": "73c6c14e6d84f759d2e09029cb7ab2be", + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + }, "security": [ + { + "Authorization": [] + } + ] + } + } + }, + "components": { + "securitySchemes": { + "Authorization": { + "type": "apiKey", + "description": "Authentication Token", + "name": "X-API-Key", + "in": "header" + } + }, + "requestBodies": { + "domain-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/domain" + } + } + } + }, + "domain-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/domain" + }, + "example": { + "name": "example.com", + "panel_id": "8" + } + } + } + } + }, + "responses": { + "ping": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ping" + } + } + } + }, + "domain": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/domain" + } + } + } + }, + "domain-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/domain" + } + } + } + } + }, + "200-ok": { + "description": "OK." + }, + "200-ok-updated": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/created" + }, + "example": { + "id": 8 + } + } + } + }, + "201-created": { + "description": "Created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/created" + }, + "example": { + "id": 8 + } + } + } + }, + "204-no-content": { + "description": "No content." + }, + "400-bad-request": { + "description": "Bad request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + }, + "example": { + "code": "400 Bad Request", + "message": "Invalid request body." + } + } + } + }, + "401-unauthorized": { + "description": "Unauthorized.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + }, + "example": { + "code": "401 Unauthorized", + "message": "API key is missing or invalid." + } + } + } + }, + "404-not-found": { + "description": "The specified resource was not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + }, + "example": { + "code": "404 Not Found", + "message": "The specified resource was not found." + } + } + } + } + }, + "schemas": { + "ping": { + "type": "object", + "properties": { + "response": { + "type": "string", + "example": "pong" + } + } + }, + "domain": { + "description": "Representation of a domain.\n", + "type": "object", + "properties": { + "id": { + "type": "integer", + "readOnly": true, + "description": "The ID of the domain.", + "example": 8 + }, + "name": { + "type": "string", + "description": "The ASCII representation of the domain.", + "example": "example.com" + }, + "panel_id": { + "type": "integer", + "description": "The KeyHelp Panel ID. Either this or at least one IP address is required", + "example": 4 + }, + "a": { + "type": "string", + "readOnly": true, + "description": "The IPv4 address.", + "example": "12.13.14.15" + }, + "aaaa": { + "type": "string", + "readOnly": true, + "description": "The IPv6 address.", + "example": "1bad::babe" + } + } + }, + "created": { + "type": "object", + "properties": { + "id": { + "type": "integer" + } + } + }, + "error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message#" + ] + } + } + } +} \ No newline at end of file diff --git a/public/openapi/favicon-16x16.png b/public/openapi/favicon-16x16.png new file mode 100644 index 0000000..8b194e6 Binary files /dev/null and b/public/openapi/favicon-16x16.png differ diff --git a/public/openapi/favicon-32x32.png b/public/openapi/favicon-32x32.png new file mode 100644 index 0000000..249737f Binary files /dev/null and b/public/openapi/favicon-32x32.png differ diff --git a/public/openapi/index.html b/public/openapi/index.html new file mode 100644 index 0000000..38d090a --- /dev/null +++ b/public/openapi/index.html @@ -0,0 +1,61 @@ + + + + + + Swagger UI + + + + + + + + + +
+ + + + + + diff --git a/public/openapi/oauth2-redirect.html b/public/openapi/oauth2-redirect.html new file mode 100644 index 0000000..64b171f --- /dev/null +++ b/public/openapi/oauth2-redirect.html @@ -0,0 +1,75 @@ + + + + Swagger UI: OAuth2 Redirect + + + + + diff --git a/public/openapi/openapi.keyhelp.json b/public/openapi/openapi.keyhelp.json new file mode 100644 index 0000000..17729e3 --- /dev/null +++ b/public/openapi/openapi.keyhelp.json @@ -0,0 +1,6671 @@ +{ + "openapi": "3.0.2", + "info": { + "title": "KeyHelp RESTful API", + "version": "2.2", + "description": "Provides an interface to a server managed by the KeyHelp server administration tool.\n\nThere latest version of this documentation is available here.\n\n## URL\n\n* To communicate with the API, you need to call a specific URL which looks like the this:
\n ```\n https:///api/v2/\n ```\n ```\n https:///api/v2/\n ```\n* Have a look below to see all available API endoints.\n\n\n## Authentication\n\n* You need to define API keys inside of the KeyHelp user interface (*Admin area* -> *Configuration* -> *API*).
\n Each API key should be restricted to certain IP / IP range.\n* Pass the API key with each request using the `X-API-Key` header field.\n\n\n## Request format\n\n* Some requests require you to send data inside of the request body.
\n These data must be sent as `application/json`.\n\n## Response format\n\n* Use the `ACCEPT` header field to specify your desired response mime type.\n* The following response formats are supported:\n - `application/json` (default)\n - `application/xml`\n - `text/yaml`\n\n## Hints\n\n* The API is not enabled by default. You first have to turn it on via KeyHelp user interface.
\n (*Admin area* -> *Configuration* -> *API*)\n\n* You can define how the API should react in certain cases, for this purpose you might want to have a look at the API options.
\n (*Admin area* -> *Configuration* -> *API* -> *Options*)\n\n* You can turn on the `password_hash` field in API settings, and so read and set the password hash of a given element.\n When using this field, make sure that you always use the same hash algorithm that KeyHelp uses, otherwise full functionality can not be guaranteed. If using the `password_hash` field in `[POST/PUT] /clients/` the additional `password_hash_os` field is required.\n\n* KeyHelp performs a webserver reload every time it is necessary. This can either be triggered by your customers using the KeyHelp UI or a previous API request. Your API client will receive a 500/503 error if it sends the request right in the moment of the reload. You have to ensure, your API client can handle such situations, for example by sending the request again after a few seconds.\n\n* Some object schemas contain a read-only \"status\" field. The meaning of these values is as follows:
\n 0 = \"unknown\", 1 = \"okay\", 2 = \"error\", 3 = \"config_new\", 4 = \"config_update\"\n\n## Shorthand byte values\n\n* When specifing byte values, you can also use a shorthand notation.\n* Available options are: K (kilobyte), M (megabyte), G (gigabyte), T (terabyte), P (petabyte)\n* One kilobyte is described as 1024 byte, 1M equals to 1048576 bytes\n* Do not use decimals, only integers!\n\n
\n\n## HTTP status code summary\n| Code | Description |\n| --- | --- |\n| **200 - OK** | Everything worked as expected. |\n| **201 - Created** | The ressource was successfully created. |\n| **204 - No Content** | The response does not contain any data. Used on delete operations. |\n| **400 - Bad Request** | The request was unacceptable, due to an malformed request, invalid parameter value or a missing required parameter. |\n| **401 - Unauthorized** | Invalid API key provided |\n| **403 - Forbidden** | API access is denied. |\n| **404 - Not Found** | The ressouce was not found / The requested endpoint was not found. |\n| **405 - Method Not Allowed** | The HTTP method for the requested endpoint is not allowed. |\n| **406 - Not Acceptable** | Invalid Accept header value. Mime type not supported. |\n| **5xx - Server error** | Something went wrong on KeyHelp's end. |\n\n
\n\n## API version upgrade guide\n\n #### Breaking changes from `v1` to `v2`\n 1) `[GET] /certificates/`: Output format changed for field `components`.\n 2) `[PUT/POST] /certificates/`: Certificate components are now specified within the `components` field.\n\n
\n", + "contact": { + "name": "Alexander Mahr (KeyHelp Developer)", + "email": "info@keyhelp.de", + "url": "https://www.keyhelp.de/en" + } + }, + "servers": [ + { + "url": "https://{host}/api/v2", + "description": "The URL to your KeyHelp server API.", + "variables": { + "host": { + "default": "keyhelp.example.com", + "description": "The servers host name." + } + } + } + ], + "security": [ + { + "ApiKeyAuth": [] + } + ], + "tags": [ + { + "name": "Server", + "description": "Server endpoint." + }, + { + "name": "Login", + "description": "Login endpoint." + }, + { + "name": "Admins", + "description": "Admins endpoint." + }, + { + "name": "Clients", + "description": "Clients endpoint." + }, + { + "name": "Hosting plans", + "description": "Hosting plans endpoint." + }, + { + "name": "Domains", + "description": "Domains endpoint." + }, + { + "name": "DNS", + "description": "DNS endpoint." + }, + { + "name": "Certificates", + "description": "Certificates endpoint." + }, + { + "name": "Emails", + "description": "Emails endpoint." + }, + { + "name": "Databases", + "description": "Databases endpoint." + }, + { + "name": "FTP users", + "description": "FTP users endpoint." + }, + { + "name": "Scheduled tasks", + "description": "Scheduled tasks endpoint." + }, + { + "name": "Directory protections", + "description": "Directory protections endpoint." + } + ], + "paths": { + "/server": { + "get": { + "tags": [ + "Server" + ], + "summary": "Returning server information.", + "description": "Returns various server information.\n\nIf performance is a concern, you can use the query parameters,\nto query only for the information you need.\n", + "parameters": [ + { + "$ref": "#/components/parameters/server-meta" + }, + { + "$ref": "#/components/parameters/server-operating-system" + }, + { + "$ref": "#/components/parameters/server-utilization" + }, + { + "$ref": "#/components/parameters/server-resources" + }, + { + "$ref": "#/components/parameters/server-components" + }, + { + "$ref": "#/components/parameters/server-additional-php-interpreters" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/server" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/ping": { + "get": { + "tags": [ + "Server" + ], + "summary": "Returning pong.", + "description": "Returns \"pong\".\n\nCan be used to check API or server availability.\n", + "responses": { + "200": { + "$ref": "#/components/responses/ping" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/login/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/client-id" + } + ], + "get": { + "tags": [ + "Login" + ], + "summary": "Generates a login URL for a particular user.", + "description": "Generates a login URL that allows to log in to a user account by calling the returned URL.\n\nSecurity notes:
\nThe generated URL has a validity period of 60 minutes.
\nThe login is protected by a brute force protection.\n", + "responses": { + "200": { + "$ref": "#/components/responses/login-url" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/domains": { + "get": { + "tags": [ + "Domains" + ], + "summary": "Listing all domains.", + "description": "Returns a list of all domains on this server.\n\nYou can use the following filter parameter values to filter the results.\n* main_domains\n* subdomains\n* system_domains\n\nYou can use the following sort parameter values to sort the results.\n* id (default)\n* domain\n* domain_utf8\n", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/order" + }, + { + "$ref": "#/components/parameters/domains-main-domains" + }, + { + "$ref": "#/components/parameters/domains-subdomains" + }, + { + "$ref": "#/components/parameters/domains-system-domains" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/domain-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "Domains" + ], + "summary": "Creating a domain.", + "description": "Creates a new domain.\n", + "requestBody": { + "$ref": "#/components/requestBodies/domain-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/domains/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/domain-id" + } + ], + "get": { + "tags": [ + "Domains" + ], + "summary": "Returning a single domain.", + "description": "Returns information of a single domain specified by its ID.\n", + "responses": { + "200": { + "$ref": "#/components/responses/domain" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "Domains" + ], + "summary": "Updating a domain.", + "description": "Updates a domain item.\n", + "requestBody": { + "$ref": "#/components/requestBodies/domain-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "Domains" + ], + "summary": "Deleting a domain.", + "description": "Deletes a domain item.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/domains/name/{name}": { + "parameters": [ + { + "$ref": "#/components/parameters/domain-name" + } + ], + "get": { + "tags": [ + "Domains" + ], + "summary": "Returning a single domain.", + "description": "Returns information of a single domain specified by its domain name.\n", + "responses": { + "200": { + "$ref": "#/components/responses/domain" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/dns/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/domain-id" + } + ], + "get": { + "tags": [ + "DNS" + ], + "summary": "Listing the DNS records of a domain.", + "description": "Lists the currently active DNS records for a domain ID.\n\nOnly IDs of main domains are allowed, IDs of subdomains will result in a 404 error.\n\nThe placeholder `` in the `value` field of a record will be replace with the actual DKIM record.\n", + "responses": { + "200": { + "$ref": "#/components/responses/dns" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "DNS" + ], + "summary": "Updating the DNS records of a domain", + "description": "Updates the DNS records of domain ID.\n\nOnly IDs of main domains are allowed, IDs of subdomains will result in a 404 error.\n\nAttention, when inserting custom DNS records, you have to specify all records not just the one you want to update.\n\nIf the property `is_dns_disabled`, either set to `true` or `false`, is part of the request, all specified records of the request will be ignored.\n* If `is_dns_disabled` is set to `true` -> DNS will be disabled\n\n* If `is_dns_disabled` is set to `false` -> DNS will be enabled with the default DNS settings\n\nIf you want to enable DNS and insert custom DNS records with only one request, simply send your DNS records without the `is_dns_disabled` property being part of the request.\n\nThe placeholder `` in the `value` field of a record will be replace with the actual DKIM record.\n", + "requestBody": { + "$ref": "#/components/requestBodies/dns-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "DNS" + ], + "summary": "Deleting the custom DNS settings of the domain.", + "description": "Calling this endpoint removes all custom settings from the domains' DNS settings:\n\n* A previously disabled DNS will be activated.\n* The SOA and all other DNS records are reset to their default values.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/certificates": { + "get": { + "tags": [ + "Certificates" + ], + "summary": "Listing all certificates.", + "description": "Returns a list of all certificates on the server.\n\nYou can use the following sort parameter values to sort the results.\n* id (default)\n* name\n", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/order" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/certificate-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "Certificates" + ], + "summary": "Creating a certificate.", + "description": "Creates a new certificate.\n", + "requestBody": { + "$ref": "#/components/requestBodies/certificate-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/certificates/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/certificate-id" + } + ], + "get": { + "tags": [ + "Certificates" + ], + "summary": "Returning a single certificate.", + "description": "Returns information of a single certificate specified by its ID.\n", + "responses": { + "200": { + "$ref": "#/components/responses/certificate" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "Certificates" + ], + "summary": "Updating a certificate.", + "description": "Updates a certificate.\n\nSpecify only the fields, you want to update.\n", + "requestBody": { + "$ref": "#/components/requestBodies/certificate-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "Certificates" + ], + "summary": "Deleting a certificate.", + "description": "Deletes a certificate.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/certificates/name/{name}": { + "parameters": [ + { + "$ref": "#/components/parameters/hosting-plan-name" + } + ], + "get": { + "tags": [ + "Certificates" + ], + "summary": "Returning a single certificate.", + "description": "Returns information of a single certificate specified by its name.\n", + "responses": { + "200": { + "$ref": "#/components/responses/certificate" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/emails": { + "get": { + "tags": [ + "Emails" + ], + "summary": "Listing all email accounts.", + "description": "Returns a list of all email accounts on the server.\n\nYou can use the following sort parameter values to sort the results.\n* id (default)\n* email\n* email_utf8\n", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/order" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/email-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "Emails" + ], + "summary": "Creating an email account.", + "description": "Creates a new email account.\n\nIf the following properties accepts punycode and UTF-8 domain names:\n* email\n* aliases\n* forwardings\n\nIf the following properties are empty / not set, they are auto-generated:\n* password\n\nIf the following properties are auto-generated, they are part of the response:\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/email-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/emails/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/email-id" + } + ], + "get": { + "tags": [ + "Emails" + ], + "summary": "Returning a single email account.", + "description": "Returns information of a single email account specified by its ID.\n", + "responses": { + "200": { + "$ref": "#/components/responses/email" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "Emails" + ], + "summary": "Updating an email account.", + "description": "Updates an email account.\n\nSpecify only the fields, you want to update.\n\nIf the following properties accepts punycode and UTF-8 domain names:\n* aliases\n* forwardings\n\nIf the following properties are part of the request but empty / null, they are auto-generated:\n* password\n\nIf the following properties are auto-generated, they are part of the response:\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/email-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "Emails" + ], + "summary": "Deleting an email account.", + "description": "Deletes an email account.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/emails/name/{name}": { + "parameters": [ + { + "$ref": "#/components/parameters/email-name" + } + ], + "get": { + "tags": [ + "Emails" + ], + "summary": "Returning a single email account.", + "description": "Returns information of a single email account specified by its email address.\n", + "responses": { + "200": { + "$ref": "#/components/responses/email" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/databases": { + "get": { + "tags": [ + "Databases" + ], + "summary": "Listing all databases.", + "description": "Returns a list of all databases on the server.\n\nYou can use the following sort parameter values to sort the results.\n* id (default)\n* database_name\n* database_username\n", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/order" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/database-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "Databases" + ], + "summary": "Creating a database and database user.", + "description": "Creates a new database.\n\nIf the following properties are empty / not set, they are auto-generated:\n* database_name and database_username\n* password\n\nIf the following properties are auto-generated, they are part of the response:\n* database_name and database_username\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/database-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/databases/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/database-id" + } + ], + "get": { + "tags": [ + "Databases" + ], + "summary": "Returning a single database and its database user.", + "description": "Returns information of a database and its database user specified by its ID.\n", + "responses": { + "200": { + "$ref": "#/components/responses/database" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "Databases" + ], + "summary": "Updating a database and its database user.", + "description": "Updates a database and its database user.\n\nSpecify only the fields, you want to update.\n\nIf the following properties are part of the request but empty / null, they are auto-generated:\n* password\n\nIf the following properties are auto-generated, they are part of the response:\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/database-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "Databases" + ], + "summary": "Deleting a database and its database user.", + "description": "Deletes a database and its database user.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/databases/name/{name}": { + "parameters": [ + { + "$ref": "#/components/parameters/database-name" + } + ], + "get": { + "tags": [ + "Databases" + ], + "summary": "Returning a single database and its database user.", + "description": "Returns information of a database and its database user specified by its database name.\n", + "responses": { + "200": { + "$ref": "#/components/responses/database" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/ftp-users": { + "get": { + "tags": [ + "FTP users" + ], + "summary": "Listing all FTP users.", + "description": "Returns a list of all FTP users on the server.\n\nYou can use the following sort parameter values to sort the results.\n* id (default)\n* username\n", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/order" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ftp-user-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "FTP users" + ], + "summary": "Creating a FTP user.", + "description": "Creates a new FTP user.\n\n**Please note**, to create a new FTP user, it is required that the corresponding (system) user account is fully set up.\nOtherwise you will receive the **400 Bad Request** error:
\n**Invalid property data for: 'uid', 'gid'**\n\nIf the following properties are empty / not set, they are auto-generated:\n* username\n* password\n* home_directory (defaults to /www/)\n\nIf the following properties are auto-generated, they are part of the response:\n* username\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/ftp-user-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/ftp-users/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/ftp-user-id" + } + ], + "get": { + "tags": [ + "FTP users" + ], + "summary": "Returning a single FTP user.", + "description": "Returns information of a single FTP user specified by its ID.\n", + "responses": { + "200": { + "$ref": "#/components/responses/ftp-user" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "FTP users" + ], + "summary": "Updating a FTP account.", + "description": "Updates a FTP user.\n\nSpecify only the fields, you want to update.\n\nIf the following properties are part of the request but empty / null, they are auto-generated:\n* password\n\nIf the following properties are auto-generated, they are part of the response:\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/ftp-user-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "FTP users" + ], + "summary": "Deleting a FTP user.", + "description": "Deletes a FTP user.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/ftp-users/name/{name}": { + "parameters": [ + { + "$ref": "#/components/parameters/ftp-user-name" + } + ], + "get": { + "tags": [ + "FTP users" + ], + "summary": "Returning a single FTP user.", + "description": "Returns information of a FTP user specified by its username.\n", + "responses": { + "200": { + "$ref": "#/components/responses/ftp-user" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/scheduled-tasks": { + "get": { + "tags": [ + "Scheduled tasks" + ], + "summary": "Listing all scheduled tasks.", + "description": "Returns a list of all scheduled tasks on the server.\n\nYou can use the following sort parameter values to sort the results.\n* id (default)\n* type\n", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/order" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/scheduled-task-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "Scheduled tasks" + ], + "summary": "Creating a scheduled tasks.", + "description": "Creates a new scheduled tasks.\n", + "requestBody": { + "$ref": "#/components/requestBodies/scheduled-task-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/scheduled-tasks/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/scheduled-task-id" + } + ], + "get": { + "tags": [ + "Scheduled tasks" + ], + "summary": "Returning a single scheduled task.", + "description": "Returns information of a scheduled task specified by its ID.\n", + "responses": { + "200": { + "$ref": "#/components/responses/scheduled-task" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "Scheduled tasks" + ], + "summary": "Updating a scheduled task.", + "description": "Updates a scheduled tasks.\n\nSpecify only the fields, you want to update. Read the exception below!\n\nATTENTION! When updating the schedule settings, all missing schedule fields in the request will default to `*`.\n\nAs an example, imagine you have a scheduled task with the following settings:
\n `minutes = 10`, `hour = 4`, `day_of_week = *`, `month = *`, `day_of_month = 1`\n\nIf you now only want to update the `minute` value, you have to include at least `hour` and `day_of_month` values also, to keep their settings.\n\nIf you don't do it, and only set the `minutes`, all other values will default to `*`. You would end up with the following:
\n `minutes` = 10, `hour = *`, `day_of_week = *`, `month = *`, `day_of_month = *`\n", + "requestBody": { + "$ref": "#/components/requestBodies/scheduled-task-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "Scheduled tasks" + ], + "summary": "Deleting a scheduled tasks.", + "description": "Deletes a scheduled tasks.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/directory-protections": { + "get": { + "tags": [ + "Directory protections" + ], + "summary": "Listing all directory protections.", + "description": "Returns a list of all directory protections on the server.\n\nYou can use the following sort parameter values to sort the results.\n* id (default)\n* auth_name\n* username\n", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/order" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/directory-protection-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "Directory protections" + ], + "summary": "Creating a directory protection.", + "description": "Creates a new directory protection.\n\nIf the following properties are empty / not set, they are auto-generated:\n* password\n* path (defaults to /, which corresponds to the user's /www/ directory)\n\nIf the following properties are auto-generated, they are part of the response:\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/directory-protection-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/directory-protections/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/directory-protection-id" + } + ], + "get": { + "tags": [ + "Directory protections" + ], + "summary": "Returning a single directory protection.", + "description": "Returns information of a single directory protection specified by its ID.\n", + "responses": { + "200": { + "$ref": "#/components/responses/directory-protection" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "Directory protections" + ], + "summary": "Updating a directory protection.", + "description": "Updates a directory protection.\n\nSpecify only the fields, you want to update.\n\nIf the following properties are part of the request but empty / null, they are auto-generated:\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/directory-protection-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "Directory protections" + ], + "summary": "Deleting a directory protection.", + "description": "Deletes a directory protection.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + } + }, + "components": { + "securitySchemes": { + "ApiKeyAuth": { + "type": "apiKey", + "in": "header", + "name": "X-API-Key" + } + }, + "parameters": { + "sort": { + "name": "sort", + "in": "query", + "description": "The property you want to sort by.", + "required": false, + "schema": { + "type": "string" + } + }, + "order": { + "name": "order", + "in": "query", + "description": "The direction you want to sort.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + } + }, + "server-meta": { + "name": "meta", + "in": "query", + "description": "Show the **meta** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "server-operating-system": { + "name": "operating_system", + "in": "query", + "description": "Show the **operating_system** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "server-utilization": { + "name": "utilization", + "in": "query", + "description": "Show the **utilization** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "server-resources": { + "name": "resources", + "in": "query", + "description": "Show the **resources** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "server-components": { + "name": "components", + "in": "query", + "description": "Show the **components** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "server-additional-php-interpreters": { + "name": "additional_php_interpreters", + "in": "query", + "description": "Show the **additional_php_interpreters** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "admin-id": { + "name": "id", + "in": "path", + "description": "User ID.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "admin-name": { + "name": "name", + "in": "path", + "description": "Username.", + "required": true, + "schema": { + "type": "string" + } + }, + "client-id": { + "name": "id", + "in": "path", + "description": "User ID.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "client-name": { + "name": "name", + "in": "path", + "description": "Username.", + "required": true, + "schema": { + "type": "string" + } + }, + "client-resources-domains": { + "name": "domains", + "in": "query", + "description": "Show the **domains** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "client-resources-certificates": { + "name": "certificates", + "in": "query", + "description": "Show the **certificates** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "client-resources-emails": { + "name": "emails", + "in": "query", + "description": "Show the **emails** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "client-resources-databases": { + "name": "databases", + "in": "query", + "description": "Show the **databases** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "client-resources-ftp-users": { + "name": "ftp_users", + "in": "query", + "description": "Show the **ftp_users** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "client-resources-scheduled-tasks": { + "name": "scheduled_tasks", + "in": "query", + "description": "Show the **scheduled_tasks** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "client-resources-directory-protections": { + "name": "directory_protections", + "in": "query", + "description": "Show the **directory_protections** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "hosting-plan-id": { + "name": "id", + "in": "path", + "description": "Numeric ID of the hosting plan.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "hosting-plan-name": { + "name": "name", + "in": "path", + "description": "Hosting plan name.", + "required": true, + "schema": { + "type": "string" + } + }, + "domains-main-domains": { + "name": "main_domains", + "in": "query", + "description": "Show main domains.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "domains-subdomains": { + "name": "subdomains", + "in": "query", + "description": "Show subdomains.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "domains-system-domains": { + "name": "system-domains", + "in": "query", + "description": "Filters the result for system domains. It will not return any data, when main_domains and subdomains are set to false.\n", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "domain-id": { + "name": "id", + "in": "path", + "description": "Domain ID.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "domain-name": { + "name": "name", + "in": "path", + "description": "Domain in either UTF-8 or punycode variant.", + "required": true, + "schema": { + "type": "string" + } + }, + "certificate-id": { + "name": "id", + "in": "path", + "description": "Certificate ID.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "certificate-name": { + "name": "name", + "in": "path", + "description": "Certificate name.", + "required": true, + "schema": { + "type": "string" + } + }, + "email-id": { + "name": "id", + "in": "path", + "description": "Email account ID.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "email-name": { + "name": "name", + "in": "path", + "description": "Email account name (= email address).", + "required": true, + "schema": { + "type": "string" + } + }, + "database-id": { + "name": "id", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "database-name": { + "name": "name", + "in": "path", + "description": "Database name.", + "required": true, + "schema": { + "type": "string" + } + }, + "ftp-user-id": { + "name": "id", + "in": "path", + "description": "Numeric ID of the FTP user to get.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "ftp-user-name": { + "name": "name", + "in": "path", + "description": "FTP user username.", + "required": true, + "schema": { + "type": "string" + } + }, + "scheduled-task-id": { + "name": "id", + "in": "path", + "description": "Numeric ID of the scheduled task to get.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "directory-protection-id": { + "name": "id", + "in": "path", + "description": "Numeric ID of the directory protection to get.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + } + }, + "requestBodies": { + "admin-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/admin" + } + } + } + }, + "admin-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/admin" + }, + "example": { + "language": "en", + "email": "new@example.com", + "password": "qwertz" + } + } + } + }, + "client-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/client" + } + } + } + }, + "client-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/client" + }, + "example": { + "language": "en", + "email": "new@example.com", + "password": "qwertz", + "id_hosting_plan": 5, + "contact_data": { + "company": "NewCompanyName Inc." + } + } + } + } + }, + "hosting-plan-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/hosting-plan" + } + } + } + }, + "hosting-plan-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/hosting-plan" + }, + "example": { + "name": "Hosting Premium", + "resources": { + "disk_space": "100G", + "domains": 100, + "databases": 100 + }, + "permissions": { + "ssh": true, + "ssh_jail": true + } + } + } + } + }, + "domain-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/domain" + } + } + } + }, + "domain-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/domain" + }, + "example": { + "target": "https://www.keyhelp.de", + "security": { + "lets_encrypt": false, + "force_https": false + } + } + } + } + }, + "dns-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/dns" + }, + "example": { + "records": { + "soa": { + "ttl": 86400, + "primary_ns": "ns.example.com.", + "rname": "root.example.com.", + "refresh": 14400, + "retry": 1800, + "expire": 60480, + "minimum": 3600 + }, + "other": [ + { + "host": "@", + "ttl": 86400, + "type": "A", + "value": "192.168.178.1" + }, + { + "host": "*", + "ttl": 86400, + "type": "A", + "value": "192.168.178.1" + }, + { + "host": "@", + "ttl": 86400, + "type": "NS", + "value": "ns.example.com." + }, + { + "host": "default._domainkey", + "ttl": 86400, + "type": "TXT", + "value": "" + } + ] + } + } + } + } + }, + "certificate-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/certificate" + } + } + } + }, + "certificate-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/certificate" + }, + "example": { + "id_user": null, + "name": "Certificate for example.com until 2022", + "certificate": "-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----", + "ca_certificate": "-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----" + } + } + } + }, + "email-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/email" + } + } + } + }, + "email-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/email" + }, + "example": { + "aliases": [ + "john.doe@example.com", + "jane.doe@example.com" + ] + } + } + } + }, + "database-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/database" + } + } + } + }, + "database-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/database" + }, + "example": { + "password": "qwertz", + "description": "Description for this database.", + "remote_hosts": null + } + } + } + }, + "ftp-user-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ftp-user" + } + } + } + }, + "ftp-user-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ftp-user" + }, + "example": { + "description": "Description for this FTP user.", + "home_directory": "/www/website/images/new", + "password": "qwertz" + } + } + } + }, + "scheduled-task-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/scheduled-task" + } + } + } + }, + "scheduled-task-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/scheduled-task" + }, + "example": { + "command": "bash /path/to/script.sh --debug", + "description": "Run my script in debug mode", + "notify": "always", + "email": "info@keyhelp.de", + "schedule": { + "minute": "*/2", + "hour": "*" + } + } + } + } + }, + "directory-protection-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/directory-protection" + } + } + } + }, + "directory-protection-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/directory-protection" + }, + "example": { + "username": "john_doe", + "password": "qwertz" + } + } + } + } + }, + "responses": { + "server": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/server" + } + } + } + }, + "ping": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ping" + } + } + } + }, + "login-url": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/login-url" + } + } + } + }, + "admin": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/admin" + } + } + } + }, + "admin-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/admin" + } + } + } + } + }, + "client": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/client" + } + } + } + }, + "client-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/client" + } + } + } + } + }, + "client-resources": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "domains": { + "type": "array", + "items": { + "$ref": "#/components/schemas/domain" + } + }, + "certificates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/certificate" + } + }, + "emails": { + "type": "array", + "items": { + "$ref": "#/components/schemas/email" + } + }, + "databases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/database" + } + }, + "ftp_users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ftp-user" + } + }, + "scheduled_tasks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/scheduled-task" + } + }, + "directory_protections": { + "type": "array", + "items": { + "$ref": "#/components/schemas/directory-protection" + } + } + } + } + } + } + }, + "client-stats": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/client-stats" + } + } + } + }, + "hosting-plan": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/hosting-plan" + } + } + } + }, + "hosting-plan-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/hosting-plan" + } + } + } + } + }, + "domain": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/domain" + } + } + } + }, + "domain-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/domain" + } + } + } + } + }, + "dns": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/dns" + } + } + } + }, + "certificate": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/certificate" + } + } + } + }, + "certificate-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/certificate" + } + } + } + } + }, + "email": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/email" + } + } + } + }, + "email-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/email" + } + } + } + } + }, + "database": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/database" + } + } + } + }, + "database-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/database" + } + } + } + } + }, + "ftp-user": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ftp-user" + } + } + } + }, + "ftp-user-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ftp-user" + } + } + } + } + }, + "scheduled-task": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/scheduled-task" + } + } + } + }, + "scheduled-task-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/scheduled-task" + } + } + } + } + }, + "directory-protection": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/directory-protection" + } + } + } + }, + "directory-protection-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/directory-protection" + } + } + } + } + }, + "200-ok": { + "description": "OK." + }, + "200-ok-updated": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/created" + }, + "example": { + "id": 8 + } + } + } + }, + "201-created": { + "description": "Created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/created" + }, + "example": { + "id": 8 + } + } + } + }, + "204-no-content": { + "description": "No content." + }, + "400-bad-request": { + "description": "Bad request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + }, + "example": { + "code": "400 Bad Request", + "message": "Invalid request body." + } + } + } + }, + "401-unauthorized": { + "description": "Unauthorized.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + }, + "example": { + "code": "401 Unauthorized", + "message": "API key is missing or invalid." + } + } + } + }, + "404-not-found": { + "description": "The specified resource was not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + }, + "example": { + "code": "404 Not Found", + "message": "The specified resource was not found." + } + } + } + } + }, + "schemas": { + + "error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message#" + ] + } + } + }, + +{ + "openapi": "3.0.2", + "info": { + "title": "KeyHelp RESTful API", + "version": "2.2", + "description": "Provides an interface to a server managed by the KeyHelp server administration tool.\n\nThere latest version of this documentation is available here.\n\n## URL\n\n* To communicate with the API, you need to call a specific URL which looks like the this:
\n ```\n https:///api/v2/\n ```\n ```\n https:///api/v2/\n ```\n* Have a look below to see all available API endoints.\n\n\n## Authentication\n\n* You need to define API keys inside of the KeyHelp user interface (*Admin area* -> *Configuration* -> *API*).
\n Each API key should be restricted to certain IP / IP range.\n* Pass the API key with each request using the `X-API-Key` header field.\n\n\n## Request format\n\n* Some requests require you to send data inside of the request body.
\n These data must be sent as `application/json`.\n\n## Response format\n\n* Use the `ACCEPT` header field to specify your desired response mime type.\n* The following response formats are supported:\n - `application/json` (default)\n - `application/xml`\n - `text/yaml`\n\n## Hints\n\n* The API is not enabled by default. You first have to turn it on via KeyHelp user interface.
\n (*Admin area* -> *Configuration* -> *API*)\n\n* You can define how the API should react in certain cases, for this purpose you might want to have a look at the API options.
\n (*Admin area* -> *Configuration* -> *API* -> *Options*)\n\n* You can turn on the `password_hash` field in API settings, and so read and set the password hash of a given element.\n When using this field, make sure that you always use the same hash algorithm that KeyHelp uses, otherwise full functionality can not be guaranteed. If using the `password_hash` field in `[POST/PUT] /clients/` the additional `password_hash_os` field is required.\n\n* KeyHelp performs a webserver reload every time it is necessary. This can either be triggered by your customers using the KeyHelp UI or a previous API request. Your API client will receive a 500/503 error if it sends the request right in the moment of the reload. You have to ensure, your API client can handle such situations, for example by sending the request again after a few seconds.\n\n* Some object schemas contain a read-only \"status\" field. The meaning of these values is as follows:
\n 0 = \"unknown\", 1 = \"okay\", 2 = \"error\", 3 = \"config_new\", 4 = \"config_update\"\n\n## Shorthand byte values\n\n* When specifing byte values, you can also use a shorthand notation.\n* Available options are: K (kilobyte), M (megabyte), G (gigabyte), T (terabyte), P (petabyte)\n* One kilobyte is described as 1024 byte, 1M equals to 1048576 bytes\n* Do not use decimals, only integers!\n\n
\n\n## HTTP status code summary\n| Code | Description |\n| --- | --- |\n| **200 - OK** | Everything worked as expected. |\n| **201 - Created** | The ressource was successfully created. |\n| **204 - No Content** | The response does not contain any data. Used on delete operations. |\n| **400 - Bad Request** | The request was unacceptable, due to an malformed request, invalid parameter value or a missing required parameter. |\n| **401 - Unauthorized** | Invalid API key provided |\n| **403 - Forbidden** | API access is denied. |\n| **404 - Not Found** | The ressouce was not found / The requested endpoint was not found. |\n| **405 - Method Not Allowed** | The HTTP method for the requested endpoint is not allowed. |\n| **406 - Not Acceptable** | Invalid Accept header value. Mime type not supported. |\n| **5xx - Server error** | Something went wrong on KeyHelp's end. |\n\n
\n\n## API version upgrade guide\n\n #### Breaking changes from `v1` to `v2`\n 1) `[GET] /certificates/`: Output format changed for field `components`.\n 2) `[PUT/POST] /certificates/`: Certificate components are now specified within the `components` field.\n\n
\n", + "contact": { + "name": "Alexander Mahr (KeyHelp Developer)", + "email": "info@keyhelp.de", + "url": "https://www.keyhelp.de/en" + } + }, + "servers": [ + { + "url": "https://{host}/api/v2", + "description": "The URL to your KeyHelp server API.", + "variables": { + "host": { + "default": "keyhelp.example.com", + "description": "The servers host name." + } + } + } + ], + "security": [ + { + "ApiKeyAuth": [] + } + ], + "tags": [ + { + "name": "Server", + "description": "Server endpoint." + }, + { + "name": "Login", + "description": "Login endpoint." + }, + { + "name": "Admins", + "description": "Admins endpoint." + }, + { + "name": "Clients", + "description": "Clients endpoint." + }, + { + "name": "Hosting plans", + "description": "Hosting plans endpoint." + }, + { + "name": "Domains", + "description": "Domains endpoint." + }, + { + "name": "DNS", + "description": "DNS endpoint." + }, + { + "name": "Certificates", + "description": "Certificates endpoint." + }, + { + "name": "Emails", + "description": "Emails endpoint." + }, + { + "name": "Databases", + "description": "Databases endpoint." + }, + { + "name": "FTP users", + "description": "FTP users endpoint." + }, + { + "name": "Scheduled tasks", + "description": "Scheduled tasks endpoint." + }, + { + "name": "Directory protections", + "description": "Directory protections endpoint." + } + ], + "paths": { + "/server": { + "get": { + "tags": [ + "Server" + ], + "summary": "Returning server information.", + "description": "Returns various server information.\n\nIf performance is a concern, you can use the query parameters,\nto query only for the information you need.\n", + "parameters": [ + { + "$ref": "#/components/parameters/server-meta" + }, + { + "$ref": "#/components/parameters/server-operating-system" + }, + { + "$ref": "#/components/parameters/server-utilization" + }, + { + "$ref": "#/components/parameters/server-resources" + }, + { + "$ref": "#/components/parameters/server-components" + }, + { + "$ref": "#/components/parameters/server-additional-php-interpreters" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/server" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/ping": { + "get": { + "tags": [ + "Server" + ], + "summary": "Returning pong.", + "description": "Returns \"pong\".\n\nCan be used to check API or server availability.\n", + "responses": { + "200": { + "$ref": "#/components/responses/ping" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/login/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/client-id" + } + ], + "get": { + "tags": [ + "Login" + ], + "summary": "Generates a login URL for a particular user.", + "description": "Generates a login URL that allows to log in to a user account by calling the returned URL.\n\nSecurity notes:
\nThe generated URL has a validity period of 60 minutes.
\nThe login is protected by a brute force protection.\n", + "responses": { + "200": { + "$ref": "#/components/responses/login-url" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/admins": { + "get": { + "tags": [ + "Admins" + ], + "summary": "Listing all admins.", + "description": "Returns a list of all admin accounts on the server.\n\nYou can use the following sort parameter values to sort the results.\n* id (default)\n* username\n", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/order" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/admin-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "Admins" + ], + "summary": "Creating a new admin.", + "description": "Creates a new admin account.\n\nIf the following properties are empty / not set, they are auto-generated:\n* password\n\nIf the following properties are auto-generated, they are part of the response:\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/admin-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/admins/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/admin-id" + } + ], + "get": { + "tags": [ + "Admins" + ], + "summary": "Returning a single client.", + "description": "Returns account details of a single admin determined by its ID.\n", + "responses": { + "200": { + "$ref": "#/components/responses/admin" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "Admins" + ], + "summary": "Updating admin.", + "description": "Updates an admin account.\n\nSpecify only the fields, you want to update.\n\nIf the following properties are part of the request but empty / null, they are auto-generated:\n* password\n\nIf the following properties are auto-generated, they are part of the response:\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/admin-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "Admins" + ], + "summary": "Deleting admin.", + "description": "Deletes an admin account.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/admins/name/{name}": { + "parameters": [ + { + "$ref": "#/components/parameters/admin-name" + } + ], + "get": { + "tags": [ + "Admins" + ], + "summary": "Returning a single admin.", + "description": "Returns information of a single admin account specified by its username.\n", + "responses": { + "200": { + "$ref": "#/components/responses/client" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/clients": { + "get": { + "tags": [ + "Clients" + ], + "summary": "Listing all clients.", + "description": "Returns a list of all client accounts on the server.\n\nYou can use the following sort parameter values to sort the results.\n* id (default)\n* username\n", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/order" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/client-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "Clients" + ], + "summary": "Creating a new client.", + "description": "Creates a new client account.\n\nTo specify its account features, you should use a hosting plan,\notherwise it is created with the default hosting plan.\nUse the hosting plan endpoint to gather the information you need.\n\nIf the following properties are empty / not set, they are auto-generated:\n* password\n\nIf the following properties are auto-generated, they are part of the response:\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/client-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/clients/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/client-id" + } + ], + "get": { + "tags": [ + "Clients" + ], + "summary": "Returning a single client.", + "description": "Returns account details of a single client determined by its ID.\n", + "responses": { + "200": { + "$ref": "#/components/responses/client" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "Clients" + ], + "summary": "Updating client.", + "description": "Updates a client account.\n\nSpecify only the fields, you want to update.\n\nIf the following properties are part of the request but empty / null, they are auto-generated:\n* password\n\nIf the following properties are auto-generated, they are part of the response:\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/client-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "Clients" + ], + "summary": "Deleting client.", + "description": "Deletes a client account and all associated resources.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/clients/{id}/resources": { + "parameters": [ + { + "$ref": "#/components/parameters/client-id" + }, + { + "$ref": "#/components/parameters/client-resources-domains" + }, + { + "$ref": "#/components/parameters/client-resources-certificates" + }, + { + "$ref": "#/components/parameters/client-resources-emails" + }, + { + "$ref": "#/components/parameters/client-resources-databases" + }, + { + "$ref": "#/components/parameters/client-resources-ftp-users" + }, + { + "$ref": "#/components/parameters/client-resources-scheduled-tasks" + }, + { + "$ref": "#/components/parameters/client-resources-directory-protections" + } + ], + "get": { + "tags": [ + "Clients" + ], + "summary": "Listing all resources belonging to this client.", + "description": "Returns an object consisting of all resources belonging to the specified client ID.\n\nProperties are:\n* domain items\n* certificate items\n* email items\n* database items\n* ftp user items\n* scheduled task items\n* directory protection items\n\nIf performance is a concern, you can use the query parameters,\nto query only for the information you need.\n", + "responses": { + "200": { + "$ref": "#/components/responses/client-resources" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/clients/{id}/stats": { + "parameters": [ + { + "$ref": "#/components/parameters/client-id" + } + ], + "get": { + "tags": [ + "Clients" + ], + "summary": "Returning client statistics.", + "description": "Returns the statistics of the client about its assigned resources and\ntheir usage.\n", + "responses": { + "200": { + "$ref": "#/components/responses/client-stats" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/clients/name/{name}": { + "parameters": [ + { + "$ref": "#/components/parameters/client-name" + } + ], + "get": { + "tags": [ + "Clients" + ], + "summary": "Returning a single client.", + "description": "Returns information of a single client account specified by its username.\n", + "responses": { + "200": { + "$ref": "#/components/responses/client" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/hosting-plans": { + "get": { + "tags": [ + "Hosting plans" + ], + "summary": "Listing all hosting plans.", + "description": "Returns a list of all hosting plans on the server.\n\nYou can use the following sort parameter values to sort the results.\n* id (default)\n* name\n", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/order" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/hosting-plan-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "Hosting plans" + ], + "summary": "Creating a hosting plan.", + "description": "Creates a new hosting plan.\n\nYou do not have to specify all available fields. Only the `name` field is required.
\nOther fields are filled with default values, as it would be within the KeyHelp UI.\n", + "requestBody": { + "$ref": "#/components/requestBodies/hosting-plan-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/hosting-plans/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/hosting-plan-id" + } + ], + "get": { + "tags": [ + "Hosting plans" + ], + "summary": "Returning a single hosting plan.", + "description": "Returns the features of a single hosting plan specified by its ID.\n", + "responses": { + "200": { + "$ref": "#/components/responses/hosting-plan" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "Hosting plans" + ], + "summary": "Updating hosting plan.", + "description": "Updates a hosting plan item.\n\nPlease note that a hosting plan only serves as a template for client accounts.
\nClient accounts are not automatically updated when a hosting plan is updated.\n", + "requestBody": { + "$ref": "#/components/requestBodies/hosting-plan-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "Hosting plans" + ], + "summary": "Deleting a hosting plan.", + "description": "Deletes a hosting plan.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/hosting-plans/name/{name}": { + "get": { + "tags": [ + "Hosting plans" + ], + "summary": "Returning a single hosting plan.", + "description": "Returns the features of a single hosting plan specified by its name.\n", + "parameters": [ + { + "$ref": "#/components/parameters/hosting-plan-name" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/hosting-plan" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/domains": { + "get": { + "tags": [ + "Domains" + ], + "summary": "Listing all domains.", + "description": "Returns a list of all domains on this server.\n\nYou can use the following filter parameter values to filter the results.\n* main_domains\n* subdomains\n* system_domains\n\nYou can use the following sort parameter values to sort the results.\n* id (default)\n* domain\n* domain_utf8\n", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/order" + }, + { + "$ref": "#/components/parameters/domains-main-domains" + }, + { + "$ref": "#/components/parameters/domains-subdomains" + }, + { + "$ref": "#/components/parameters/domains-system-domains" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/domain-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "Domains" + ], + "summary": "Creating a domain.", + "description": "Creates a new domain.\n", + "requestBody": { + "$ref": "#/components/requestBodies/domain-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/domains/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/domain-id" + } + ], + "get": { + "tags": [ + "Domains" + ], + "summary": "Returning a single domain.", + "description": "Returns information of a single domain specified by its ID.\n", + "responses": { + "200": { + "$ref": "#/components/responses/domain" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "Domains" + ], + "summary": "Updating a domain.", + "description": "Updates a domain item.\n", + "requestBody": { + "$ref": "#/components/requestBodies/domain-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "Domains" + ], + "summary": "Deleting a domain.", + "description": "Deletes a domain item.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/domains/name/{name}": { + "parameters": [ + { + "$ref": "#/components/parameters/domain-name" + } + ], + "get": { + "tags": [ + "Domains" + ], + "summary": "Returning a single domain.", + "description": "Returns information of a single domain specified by its domain name.\n", + "responses": { + "200": { + "$ref": "#/components/responses/domain" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/dns/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/domain-id" + } + ], + "get": { + "tags": [ + "DNS" + ], + "summary": "Listing the DNS records of a domain.", + "description": "Lists the currently active DNS records for a domain ID.\n\nOnly IDs of main domains are allowed, IDs of subdomains will result in a 404 error.\n\nThe placeholder `` in the `value` field of a record will be replace with the actual DKIM record.\n", + "responses": { + "200": { + "$ref": "#/components/responses/dns" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "DNS" + ], + "summary": "Updating the DNS records of a domain", + "description": "Updates the DNS records of domain ID.\n\nOnly IDs of main domains are allowed, IDs of subdomains will result in a 404 error.\n\nAttention, when inserting custom DNS records, you have to specify all records not just the one you want to update.\n\nIf the property `is_dns_disabled`, either set to `true` or `false`, is part of the request, all specified records of the request will be ignored.\n* If `is_dns_disabled` is set to `true` -> DNS will be disabled\n\n* If `is_dns_disabled` is set to `false` -> DNS will be enabled with the default DNS settings\n\nIf you want to enable DNS and insert custom DNS records with only one request, simply send your DNS records without the `is_dns_disabled` property being part of the request.\n\nThe placeholder `` in the `value` field of a record will be replace with the actual DKIM record.\n", + "requestBody": { + "$ref": "#/components/requestBodies/dns-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "DNS" + ], + "summary": "Deleting the custom DNS settings of the domain.", + "description": "Calling this endpoint removes all custom settings from the domains' DNS settings:\n\n* A previously disabled DNS will be activated.\n* The SOA and all other DNS records are reset to their default values.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/certificates": { + "get": { + "tags": [ + "Certificates" + ], + "summary": "Listing all certificates.", + "description": "Returns a list of all certificates on the server.\n\nYou can use the following sort parameter values to sort the results.\n* id (default)\n* name\n", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/order" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/certificate-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "Certificates" + ], + "summary": "Creating a certificate.", + "description": "Creates a new certificate.\n", + "requestBody": { + "$ref": "#/components/requestBodies/certificate-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/certificates/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/certificate-id" + } + ], + "get": { + "tags": [ + "Certificates" + ], + "summary": "Returning a single certificate.", + "description": "Returns information of a single certificate specified by its ID.\n", + "responses": { + "200": { + "$ref": "#/components/responses/certificate" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "Certificates" + ], + "summary": "Updating a certificate.", + "description": "Updates a certificate.\n\nSpecify only the fields, you want to update.\n", + "requestBody": { + "$ref": "#/components/requestBodies/certificate-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "Certificates" + ], + "summary": "Deleting a certificate.", + "description": "Deletes a certificate.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/certificates/name/{name}": { + "parameters": [ + { + "$ref": "#/components/parameters/hosting-plan-name" + } + ], + "get": { + "tags": [ + "Certificates" + ], + "summary": "Returning a single certificate.", + "description": "Returns information of a single certificate specified by its name.\n", + "responses": { + "200": { + "$ref": "#/components/responses/certificate" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/emails": { + "get": { + "tags": [ + "Emails" + ], + "summary": "Listing all email accounts.", + "description": "Returns a list of all email accounts on the server.\n\nYou can use the following sort parameter values to sort the results.\n* id (default)\n* email\n* email_utf8\n", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/order" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/email-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "Emails" + ], + "summary": "Creating an email account.", + "description": "Creates a new email account.\n\nIf the following properties accepts punycode and UTF-8 domain names:\n* email\n* aliases\n* forwardings\n\nIf the following properties are empty / not set, they are auto-generated:\n* password\n\nIf the following properties are auto-generated, they are part of the response:\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/email-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/emails/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/email-id" + } + ], + "get": { + "tags": [ + "Emails" + ], + "summary": "Returning a single email account.", + "description": "Returns information of a single email account specified by its ID.\n", + "responses": { + "200": { + "$ref": "#/components/responses/email" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "Emails" + ], + "summary": "Updating an email account.", + "description": "Updates an email account.\n\nSpecify only the fields, you want to update.\n\nIf the following properties accepts punycode and UTF-8 domain names:\n* aliases\n* forwardings\n\nIf the following properties are part of the request but empty / null, they are auto-generated:\n* password\n\nIf the following properties are auto-generated, they are part of the response:\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/email-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "Emails" + ], + "summary": "Deleting an email account.", + "description": "Deletes an email account.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/emails/name/{name}": { + "parameters": [ + { + "$ref": "#/components/parameters/email-name" + } + ], + "get": { + "tags": [ + "Emails" + ], + "summary": "Returning a single email account.", + "description": "Returns information of a single email account specified by its email address.\n", + "responses": { + "200": { + "$ref": "#/components/responses/email" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/databases": { + "get": { + "tags": [ + "Databases" + ], + "summary": "Listing all databases.", + "description": "Returns a list of all databases on the server.\n\nYou can use the following sort parameter values to sort the results.\n* id (default)\n* database_name\n* database_username\n", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/order" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/database-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "Databases" + ], + "summary": "Creating a database and database user.", + "description": "Creates a new database.\n\nIf the following properties are empty / not set, they are auto-generated:\n* database_name and database_username\n* password\n\nIf the following properties are auto-generated, they are part of the response:\n* database_name and database_username\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/database-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/databases/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/database-id" + } + ], + "get": { + "tags": [ + "Databases" + ], + "summary": "Returning a single database and its database user.", + "description": "Returns information of a database and its database user specified by its ID.\n", + "responses": { + "200": { + "$ref": "#/components/responses/database" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "Databases" + ], + "summary": "Updating a database and its database user.", + "description": "Updates a database and its database user.\n\nSpecify only the fields, you want to update.\n\nIf the following properties are part of the request but empty / null, they are auto-generated:\n* password\n\nIf the following properties are auto-generated, they are part of the response:\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/database-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "Databases" + ], + "summary": "Deleting a database and its database user.", + "description": "Deletes a database and its database user.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/databases/name/{name}": { + "parameters": [ + { + "$ref": "#/components/parameters/database-name" + } + ], + "get": { + "tags": [ + "Databases" + ], + "summary": "Returning a single database and its database user.", + "description": "Returns information of a database and its database user specified by its database name.\n", + "responses": { + "200": { + "$ref": "#/components/responses/database" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/ftp-users": { + "get": { + "tags": [ + "FTP users" + ], + "summary": "Listing all FTP users.", + "description": "Returns a list of all FTP users on the server.\n\nYou can use the following sort parameter values to sort the results.\n* id (default)\n* username\n", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/order" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ftp-user-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "FTP users" + ], + "summary": "Creating a FTP user.", + "description": "Creates a new FTP user.\n\n**Please note**, to create a new FTP user, it is required that the corresponding (system) user account is fully set up.\nOtherwise you will receive the **400 Bad Request** error:
\n**Invalid property data for: 'uid', 'gid'**\n\nIf the following properties are empty / not set, they are auto-generated:\n* username\n* password\n* home_directory (defaults to /www/)\n\nIf the following properties are auto-generated, they are part of the response:\n* username\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/ftp-user-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/ftp-users/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/ftp-user-id" + } + ], + "get": { + "tags": [ + "FTP users" + ], + "summary": "Returning a single FTP user.", + "description": "Returns information of a single FTP user specified by its ID.\n", + "responses": { + "200": { + "$ref": "#/components/responses/ftp-user" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "FTP users" + ], + "summary": "Updating a FTP account.", + "description": "Updates a FTP user.\n\nSpecify only the fields, you want to update.\n\nIf the following properties are part of the request but empty / null, they are auto-generated:\n* password\n\nIf the following properties are auto-generated, they are part of the response:\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/ftp-user-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "FTP users" + ], + "summary": "Deleting a FTP user.", + "description": "Deletes a FTP user.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/ftp-users/name/{name}": { + "parameters": [ + { + "$ref": "#/components/parameters/ftp-user-name" + } + ], + "get": { + "tags": [ + "FTP users" + ], + "summary": "Returning a single FTP user.", + "description": "Returns information of a FTP user specified by its username.\n", + "responses": { + "200": { + "$ref": "#/components/responses/ftp-user" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/scheduled-tasks": { + "get": { + "tags": [ + "Scheduled tasks" + ], + "summary": "Listing all scheduled tasks.", + "description": "Returns a list of all scheduled tasks on the server.\n\nYou can use the following sort parameter values to sort the results.\n* id (default)\n* type\n", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/order" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/scheduled-task-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "Scheduled tasks" + ], + "summary": "Creating a scheduled tasks.", + "description": "Creates a new scheduled tasks.\n", + "requestBody": { + "$ref": "#/components/requestBodies/scheduled-task-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/scheduled-tasks/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/scheduled-task-id" + } + ], + "get": { + "tags": [ + "Scheduled tasks" + ], + "summary": "Returning a single scheduled task.", + "description": "Returns information of a scheduled task specified by its ID.\n", + "responses": { + "200": { + "$ref": "#/components/responses/scheduled-task" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "Scheduled tasks" + ], + "summary": "Updating a scheduled task.", + "description": "Updates a scheduled tasks.\n\nSpecify only the fields, you want to update. Read the exception below!\n\nATTENTION! When updating the schedule settings, all missing schedule fields in the request will default to `*`.\n\nAs an example, imagine you have a scheduled task with the following settings:
\n `minutes = 10`, `hour = 4`, `day_of_week = *`, `month = *`, `day_of_month = 1`\n\nIf you now only want to update the `minute` value, you have to include at least `hour` and `day_of_month` values also, to keep their settings.\n\nIf you don't do it, and only set the `minutes`, all other values will default to `*`. You would end up with the following:
\n `minutes` = 10, `hour = *`, `day_of_week = *`, `month = *`, `day_of_month = *`\n", + "requestBody": { + "$ref": "#/components/requestBodies/scheduled-task-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "Scheduled tasks" + ], + "summary": "Deleting a scheduled tasks.", + "description": "Deletes a scheduled tasks.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + }, + "/directory-protections": { + "get": { + "tags": [ + "Directory protections" + ], + "summary": "Listing all directory protections.", + "description": "Returns a list of all directory protections on the server.\n\nYou can use the following sort parameter values to sort the results.\n* id (default)\n* auth_name\n* username\n", + "parameters": [ + { + "$ref": "#/components/parameters/sort" + }, + { + "$ref": "#/components/parameters/order" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/directory-protection-array" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + }, + "post": { + "tags": [ + "Directory protections" + ], + "summary": "Creating a directory protection.", + "description": "Creates a new directory protection.\n\nIf the following properties are empty / not set, they are auto-generated:\n* password\n* path (defaults to /, which corresponds to the user's /www/ directory)\n\nIf the following properties are auto-generated, they are part of the response:\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/directory-protection-post" + }, + "responses": { + "201": { + "$ref": "#/components/responses/201-created" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + } + } + } + }, + "/directory-protections/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/directory-protection-id" + } + ], + "get": { + "tags": [ + "Directory protections" + ], + "summary": "Returning a single directory protection.", + "description": "Returns information of a single directory protection specified by its ID.\n", + "responses": { + "200": { + "$ref": "#/components/responses/directory-protection" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "put": { + "tags": [ + "Directory protections" + ], + "summary": "Updating a directory protection.", + "description": "Updates a directory protection.\n\nSpecify only the fields, you want to update.\n\nIf the following properties are part of the request but empty / null, they are auto-generated:\n* password\n", + "requestBody": { + "$ref": "#/components/requestBodies/directory-protection-put" + }, + "responses": { + "200": { + "$ref": "#/components/responses/200-ok-updated" + }, + "400": { + "$ref": "#/components/responses/400-bad-request" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + }, + "delete": { + "tags": [ + "Directory protections" + ], + "summary": "Deleting a directory protection.", + "description": "Deletes a directory protection.\n", + "responses": { + "204": { + "$ref": "#/components/responses/204-no-content" + }, + "401": { + "$ref": "#/components/responses/401-unauthorized" + }, + "404": { + "$ref": "#/components/responses/404-not-found" + } + } + } + } + }, + "components": { + "securitySchemes": { + "ApiKeyAuth": { + "type": "apiKey", + "in": "header", + "name": "X-API-Key" + } + }, + "parameters": { + "sort": { + "name": "sort", + "in": "query", + "description": "The property you want to sort by.", + "required": false, + "schema": { + "type": "string" + } + }, + "order": { + "name": "order", + "in": "query", + "description": "The direction you want to sort.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + } + }, + "server-meta": { + "name": "meta", + "in": "query", + "description": "Show the **meta** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "server-operating-system": { + "name": "operating_system", + "in": "query", + "description": "Show the **operating_system** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "server-utilization": { + "name": "utilization", + "in": "query", + "description": "Show the **utilization** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "server-resources": { + "name": "resources", + "in": "query", + "description": "Show the **resources** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "server-components": { + "name": "components", + "in": "query", + "description": "Show the **components** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "server-additional-php-interpreters": { + "name": "additional_php_interpreters", + "in": "query", + "description": "Show the **additional_php_interpreters** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "admin-id": { + "name": "id", + "in": "path", + "description": "User ID.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "admin-name": { + "name": "name", + "in": "path", + "description": "Username.", + "required": true, + "schema": { + "type": "string" + } + }, + "client-id": { + "name": "id", + "in": "path", + "description": "User ID.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "client-name": { + "name": "name", + "in": "path", + "description": "Username.", + "required": true, + "schema": { + "type": "string" + } + }, + "client-resources-domains": { + "name": "domains", + "in": "query", + "description": "Show the **domains** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "client-resources-certificates": { + "name": "certificates", + "in": "query", + "description": "Show the **certificates** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "client-resources-emails": { + "name": "emails", + "in": "query", + "description": "Show the **emails** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "client-resources-databases": { + "name": "databases", + "in": "query", + "description": "Show the **databases** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "client-resources-ftp-users": { + "name": "ftp_users", + "in": "query", + "description": "Show the **ftp_users** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "client-resources-scheduled-tasks": { + "name": "scheduled_tasks", + "in": "query", + "description": "Show the **scheduled_tasks** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "client-resources-directory-protections": { + "name": "directory_protections", + "in": "query", + "description": "Show the **directory_protections** component.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "hosting-plan-id": { + "name": "id", + "in": "path", + "description": "Numeric ID of the hosting plan.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "hosting-plan-name": { + "name": "name", + "in": "path", + "description": "Hosting plan name.", + "required": true, + "schema": { + "type": "string" + } + }, + "domains-main-domains": { + "name": "main_domains", + "in": "query", + "description": "Show main domains.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "domains-subdomains": { + "name": "subdomains", + "in": "query", + "description": "Show subdomains.", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "domains-system-domains": { + "name": "system-domains", + "in": "query", + "description": "Filters the result for system domains. It will not return any data, when main_domains and subdomains are set to false.\n", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + "domain-id": { + "name": "id", + "in": "path", + "description": "Domain ID.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "domain-name": { + "name": "name", + "in": "path", + "description": "Domain in either UTF-8 or punycode variant.", + "required": true, + "schema": { + "type": "string" + } + }, + "certificate-id": { + "name": "id", + "in": "path", + "description": "Certificate ID.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "certificate-name": { + "name": "name", + "in": "path", + "description": "Certificate name.", + "required": true, + "schema": { + "type": "string" + } + }, + "email-id": { + "name": "id", + "in": "path", + "description": "Email account ID.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "email-name": { + "name": "name", + "in": "path", + "description": "Email account name (= email address).", + "required": true, + "schema": { + "type": "string" + } + }, + "database-id": { + "name": "id", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "database-name": { + "name": "name", + "in": "path", + "description": "Database name.", + "required": true, + "schema": { + "type": "string" + } + }, + "ftp-user-id": { + "name": "id", + "in": "path", + "description": "Numeric ID of the FTP user to get.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "ftp-user-name": { + "name": "name", + "in": "path", + "description": "FTP user username.", + "required": true, + "schema": { + "type": "string" + } + }, + "scheduled-task-id": { + "name": "id", + "in": "path", + "description": "Numeric ID of the scheduled task to get.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + }, + "directory-protection-id": { + "name": "id", + "in": "path", + "description": "Numeric ID of the directory protection to get.", + "required": true, + "schema": { + "type": "integer", + "minimum": 1 + } + } + }, + "requestBodies": { + "admin-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/admin" + } + } + } + }, + "admin-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/admin" + }, + "example": { + "language": "en", + "email": "new@example.com", + "password": "qwertz" + } + } + } + }, + "client-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/client" + } + } + } + }, + "client-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/client" + }, + "example": { + "language": "en", + "email": "new@example.com", + "password": "qwertz", + "id_hosting_plan": 5, + "contact_data": { + "company": "NewCompanyName Inc." + } + } + } + } + }, + "hosting-plan-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/hosting-plan" + } + } + } + }, + "hosting-plan-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/hosting-plan" + }, + "example": { + "name": "Hosting Premium", + "resources": { + "disk_space": "100G", + "domains": 100, + "databases": 100 + }, + "permissions": { + "ssh": true, + "ssh_jail": true + } + } + } + } + }, + "domain-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/domain" + } + } + } + }, + "domain-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/domain" + }, + "example": { + "target": "https://www.keyhelp.de", + "security": { + "lets_encrypt": false, + "force_https": false + } + } + } + } + }, + "dns-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/dns" + }, + "example": { + "records": { + "soa": { + "ttl": 86400, + "primary_ns": "ns.example.com.", + "rname": "root.example.com.", + "refresh": 14400, + "retry": 1800, + "expire": 60480, + "minimum": 3600 + }, + "other": [ + { + "host": "@", + "ttl": 86400, + "type": "A", + "value": "192.168.178.1" + }, + { + "host": "*", + "ttl": 86400, + "type": "A", + "value": "192.168.178.1" + }, + { + "host": "@", + "ttl": 86400, + "type": "NS", + "value": "ns.example.com." + }, + { + "host": "default._domainkey", + "ttl": 86400, + "type": "TXT", + "value": "" + } + ] + } + } + } + } + }, + "certificate-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/certificate" + } + } + } + }, + "certificate-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/certificate" + }, + "example": { + "id_user": null, + "name": "Certificate for example.com until 2022", + "certificate": "-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----", + "ca_certificate": "-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----" + } + } + } + }, + "email-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/email" + } + } + } + }, + "email-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/email" + }, + "example": { + "aliases": [ + "john.doe@example.com", + "jane.doe@example.com" + ] + } + } + } + }, + "database-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/database" + } + } + } + }, + "database-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/database" + }, + "example": { + "password": "qwertz", + "description": "Description for this database.", + "remote_hosts": null + } + } + } + }, + "ftp-user-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ftp-user" + } + } + } + }, + "ftp-user-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ftp-user" + }, + "example": { + "description": "Description for this FTP user.", + "home_directory": "/www/website/images/new", + "password": "qwertz" + } + } + } + }, + "scheduled-task-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/scheduled-task" + } + } + } + }, + "scheduled-task-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/scheduled-task" + }, + "example": { + "command": "bash /path/to/script.sh --debug", + "description": "Run my script in debug mode", + "notify": "always", + "email": "info@keyhelp.de", + "schedule": { + "minute": "*/2", + "hour": "*" + } + } + } + } + }, + "directory-protection-post": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/directory-protection" + } + } + } + }, + "directory-protection-put": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/directory-protection" + }, + "example": { + "username": "john_doe", + "password": "qwertz" + } + } + } + } + }, + "responses": { + "server": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/server" + } + } + } + }, + "ping": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ping" + } + } + } + }, + "login-url": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/login-url" + } + } + } + }, + "admin": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/admin" + } + } + } + }, + "admin-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/admin" + } + } + } + } + }, + "client": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/client" + } + } + } + }, + "client-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/client" + } + } + } + } + }, + "client-resources": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "domains": { + "type": "array", + "items": { + "$ref": "#/components/schemas/domain" + } + }, + "certificates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/certificate" + } + }, + "emails": { + "type": "array", + "items": { + "$ref": "#/components/schemas/email" + } + }, + "databases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/database" + } + }, + "ftp_users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ftp-user" + } + }, + "scheduled_tasks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/scheduled-task" + } + }, + "directory_protections": { + "type": "array", + "items": { + "$ref": "#/components/schemas/directory-protection" + } + } + } + } + } + } + }, + "client-stats": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/client-stats" + } + } + } + }, + "hosting-plan": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/hosting-plan" + } + } + } + }, + "hosting-plan-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/hosting-plan" + } + } + } + } + }, + "domain": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/domain" + } + } + } + }, + "domain-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/domain" + } + } + } + } + }, + "dns": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/dns" + } + } + } + }, + "certificate": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/certificate" + } + } + } + }, + "certificate-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/certificate" + } + } + } + } + }, + "email": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/email" + } + } + } + }, + "email-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/email" + } + } + } + } + }, + "database": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/database" + } + } + } + }, + "database-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/database" + } + } + } + } + }, + "ftp-user": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ftp-user" + } + } + } + }, + "ftp-user-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ftp-user" + } + } + } + } + }, + "scheduled-task": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/scheduled-task" + } + } + } + }, + "scheduled-task-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/scheduled-task" + } + } + } + } + }, + "directory-protection": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/directory-protection" + } + } + } + }, + "directory-protection-array": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/directory-protection" + } + } + } + } + }, + "200-ok": { + "description": "OK." + }, + "200-ok-updated": { + "description": "OK.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/created" + }, + "example": { + "id": 8 + } + } + } + }, + "201-created": { + "description": "Created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/created" + }, + "example": { + "id": 8 + } + } + } + }, + "204-no-content": { + "description": "No content." + }, + "400-bad-request": { + "description": "Bad request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + }, + "example": { + "code": "400 Bad Request", + "message": "Invalid request body." + } + } + } + }, + "401-unauthorized": { + "description": "Unauthorized.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + }, + "example": { + "code": "401 Unauthorized", + "message": "API key is missing or invalid." + } + } + } + }, + "404-not-found": { + "description": "The specified resource was not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + }, + "example": { + "code": "404 Not Found", + "message": "The specified resource was not found." + } + } + } + } + }, + "schemas": { + "server": { + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "hostname": { + "type": "string", + "description": "The hostname.", + "example": "keyhelp.example.com" + }, + "ip_addresses": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The IP addresses associated to the server.", + "example": [ + "192.168.178.1", + "192.168.178.2" + ] + }, + "server_time": { + "type": "string", + "format": "date-time", + "description": "The time and timezone as ISO-8601 string.", + "example": "2019-08-15T11:29:13+02:00" + }, + "uptime": { + "type": "object", + "description": "The uptime of the server.", + "properties": { + "days": { + "type": "integer", + "example": 80 + }, + "hours": { + "type": "integer", + "example": 11 + }, + "minutes": { + "type": "integer", + "example": 37 + }, + "seconds": { + "type": "integer", + "example": 29 + } + } + }, + "panel_version": { + "type": "string", + "description": "The file version of KeyHelp.", + "example": "19.3.1" + }, + "panel_build": { + "type": "string", + "description": "The build version of KeyHelp.", + "example": "1923" + }, + "api_version": { + "type": "string", + "description": "The supportet API version,", + "example": "1.0.15" + }, + "api_docs": { + "type": "string", + "description": "The URL where you view the appropriate API documentation.", + "example": "https://app.swaggerhub.com/apis-docs/keyhelp/api/1.0.15" + } + } + }, + "operating_system": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The OS version in long form.", + "example": "Debian 10.0 (64-bit)" + }, + "distribution": { + "type": "string", + "description": "The OS distribution name.", + "example": "Debian" + }, + "version": { + "type": "string", + "description": "The OS version string.", + "example": "10" + }, + "architecture": { + "type": "string", + "description": "The OS architecture.", + "example": "64-bit" + }, + "end_of_life": { + "type": "boolean", + "description": "Indicates whether the OS has reached End-Of-Life status.", + "example": false + }, + "updates": { + "type": "object", + "properties": { + "update_count": { + "type": "integer", + "description": "Indicates how many updates are available.", + "example": 12 + }, + "security_update_count": { + "type": "integer", + "description": "Indicates how many updates are security updates.", + "example": 8 + }, + "reboot_required": { + "type": "integer", + "description": "Indicates if a reboot is required in order to complete a previous update.", + "example": false + } + } + } + } + }, + "utilization": { + "type": "object", + "properties": { + "process_count": { + "type": "integer", + "description": "The number of processes the server has currently running.", + "example": 171 + }, + "emails_in_queue": { + "type": "integer", + "description": "The number of emails in the email queue.", + "example": 33 + }, + "load": { + "type": "object", + "properties": { + "minute_1": { + "type": "number", + "description": "The load average of the last 1 minute.", + "example": 0.4 + }, + "minute_5": { + "type": "number", + "description": "The load average of the last 5 minutes.", + "example": 0.26 + }, + "minute_15": { + "type": "number", + "description": "The load average of the last 15 minutes.", + "example": 0.15 + }, + "cpu_count": { + "type": "integer", + "description": "The number of CPU cores.", + "example": 2 + }, + "percent": { + "type": "number", + "description": "The load of the last 1 minute with taken the number of CPU cores in account.", + "example": 20 + }, + "level": { + "type": "string", + "description": "A string expression of the \"percent\" value above.", + "example": "low" + } + } + }, + "disk_space": { + "type": "object", + "description": "Disk space usage of the primary file system.", + "properties": { + "free": { + "type": "integer", + "description": "The amount of free disk space in byte.", + "example": 100631449600 + }, + "used": { + "type": "integer", + "description": "The amount of used disk space in byte.", + "example": 21352624128 + }, + "total": { + "type": "integer", + "description": "The total amount of disk space in byte.", + "example": 74143424512 + }, + "percent": { + "type": "number", + "description": "The disk space usage in percent.", + "example": 21.22 + } + } + }, + "inodes": { + "type": "object", + "description": "Inode usage of the primary file system.", + "properties": { + "free": { + "type": "integer", + "description": "The amount of free inodes.", + "example": 6082335 + }, + "used": { + "type": "integer", + "description": "The amount of used inodes.", + "example": 168161 + }, + "total": { + "type": "integer", + "description": "The total amount of inodes.", + "example": 6250496 + }, + "percent": { + "type": "number", + "description": "The inodes usage in percent.", + "example": 2.69 + } + } + }, + "memory": { + "type": "object", + "properties": { + "free": { + "type": "integer", + "description": "The amount of free memory in byte.", + "example": 8371269632 + }, + "used": { + "type": "integer", + "description": "The amount of used memory in byte.", + "example": 1350742016 + }, + "total": { + "type": "integer", + "description": "The total amount of memory in byte.", + "example": 7020527616 + }, + "percent": { + "type": "number", + "description": "The memory usage in percent.", + "example": 16.14 + } + } + }, + "swap": { + "type": "object", + "properties": { + "free": { + "type": "integer", + "description": "The amount of free swap space in byte.", + "example": 4000313344 + }, + "used": { + "type": "integer", + "description": "The amount of used swap space in byte.", + "example": 39919616 + }, + "total": { + "type": "integer", + "description": "The total amount of swap space in byte.", + "example": 3960393728 + }, + "percent": { + "type": "number", + "description": "The swap space usage in percent.", + "example": 1 + } + } + } + } + }, + "resources": { + "type": "object", + "properties": { + "admin_accounts": { + "type": "integer", + "description": "The number of admin accounts.", + "example": 1 + }, + "client_accounts": { + "type": "integer", + "description": "The number of client accounts.", + "example": 94 + }, + "domains": { + "type": "integer", + "description": "The number of main domains (including system domains).", + "example": 375 + }, + "subdomains": { + "type": "integer", + "description": "The number subdomains..", + "example": 242 + }, + "email_accounts": { + "type": "integer", + "description": "The number of email accounts.", + "example": 505 + }, + "email_addresses": { + "type": "integer", + "description": "The number of email addresses.", + "example": 956 + }, + "databases": { + "type": "integer", + "description": "The number of databases.", + "example": 124 + }, + "ftp_users": { + "type": "integer", + "description": "The number of ftp users.", + "example": 121 + }, + "scheduled_tasks": { + "type": "integer", + "description": "The number of scheduled tasks (cron jobs).", + "example": 4 + }, + "consumed_disk_space": { + "type": "integer", + "description": "The amount of consumed disk space by client accounts in byte.", + "example": 265783313694 + }, + "traffic": { + "type": "integer", + "description": "The amount of traffic caused by client accounts in the current month in byte .", + "example": 153008209920 + } + } + }, + "components": { + "type": "object", + "properties": { + "kernel": { + "type": "string", + "description": "The version of the Kernel.", + "example": "4.15.0-109-generic" + }, + "apache": { + "type": "string", + "description": "The version of Apache.", + "example": "2.4.29" + }, + "php": { + "type": "string", + "description": "The version of PHP.", + "example": "7.2.24" + }, + "mariadb": { + "type": "string", + "description": "The version of MariaDB (only available if MariaDB is installed).", + "example": "10.1.44" + }, + "mysql": { + "type": "string", + "description": "The version of MySQL (only available if MySQL is installed).", + "example": "5.7.31" + }, + "proftpd": { + "type": "string", + "description": "The version of ProFTPD", + "example": "1.3.5e" + }, + "dovecot": { + "type": "string", + "description": "The version of Dovecot.", + "example": "2.2.33.2" + }, + "postfix": { + "type": "string", + "description": "The version of Postfix.", + "example": "3.3.0" + } + } + }, + "additional_php_interpreters": { + "type": "array", + "items": { + "type": "object", + "properties": { + "version": { + "type": "string", + "example": "7.4" + }, + "version_full": { + "type": "string", + "example": "7.4.8" + } + } + } + } + } + }, + "ping": { + "type": "object", + "properties": { + "response": { + "type": "string", + "example": "pong" + } + } + }, + "login-url": { + "description": "The URL to log in to an account.\n", + "type": "object", + "properties": { + "url": { + "type": "string", + "example": "https://keyhelp.example.com/index.php?sso_request=...&sso_token=..." + } + } + }, + "admin": { + "description": "Representation of an admin account.\n", + "type": "object", + "properties": { + "id": { + "type": "integer", + "readOnly": true, + "description": "The ID of this account.", + "example": 8 + }, + "username": { + "type": "string", + "description": "The username.", + "example": "keyadmin" + }, + "language": { + "type": "string", + "minLength": 2, + "maxLength": 5, + "description": "The language, either a two character code e.g. \"de\" or the more specific e.g. \"de_DE\"", + "example": "de" + }, + "email": { + "type": "string", + "format": "email", + "description": "The email address of the account.", + "example": "me@example.com" + }, + "is_main_admin": { + "type": "boolean", + "description": "The is main admin status of the client.", + "example": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The creation date of the user as ISO-8601 string.", + "example": "2019-08-15T11:29:13+02:00" + }, + "password": { + "type": "string", + "format": "password", + "writeOnly": true, + "description": "The password.", + "example": "qwertz" + }, + "password_hash": { + "type": "string", + "writeOnly": true, + "description": "A bcrypt password hash. Only available if turned on in settings.", + "example": "$2y$10$fF3npQ.jS/KL8Nr6zecPke8IUsuB1oGXxY7w4aa...\"" + } + } + }, + "client": { + "description": "Representation of a client account.\n", + "type": "object", + "properties": { + "id": { + "type": "integer", + "readOnly": true, + "description": "The ID of this account.", + "example": 8 + }, + "status": { + "type": "integer", + "readOnly": true, + "example": 1 + }, + "username": { + "type": "string", + "description": "The username.", + "example": "alex" + }, + "language": { + "type": "string", + "minLength": 2, + "maxLength": 5, + "description": "The language, either a two character code e.g. \"de\" or the more specific e.g. \"de_DE\"", + "example": "de" + }, + "email": { + "type": "string", + "format": "email", + "description": "The email address of the account.", + "example": "me@example.com" + }, + "password": { + "type": "string", + "format": "password", + "writeOnly": true, + "description": "The password.", + "example": "qwertz" + }, + "notes": { + "type": "string", + "example": "Any comments about this client account." + }, + "id_hosting_plan": { + "type": "integer", + "writeOnly": true, + "description": "The ID of the hosting plan when creating or updating a client.", + "example": 5 + }, + "created_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The creation date of the user as ISO-8601 string.", + "example": "2019-08-15T11:29:13+02:00" + }, + "document_root": { + "type": "string", + "readOnly": true, + "description": "The absolute path to the clients document root.", + "example": "/home/users/alex/" + }, + "is_suspended": { + "type": "boolean", + "description": "The supsended status of the client.", + "example": false + }, + "suspend_on": { + "type": "string", + "format": "date-time", + "description": "The date, when a user gets suspended.
The passed in value must be parse-able by the PHP function strtotime(). Best choice are ISO formats like \"Y-m-d H:i:s\", but \"+30 days\" are also possible.", + "example": null + }, + "delete_on": { + "type": "string", + "format": "date-time", + "description": "The date, when a user gets deleted.
The passed in value must be parse-able by the PHP function strtotime(). Best choice are ISO formats like \"Y-m-d H:i:s\", but \"+30 days\" are also possible.", + "example": null + }, + "send_login_credentials": { + "type": "boolean", + "writeOnly": true, + "default": true, + "description": "Determine, if new login credentials should be sent to the clients email address. Only takes affect when a new password was set / generated.", + "example": true + }, + "create_system_domain": { + "type": "boolean", + "writeOnly": true, + "default": true, + "description": "Determine, if a system domain should be created. Only takes affect on creation of a new user.", + "example": true + }, + "skeleton": { + "type": "string", + "writeOnly": true, + "description": "The name of the skeleton directory which should get copied into the users www/ directory.\nThis property is marked as deprecated and should no longer being used.\n", + "example": "wordpress" + }, + "contact_data": { + "type": "object", + "properties": { + "first_name": { + "type": "string", + "description": "The first name.", + "example": "Alex" + }, + "last_name": { + "type": "string", + "description": "The last name.", + "example": "Mahr" + }, + "company": { + "type": "string", + "description": "The company name.", + "example": "Keyweb AG" + }, + "telephone": { + "type": "string", + "description": "The telephone number.", + "example": "555-Nase" + }, + "address": { + "type": "string", + "description": "The address.", + "example": "Neuwerkstraße 45/46" + }, + "city": { + "type": "string", + "description": "The city.", + "example": "Erfurt" + }, + "zip": { + "type": "string", + "description": "The zip code.", + "example": "99084" + }, + "state": { + "type": "string", + "description": "The state.", + "example": "Thuringia" + }, + "country": { + "type": "string", + "minLength": 2, + "maxLength": 2, + "description": "The alpha-2 country code (ISO-3166).", + "example": "DE" + }, + "client_id": { + "type": "string", + "description": "The client / customer number.", + "example": "ID-12345" + } + } + }, + "password_hash": { + "type": "string", + "description": "A bcrypt password hash. Only available if turned on in settings.", + "example": "$2y$10$fF3npQ.jS/KL8Nr6zecPke8IUsuB1oGXxY7w4aa...\"" + }, + "password_hash_os": { + "type": "string", + "description": "A SHA-512 password hash. Only available if turned on in settings.", + "example": "$6$rounds=100000$tn0.24Y/EWkV8gjA$VkYdo/1X23dW...\"" + } + } + }, + "client-stats": { + "description": "The value \"-1\" for the \"max\" property means \"unlimited\".", + "type": "object", + "properties": { + "disk_space": { + "type": "object", + "properties": { + "value": { + "type": "integer", + "example": 1320702444 + }, + "max": { + "type": "integer", + "example": 2147483648 + } + } + }, + "traffic": { + "type": "object", + "properties": { + "value": { + "type": "integer", + "example": 15966540923 + }, + "max": { + "type": "integer", + "example": -1 + } + } + }, + "domains": { + "type": "object", + "properties": { + "value": { + "type": "integer", + "example": 4 + }, + "max": { + "type": "integer", + "example": 10 + } + } + }, + "subdomains": { + "type": "object", + "properties": { + "value": { + "type": "integer", + "example": 12 + }, + "max": { + "type": "integer", + "example": 20 + } + } + }, + "email_accounts": { + "type": "object", + "properties": { + "value": { + "type": "integer", + "example": 8 + }, + "max": { + "type": "integer", + "example": 20 + } + } + }, + "email_addresses": { + "type": "object", + "properties": { + "value": { + "type": "integer", + "example": 37 + }, + "max": { + "type": "integer", + "example": -1 + } + } + }, + "databases": { + "type": "object", + "properties": { + "value": { + "type": "integer", + "example": 3 + }, + "max": { + "type": "integer", + "example": 5 + } + } + }, + "ftp_users": { + "type": "object", + "properties": { + "value": { + "type": "integer", + "example": 1 + }, + "max": { + "type": "integer", + "example": 10 + } + } + }, + "scheduled_tasks": { + "type": "object", + "properties": { + "value": { + "type": "integer", + "example": 1 + }, + "max": { + "type": "integer", + "example": 5 + } + } + } + } + }, + "hosting-plan": { + "description": "Representation of a hosting plan.\n\nThe value \"-1\" for resource properties means \"unlimited\".\n", + "type": "object", + "properties": { + "id": { + "type": "integer", + "readOnly": true, + "example": 8 + }, + "name": { + "type": "string", + "example": "Hosting Plus" + }, + "resources": { + "type": "object", + "properties": { + "disk_space": { + "type": "integer", + "example": 1073741824 + }, + "traffic": { + "type": "integer", + "example": -1 + }, + "domains": { + "type": "integer", + "example": 10 + }, + "subdomains": { + "type": "integer", + "example": 50 + }, + "email_accounts": { + "type": "integer", + "example": 20 + }, + "email_addresses": { + "type": "integer", + "example": -1 + }, + "databases": { + "type": "integer", + "example": 10 + }, + "ftp_users": { + "type": "integer", + "example": -1 + }, + "scheduled_tasks": { + "type": "integer", + "example": 4 + } + } + }, + "permissions": { + "type": "object", + "properties": { + "ftp": { + "type": "boolean", + "example": true + }, + "php": { + "type": "boolean", + "example": true + }, + "perl": { + "type": "boolean", + "example": false + }, + "ssh": { + "type": "boolean", + "example": false + }, + "backup": { + "type": "boolean", + "example": true + }, + "panel_access": { + "type": "boolean", + "example": true + }, + "domain_security": { + "type": "boolean", + "example": true + }, + "certificate_management": { + "type": "boolean", + "example": true + }, + "file_manager": { + "type": "boolean", + "example": true + }, + "dns_editor": { + "type": "boolean", + "example": true + }, + "database_remote_access": { + "type": "boolean", + "example": true + }, + "change_personal_data": { + "type": "boolean", + "example": true + }, + "applications": { + "type": "boolean", + "example": true + }, + "ssh_jail": { + "type": "boolean", + "example": false + } + } + }, + "php": { + "type": "object", + "properties": { + "memory_limit": { + "type": "string", + "example": "256M" + }, + "max_execution_time": { + "type": "integer", + "example": 60 + }, + "post_max_size": { + "type": "string", + "example": "72M" + }, + "upload_max_filesize": { + "type": "string", + "example": "64M" + }, + "open_basedir": { + "type": "string", + "example": "##DOCROOT##/www:##DOCROOT##/files:##DOCROOT##/tmp" + }, + "disable_functions": { + "type": "string", + "example": "exec, system, shell_exec, passthru" + }, + "additional_settings": { + "type": "string", + "example": "date.timezone = \"US/Central\"" + } + } + }, + "php_fpm": { + "type": "object", + "properties": { + "pm": { + "type": "string", + "enum": [ + "static", + "ondemand", + "dynamic" + ], + "example": "ondemand" + }, + "max_children": { + "type": "integer", + "example": 3 + }, + "max_requests": { + "type": "integer", + "example": 0 + }, + "min_spare_servers": { + "type": "integer", + "example": null + }, + "max_spare_servers": { + "type": "integer", + "example": null + }, + "status": { + "type": "boolean", + "example": true + }, + "status_ip_restriction": { + "type": "string", + "example": "192.168.178.1" + } + } + } + } + }, + "domain": { + "description": "Representation of a domain.\n", + "type": "object", + "properties": { + "id": { + "type": "integer", + "readOnly": true, + "description": "The ID of the domain.", + "example": 8 + }, + "id_user": { + "type": "integer", + "description": "The user ID of the domain. This field is required, when adding a new domain.", + "example": 4 + }, + "id_parent_domain": { + "type": "integer", + "description": "The ID of the parent domain, or 0 when it is a main domain.
Needs to be specified when you want to create subdomains.", + "example": 0 + }, + "status": { + "type": "integer", + "readOnly": true, + "example": 1 + }, + "domain": { + "type": "string", + "description": "The ASCII representation of the domain.", + "example": "example.com" + }, + "domain_utf8": { + "type": "string", + "readOnly": true, + "description": "The UTF-8 representation of the domain.", + "example": "example.com" + }, + "created_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "example": "2019-08-15T11:29:13+02:00" + }, + "php_version": { + "type": "string", + "description": "If empty, the domain uses the system php version. If set, the domain uses one of the installed additional php interpreters.", + "example": "" + }, + "is_disabled": { + "type": "boolean", + "example": false + }, + "delete_on": { + "type": "string", + "format": "date-time", + "example": "2019-08-15T11:29:13+02:00" + }, + "dkim_txt_record": { + "type": "string", + "readOnly": true, + "example": "default._domainkey IN TXT ( \"v=DKIM1; k=rsa; s=email; \" \"...DKIM KEY...\" )" + }, + "is_custom_dns": { + "type": "boolean", + "readOnly": true, + "example": false + }, + "is_dns_disabled": { + "type": "boolean", + "example": false + }, + "is_subdomain": { + "type": "boolean", + "readOnly": true, + "example": false + }, + "is_system_domain": { + "type": "boolean", + "readOnly": true, + "example": false + }, + "is_email_domain": { + "type": "boolean", + "example": false + }, + "create_www_subdomain": { + "type": "boolean", + "writeOnly": true, + "default": true, + "description": "Only takes affect when creating a new user.", + "example": true + }, + "skeleton": { + "type": "string", + "writeOnly": true, + "description": "The name of the skeleton directory which should get copied into the users www/ directory.\nOnly works if the directory does not already exists.\nThis property is marked as deprecated and should no longer being used.\n", + "example": "wordpress" + }, + "target": { + "type": "object", + "properties": { + "target": { + "type": "string", + "description": "Either a relative path to target folder (relative from clients /www/ folder), or an URL.
\nWhen specifing a URL, they have to start with \"http://\" or \"https://.\"\n", + "example": "https://www.keyhelp.de" + }, + "is_forwarding": { + "type": "boolean", + "readOnly": true, + "example": true + }, + "forwarding_type": { + "type": "integer", + "enum": [ + 301, + 302 + ] + } + } + }, + "security": { + "type": "object", + "properties": { + "id_certificate": { + "type": "integer", + "description": "The certificate ID. You can only use either a certificate, the \"lets_encrypt\" option or none of both.
\nYou can only assign certificates with at least \"private_key\" and \"certificate\" component'\n", + "example": 0 + }, + "lets_encrypt": { + "type": "boolean", + "description": "Determin if the domain should use a Lets Encrypt certificate. You can only use either a certificate, the \"lets_encrypt\" option or none of both.", + "example": true + }, + "force_https": { + "type": "boolean", + "description": "Force automatic forwarding to HTTPS when the domian is accessed via HTTP.", + "example": true + }, + "is_hsts": { + "type": "boolean", + "example": true + }, + "hsts_max_age": { + "type": "integer", + "description": "Max-Age value in seconds", + "example": 10368000 + }, + "hsts_include": { + "type": "boolean", + "example": true + }, + "hsts_preload": { + "type": "boolean", + "example": true + } + } + }, + "apache": { + "type": "object", + "properties": { + "http_directives": { + "type": "string", + "example": "# My custom HTTP directives" + }, + "https_directives": { + "type": "string", + "example": "# My custom HTTPS directives" + } + } + } + } + }, + "dns": { + "description": "Representation of DNS settings of a Domain.\n", + "type": "object", + "properties": { + "is_custom_dns": { + "type": "boolean", + "readOnly": true, + "example": false + }, + "is_dns_disabled": { + "type": "boolean", + "example": false + }, + "dkim_txt_record": { + "type": "string", + "readOnly": true, + "example": "default._domainkey IN TXT ( \"v=DKIM1; k=rsa; s=email; \" \"...DKIM KEY...\" )" + }, + "records": { + "type": "object", + "properties": { + "soa": { + "type": "object", + "properties": { + "ttl": { + "type": "integer", + "default": 86400, + "example": 86400 + }, + "primary_ns": { + "type": "string", + "default": "Default primary name server of the system", + "example": "ns.example.com." + }, + "rname": { + "type": "string", + "default": "System email", + "example": "root.example.com." + }, + "refresh": { + "type": "integer", + "default": 14400, + "example": 14400 + }, + "retry": { + "type": "integer", + "default": 1800, + "example": 1800 + }, + "expire": { + "type": "integer", + "default": 604800, + "example": 604800 + }, + "minimum": { + "type": "integer", + "default": 3600, + "example": 3600 + } + } + }, + "other": { + "type": "array", + "items": { + "type": "object", + "properties": { + "host": { + "type": "string", + "example": "@" + }, + "ttl": { + "type": "integer", + "default": 86400, + "example": 86400 + }, + "type": { + "type": "string", + "example": "A" + }, + "value": { + "type": "string", + "example": "192.168.178.1" + } + } + } + } + } + } + } + }, + "certificate": { + "description": "Representation of a certificate.\n", + "type": "object", + "properties": { + "id": { + "type": "integer", + "readOnly": true, + "example": 8 + }, + "id_user": { + "type": "integer", + "description": "The ID of the associated client, or 0 / null if there is no client associated to the certificate.", + "example": 2 + }, + "name": { + "type": "string", + "example": "Homepage" + }, + "valid_till": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The date, when the certificate is no longer valid as ISO-8601 string.", + "example": "2027-08-15T21:06:18+02:00" + }, + "issuer": { + "type": "string", + "readOnly": true, + "example": "AlphaSSL CA - SHA256 - G2 / GlobalSign nv-sa" + }, + "components": { + "type": "object", + "properties": { + "private_key": { + "type": "string", + "example": "-----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY-----" + }, + "csr": { + "type": "string", + "example": "-----BEGIN CSR----- ... -----END CSR-----", + "readOnly": true + }, + "certificate'": { + "type": "string", + "example": "-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----" + }, + "ca_certificate": { + "type": "string", + "example": "-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----" + } + } + }, + "usage": { + "type": "object", + "readOnly": true, + "properties": { + "domain_count": { + "type": "integer", + "example": 2 + }, + "server_service": { + "type": "boolean", + "example": true + } + } + } + } + }, + "email": { + "description": "Representation of an email account.\n", + "type": "object", + "properties": { + "id": { + "type": "integer", + "readOnly": true, + "example": 8 + }, + "id_user": { + "type": "integer", + "description": "The user ID of the email account. This field is required, when adding a new email account.", + "example": 3 + }, + "id_domain": { + "type": "integer", + "readOnly": true, + "example": 31 + }, + "status": { + "type": "integer", + "readOnly": true, + "example": 1 + }, + "email": { + "type": "string", + "format": "email", + "description": "The ASCII representation of the email address.", + "example": "info@example.com" + }, + "email_utf8": { + "type": "string", + "format": "email", + "readOnly": true, + "description": "The UTF-8 representation of the email address.", + "example": "info@example.com" + }, + "password": { + "type": "string", + "format": "password", + "writeOnly": true, + "example": "qwertz" + }, + "description": { + "type": "string", + "example": "Description for this email account." + }, + "size": { + "type": "integer", + "example": 579712587, + "readOnly": true, + "description": "Mailbox size in byte" + }, + "max_size": { + "type": "integer", + "example": 1073741824, + "description": "Maximum mailbox size in byte" + }, + "catch_all": { + "type": "boolean", + "example": false + }, + "store_forwarded_emails": { + "type": "boolean", + "example": true + }, + "aliases": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of all alias addresses in ASCII representation.", + "example": [ + "contact@example.com", + "john.doe@example.com", + "lemmy@xn--motrhead-p4a.com" + ] + }, + "aliases_utf8": { + "type": "array", + "readOnly": true, + "items": { + "type": "string" + }, + "description": "A list of all alias addresses in UTF-8 representation.", + "example": [ + "contact@example.com", + "john.doe@example.com", + "lemmy@motörhead.com" + ] + }, + "forwardings": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of all forwarding addresses in ASCII representation.", + "example": [ + "forward@xn--motrhead-p4a.com" + ] + }, + "forwardings_utf8": { + "type": "array", + "readOnly": true, + "items": { + "type": "string" + }, + "description": "A list of all forwarding addresses in UTF-8 representation.", + "example": [ + "forward@motörhead.com" + ] + }, + "protection": { + "type": "object", + "readOnly": true, + "properties": { + "check_virus": { + "type": "boolean", + "example": true + }, + "check_spam": { + "type": "boolean", + "example": true + }, + "spam_score": { + "type": "number", + "example": 4.1 + } + } + }, + "expunge_junk": { + "type": "integer", + "example": 100 + }, + "expunge_trash": { + "type": "integer", + "example": null + }, + "password_hash": { + "type": "string", + "description": "A BCRYPT/SHA-512 password hash. Only available if turned on in settings.", + "example": "$2y$10$nAad.Rrq3LocWPgj2C9X8O7oIL/K4Q3g7PPC...\"" + } + } + }, + "database": { + "description": "Representation of a database and the corresponding database user.\n", + "type": "object", + "properties": { + "id": { + "type": "integer", + "readOnly": true, + "example": 8 + }, + "id_user": { + "type": "integer", + "description": "The user ID of the database. This field is required, when adding a new database.", + "example": 2 + }, + "database_name": { + "type": "string", + "example": "alex_db1" + }, + "database_username": { + "type": "string", + "example": "alex_db1" + }, + "password": { + "type": "string", + "format": "password", + "writeOnly": true, + "example": "qwertz" + }, + "description": { + "type": "string", + "example": "This is the database for my Wordpress installation." + }, + "size": { + "type": "integer", + "description": "Database size in byte.", + "example": 114688, + "readOnly": true + }, + "remote_hosts": { + "type": "string", + "format": "array", + "example": [ + "93.152.27.25", + "120.237.75.141" + ] + }, + "password_hash": { + "type": "string", + "description": "A MariaDB/MySQL password hash. Only available if turned on in settings.", + "example": "*3B501FC38B83F25B219D020656A7C104960C33E7" + } + } + }, + "ftp-user": { + "description": "Representation of a FTP user.\n", + "type": "object", + "properties": { + "id": { + "type": "integer", + "readOnly": true, + "example": 8 + }, + "id_user": { + "type": "integer", + "description": "The user ID of the FTP user. This field is required, when adding a new FTP user.", + "example": 2 + }, + "status": { + "type": "integer", + "readOnly": true, + "example": 1 + }, + "username": { + "type": "string", + "example": "alex_ftp1" + }, + "description": { + "type": "string", + "example": "This user can access my images." + }, + "home_directory": { + "type": "string", + "description": "The home directory of the FTP user, beginning with either \"/www/\" or \"/files\".", + "example": "/www/website/images/" + }, + "password": { + "type": "string", + "format": "password", + "writeOnly": true, + "example": "qwertz" + }, + "password_hash": { + "type": "string", + "description": "A BCRYPT/SHA-512 password hash. Only available if turned on in settings.", + "example": "$2y$10$nAad.Rrq3LocWPgj2C9X8O7oIL/K4Q3g7PPC..." + } + } + }, + "scheduled-task": { + "description": "Representation of a scheduled task.\n", + "type": "object", + "properties": { + "id": { + "type": "integer", + "readOnly": true, + "example": 8 + }, + "id_user": { + "type": "integer", + "description": "The ID of the associated client, or 0 / null if there is no client associated to the scheduled task - in this case, the scheduled task will run in root context.", + "example": 2 + }, + "status": { + "type": "integer", + "readOnly": true, + "example": 1 + }, + "type": { + "type": "string", + "example": "php", + "description": "Available types are 'exec' - if a normal CLI command should be executed, 'php' if a PHP script should be executed, 'http' if a URL should be called." + }, + "php_interpreter": { + "type": "string", + "description": "Used when type = 'php'. Can either be null, if the default PHP interpreter of the operating system should be used, or the version of an installed additional PHP interpreter.", + "example": "8.0" + }, + "command": { + "type": "string", + "example": "/home/users/alex/www/cleanup.php" + }, + "notify": { + "type": "string", + "description": "One of the following strings: 'never', 'error', 'always'.", + "example": "error" + }, + "email": { + "type": "string", + "format": "email", + "description": "Used when notify is set to 'error' or 'always'.", + "example": "info@keyhelp.de" + }, + "description": { + "type": "string", + "example": "Perform cleanup tasks." + }, + "schedule": { + "type": "object", + "properties": { + "minute": { + "type": "string", + "example": "10" + }, + "hour": { + "type": "string", + "example": "*/6" + }, + "day_of_month": { + "type": "string", + "example": "*" + }, + "month": { + "type": "string", + "example": "*" + }, + "day_of_week": { + "type": "string", + "example": "*" + } + } + } + } + }, + "directory-protection": { + "description": "Representation of a directory protection.\n", + "type": "object", + "properties": { + "id": { + "type": "integer", + "readOnly": true, + "example": 8 + }, + "id_user": { + "type": "integer", + "description": "The user ID of the directory protection. This field is required, when adding a new directory protection.", + "example": 2 + }, + "status": { + "type": "integer", + "readOnly": true, + "example": 1 + }, + "path": { + "type": "string", + "description": "The protected directory path. This path is relative to the users /www/ directory.", + "example": "/private/holiday_pictures/" + }, + "auth_name": { + "type": "string", + "example": "This is a restricted area" + }, + "username": { + "type": "string", + "example": "alex" + }, + "password": { + "type": "string", + "format": "password", + "writeOnly": true, + "example": "qwertz" + }, + "password_hash": { + "type": "string", + "description": "An APR-1 password hash. Only available if turned on in settings.", + "example": "$apr1$npcurdzf$2xYm6oo0kB4Q.hpNUw1/S0" + } + } + }, + "created": { + "type": "object", + "properties": { + "id": { + "type": "integer" + } + } + }, + "error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message#" + ] + } + } + } +} diff --git a/public/openapi/swagger-ui-bundle.js b/public/openapi/swagger-ui-bundle.js new file mode 100644 index 0000000..5c0a6bb --- /dev/null +++ b/public/openapi/swagger-ui-bundle.js @@ -0,0 +1,3 @@ +/*! For license information please see swagger-ui-bundle.js.LICENSE.txt */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.SwaggerUIBundle=t():e.SwaggerUIBundle=t()}(this,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist",n(n.s=479)}([function(e,t,n){"use strict";e.exports=n(555)},function(e,t,n){e.exports=function(){"use strict";var e=Array.prototype.slice;function t(e,t){t&&(e.prototype=Object.create(t.prototype)),e.prototype.constructor=e}function n(e){return i(e)?e:J(e)}function r(e){return u(e)?e:K(e)}function o(e){return s(e)?e:Y(e)}function a(e){return i(e)&&!c(e)?e:G(e)}function i(e){return!(!e||!e[f])}function u(e){return!(!e||!e[p])}function s(e){return!(!e||!e[h])}function c(e){return u(e)||s(e)}function l(e){return!(!e||!e[d])}t(r,n),t(o,n),t(a,n),n.isIterable=i,n.isKeyed=u,n.isIndexed=s,n.isAssociative=c,n.isOrdered=l,n.Keyed=r,n.Indexed=o,n.Set=a;var f="@@__IMMUTABLE_ITERABLE__@@",p="@@__IMMUTABLE_KEYED__@@",h="@@__IMMUTABLE_INDEXED__@@",d="@@__IMMUTABLE_ORDERED__@@",m="delete",v=5,g=1<>>0;if(""+n!==t||4294967295===n)return NaN;t=n}return t<0?A(e)+t:t}function C(){return!0}function j(e,t,n){return(0===e||void 0!==n&&e<=-n)&&(void 0===t||void 0!==n&&t>=n)}function T(e,t){return P(e,t,0)}function I(e,t){return P(e,t,t)}function P(e,t,n){return void 0===e?n:e<0?Math.max(0,t+e):void 0===t?e:Math.min(t,e)}var N=0,M=1,R=2,D="function"==typeof Symbol&&Symbol.iterator,L="@@iterator",B=D||L;function F(e){this.next=e}function z(e,t,n,r){var o=0===e?t:1===e?n:[t,n];return r?r.value=o:r={value:o,done:!1},r}function U(){return{value:void 0,done:!0}}function q(e){return!!H(e)}function V(e){return e&&"function"==typeof e.next}function W(e){var t=H(e);return t&&t.call(e)}function H(e){var t=e&&(D&&e[D]||e[L]);if("function"==typeof t)return t}function $(e){return e&&"number"==typeof e.length}function J(e){return null==e?ie():i(e)?e.toSeq():ce(e)}function K(e){return null==e?ie().toKeyedSeq():i(e)?u(e)?e.toSeq():e.fromEntrySeq():ue(e)}function Y(e){return null==e?ie():i(e)?u(e)?e.entrySeq():e.toIndexedSeq():se(e)}function G(e){return(null==e?ie():i(e)?u(e)?e.entrySeq():e:se(e)).toSetSeq()}F.prototype.toString=function(){return"[Iterator]"},F.KEYS=N,F.VALUES=M,F.ENTRIES=R,F.prototype.inspect=F.prototype.toSource=function(){return this.toString()},F.prototype[B]=function(){return this},t(J,n),J.of=function(){return J(arguments)},J.prototype.toSeq=function(){return this},J.prototype.toString=function(){return this.__toString("Seq {","}")},J.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},J.prototype.__iterate=function(e,t){return fe(this,e,t,!0)},J.prototype.__iterator=function(e,t){return pe(this,e,t,!0)},t(K,J),K.prototype.toKeyedSeq=function(){return this},t(Y,J),Y.of=function(){return Y(arguments)},Y.prototype.toIndexedSeq=function(){return this},Y.prototype.toString=function(){return this.__toString("Seq [","]")},Y.prototype.__iterate=function(e,t){return fe(this,e,t,!1)},Y.prototype.__iterator=function(e,t){return pe(this,e,t,!1)},t(G,J),G.of=function(){return G(arguments)},G.prototype.toSetSeq=function(){return this},J.isSeq=ae,J.Keyed=K,J.Set=G,J.Indexed=Y;var Q,Z,X,ee="@@__IMMUTABLE_SEQ__@@";function te(e){this._array=e,this.size=e.length}function ne(e){var t=Object.keys(e);this._object=e,this._keys=t,this.size=t.length}function re(e){this._iterable=e,this.size=e.length||e.size}function oe(e){this._iterator=e,this._iteratorCache=[]}function ae(e){return!(!e||!e[ee])}function ie(){return Q||(Q=new te([]))}function ue(e){var t=Array.isArray(e)?new te(e).fromEntrySeq():V(e)?new oe(e).fromEntrySeq():q(e)?new re(e).fromEntrySeq():"object"==typeof e?new ne(e):void 0;if(!t)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+e);return t}function se(e){var t=le(e);if(!t)throw new TypeError("Expected Array or iterable object of values: "+e);return t}function ce(e){var t=le(e)||"object"==typeof e&&new ne(e);if(!t)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+e);return t}function le(e){return $(e)?new te(e):V(e)?new oe(e):q(e)?new re(e):void 0}function fe(e,t,n,r){var o=e._cache;if(o){for(var a=o.length-1,i=0;i<=a;i++){var u=o[n?a-i:i];if(!1===t(u[1],r?u[0]:i,e))return i+1}return i}return e.__iterateUncached(t,n)}function pe(e,t,n,r){var o=e._cache;if(o){var a=o.length-1,i=0;return new F((function(){var e=o[n?a-i:i];return i++>a?U():z(t,r?e[0]:i-1,e[1])}))}return e.__iteratorUncached(t,n)}function he(e,t){return t?de(t,e,"",{"":e}):me(e)}function de(e,t,n,r){return Array.isArray(t)?e.call(r,n,Y(t).map((function(n,r){return de(e,n,r,t)}))):ve(t)?e.call(r,n,K(t).map((function(n,r){return de(e,n,r,t)}))):t}function me(e){return Array.isArray(e)?Y(e).map(me).toList():ve(e)?K(e).map(me).toMap():e}function ve(e){return e&&(e.constructor===Object||void 0===e.constructor)}function ge(e,t){if(e===t||e!=e&&t!=t)return!0;if(!e||!t)return!1;if("function"==typeof e.valueOf&&"function"==typeof t.valueOf){if((e=e.valueOf())===(t=t.valueOf())||e!=e&&t!=t)return!0;if(!e||!t)return!1}return!("function"!=typeof e.equals||"function"!=typeof t.equals||!e.equals(t))}function ye(e,t){if(e===t)return!0;if(!i(t)||void 0!==e.size&&void 0!==t.size&&e.size!==t.size||void 0!==e.__hash&&void 0!==t.__hash&&e.__hash!==t.__hash||u(e)!==u(t)||s(e)!==s(t)||l(e)!==l(t))return!1;if(0===e.size&&0===t.size)return!0;var n=!c(e);if(l(e)){var r=e.entries();return t.every((function(e,t){var o=r.next().value;return o&&ge(o[1],e)&&(n||ge(o[0],t))}))&&r.next().done}var o=!1;if(void 0===e.size)if(void 0===t.size)"function"==typeof e.cacheResult&&e.cacheResult();else{o=!0;var a=e;e=t,t=a}var f=!0,p=t.__iterate((function(t,r){if(n?!e.has(t):o?!ge(t,e.get(r,b)):!ge(e.get(r,b),t))return f=!1,!1}));return f&&e.size===p}function be(e,t){if(!(this instanceof be))return new be(e,t);if(this._value=e,this.size=void 0===t?1/0:Math.max(0,t),0===this.size){if(Z)return Z;Z=this}}function we(e,t){if(!e)throw new Error(t)}function xe(e,t,n){if(!(this instanceof xe))return new xe(e,t,n);if(we(0!==n,"Cannot step a Range by 0"),e=e||0,void 0===t&&(t=1/0),n=void 0===n?1:Math.abs(n),tr?U():z(e,o,n[t?r-o++:o++])}))},t(ne,K),ne.prototype.get=function(e,t){return void 0===t||this.has(e)?this._object[e]:t},ne.prototype.has=function(e){return this._object.hasOwnProperty(e)},ne.prototype.__iterate=function(e,t){for(var n=this._object,r=this._keys,o=r.length-1,a=0;a<=o;a++){var i=r[t?o-a:a];if(!1===e(n[i],i,this))return a+1}return a},ne.prototype.__iterator=function(e,t){var n=this._object,r=this._keys,o=r.length-1,a=0;return new F((function(){var i=r[t?o-a:a];return a++>o?U():z(e,i,n[i])}))},ne.prototype[d]=!0,t(re,Y),re.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);var n=W(this._iterable),r=0;if(V(n))for(var o;!(o=n.next()).done&&!1!==e(o.value,r++,this););return r},re.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=W(this._iterable);if(!V(n))return new F(U);var r=0;return new F((function(){var t=n.next();return t.done?t:z(e,r++,t.value)}))},t(oe,Y),oe.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);for(var n,r=this._iterator,o=this._iteratorCache,a=0;a=r.length){var t=n.next();if(t.done)return t;r[o]=t.value}return z(e,o,r[o++])}))},t(be,Y),be.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},be.prototype.get=function(e,t){return this.has(e)?this._value:t},be.prototype.includes=function(e){return ge(this._value,e)},be.prototype.slice=function(e,t){var n=this.size;return j(e,t,n)?this:new be(this._value,I(t,n)-T(e,n))},be.prototype.reverse=function(){return this},be.prototype.indexOf=function(e){return ge(this._value,e)?0:-1},be.prototype.lastIndexOf=function(e){return ge(this._value,e)?this.size:-1},be.prototype.__iterate=function(e,t){for(var n=0;n=0&&t=0&&nn?U():z(e,a++,i)}))},xe.prototype.equals=function(e){return e instanceof xe?this._start===e._start&&this._end===e._end&&this._step===e._step:ye(this,e)},t(Ee,n),t(_e,Ee),t(Se,Ee),t(ke,Ee),Ee.Keyed=_e,Ee.Indexed=Se,Ee.Set=ke;var Ae="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(e,t){var n=65535&(e|=0),r=65535&(t|=0);return n*r+((e>>>16)*r+n*(t>>>16)<<16>>>0)|0};function Oe(e){return e>>>1&1073741824|3221225471&e}function Ce(e){if(!1===e||null==e)return 0;if("function"==typeof e.valueOf&&(!1===(e=e.valueOf())||null==e))return 0;if(!0===e)return 1;var t=typeof e;if("number"===t){if(e!=e||e===1/0)return 0;var n=0|e;for(n!==e&&(n^=4294967295*e);e>4294967295;)n^=e/=4294967295;return Oe(n)}if("string"===t)return e.length>Fe?je(e):Te(e);if("function"==typeof e.hashCode)return e.hashCode();if("object"===t)return Ie(e);if("function"==typeof e.toString)return Te(e.toString());throw new Error("Value type "+t+" cannot be hashed.")}function je(e){var t=qe[e];return void 0===t&&(t=Te(e),Ue===ze&&(Ue=0,qe={}),Ue++,qe[e]=t),t}function Te(e){for(var t=0,n=0;n0)switch(e.nodeType){case 1:return e.uniqueID;case 9:return e.documentElement&&e.documentElement.uniqueID}}var Re,De="function"==typeof WeakMap;De&&(Re=new WeakMap);var Le=0,Be="__immutablehash__";"function"==typeof Symbol&&(Be=Symbol(Be));var Fe=16,ze=255,Ue=0,qe={};function Ve(e){we(e!==1/0,"Cannot perform this action with an infinite size.")}function We(e){return null==e?ot():He(e)&&!l(e)?e:ot().withMutations((function(t){var n=r(e);Ve(n.size),n.forEach((function(e,n){return t.set(n,e)}))}))}function He(e){return!(!e||!e[Je])}t(We,_e),We.of=function(){var t=e.call(arguments,0);return ot().withMutations((function(e){for(var n=0;n=t.length)throw new Error("Missing value for key: "+t[n]);e.set(t[n],t[n+1])}}))},We.prototype.toString=function(){return this.__toString("Map {","}")},We.prototype.get=function(e,t){return this._root?this._root.get(0,void 0,e,t):t},We.prototype.set=function(e,t){return at(this,e,t)},We.prototype.setIn=function(e,t){return this.updateIn(e,b,(function(){return t}))},We.prototype.remove=function(e){return at(this,e,b)},We.prototype.deleteIn=function(e){return this.updateIn(e,(function(){return b}))},We.prototype.update=function(e,t,n){return 1===arguments.length?e(this):this.updateIn([e],t,n)},We.prototype.updateIn=function(e,t,n){n||(n=t,t=void 0);var r=vt(this,En(e),t,n);return r===b?void 0:r},We.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):ot()},We.prototype.merge=function(){return pt(this,void 0,arguments)},We.prototype.mergeWith=function(t){return pt(this,t,e.call(arguments,1))},We.prototype.mergeIn=function(t){var n=e.call(arguments,1);return this.updateIn(t,ot(),(function(e){return"function"==typeof e.merge?e.merge.apply(e,n):n[n.length-1]}))},We.prototype.mergeDeep=function(){return pt(this,ht,arguments)},We.prototype.mergeDeepWith=function(t){var n=e.call(arguments,1);return pt(this,dt(t),n)},We.prototype.mergeDeepIn=function(t){var n=e.call(arguments,1);return this.updateIn(t,ot(),(function(e){return"function"==typeof e.mergeDeep?e.mergeDeep.apply(e,n):n[n.length-1]}))},We.prototype.sort=function(e){return qt(fn(this,e))},We.prototype.sortBy=function(e,t){return qt(fn(this,t,e))},We.prototype.withMutations=function(e){var t=this.asMutable();return e(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this},We.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new S)},We.prototype.asImmutable=function(){return this.__ensureOwner()},We.prototype.wasAltered=function(){return this.__altered},We.prototype.__iterator=function(e,t){return new et(this,e,t)},We.prototype.__iterate=function(e,t){var n=this,r=0;return this._root&&this._root.iterate((function(t){return r++,e(t[1],t[0],n)}),t),r},We.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?rt(this.size,this._root,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},We.isMap=He;var $e,Je="@@__IMMUTABLE_MAP__@@",Ke=We.prototype;function Ye(e,t){this.ownerID=e,this.entries=t}function Ge(e,t,n){this.ownerID=e,this.bitmap=t,this.nodes=n}function Qe(e,t,n){this.ownerID=e,this.count=t,this.nodes=n}function Ze(e,t,n){this.ownerID=e,this.keyHash=t,this.entries=n}function Xe(e,t,n){this.ownerID=e,this.keyHash=t,this.entry=n}function et(e,t,n){this._type=t,this._reverse=n,this._stack=e._root&&nt(e._root)}function tt(e,t){return z(e,t[0],t[1])}function nt(e,t){return{node:e,index:0,__prev:t}}function rt(e,t,n,r){var o=Object.create(Ke);return o.size=e,o._root=t,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function ot(){return $e||($e=rt(0))}function at(e,t,n){var r,o;if(e._root){var a=E(w),i=E(x);if(r=it(e._root,e.__ownerID,0,void 0,t,n,a,i),!i.value)return e;o=e.size+(a.value?n===b?-1:1:0)}else{if(n===b)return e;o=1,r=new Ye(e.__ownerID,[[t,n]])}return e.__ownerID?(e.size=o,e._root=r,e.__hash=void 0,e.__altered=!0,e):r?rt(o,r):ot()}function it(e,t,n,r,o,a,i,u){return e?e.update(t,n,r,o,a,i,u):a===b?e:(_(u),_(i),new Xe(t,r,[o,a]))}function ut(e){return e.constructor===Xe||e.constructor===Ze}function st(e,t,n,r,o){if(e.keyHash===r)return new Ze(t,r,[e.entry,o]);var a,i=(0===n?e.keyHash:e.keyHash>>>n)&y,u=(0===n?r:r>>>n)&y;return new Ge(t,1<>>=1)i[u]=1&n?t[a++]:void 0;return i[r]=o,new Qe(e,a+1,i)}function pt(e,t,n){for(var o=[],a=0;a>1&1431655765))+(e>>2&858993459))+(e>>4)&252645135,e+=e>>8,127&(e+=e>>16)}function yt(e,t,n,r){var o=r?e:k(e);return o[t]=n,o}function bt(e,t,n,r){var o=e.length+1;if(r&&t+1===o)return e[t]=n,e;for(var a=new Array(o),i=0,u=0;u=xt)return ct(e,s,r,o);var p=e&&e===this.ownerID,h=p?s:k(s);return f?u?c===l-1?h.pop():h[c]=h.pop():h[c]=[r,o]:h.push([r,o]),p?(this.entries=h,this):new Ye(e,h)}},Ge.prototype.get=function(e,t,n,r){void 0===t&&(t=Ce(n));var o=1<<((0===e?t:t>>>e)&y),a=this.bitmap;return 0==(a&o)?r:this.nodes[gt(a&o-1)].get(e+v,t,n,r)},Ge.prototype.update=function(e,t,n,r,o,a,i){void 0===n&&(n=Ce(r));var u=(0===t?n:n>>>t)&y,s=1<=Et)return ft(e,p,c,u,d);if(l&&!d&&2===p.length&&ut(p[1^f]))return p[1^f];if(l&&d&&1===p.length&&ut(d))return d;var m=e&&e===this.ownerID,g=l?d?c:c^s:c|s,w=l?d?yt(p,f,d,m):wt(p,f,m):bt(p,f,d,m);return m?(this.bitmap=g,this.nodes=w,this):new Ge(e,g,w)},Qe.prototype.get=function(e,t,n,r){void 0===t&&(t=Ce(n));var o=(0===e?t:t>>>e)&y,a=this.nodes[o];return a?a.get(e+v,t,n,r):r},Qe.prototype.update=function(e,t,n,r,o,a,i){void 0===n&&(n=Ce(r));var u=(0===t?n:n>>>t)&y,s=o===b,c=this.nodes,l=c[u];if(s&&!l)return this;var f=it(l,e,t+v,n,r,o,a,i);if(f===l)return this;var p=this.count;if(l){if(!f&&--p<_t)return lt(e,c,p,u)}else p++;var h=e&&e===this.ownerID,d=yt(c,u,f,h);return h?(this.count=p,this.nodes=d,this):new Qe(e,p,d)},Ze.prototype.get=function(e,t,n,r){for(var o=this.entries,a=0,i=o.length;a0&&r=0&&e>>t&y;if(r>=this.array.length)return new Ct([],e);var o,a=0===r;if(t>0){var i=this.array[r];if((o=i&&i.removeBefore(e,t-v,n))===i&&a)return this}if(a&&!o)return this;var u=Lt(this,e);if(!a)for(var s=0;s>>t&y;if(o>=this.array.length)return this;if(t>0){var a=this.array[o];if((r=a&&a.removeAfter(e,t-v,n))===a&&o===this.array.length-1)return this}var i=Lt(this,e);return i.array.splice(o+1),r&&(i.array[o]=r),i};var jt,Tt,It={};function Pt(e,t){var n=e._origin,r=e._capacity,o=Ut(r),a=e._tail;return i(e._root,e._level,0);function i(e,t,n){return 0===t?u(e,n):s(e,t,n)}function u(e,i){var u=i===o?a&&a.array:e&&e.array,s=i>n?0:n-i,c=r-i;return c>g&&(c=g),function(){if(s===c)return It;var e=t?--c:s++;return u&&u[e]}}function s(e,o,a){var u,s=e&&e.array,c=a>n?0:n-a>>o,l=1+(r-a>>o);return l>g&&(l=g),function(){for(;;){if(u){var e=u();if(e!==It)return e;u=null}if(c===l)return It;var n=t?--l:c++;u=i(s&&s[n],o-v,a+(n<=e.size||t<0)return e.withMutations((function(e){t<0?Ft(e,t).set(0,n):Ft(e,0,t+1).set(t,n)}));t+=e._origin;var r=e._tail,o=e._root,a=E(x);return t>=Ut(e._capacity)?r=Dt(r,e.__ownerID,0,t,n,a):o=Dt(o,e.__ownerID,e._level,t,n,a),a.value?e.__ownerID?(e._root=o,e._tail=r,e.__hash=void 0,e.__altered=!0,e):Nt(e._origin,e._capacity,e._level,o,r):e}function Dt(e,t,n,r,o,a){var i,u=r>>>n&y,s=e&&u0){var c=e&&e.array[u],l=Dt(c,t,n-v,r,o,a);return l===c?e:((i=Lt(e,t)).array[u]=l,i)}return s&&e.array[u]===o?e:(_(a),i=Lt(e,t),void 0===o&&u===i.array.length-1?i.array.pop():i.array[u]=o,i)}function Lt(e,t){return t&&e&&t===e.ownerID?e:new Ct(e?e.array.slice():[],t)}function Bt(e,t){if(t>=Ut(e._capacity))return e._tail;if(t<1<0;)n=n.array[t>>>r&y],r-=v;return n}}function Ft(e,t,n){void 0!==t&&(t|=0),void 0!==n&&(n|=0);var r=e.__ownerID||new S,o=e._origin,a=e._capacity,i=o+t,u=void 0===n?a:n<0?a+n:o+n;if(i===o&&u===a)return e;if(i>=u)return e.clear();for(var s=e._level,c=e._root,l=0;i+l<0;)c=new Ct(c&&c.array.length?[void 0,c]:[],r),l+=1<<(s+=v);l&&(i+=l,o+=l,u+=l,a+=l);for(var f=Ut(a),p=Ut(u);p>=1<f?new Ct([],r):h;if(h&&p>f&&iv;g-=v){var b=f>>>g&y;m=m.array[b]=Lt(m.array[b],r)}m.array[f>>>v&y]=h}if(u=p)i-=p,u-=p,s=v,c=null,d=d&&d.removeBefore(r,0,i);else if(i>o||p>>s&y;if(w!==p>>>s&y)break;w&&(l+=(1<o&&(c=c.removeBefore(r,s,i-l)),c&&pa&&(a=c.size),i(s)||(c=c.map((function(e){return he(e)}))),r.push(c)}return a>e.size&&(e=e.setSize(a)),mt(e,t,r)}function Ut(e){return e>>v<=g&&i.size>=2*a.size?(r=(o=i.filter((function(e,t){return void 0!==e&&u!==t}))).toKeyedSeq().map((function(e){return e[0]})).flip().toMap(),e.__ownerID&&(r.__ownerID=o.__ownerID=e.__ownerID)):(r=a.remove(t),o=u===i.size-1?i.pop():i.set(u,void 0))}else if(s){if(n===i.get(u)[1])return e;r=a,o=i.set(u,[t,n])}else r=a.set(t,i.size),o=i.set(i.size,[t,n]);return e.__ownerID?(e.size=r.size,e._map=r,e._list=o,e.__hash=void 0,e):Wt(r,o)}function Jt(e,t){this._iter=e,this._useKeys=t,this.size=e.size}function Kt(e){this._iter=e,this.size=e.size}function Yt(e){this._iter=e,this.size=e.size}function Gt(e){this._iter=e,this.size=e.size}function Qt(e){var t=bn(e);return t._iter=e,t.size=e.size,t.flip=function(){return e},t.reverse=function(){var t=e.reverse.apply(this);return t.flip=function(){return e.reverse()},t},t.has=function(t){return e.includes(t)},t.includes=function(t){return e.has(t)},t.cacheResult=wn,t.__iterateUncached=function(t,n){var r=this;return e.__iterate((function(e,n){return!1!==t(n,e,r)}),n)},t.__iteratorUncached=function(t,n){if(t===R){var r=e.__iterator(t,n);return new F((function(){var e=r.next();if(!e.done){var t=e.value[0];e.value[0]=e.value[1],e.value[1]=t}return e}))}return e.__iterator(t===M?N:M,n)},t}function Zt(e,t,n){var r=bn(e);return r.size=e.size,r.has=function(t){return e.has(t)},r.get=function(r,o){var a=e.get(r,b);return a===b?o:t.call(n,a,r,e)},r.__iterateUncached=function(r,o){var a=this;return e.__iterate((function(e,o,i){return!1!==r(t.call(n,e,o,i),o,a)}),o)},r.__iteratorUncached=function(r,o){var a=e.__iterator(R,o);return new F((function(){var o=a.next();if(o.done)return o;var i=o.value,u=i[0];return z(r,u,t.call(n,i[1],u,e),o)}))},r}function Xt(e,t){var n=bn(e);return n._iter=e,n.size=e.size,n.reverse=function(){return e},e.flip&&(n.flip=function(){var t=Qt(e);return t.reverse=function(){return e.flip()},t}),n.get=function(n,r){return e.get(t?n:-1-n,r)},n.has=function(n){return e.has(t?n:-1-n)},n.includes=function(t){return e.includes(t)},n.cacheResult=wn,n.__iterate=function(t,n){var r=this;return e.__iterate((function(e,n){return t(e,n,r)}),!n)},n.__iterator=function(t,n){return e.__iterator(t,!n)},n}function en(e,t,n,r){var o=bn(e);return r&&(o.has=function(r){var o=e.get(r,b);return o!==b&&!!t.call(n,o,r,e)},o.get=function(r,o){var a=e.get(r,b);return a!==b&&t.call(n,a,r,e)?a:o}),o.__iterateUncached=function(o,a){var i=this,u=0;return e.__iterate((function(e,a,s){if(t.call(n,e,a,s))return u++,o(e,r?a:u-1,i)}),a),u},o.__iteratorUncached=function(o,a){var i=e.__iterator(R,a),u=0;return new F((function(){for(;;){var a=i.next();if(a.done)return a;var s=a.value,c=s[0],l=s[1];if(t.call(n,l,c,e))return z(o,r?c:u++,l,a)}}))},o}function tn(e,t,n){var r=We().asMutable();return e.__iterate((function(o,a){r.update(t.call(n,o,a,e),0,(function(e){return e+1}))})),r.asImmutable()}function nn(e,t,n){var r=u(e),o=(l(e)?qt():We()).asMutable();e.__iterate((function(a,i){o.update(t.call(n,a,i,e),(function(e){return(e=e||[]).push(r?[i,a]:a),e}))}));var a=yn(e);return o.map((function(t){return mn(e,a(t))}))}function rn(e,t,n,r){var o=e.size;if(void 0!==t&&(t|=0),void 0!==n&&(n===1/0?n=o:n|=0),j(t,n,o))return e;var a=T(t,o),i=I(n,o);if(a!=a||i!=i)return rn(e.toSeq().cacheResult(),t,n,r);var u,s=i-a;s==s&&(u=s<0?0:s);var c=bn(e);return c.size=0===u?u:e.size&&u||void 0,!r&&ae(e)&&u>=0&&(c.get=function(t,n){return(t=O(this,t))>=0&&tu)return U();var e=o.next();return r||t===M?e:z(t,s-1,t===N?void 0:e.value[1],e)}))},c}function on(e,t,n){var r=bn(e);return r.__iterateUncached=function(r,o){var a=this;if(o)return this.cacheResult().__iterate(r,o);var i=0;return e.__iterate((function(e,o,u){return t.call(n,e,o,u)&&++i&&r(e,o,a)})),i},r.__iteratorUncached=function(r,o){var a=this;if(o)return this.cacheResult().__iterator(r,o);var i=e.__iterator(R,o),u=!0;return new F((function(){if(!u)return U();var e=i.next();if(e.done)return e;var o=e.value,s=o[0],c=o[1];return t.call(n,c,s,a)?r===R?e:z(r,s,c,e):(u=!1,U())}))},r}function an(e,t,n,r){var o=bn(e);return o.__iterateUncached=function(o,a){var i=this;if(a)return this.cacheResult().__iterate(o,a);var u=!0,s=0;return e.__iterate((function(e,a,c){if(!u||!(u=t.call(n,e,a,c)))return s++,o(e,r?a:s-1,i)})),s},o.__iteratorUncached=function(o,a){var i=this;if(a)return this.cacheResult().__iterator(o,a);var u=e.__iterator(R,a),s=!0,c=0;return new F((function(){var e,a,l;do{if((e=u.next()).done)return r||o===M?e:z(o,c++,o===N?void 0:e.value[1],e);var f=e.value;a=f[0],l=f[1],s&&(s=t.call(n,l,a,i))}while(s);return o===R?e:z(o,a,l,e)}))},o}function un(e,t){var n=u(e),o=[e].concat(t).map((function(e){return i(e)?n&&(e=r(e)):e=n?ue(e):se(Array.isArray(e)?e:[e]),e})).filter((function(e){return 0!==e.size}));if(0===o.length)return e;if(1===o.length){var a=o[0];if(a===e||n&&u(a)||s(e)&&s(a))return a}var c=new te(o);return n?c=c.toKeyedSeq():s(e)||(c=c.toSetSeq()),(c=c.flatten(!0)).size=o.reduce((function(e,t){if(void 0!==e){var n=t.size;if(void 0!==n)return e+n}}),0),c}function sn(e,t,n){var r=bn(e);return r.__iterateUncached=function(r,o){var a=0,u=!1;function s(e,c){var l=this;e.__iterate((function(e,o){return(!t||c0}function dn(e,t,r){var o=bn(e);return o.size=new te(r).map((function(e){return e.size})).min(),o.__iterate=function(e,t){for(var n,r=this.__iterator(M,t),o=0;!(n=r.next()).done&&!1!==e(n.value,o++,this););return o},o.__iteratorUncached=function(e,o){var a=r.map((function(e){return e=n(e),W(o?e.reverse():e)})),i=0,u=!1;return new F((function(){var n;return u||(n=a.map((function(e){return e.next()})),u=n.some((function(e){return e.done}))),u?U():z(e,i++,t.apply(null,n.map((function(e){return e.value}))))}))},o}function mn(e,t){return ae(e)?t:e.constructor(t)}function vn(e){if(e!==Object(e))throw new TypeError("Expected [K, V] tuple: "+e)}function gn(e){return Ve(e.size),A(e)}function yn(e){return u(e)?r:s(e)?o:a}function bn(e){return Object.create((u(e)?K:s(e)?Y:G).prototype)}function wn(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):J.prototype.cacheResult.call(this)}function xn(e,t){return e>t?1:e=0;n--)t={value:arguments[n],next:t};return this.__ownerID?(this.size=e,this._head=t,this.__hash=void 0,this.__altered=!0,this):Kn(e,t)},Vn.prototype.pushAll=function(e){if(0===(e=o(e)).size)return this;Ve(e.size);var t=this.size,n=this._head;return e.reverse().forEach((function(e){t++,n={value:e,next:n}})),this.__ownerID?(this.size=t,this._head=n,this.__hash=void 0,this.__altered=!0,this):Kn(t,n)},Vn.prototype.pop=function(){return this.slice(1)},Vn.prototype.unshift=function(){return this.push.apply(this,arguments)},Vn.prototype.unshiftAll=function(e){return this.pushAll(e)},Vn.prototype.shift=function(){return this.pop.apply(this,arguments)},Vn.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Yn()},Vn.prototype.slice=function(e,t){if(j(e,t,this.size))return this;var n=T(e,this.size);if(I(t,this.size)!==this.size)return Se.prototype.slice.call(this,e,t);for(var r=this.size-n,o=this._head;n--;)o=o.next;return this.__ownerID?(this.size=r,this._head=o,this.__hash=void 0,this.__altered=!0,this):Kn(r,o)},Vn.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?Kn(this.size,this._head,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},Vn.prototype.__iterate=function(e,t){if(t)return this.reverse().__iterate(e);for(var n=0,r=this._head;r&&!1!==e(r.value,n++,this);)r=r.next;return n},Vn.prototype.__iterator=function(e,t){if(t)return this.reverse().__iterator(e);var n=0,r=this._head;return new F((function(){if(r){var t=r.value;return r=r.next,z(e,n++,t)}return U()}))},Vn.isStack=Wn;var Hn,$n="@@__IMMUTABLE_STACK__@@",Jn=Vn.prototype;function Kn(e,t,n,r){var o=Object.create(Jn);return o.size=e,o._head=t,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function Yn(){return Hn||(Hn=Kn(0))}function Gn(e,t){var n=function(n){e.prototype[n]=t[n]};return Object.keys(t).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach(n),e}Jn[$n]=!0,Jn.withMutations=Ke.withMutations,Jn.asMutable=Ke.asMutable,Jn.asImmutable=Ke.asImmutable,Jn.wasAltered=Ke.wasAltered,n.Iterator=F,Gn(n,{toArray:function(){Ve(this.size);var e=new Array(this.size||0);return this.valueSeq().__iterate((function(t,n){e[n]=t})),e},toIndexedSeq:function(){return new Kt(this)},toJS:function(){return this.toSeq().map((function(e){return e&&"function"==typeof e.toJS?e.toJS():e})).__toJS()},toJSON:function(){return this.toSeq().map((function(e){return e&&"function"==typeof e.toJSON?e.toJSON():e})).__toJS()},toKeyedSeq:function(){return new Jt(this,!0)},toMap:function(){return We(this.toKeyedSeq())},toObject:function(){Ve(this.size);var e={};return this.__iterate((function(t,n){e[n]=t})),e},toOrderedMap:function(){return qt(this.toKeyedSeq())},toOrderedSet:function(){return Ln(u(this)?this.valueSeq():this)},toSet:function(){return jn(u(this)?this.valueSeq():this)},toSetSeq:function(){return new Yt(this)},toSeq:function(){return s(this)?this.toIndexedSeq():u(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return Vn(u(this)?this.valueSeq():this)},toList:function(){return St(u(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(e,t){return 0===this.size?e+t:e+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+t},concat:function(){return mn(this,un(this,e.call(arguments,0)))},includes:function(e){return this.some((function(t){return ge(t,e)}))},entries:function(){return this.__iterator(R)},every:function(e,t){Ve(this.size);var n=!0;return this.__iterate((function(r,o,a){if(!e.call(t,r,o,a))return n=!1,!1})),n},filter:function(e,t){return mn(this,en(this,e,t,!0))},find:function(e,t,n){var r=this.findEntry(e,t);return r?r[1]:n},forEach:function(e,t){return Ve(this.size),this.__iterate(t?e.bind(t):e)},join:function(e){Ve(this.size),e=void 0!==e?""+e:",";var t="",n=!0;return this.__iterate((function(r){n?n=!1:t+=e,t+=null!=r?r.toString():""})),t},keys:function(){return this.__iterator(N)},map:function(e,t){return mn(this,Zt(this,e,t))},reduce:function(e,t,n){var r,o;return Ve(this.size),arguments.length<2?o=!0:r=t,this.__iterate((function(t,a,i){o?(o=!1,r=t):r=e.call(n,r,t,a,i)})),r},reduceRight:function(e,t,n){var r=this.toKeyedSeq().reverse();return r.reduce.apply(r,arguments)},reverse:function(){return mn(this,Xt(this,!0))},slice:function(e,t){return mn(this,rn(this,e,t,!0))},some:function(e,t){return!this.every(tr(e),t)},sort:function(e){return mn(this,fn(this,e))},values:function(){return this.__iterator(M)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some((function(){return!0}))},count:function(e,t){return A(e?this.toSeq().filter(e,t):this)},countBy:function(e,t){return tn(this,e,t)},equals:function(e){return ye(this,e)},entrySeq:function(){var e=this;if(e._cache)return new te(e._cache);var t=e.toSeq().map(er).toIndexedSeq();return t.fromEntrySeq=function(){return e.toSeq()},t},filterNot:function(e,t){return this.filter(tr(e),t)},findEntry:function(e,t,n){var r=n;return this.__iterate((function(n,o,a){if(e.call(t,n,o,a))return r=[o,n],!1})),r},findKey:function(e,t){var n=this.findEntry(e,t);return n&&n[0]},findLast:function(e,t,n){return this.toKeyedSeq().reverse().find(e,t,n)},findLastEntry:function(e,t,n){return this.toKeyedSeq().reverse().findEntry(e,t,n)},findLastKey:function(e,t){return this.toKeyedSeq().reverse().findKey(e,t)},first:function(){return this.find(C)},flatMap:function(e,t){return mn(this,cn(this,e,t))},flatten:function(e){return mn(this,sn(this,e,!0))},fromEntrySeq:function(){return new Gt(this)},get:function(e,t){return this.find((function(t,n){return ge(n,e)}),void 0,t)},getIn:function(e,t){for(var n,r=this,o=En(e);!(n=o.next()).done;){var a=n.value;if((r=r&&r.get?r.get(a,b):b)===b)return t}return r},groupBy:function(e,t){return nn(this,e,t)},has:function(e){return this.get(e,b)!==b},hasIn:function(e){return this.getIn(e,b)!==b},isSubset:function(e){return e="function"==typeof e.includes?e:n(e),this.every((function(t){return e.includes(t)}))},isSuperset:function(e){return(e="function"==typeof e.isSubset?e:n(e)).isSubset(this)},keyOf:function(e){return this.findKey((function(t){return ge(t,e)}))},keySeq:function(){return this.toSeq().map(Xn).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},lastKeyOf:function(e){return this.toKeyedSeq().reverse().keyOf(e)},max:function(e){return pn(this,e)},maxBy:function(e,t){return pn(this,t,e)},min:function(e){return pn(this,e?nr(e):ar)},minBy:function(e,t){return pn(this,t?nr(t):ar,e)},rest:function(){return this.slice(1)},skip:function(e){return this.slice(Math.max(0,e))},skipLast:function(e){return mn(this,this.toSeq().reverse().skip(e).reverse())},skipWhile:function(e,t){return mn(this,an(this,e,t,!0))},skipUntil:function(e,t){return this.skipWhile(tr(e),t)},sortBy:function(e,t){return mn(this,fn(this,t,e))},take:function(e){return this.slice(0,Math.max(0,e))},takeLast:function(e){return mn(this,this.toSeq().reverse().take(e).reverse())},takeWhile:function(e,t){return mn(this,on(this,e,t))},takeUntil:function(e,t){return this.takeWhile(tr(e),t)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=ir(this))}});var Qn=n.prototype;Qn[f]=!0,Qn[B]=Qn.values,Qn.__toJS=Qn.toArray,Qn.__toStringMapper=rr,Qn.inspect=Qn.toSource=function(){return this.toString()},Qn.chain=Qn.flatMap,Qn.contains=Qn.includes,Gn(r,{flip:function(){return mn(this,Qt(this))},mapEntries:function(e,t){var n=this,r=0;return mn(this,this.toSeq().map((function(o,a){return e.call(t,[a,o],r++,n)})).fromEntrySeq())},mapKeys:function(e,t){var n=this;return mn(this,this.toSeq().flip().map((function(r,o){return e.call(t,r,o,n)})).flip())}});var Zn=r.prototype;function Xn(e,t){return t}function er(e,t){return[t,e]}function tr(e){return function(){return!e.apply(this,arguments)}}function nr(e){return function(){return-e.apply(this,arguments)}}function rr(e){return"string"==typeof e?JSON.stringify(e):String(e)}function or(){return k(arguments)}function ar(e,t){return et?-1:0}function ir(e){if(e.size===1/0)return 0;var t=l(e),n=u(e),r=t?1:0;return ur(e.__iterate(n?t?function(e,t){r=31*r+sr(Ce(e),Ce(t))|0}:function(e,t){r=r+sr(Ce(e),Ce(t))|0}:t?function(e){r=31*r+Ce(e)|0}:function(e){r=r+Ce(e)|0}),r)}function ur(e,t){return t=Ae(t,3432918353),t=Ae(t<<15|t>>>-15,461845907),t=Ae(t<<13|t>>>-13,5),t=Ae((t=(t+3864292196|0)^e)^t>>>16,2246822507),t=Oe((t=Ae(t^t>>>13,3266489909))^t>>>16)}function sr(e,t){return e^t+2654435769+(e<<6)+(e>>2)|0}return Zn[p]=!0,Zn[B]=Qn.entries,Zn.__toJS=Qn.toObject,Zn.__toStringMapper=function(e,t){return JSON.stringify(t)+": "+rr(e)},Gn(o,{toKeyedSeq:function(){return new Jt(this,!1)},filter:function(e,t){return mn(this,en(this,e,t,!1))},findIndex:function(e,t){var n=this.findEntry(e,t);return n?n[0]:-1},indexOf:function(e){var t=this.keyOf(e);return void 0===t?-1:t},lastIndexOf:function(e){var t=this.lastKeyOf(e);return void 0===t?-1:t},reverse:function(){return mn(this,Xt(this,!1))},slice:function(e,t){return mn(this,rn(this,e,t,!1))},splice:function(e,t){var n=arguments.length;if(t=Math.max(0|t,0),0===n||2===n&&!t)return this;e=T(e,e<0?this.count():this.size);var r=this.slice(0,e);return mn(this,1===n?r:r.concat(k(arguments,2),this.slice(e+t)))},findLastIndex:function(e,t){var n=this.findLastEntry(e,t);return n?n[0]:-1},first:function(){return this.get(0)},flatten:function(e){return mn(this,sn(this,e,!1))},get:function(e,t){return(e=O(this,e))<0||this.size===1/0||void 0!==this.size&&e>this.size?t:this.find((function(t,n){return n===e}),void 0,t)},has:function(e){return(e=O(this,e))>=0&&(void 0!==this.size?this.size===1/0||e1)try{return decodeURIComponent(t[1])}catch(e){console.error(e)}return null}function Pe(e){return t=e.replace(/\.[^./]*$/,""),Y()(J()(t));var t}function Ne(e,t,n,r,a){if(!t)return[];var u=[],s=t.get("nullable"),c=t.get("required"),f=t.get("maximum"),h=t.get("minimum"),d=t.get("type"),m=t.get("format"),g=t.get("maxLength"),b=t.get("minLength"),x=t.get("uniqueItems"),E=t.get("maxItems"),_=t.get("minItems"),S=t.get("pattern"),k=n||!0===c,A=null!=e;if(s&&null===e||!d||!(k||A&&"array"===d||!(!k&&!A)))return[];var O="string"===d&&e,C="array"===d&&l()(e)&&e.length,j="array"===d&&W.a.List.isList(e)&&e.count(),T=[O,C,j,"array"===d&&"string"==typeof e&&e,"file"===d&&e instanceof ue.a.File,"boolean"===d&&(e||!1===e),"number"===d&&(e||0===e),"integer"===d&&(e||0===e),"object"===d&&"object"===i()(e)&&null!==e,"object"===d&&"string"==typeof e&&e],I=P()(T).call(T,(function(e){return!!e}));if(k&&!I&&!r)return u.push("Required field is not provided"),u;if("object"===d&&(null===a||"application/json"===a)){var N,M=e;if("string"==typeof e)try{M=JSON.parse(e)}catch(e){return u.push("Parameter string value must be valid JSON"),u}if(t&&t.has("required")&&_e(c.isList)&&c.isList()&&y()(c).call(c,(function(e){void 0===M[e]&&u.push({propKey:e,error:"Required property not found"})})),t&&t.has("properties"))y()(N=t.get("properties")).call(N,(function(e,t){var n=Ne(M[t],e,!1,r,a);u.push.apply(u,o()(p()(n).call(n,(function(e){return{propKey:t,error:e}}))))}))}if(S){var R=function(e,t){if(!new RegExp(t).test(e))return"Value must follow pattern "+t}(e,S);R&&u.push(R)}if(_&&"array"===d){var D=function(e,t){var n;if(!e&&t>=1||e&&e.lengtht)return v()(n="Array must not contain more then ".concat(t," item")).call(n,1===t?"":"s")}(e,E);L&&u.push({needRemove:!0,error:L})}if(x&&"array"===d){var B=function(e,t){if(e&&("true"===t||!0===t)){var n=Object(V.fromJS)(e),r=n.toSet();if(e.length>r.size){var o=Object(V.Set)();if(y()(n).call(n,(function(e,t){w()(n).call(n,(function(t){return _e(t.equals)?t.equals(e):t===e})).size>1&&(o=o.add(t))})),0!==o.size)return p()(o).call(o,(function(e){return{index:e,error:"No duplicates allowed."}})).toArray()}}}(e,x);B&&u.push.apply(u,o()(B))}if(g||0===g){var F=function(e,t){var n;if(e.length>t)return v()(n="Value must be no longer than ".concat(t," character")).call(n,1!==t?"s":"")}(e,g);F&&u.push(F)}if(b){var z=function(e,t){var n;if(e.lengtht)return"Value must be less than ".concat(t)}(e,f);U&&u.push(U)}if(h||0===h){var q=function(e,t){if(e2&&void 0!==arguments[2]?arguments[2]:{},r=n.isOAS3,o=void 0!==r&&r,a=n.bypassRequiredCheck,i=void 0!==a&&a,u=e.get("required"),s=Object(le.a)(e,{isOAS3:o}),c=s.schema,l=s.parameterContentMediaType;return Ne(t,c,u,i,l)},Re=function(e,t,n){if(e&&(!e.xml||!e.xml.name)){if(e.xml=e.xml||{},!e.$$ref)return e.type||e.items||e.properties||e.additionalProperties?'\n\x3c!-- XML example cannot be generated; root element name is undefined --\x3e':null;var r=e.$$ref.match(/\S*\/(\S+)$/);e.xml.name=r[1]}return Object(ie.memoizedCreateXMLExample)(e,t,n)},De=[{when:/json/,shouldStringifyTypes:["string"]}],Le=["object"],Be=function(e,t,n,r){var a=Object(ie.memoizedSampleFromSchema)(e,t,r),u=i()(a),s=S()(De).call(De,(function(e,t){var r;return t.when.test(n)?v()(r=[]).call(r,o()(e),o()(t.shouldStringifyTypes)):e}),Le);return te()(s,(function(e){return e===u}))?M()(a,null,2):a},Fe=function(e,t,n,r){var o,a=Be(e,t,n,r);try{"\n"===(o=me.a.dump(me.a.load(a),{lineWidth:-1}))[o.length-1]&&(o=T()(o).call(o,0,o.length-1))}catch(e){return console.error(e),"error: could not generate yaml example"}return o.replace(/\t/g," ")},ze=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;return e&&_e(e.toJS)&&(e=e.toJS()),r&&_e(r.toJS)&&(r=r.toJS()),/xml/.test(t)?Re(e,n,r):/(yaml|yml)/.test(t)?Fe(e,n,t,r):Be(e,n,t,r)},Ue=function(){var e={},t=ue.a.location.search;if(!t)return{};if(""!=t){var n=t.substr(1).split("&");for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(r=n[r].split("="),e[decodeURIComponent(r[0])]=r[1]&&decodeURIComponent(r[1])||"")}return e},qe=function(t){return(t instanceof e?t:e.from(t.toString(),"utf-8")).toString("base64")},Ve={operationsSorter:{alpha:function(e,t){return e.get("path").localeCompare(t.get("path"))},method:function(e,t){return e.get("method").localeCompare(t.get("method"))}},tagsSorter:{alpha:function(e,t){return e.localeCompare(t)}}},We=function(e){var t=[];for(var n in e){var r=e[n];void 0!==r&&""!==r&&t.push([n,"=",encodeURIComponent(r).replace(/%20/g,"+")].join(""))}return t.join("&")},He=function(e,t,n){return!!X()(n,(function(n){return re()(e[n],t[n])}))};function $e(e){return"string"!=typeof e||""===e?"":Object(H.sanitizeUrl)(e)}function Je(e){return!(!e||D()(e).call(e,"localhost")>=0||D()(e).call(e,"127.0.0.1")>=0||"none"===e)}function Ke(e){if(!W.a.OrderedMap.isOrderedMap(e))return null;if(!e.size)return null;var t=B()(e).call(e,(function(e,t){return z()(t).call(t,"2")&&E()(e.get("content")||{}).length>0})),n=e.get("default")||W.a.OrderedMap(),r=(n.get("content")||W.a.OrderedMap()).keySeq().toJS().length?n:null;return t||r}var Ye=function(e){return"string"==typeof e||e instanceof String?q()(e).call(e).replace(/\s/g,"%20"):""},Ge=function(e){return ce()(Ye(e).replace(/%20/g,"_"))},Qe=function(e){return w()(e).call(e,(function(e,t){return/^x-/.test(t)}))},Ze=function(e){return w()(e).call(e,(function(e,t){return/^pattern|maxLength|minLength|maximum|minimum/.test(t)}))};function Xe(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){return!0};if("object"!==i()(e)||l()(e)||null===e||!t)return e;var o=A()({},e);return y()(n=E()(o)).call(n,(function(e){e===t&&r(o[e],e)?delete o[e]:o[e]=Xe(o[e],t,r)})),o}function et(e){if("string"==typeof e)return e;if(e&&e.toJS&&(e=e.toJS()),"object"===i()(e)&&null!==e)try{return M()(e,null,2)}catch(t){return String(e)}return null==e?"":e.toString()}function tt(e){return"number"==typeof e?e.toString():e}function nt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.returnAll,r=void 0!==n&&n,o=t.allowHashes,a=void 0===o||o;if(!W.a.Map.isMap(e))throw new Error("paramToIdentifier: received a non-Im.Map parameter as input");var i,u,s,c=e.get("name"),l=e.get("in"),f=[];e&&e.hashCode&&l&&c&&a&&f.push(v()(i=v()(u="".concat(l,".")).call(u,c,".hash-")).call(i,e.hashCode()));l&&c&&f.push(v()(s="".concat(l,".")).call(s,c));return f.push(c),r?f:f[0]||""}function rt(e,t){var n,r=nt(e,{returnAll:!0});return w()(n=p()(r).call(r,(function(e){return t[e]}))).call(n,(function(e){return void 0!==e}))[0]}function ot(){return it(pe()(32).toString("base64"))}function at(e){return it(de()("sha256").update(e).digest("base64"))}function it(e){return e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}var ut=function(e){return!e||!(!ge(e)||!e.isEmpty())}}).call(this,n(129).Buffer)},function(e,t,n){var r=n(415),o=n(185),a=n(249);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=r(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),o(e,"prototype",{writable:!1}),t&&a(e,t)},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){var r=n(250),o=n(137),a=n(416),i=n(764);e.exports=function(e){var t=a();return function(){var n,a=o(e);if(t){var u=o(this).constructor;n=r(a,arguments,u)}else n=a.apply(this,arguments);return i(this,n)}},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){e.exports=n(884)()},function(e,t,n){e.exports=n(348)},function(e,t,n){var r=n(385),o=n(622),a=n(197),i=n(386);e.exports=function(e,t){return r(e)||o(e,t)||a(e,t)||i()},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){var r=n(606),o=n(378),a=n(197),i=n(621);e.exports=function(e){return r(e)||o(e)||a(e)||i()},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){e.exports=n(349)},function(e,t,n){"use strict";var r=n(17),o=n(96),a=n(27),i=n(42),u=n(97).f,s=n(334),c=n(35),l=n(54),f=n(90),p=n(47),h=function(e){var t=function(n,r,a){if(this instanceof t){switch(arguments.length){case 0:return new e;case 1:return new e(n);case 2:return new e(n,r)}return new e(n,r,a)}return o(e,this,arguments)};return t.prototype=e.prototype,t};e.exports=function(e,t){var n,o,d,m,v,g,y,b,w=e.target,x=e.global,E=e.stat,_=e.proto,S=x?r:E?r[w]:(r[w]||{}).prototype,k=x?c:c[w]||f(c,w,{})[w],A=k.prototype;for(d in t)n=!s(x?d:w+(E?".":"#")+d,e.forced)&&S&&p(S,d),v=k[d],n&&(g=e.noTargetGet?(b=u(S,d))&&b.value:S[d]),m=n&&g?g:t[d],n&&typeof v==typeof m||(y=e.bind&&n?l(m,r):e.wrap&&n?h(m):_&&i(m)?a(m):m,(e.sham||m&&m.sham||v&&v.sham)&&f(y,"sham",!0),f(k,d,y),_&&(p(c,o=w+"Prototype")||f(c,o,{}),f(c[o],d,m),e.real&&A&&!A[d]&&f(A,d,m)))}},function(e,t,n){(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||function(){return this}()||Function("return this")()}).call(this,n(61))},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r="NOT_FOUND";var o=function(e,t){return e===t};function a(e,t){var n,a,i="object"==typeof t?t:{equalityCheck:t},u=i.equalityCheck,s=void 0===u?o:u,c=i.maxSize,l=void 0===c?1:c,f=i.resultEqualityCheck,p=function(e){return function(t,n){if(null===t||null===n||t.length!==n.length)return!1;for(var r=t.length,o=0;o-1){var a=n[o];return o>0&&(n.splice(o,1),n.unshift(a)),a.value}return r}return{get:o,put:function(t,a){o(t)===r&&(n.unshift({key:t,value:a}),n.length>e&&n.pop())},getEntries:function(){return n},clear:function(){n=[]}}}(l,p);function d(){var t=h.get(arguments);if(t===r){if(t=e.apply(null,arguments),f){var n=h.getEntries(),o=n.find((function(e){return f(e.value,t)}));o&&(t=o.value)}h.put(arguments,t)}return t}return d.clearCache=function(){return h.clear()},d}function i(e){var t=Array.isArray(e[0])?e[0]:e;if(!t.every((function(e){return"function"==typeof e}))){var n=t.map((function(e){return"function"==typeof e?"function "+(e.name||"unnamed")+"()":typeof e})).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+n+"]")}return t}function u(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r>",i=function(){invariant(!1,"ImmutablePropTypes type checking code is stripped in production.")};i.isRequired=i;var u=function(){return i};function s(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":e instanceof o.Iterable?"Immutable."+e.toSource().split(" ")[0]:t}function c(e){function t(t,n,r,o,i,u){for(var s=arguments.length,c=Array(s>6?s-6:0),l=6;l4)}function l(e){var t=e.get("swagger");return"string"==typeof t&&i()(t).call(t,"2.0")}function f(e){return function(t,n){return function(r){return n&&n.specSelectors&&n.specSelectors.specJson?c(n.specSelectors.specJson())?s.a.createElement(e,o()({},r,n,{Ori:t})):s.a.createElement(t,r):(console.warn("OAS3 wrapper: couldn't get spec"),null)}}}},function(e,t,n){var r=n(17),o=n(220),a=n(47),i=n(179),u=n(218),s=n(332),c=o("wks"),l=r.Symbol,f=l&&l.for,p=s?l:l&&l.withoutSetter||i;e.exports=function(e){if(!a(c,e)||!u&&"string"!=typeof c[e]){var t="Symbol."+e;u&&a(l,e)?c[e]=l[e]:c[e]=s&&f?f(t):p(t)}return c[e]}},function(e,t,n){var r=n(35);e.exports=function(e){return r[e+"Prototype"]}},function(e,t){e.exports=function(e){return"function"==typeof e}},function(e,t,n){var r=n(244);e.exports=function(e,t,n){var o=null==e?void 0:r(e,t);return void 0===o?n:o}},function(e,t,n){e.exports=n(867)},function(e,t,n){var r=n(42);e.exports=function(e){return"object"==typeof e?null!==e:r(e)}},function(e,t,n){var r=n(17),o=n(42),a=n(178),i=r.TypeError;e.exports=function(e){if(o(e))return e;throw i(a(e)+" is not a function")}},function(e,t,n){var r=n(27),o=n(62),a=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return a(o(e),t)}},function(e,t,n){var r=n(35),o=n(47),a=n(230),i=n(63).f;e.exports=function(e){var t=r.Symbol||(r.Symbol={});o(t,e)||i(t,e,{value:a.f(e)})}},function(e,t,n){var r=n(17),o=n(54),a=n(37),i=n(33),u=n(178),s=n(383),c=n(67),l=n(36),f=n(159),p=n(158),h=n(382),d=r.TypeError,m=function(e,t){this.stopped=e,this.result=t},v=m.prototype;e.exports=function(e,t,n){var r,g,y,b,w,x,E,_=n&&n.that,S=!(!n||!n.AS_ENTRIES),k=!(!n||!n.IS_ITERATOR),A=!(!n||!n.INTERRUPTED),O=o(t,_),C=function(e){return r&&h(r,"normal",e),new m(!0,e)},j=function(e){return S?(i(e),A?O(e[0],e[1],C):O(e[0],e[1])):A?O(e,C):O(e)};if(k)r=e;else{if(!(g=p(e)))throw d(u(e)+" is not iterable");if(s(g)){for(y=0,b=c(e);b>y;y++)if((w=j(e[y]))&&l(v,w))return w;return new m(!1)}r=f(e,g)}for(x=r.next;!(E=a(x,r)).done;){try{w=j(E.value)}catch(e){h(r,"throw",e)}if("object"==typeof w&&w&&l(v,w))return w}return new m(!1)}},function(e,t,n){e.exports=n(352)},function(e,t,n){var r=n(34);e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(e,t,n){"use strict";n.r(t),n.d(t,"UPDATE_SPEC",(function(){return ee})),n.d(t,"UPDATE_URL",(function(){return te})),n.d(t,"UPDATE_JSON",(function(){return ne})),n.d(t,"UPDATE_PARAM",(function(){return re})),n.d(t,"UPDATE_EMPTY_PARAM_INCLUSION",(function(){return oe})),n.d(t,"VALIDATE_PARAMS",(function(){return ae})),n.d(t,"SET_RESPONSE",(function(){return ie})),n.d(t,"SET_REQUEST",(function(){return ue})),n.d(t,"SET_MUTATED_REQUEST",(function(){return se})),n.d(t,"LOG_REQUEST",(function(){return ce})),n.d(t,"CLEAR_RESPONSE",(function(){return le})),n.d(t,"CLEAR_REQUEST",(function(){return fe})),n.d(t,"CLEAR_VALIDATE_PARAMS",(function(){return pe})),n.d(t,"UPDATE_OPERATION_META_VALUE",(function(){return he})),n.d(t,"UPDATE_RESOLVED",(function(){return de})),n.d(t,"UPDATE_RESOLVED_SUBTREE",(function(){return me})),n.d(t,"SET_SCHEME",(function(){return ve})),n.d(t,"updateSpec",(function(){return ge})),n.d(t,"updateResolved",(function(){return ye})),n.d(t,"updateUrl",(function(){return be})),n.d(t,"updateJsonSpec",(function(){return we})),n.d(t,"parseToJson",(function(){return xe})),n.d(t,"resolveSpec",(function(){return _e})),n.d(t,"requestResolvedSubtree",(function(){return Ae})),n.d(t,"changeParam",(function(){return Oe})),n.d(t,"changeParamByIdentity",(function(){return Ce})),n.d(t,"updateResolvedSubtree",(function(){return je})),n.d(t,"invalidateResolvedSubtreeCache",(function(){return Te})),n.d(t,"validateParams",(function(){return Ie})),n.d(t,"updateEmptyParamInclusion",(function(){return Pe})),n.d(t,"clearValidateParams",(function(){return Ne})),n.d(t,"changeConsumesValue",(function(){return Me})),n.d(t,"changeProducesValue",(function(){return Re})),n.d(t,"setResponse",(function(){return De})),n.d(t,"setRequest",(function(){return Le})),n.d(t,"setMutatedRequest",(function(){return Be})),n.d(t,"logRequest",(function(){return Fe})),n.d(t,"executeRequest",(function(){return ze})),n.d(t,"execute",(function(){return Ue})),n.d(t,"clearResponse",(function(){return qe})),n.d(t,"clearRequest",(function(){return Ve})),n.d(t,"setScheme",(function(){return We}));var r=n(25),o=n.n(r),a=n(59),i=n.n(a),u=n(79),s=n.n(u),c=n(19),l=n.n(c),f=n(44),p=n.n(f),h=n(22),d=n.n(h),m=n(4),v=n.n(m),g=n(322),y=n.n(g),b=n(31),w=n.n(b),x=n(140),E=n.n(x),_=n(72),S=n.n(_),k=n(12),A=n.n(k),O=n(206),C=n.n(O),j=n(20),T=n.n(j),I=n(23),P=n.n(I),N=n(2),M=n.n(N),R=n(15),D=n.n(R),L=n(24),B=n.n(L),F=n(323),z=n.n(F),U=n(76),q=n(1),V=n(92),W=n.n(V),H=n(138),$=n(454),J=n.n($),K=n(455),Y=n.n(K),G=n(324),Q=n.n(G),Z=n(7),X=["path","method"],ee="spec_update_spec",te="spec_update_url",ne="spec_update_json",re="spec_update_param",oe="spec_update_empty_param_inclusion",ae="spec_validate_param",ie="spec_set_response",ue="spec_set_request",se="spec_set_mutated_request",ce="spec_log_request",le="spec_clear_response",fe="spec_clear_request",pe="spec_clear_validate_param",he="spec_update_operation_meta_value",de="spec_update_resolved",me="spec_update_resolved_subtree",ve="set_scheme";function ge(e){var t,n=(t=e,J()(t)?t:"").replace(/\t/g," ");if("string"==typeof e)return{type:ee,payload:n}}function ye(e){return{type:de,payload:e}}function be(e){return{type:te,payload:e}}function we(e){return{type:ne,payload:e}}var xe=function(e){return function(t){var n=t.specActions,r=t.specSelectors,o=t.errActions,a=r.specStr,i=null;try{e=e||a(),o.clear({source:"parser"}),i=U.a.load(e)}catch(e){return console.error(e),o.newSpecErr({source:"parser",level:"error",message:e.reason,line:e.mark&&e.mark.line?e.mark.line+1:void 0})}return i&&"object"===l()(i)?n.updateJsonSpec(i):{}}},Ee=!1,_e=function(e,t){return function(n){var r=n.specActions,o=n.specSelectors,a=n.errActions,i=n.fn,u=i.fetch,s=i.resolve,c=i.AST,l=void 0===c?{}:c,f=n.getConfigs;Ee||(console.warn("specActions.resolveSpec is deprecated since v3.10.0 and will be removed in v4.0.0; use requestResolvedSubtree instead!"),Ee=!0);var p=f(),h=p.modelPropertyMacro,m=p.parameterMacro,g=p.requestInterceptor,b=p.responseInterceptor;void 0===e&&(e=o.specJson()),void 0===t&&(t=o.url());var w=l.getLineNumberForPath?l.getLineNumberForPath:function(){},x=o.specStr();return s({fetch:u,spec:e,baseDoc:t,modelPropertyMacro:h,parameterMacro:m,requestInterceptor:g,responseInterceptor:b}).then((function(e){var t=e.spec,n=e.errors;if(a.clear({type:"thrown"}),d()(n)&&n.length>0){var o=v()(n).call(n,(function(e){return console.error(e),e.line=e.fullPath?w(x,e.fullPath):null,e.path=e.fullPath?e.fullPath.join("."):null,e.level="error",e.type="thrown",e.source="resolver",y()(e,"message",{enumerable:!0,value:e.message}),e}));a.newThrownErrBatch(o)}return r.updateResolved(t)}))}},Se=[],ke=Y()(s()(p.a.mark((function e(){var t,n,r,o,a,i,u,c,l,f,h,m,g,b,x,_,k,O;return p.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=Se.system){e.next=4;break}return console.error("debResolveSubtrees: don't have a system to operate on, aborting."),e.abrupt("return");case 4:if(n=t.errActions,r=t.errSelectors,o=t.fn,a=o.resolveSubtree,i=o.fetch,u=o.AST,c=void 0===u?{}:u,l=t.specSelectors,f=t.specActions,a){e.next=8;break}return console.error("Error: Swagger-Client did not provide a `resolveSubtree` method, doing nothing."),e.abrupt("return");case 8:return h=c.getLineNumberForPath?c.getLineNumberForPath:function(){},m=l.specStr(),g=t.getConfigs(),b=g.modelPropertyMacro,x=g.parameterMacro,_=g.requestInterceptor,k=g.responseInterceptor,e.prev=11,e.next=14,w()(Se).call(Se,function(){var e=s()(p.a.mark((function e(t,o){var u,c,f,g,w,O,j,T,I;return p.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t;case 2:return u=e.sent,c=u.resultMap,f=u.specWithCurrentSubtrees,e.next=7,a(f,o,{baseDoc:l.url(),modelPropertyMacro:b,parameterMacro:x,requestInterceptor:_,responseInterceptor:k});case 7:if(g=e.sent,w=g.errors,O=g.spec,r.allErrors().size&&n.clearBy((function(e){var t;return"thrown"!==e.get("type")||"resolver"!==e.get("source")||!E()(t=e.get("fullPath")).call(t,(function(e,t){return e===o[t]||void 0===o[t]}))})),d()(w)&&w.length>0&&(j=v()(w).call(w,(function(e){return e.line=e.fullPath?h(m,e.fullPath):null,e.path=e.fullPath?e.fullPath.join("."):null,e.level="error",e.type="thrown",e.source="resolver",y()(e,"message",{enumerable:!0,value:e.message}),e})),n.newThrownErrBatch(j)),!O||!l.isOAS3()||"components"!==o[0]||"securitySchemes"!==o[1]){e.next=15;break}return e.next=15,S.a.all(v()(T=A()(I=C()(O)).call(I,(function(e){return"openIdConnect"===e.type}))).call(T,function(){var e=s()(p.a.mark((function e(t){var n,r;return p.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n={url:t.openIdConnectUrl,requestInterceptor:_,responseInterceptor:k},e.prev=1,e.next=4,i(n);case 4:(r=e.sent)instanceof Error||r.status>=400?console.error(r.statusText+" "+n.url):t.openIdConnectData=JSON.parse(r.text),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(1),console.error(e.t0);case 11:case"end":return e.stop()}}),e,null,[[1,8]])})));return function(t){return e.apply(this,arguments)}}()));case 15:return Q()(c,o,O),Q()(f,o,O),e.abrupt("return",{resultMap:c,specWithCurrentSubtrees:f});case 18:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),S.a.resolve({resultMap:(l.specResolvedSubtree([])||Object(q.Map)()).toJS(),specWithCurrentSubtrees:l.specJson().toJS()}));case 14:O=e.sent,delete Se.system,Se=[],e.next=22;break;case 19:e.prev=19,e.t0=e.catch(11),console.error(e.t0);case 22:f.updateResolvedSubtree([],O.resultMap);case 23:case"end":return e.stop()}}),e,null,[[11,19]])}))),35),Ae=function(e){return function(t){var n;T()(n=v()(Se).call(Se,(function(e){return e.join("@@")}))).call(n,e.join("@@"))>-1||(Se.push(e),Se.system=t,ke())}};function Oe(e,t,n,r,o){return{type:re,payload:{path:e,value:r,paramName:t,paramIn:n,isXml:o}}}function Ce(e,t,n,r){return{type:re,payload:{path:e,param:t,value:n,isXml:r}}}var je=function(e,t){return{type:me,payload:{path:e,value:t}}},Te=function(){return{type:me,payload:{path:[],value:Object(q.Map)()}}},Ie=function(e,t){return{type:ae,payload:{pathMethod:e,isOAS3:t}}},Pe=function(e,t,n,r){return{type:oe,payload:{pathMethod:e,paramName:t,paramIn:n,includeEmptyValue:r}}};function Ne(e){return{type:pe,payload:{pathMethod:e}}}function Me(e,t){return{type:he,payload:{path:e,value:t,key:"consumes_value"}}}function Re(e,t){return{type:he,payload:{path:e,value:t,key:"produces_value"}}}var De=function(e,t,n){return{payload:{path:e,method:t,res:n},type:ie}},Le=function(e,t,n){return{payload:{path:e,method:t,req:n},type:ue}},Be=function(e,t,n){return{payload:{path:e,method:t,req:n},type:se}},Fe=function(e){return{payload:e,type:ce}},ze=function(e){return function(t){var n,r,o=t.fn,a=t.specActions,i=t.specSelectors,u=t.getConfigs,c=t.oas3Selectors,l=e.pathName,f=e.method,h=e.operation,m=u(),g=m.requestInterceptor,y=m.responseInterceptor,b=h.toJS();h&&h.get("parameters")&&P()(n=A()(r=h.get("parameters")).call(r,(function(e){return e&&!0===e.get("allowEmptyValue")}))).call(n,(function(t){if(i.parameterInclusionSettingFor([l,f],t.get("name"),t.get("in"))){e.parameters=e.parameters||{};var n=Object(Z.B)(t,e.parameters);(!n||n&&0===n.size)&&(e.parameters[t.get("name")]="")}}));if(e.contextUrl=W()(i.url()).toString(),b&&b.operationId?e.operationId=b.operationId:b&&l&&f&&(e.operationId=o.opId(b,l,f)),i.isOAS3()){var w,x=M()(w="".concat(l,":")).call(w,f);e.server=c.selectedServer(x)||c.selectedServer();var E=c.serverVariables({server:e.server,namespace:x}).toJS(),_=c.serverVariables({server:e.server}).toJS();e.serverVariables=D()(E).length?E:_,e.requestContentType=c.requestContentType(l,f),e.responseContentType=c.responseContentType(l,f)||"*/*";var S,k=c.requestBodyValue(l,f),O=c.requestBodyInclusionSetting(l,f);if(k&&k.toJS)e.requestBody=A()(S=v()(k).call(k,(function(e){return q.Map.isMap(e)?e.get("value"):e}))).call(S,(function(e,t){return(d()(e)?0!==e.length:!Object(Z.q)(e))||O.get(t)})).toJS();else e.requestBody=k}var C=B()({},e);C=o.buildRequest(C),a.setRequest(e.pathName,e.method,C);var j=function(){var t=s()(p.a.mark((function t(n){var r,o;return p.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,g.apply(undefined,[n]);case 2:return r=t.sent,o=B()({},r),a.setMutatedRequest(e.pathName,e.method,o),t.abrupt("return",r);case 6:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();e.requestInterceptor=j,e.responseInterceptor=y;var T=z()();return o.execute(e).then((function(t){t.duration=z()()-T,a.setResponse(e.pathName,e.method,t)})).catch((function(t){"Failed to fetch"===t.message&&(t.name="",t.message='**Failed to fetch.** \n**Possible Reasons:** \n - CORS \n - Network Failure \n - URL scheme must be "http" or "https" for CORS request.'),a.setResponse(e.pathName,e.method,{error:!0,err:Object(H.serializeError)(t)})}))}},Ue=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.path,n=e.method,r=i()(e,X);return function(e){var a=e.fn.fetch,i=e.specSelectors,u=e.specActions,s=i.specJsonWithResolvedSubtrees().toJS(),c=i.operationScheme(t,n),l=i.contentTypeValues([t,n]).toJS(),f=l.requestContentType,p=l.responseContentType,h=/xml/i.test(f),d=i.parameterValues([t,n],h).toJS();return u.executeRequest(o()(o()({},r),{},{fetch:a,spec:s,pathName:t,method:n,parameters:d,requestContentType:f,scheme:c,responseContentType:p}))}};function qe(e,t){return{type:le,payload:{path:e,method:t}}}function Ve(e,t){return{type:fe,payload:{path:e,method:t}}}function We(e,t,n){return{type:ve,payload:{scheme:e,path:t,method:n}}}},function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t=e.length?{done:!0}:{done:!1,value:e[u++]}},e:function(e){throw e},f:s}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var c,l=!0,f=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){f=!0,c=e},f:function(){try{l||null==n.return||n.return()}finally{if(f)throw c}}}},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){var r=n(35),o=n(17),a=n(42),i=function(e){return a(e)?e:void 0};e.exports=function(e,t){return arguments.length<2?i(r[e])||i(o[e]):r[e]&&r[e][t]||o[e]&&o[e][t]}},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){var r=n(425),o=n(252),a=n(845);e.exports=function(e,t){if(null==e)return{};var n,i,u=a(e,t);if(r){var s=r(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(u[n]=e[n])}return u},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){"use strict";n.r(t),n.d(t,"UPDATE_SELECTED_SERVER",(function(){return r})),n.d(t,"UPDATE_REQUEST_BODY_VALUE",(function(){return o})),n.d(t,"UPDATE_REQUEST_BODY_VALUE_RETAIN_FLAG",(function(){return a})),n.d(t,"UPDATE_REQUEST_BODY_INCLUSION",(function(){return i})),n.d(t,"UPDATE_ACTIVE_EXAMPLES_MEMBER",(function(){return u})),n.d(t,"UPDATE_REQUEST_CONTENT_TYPE",(function(){return s})),n.d(t,"UPDATE_RESPONSE_CONTENT_TYPE",(function(){return c})),n.d(t,"UPDATE_SERVER_VARIABLE_VALUE",(function(){return l})),n.d(t,"SET_REQUEST_BODY_VALIDATE_ERROR",(function(){return f})),n.d(t,"CLEAR_REQUEST_BODY_VALIDATE_ERROR",(function(){return p})),n.d(t,"CLEAR_REQUEST_BODY_VALUE",(function(){return h})),n.d(t,"setSelectedServer",(function(){return d})),n.d(t,"setRequestBodyValue",(function(){return m})),n.d(t,"setRetainRequestBodyValueFlag",(function(){return v})),n.d(t,"setRequestBodyInclusion",(function(){return g})),n.d(t,"setActiveExamplesMember",(function(){return y})),n.d(t,"setRequestContentType",(function(){return b})),n.d(t,"setResponseContentType",(function(){return w})),n.d(t,"setServerVariableValue",(function(){return x})),n.d(t,"setRequestBodyValidateError",(function(){return E})),n.d(t,"clearRequestBodyValidateError",(function(){return _})),n.d(t,"initRequestBodyValidateError",(function(){return S})),n.d(t,"clearRequestBodyValue",(function(){return k}));var r="oas3_set_servers",o="oas3_set_request_body_value",a="oas3_set_request_body_retain_flag",i="oas3_set_request_body_inclusion",u="oas3_set_active_examples_member",s="oas3_set_request_content_type",c="oas3_set_response_content_type",l="oas3_set_server_variable_value",f="oas3_set_request_body_validate_error",p="oas3_clear_request_body_validate_error",h="oas3_clear_request_body_value";function d(e,t){return{type:r,payload:{selectedServerUrl:e,namespace:t}}}function m(e){var t=e.value,n=e.pathMethod;return{type:o,payload:{value:t,pathMethod:n}}}var v=function(e){var t=e.value,n=e.pathMethod;return{type:a,payload:{value:t,pathMethod:n}}};function g(e){var t=e.value,n=e.pathMethod,r=e.name;return{type:i,payload:{value:t,pathMethod:n,name:r}}}function y(e){var t=e.name,n=e.pathMethod,r=e.contextType,o=e.contextName;return{type:u,payload:{name:t,pathMethod:n,contextType:r,contextName:o}}}function b(e){var t=e.value,n=e.pathMethod;return{type:s,payload:{value:t,pathMethod:n}}}function w(e){var t=e.value,n=e.path,r=e.method;return{type:c,payload:{value:t,path:n,method:r}}}function x(e){var t=e.server,n=e.namespace,r=e.key,o=e.val;return{type:l,payload:{server:t,namespace:n,key:r,val:o}}}var E=function(e){var t=e.path,n=e.method,r=e.validationErrors;return{type:f,payload:{path:t,method:n,validationErrors:r}}},_=function(e){var t=e.path,n=e.method;return{type:p,payload:{path:t,method:n}}},S=function(e){var t=e.pathMethod;return{type:p,payload:{path:t[0],method:t[1]}}},k=function(e){var t=e.pathMethod;return{type:h,payload:{pathMethod:t}}}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){var r=n(17),o=n(114),a=r.Object;e.exports=function(e){return a(o(e))}},function(e,t,n){var r=n(17),o=n(51),a=n(333),i=n(335),u=n(33),s=n(177),c=r.TypeError,l=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p="enumerable",h="configurable",d="writable";t.f=o?i?function(e,t,n){if(u(e),t=s(t),u(n),"function"==typeof e&&"prototype"===t&&"value"in n&&d in n&&!n.writable){var r=f(e,t);r&&r.writable&&(e[t]=n.value,n={configurable:h in n?n.configurable:r.configurable,enumerable:p in n?n.enumerable:r.enumerable,writable:!1})}return l(e,t,n)}:l:function(e,t,n){if(u(e),t=s(t),u(n),a)try{return l(e,t,n)}catch(e){}if("get"in n||"set"in n)throw c("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){"use strict";n.d(t,"b",(function(){return m})),n.d(t,"e",(function(){return v})),n.d(t,"c",(function(){return y})),n.d(t,"a",(function(){return b})),n.d(t,"d",(function(){return w}));var r=n(56),o=n.n(r),a=n(19),i=n.n(a),u=n(109),s=n.n(u),c=n(2),l=n.n(c),f=n(32),p=n.n(f),h=function(e){return String.prototype.toLowerCase.call(e)},d=function(e){return e.replace(/[^\w]/gi,"_")};function m(e){var t=e.openapi;return!!t&&s()(t).call(t,"3")}function v(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=r.v2OperationIdCompatibilityMode;if(!e||"object"!==i()(e))return null;var a=(e.operationId||"").replace(/\s/g,"");return a.length?d(e.operationId):g(t,n,{v2OperationIdCompatibilityMode:o})}function g(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=r.v2OperationIdCompatibilityMode;if(o){var a,i,u=l()(a="".concat(t.toLowerCase(),"_")).call(a,e).replace(/[\s!@#$%^&*()_+=[{\]};:<>|./?,\\'""-]/g,"_");return(u=u||l()(i="".concat(e.substring(1),"_")).call(i,t)).replace(/((_){2,})/g,"_").replace(/^(_)*/g,"").replace(/([_])*$/g,"")}return l()(n="".concat(h(t))).call(n,d(e))}function y(e,t){var n;return l()(n="".concat(h(t),"-")).call(n,e)}function b(e,t){return e&&e.paths?function(e,t){return function(e,t,n){if(!e||"object"!==i()(e)||!e.paths||"object"!==i()(e.paths))return null;var r=e.paths;for(var o in r)for(var a in r[o])if("PARAMETERS"!==a.toUpperCase()){var u=r[o][a];if(u&&"object"===i()(u)){var s={spec:e,pathName:o,method:a.toUpperCase(),operation:u},c=t(s);if(n&&c)return s}}return}(e,t,!0)||null}(e,(function(e){var n=e.pathName,r=e.method,o=e.operation;if(!o||"object"!==i()(o))return!1;var a=o.operationId;return[v(o,n,r),y(n,r),a].some((function(e){return e&&e===t}))})):null}function w(e){var t=e.spec,n=t.paths,r={};if(!n||t.$$normalized)return e;for(var a in n){var u,s=n[a];if(null!=s&&p()(u=["object","function"]).call(u,i()(s))){var c=s.parameters,f=function(e){var n,u=s[e];if(null==u||!p()(n=["object","function"]).call(n,i()(u)))return"continue";var f=v(u,a,e);if(f){r[f]?r[f].push(u):r[f]=[u];var h=r[f];if(h.length>1)h.forEach((function(e,t){var n;e.__originalOperationId=e.__originalOperationId||e.operationId,e.operationId=l()(n="".concat(f)).call(n,t+1)}));else if(void 0!==u.operationId){var d=h[0];d.__originalOperationId=d.__originalOperationId||u.operationId,d.operationId=f}}if("parameters"!==e){var m=[],g={};for(var y in t)"produces"!==y&&"consumes"!==y&&"security"!==y||(g[y]=t[y],m.push(g));if(c&&(g.parameters=c,m.push(g)),m.length){var b,w=o()(m);try{for(w.s();!(b=w.n()).done;){var x=b.value;for(var E in x)if(u[E]){if("parameters"===E){var _,S=o()(x[E]);try{var k=function(){var e=_.value;u[E].some((function(t){return t.name&&t.name===e.name||t.$ref&&t.$ref===e.$ref||t.$$ref&&t.$$ref===e.$$ref||t===e}))||u[E].push(e)};for(S.s();!(_=S.n()).done;)k()}catch(e){S.e(e)}finally{S.f()}}}else u[E]=x[E]}}catch(e){w.e(e)}finally{w.f()}}}};for(var h in s)f(h)}}return t.$$normalized=!0,e}},function(e,t,n){"use strict";n.r(t),n.d(t,"NEW_THROWN_ERR",(function(){return o})),n.d(t,"NEW_THROWN_ERR_BATCH",(function(){return a})),n.d(t,"NEW_SPEC_ERR",(function(){return i})),n.d(t,"NEW_SPEC_ERR_BATCH",(function(){return u})),n.d(t,"NEW_AUTH_ERR",(function(){return s})),n.d(t,"CLEAR",(function(){return c})),n.d(t,"CLEAR_BY",(function(){return l})),n.d(t,"newThrownErr",(function(){return f})),n.d(t,"newThrownErrBatch",(function(){return p})),n.d(t,"newSpecErr",(function(){return h})),n.d(t,"newSpecErrBatch",(function(){return d})),n.d(t,"newAuthErr",(function(){return m})),n.d(t,"clear",(function(){return v})),n.d(t,"clearBy",(function(){return g}));var r=n(138),o="err_new_thrown_err",a="err_new_thrown_err_batch",i="err_new_spec_err",u="err_new_spec_err_batch",s="err_new_auth_err",c="err_clear",l="err_clear_by";function f(e){return{type:o,payload:Object(r.serializeError)(e)}}function p(e){return{type:a,payload:e}}function h(e){return{type:i,payload:e}}function d(e){return{type:u,payload:e}}function m(e){return{type:s,payload:e}}function v(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:c,payload:e}}function g(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!0};return{type:l,payload:e}}},function(e,t,n){var r=n(176),o=n(114);e.exports=function(e){return r(o(e))}},function(e,t,n){var r=n(336);e.exports=function(e){return r(e.length)}},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},function(e,t,n){var r=n(129),o=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function i(e,t,n){return o(e,t,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=i),a(o,i),i.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return o(e,t,n)},i.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=o(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},i.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o(e)},i.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t,n){e.exports=n(380)},function(e,t,n){e.exports=n(427)},function(e,t,n){var r=n(17),o=n(80),a=r.String;e.exports=function(e){if("Symbol"===o(e))throw TypeError("Cannot convert a Symbol value to a string");return a(e)}},function(e,t,n){n(83);var r=n(506),o=n(17),a=n(80),i=n(90),u=n(127),s=n(40)("toStringTag");for(var c in r){var l=o[c],f=l&&l.prototype;f&&a(f)!==s&&i(f,s,c),u[c]=u.Array}},function(e,t,n){var r=n(360),o="object"==typeof self&&self&&self.Object===Object&&self,a=r||o||Function("return this")();e.exports=a},function(e,t,n){"use strict";function r(e){return null==e}var o={isNothing:r,isObject:function(e){return"object"==typeof e&&null!==e},toArray:function(e){return Array.isArray(e)?e:r(e)?[]:[e]},repeat:function(e,t){var n,r="";for(n=0;nu&&(t=r-u+(a=" ... ").length),n-r>u&&(n=r+u-(i=" ...").length),{str:a+e.slice(t,n).replace(/\t/g,"→")+i,pos:r-t+a.length}}function c(e,t){return o.repeat(" ",t-e.length)+e}var l=function(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),"number"!=typeof t.indent&&(t.indent=1),"number"!=typeof t.linesBefore&&(t.linesBefore=3),"number"!=typeof t.linesAfter&&(t.linesAfter=2);for(var n,r=/\r?\n|\r|\0/g,a=[0],i=[],u=-1;n=r.exec(e.buffer);)i.push(n.index),a.push(n.index+n[0].length),e.position<=n.index&&u<0&&(u=a.length-2);u<0&&(u=a.length-1);var l,f,p="",h=Math.min(e.line+t.linesAfter,i.length).toString().length,d=t.maxLength-(t.indent+h+3);for(l=1;l<=t.linesBefore&&!(u-l<0);l++)f=s(e.buffer,a[u-l],i[u-l],e.position-(a[u]-a[u-l]),d),p=o.repeat(" ",t.indent)+c((e.line-l+1).toString(),h)+" | "+f.str+"\n"+p;for(f=s(e.buffer,a[u],i[u],e.position,d),p+=o.repeat(" ",t.indent)+c((e.line+1).toString(),h)+" | "+f.str+"\n",p+=o.repeat("-",t.indent+h+3+f.pos)+"^\n",l=1;l<=t.linesAfter&&!(u+l>=i.length);l++)f=s(e.buffer,a[u+l],i[u+l],e.position-(a[u]-a[u+l]),d),p+=o.repeat(" ",t.indent)+c((e.line+l+1).toString(),h)+" | "+f.str+"\n";return p.replace(/\n$/,"")},f=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],p=["scalar","sequence","mapping"];var h=function(e,t){if(t=t||{},Object.keys(t).forEach((function(t){if(-1===f.indexOf(t))throw new u('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=function(e){var t={};return null!==e&&Object.keys(e).forEach((function(n){e[n].forEach((function(e){t[String(e)]=n}))})),t}(t.styleAliases||null),-1===p.indexOf(this.kind))throw new u('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')};function d(e,t){var n=[];return e[t].forEach((function(e){var t=n.length;n.forEach((function(n,r){n.tag===e.tag&&n.kind===e.kind&&n.multi===e.multi&&(t=r)})),n[t]=e})),n}function m(e){return this.extend(e)}m.prototype.extend=function(e){var t=[],n=[];if(e instanceof h)n.push(e);else if(Array.isArray(e))n=n.concat(e);else{if(!e||!Array.isArray(e.implicit)&&!Array.isArray(e.explicit))throw new u("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");e.implicit&&(t=t.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit))}t.forEach((function(e){if(!(e instanceof h))throw new u("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(e.loadKind&&"scalar"!==e.loadKind)throw new u("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(e.multi)throw new u("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")})),n.forEach((function(e){if(!(e instanceof h))throw new u("Specified list of YAML types (or a single Type object) contains a non-Type object.")}));var r=Object.create(m.prototype);return r.implicit=(this.implicit||[]).concat(t),r.explicit=(this.explicit||[]).concat(n),r.compiledImplicit=d(r,"implicit"),r.compiledExplicit=d(r,"explicit"),r.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function r(e){e.multi?(n.multi[e.kind].push(e),n.multi.fallback.push(e)):n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),A=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var O=/^[-+]?[0-9]+e/;var C=new h("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!A.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||o.isNegativeZero(e))},represent:function(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(o.isNegativeZero(e))return"-0.0";return n=e.toString(10),O.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"}),j=w.extend({implicit:[x,E,k,C]}),T=j,I=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),P=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");var N=new h("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==I.exec(e)||null!==P.exec(e))},construct:function(e){var t,n,r,o,a,i,u,s,c=0,l=null;if(null===(t=I.exec(e))&&(t=P.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,o=+t[3],!t[4])return new Date(Date.UTC(n,r,o));if(a=+t[4],i=+t[5],u=+t[6],t[7]){for(c=t[7].slice(0,3);c.length<3;)c+="0";c=+c}return t[9]&&(l=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(l=-l)),s=new Date(Date.UTC(n,r,o,a,i,u,c)),l&&s.setTime(s.getTime()-l),s},instanceOf:Date,represent:function(e){return e.toISOString()}});var M=new h("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}}),R="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var D=new h("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,r=0,o=e.length,a=R;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8==0},construct:function(e){var t,n,r=e.replace(/[\r\n=]/g,""),o=r.length,a=R,i=0,u=[];for(t=0;t>16&255),u.push(i>>8&255),u.push(255&i)),i=i<<6|a.indexOf(r.charAt(t));return 0===(n=o%4*6)?(u.push(i>>16&255),u.push(i>>8&255),u.push(255&i)):18===n?(u.push(i>>10&255),u.push(i>>2&255)):12===n&&u.push(i>>4&255),new Uint8Array(u)},predicate:function(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)},represent:function(e){var t,n,r="",o=0,a=e.length,i=R;for(t=0;t>18&63],r+=i[o>>12&63],r+=i[o>>6&63],r+=i[63&o]),o=(o<<8)+e[t];return 0===(n=a%3)?(r+=i[o>>18&63],r+=i[o>>12&63],r+=i[o>>6&63],r+=i[63&o]):2===n?(r+=i[o>>10&63],r+=i[o>>4&63],r+=i[o<<2&63],r+=i[64]):1===n&&(r+=i[o>>2&63],r+=i[o<<4&63],r+=i[64],r+=i[64]),r}}),L=Object.prototype.hasOwnProperty,B=Object.prototype.toString;var F=new h("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,r,o,a,i=[],u=e;for(t=0,n=u.length;t>10),56320+(e-65536&1023))}for(var ae=new Array(256),ie=new Array(256),ue=0;ue<256;ue++)ae[ue]=re(ue)?1:0,ie[ue]=re(ue);function se(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||W,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function ce(e,t){var n={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return n.snippet=l(n),new u(t,n)}function le(e,t){throw ce(e,t)}function fe(e,t){e.onWarning&&e.onWarning.call(null,ce(e,t))}var pe={YAML:function(e,t,n){var r,o,a;null!==e.version&&le(e,"duplication of %YAML directive"),1!==n.length&&le(e,"YAML directive accepts exactly one argument"),null===(r=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&le(e,"ill-formed argument of the YAML directive"),o=parseInt(r[1],10),a=parseInt(r[2],10),1!==o&&le(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=a<2,1!==a&&2!==a&&fe(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var r,o;2!==n.length&&le(e,"TAG directive accepts exactly two arguments"),r=n[0],o=n[1],Y.test(r)||le(e,"ill-formed tag handle (first argument) of the TAG directive"),H.call(e.tagMap,r)&&le(e,'there is a previously declared suffix for "'+r+'" tag handle'),G.test(o)||le(e,"ill-formed tag prefix (second argument) of the TAG directive");try{o=decodeURIComponent(o)}catch(t){le(e,"tag prefix is malformed: "+o)}e.tagMap[r]=o}};function he(e,t,n,r){var o,a,i,u;if(t1&&(e.result+=o.repeat("\n",t-1))}function we(e,t){var n,r,o=e.tag,a=e.anchor,i=[],u=!1;if(-1!==e.firstTabInLine)return!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=i),r=e.input.charCodeAt(e.position);0!==r&&(-1!==e.firstTabInLine&&(e.position=e.firstTabInLine,le(e,"tab characters must not be used in indentation")),45===r)&&ee(e.input.charCodeAt(e.position+1));)if(u=!0,e.position++,ge(e,!0,-1)&&e.lineIndent<=t)i.push(null),r=e.input.charCodeAt(e.position);else if(n=e.line,_e(e,t,3,!1,!0),i.push(e.result),ge(e,!0,-1),r=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==r)le(e,"bad indentation of a sequence entry");else if(e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt)&&(g&&(i=e.line,u=e.lineStart,s=e.position),_e(e,t,4,!0,o)&&(g?m=e.result:v=e.result),g||(me(e,p,h,d,m,v,i,u,s),d=m=v=null),ge(e,!0,-1),c=e.input.charCodeAt(e.position)),(e.line===a||e.lineIndent>t)&&0!==c)le(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===a?le(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?le(e,"repeat of an indentation width identifier"):(f=t+a-1,l=!0)}if(X(i)){do{i=e.input.charCodeAt(++e.position)}while(X(i));if(35===i)do{i=e.input.charCodeAt(++e.position)}while(!Z(i)&&0!==i)}for(;0!==i;){for(ve(e),e.lineIndent=0,i=e.input.charCodeAt(e.position);(!l||e.lineIndentf&&(f=e.lineIndent),Z(i))p++;else{if(e.lineIndent0){for(o=i,a=0;o>0;o--)(i=ne(u=e.input.charCodeAt(++e.position)))>=0?a=(a<<4)+i:le(e,"expected hexadecimal character");e.result+=oe(a),e.position++}else le(e,"unknown escape sequence");n=r=e.position}else Z(u)?(he(e,n,r,!0),be(e,ge(e,!1,t)),n=r=e.position):e.position===e.lineStart&&ye(e)?le(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}le(e,"unexpected end of the stream within a double quoted scalar")}(e,h)?g=!0:!function(e){var t,n,r;if(42!==(r=e.input.charCodeAt(e.position)))return!1;for(r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!ee(r)&&!te(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&le(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),H.call(e.anchorMap,n)||le(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],ge(e,!0,-1),!0}(e)?function(e,t,n){var r,o,a,i,u,s,c,l,f=e.kind,p=e.result;if(ee(l=e.input.charCodeAt(e.position))||te(l)||35===l||38===l||42===l||33===l||124===l||62===l||39===l||34===l||37===l||64===l||96===l)return!1;if((63===l||45===l)&&(ee(r=e.input.charCodeAt(e.position+1))||n&&te(r)))return!1;for(e.kind="scalar",e.result="",o=a=e.position,i=!1;0!==l;){if(58===l){if(ee(r=e.input.charCodeAt(e.position+1))||n&&te(r))break}else if(35===l){if(ee(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&ye(e)||n&&te(l))break;if(Z(l)){if(u=e.line,s=e.lineStart,c=e.lineIndent,ge(e,!1,-1),e.lineIndent>=t){i=!0,l=e.input.charCodeAt(e.position);continue}e.position=a,e.line=u,e.lineStart=s,e.lineIndent=c;break}}i&&(he(e,o,a,!1),be(e,e.line-u),o=a=e.position,i=!1),X(l)||(a=e.position+1),l=e.input.charCodeAt(++e.position)}return he(e,o,a,!1),!!e.result||(e.kind=f,e.result=p,!1)}(e,h,1===n)&&(g=!0,null===e.tag&&(e.tag="?")):(g=!0,null===e.tag&&null===e.anchor||le(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===m&&(g=s&&we(e,d))),null===e.tag)null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);else if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&le(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),c=0,l=e.implicitTypes.length;c"),null!==e.result&&p.kind!==e.kind&&le(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+p.kind+'", not "'+e.kind+'"'),p.resolve(e.result,e.tag)?(e.result=p.construct(e.result,e.tag),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):le(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||g}function Se(e){var t,n,r,o,a=e.position,i=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);0!==(o=e.input.charCodeAt(e.position))&&(ge(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==o));){for(i=!0,o=e.input.charCodeAt(++e.position),t=e.position;0!==o&&!ee(o);)o=e.input.charCodeAt(++e.position);for(r=[],(n=e.input.slice(t,e.position)).length<1&&le(e,"directive name must not be less than one character in length");0!==o;){for(;X(o);)o=e.input.charCodeAt(++e.position);if(35===o){do{o=e.input.charCodeAt(++e.position)}while(0!==o&&!Z(o));break}if(Z(o))break;for(t=e.position;0!==o&&!ee(o);)o=e.input.charCodeAt(++e.position);r.push(e.input.slice(t,e.position))}0!==o&&ve(e),H.call(pe,n)?pe[n](e,n,r):fe(e,'unknown document directive "'+n+'"')}ge(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,ge(e,!0,-1)):i&&le(e,"directives end mark is expected"),_e(e,e.lineIndent-1,4,!1,!0),ge(e,!0,-1),e.checkLineBreaks&&J.test(e.input.slice(a,e.position))&&fe(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&ye(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,ge(e,!0,-1)):e.position=55296&&r<=56319&&t+1=56320&&n<=57343?1024*(r-55296)+n-56320+65536:r}function qe(e){return/^\n* /.test(e)}function Ve(e,t,n,r,o,a,i,u){var s,c,l=0,f=null,p=!1,h=!1,d=-1!==r,m=-1,v=Be(c=Ue(e,0))&&c!==je&&!Le(c)&&45!==c&&63!==c&&58!==c&&44!==c&&91!==c&&93!==c&&123!==c&&125!==c&&35!==c&&38!==c&&42!==c&&33!==c&&124!==c&&61!==c&&62!==c&&39!==c&&34!==c&&37!==c&&64!==c&&96!==c&&function(e){return!Le(e)&&58!==e}(Ue(e,e.length-1));if(t||i)for(s=0;s=65536?s+=2:s++){if(!Be(l=Ue(e,s)))return 5;v=v&&ze(l,f,u),f=l}else{for(s=0;s=65536?s+=2:s++){if(10===(l=Ue(e,s)))p=!0,d&&(h=h||s-m-1>r&&" "!==e[m+1],m=s);else if(!Be(l))return 5;v=v&&ze(l,f,u),f=l}h=h||d&&s-m-1>r&&" "!==e[m+1]}return p||h?n>9&&qe(e)?5:i?2===a?5:2:h?4:3:!v||i||o(e)?2===a?5:2:1}function We(e,t,n,r,o){e.dump=function(){if(0===t.length)return 2===e.quotingType?'""':"''";if(!e.noCompatMode&&(-1!==Ie.indexOf(t)||Pe.test(t)))return 2===e.quotingType?'"'+t+'"':"'"+t+"'";var a=e.indent*Math.max(1,n),i=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a),s=r||e.flowLevel>-1&&n>=e.flowLevel;switch(Ve(t,s,e.indent,i,(function(t){return function(e,t){var n,r;for(n=0,r=e.implicitTypes.length;n"+He(t,e.indent)+$e(Re(function(e,t){var n,r,o=/(\n+)([^\n]*)/g,a=(u=e.indexOf("\n"),u=-1!==u?u:e.length,o.lastIndex=u,Je(e.slice(0,u),t)),i="\n"===e[0]||" "===e[0];var u;for(;r=o.exec(e);){var s=r[1],c=r[2];n=" "===c[0],a+=s+(i||n||""===c?"":"\n")+Je(c,t),i=n}return a}(t,i),a));case 5:return'"'+function(e){for(var t,n="",r=0,o=0;o=65536?o+=2:o++)r=Ue(e,o),!(t=Te[r])&&Be(r)?(n+=e[o],r>=65536&&(n+=e[o+1])):n+=t||Ne(r);return n}(t)+'"';default:throw new u("impossible error: invalid scalar style")}}()}function He(e,t){var n=qe(e)?String(t):"",r="\n"===e[e.length-1];return n+(r&&("\n"===e[e.length-2]||"\n"===e)?"+":r?"":"-")+"\n"}function $e(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function Je(e,t){if(""===e||" "===e[0])return e;for(var n,r,o=/ [^ ]/g,a=0,i=0,u=0,s="";n=o.exec(e);)(u=n.index)-a>t&&(r=i>a?i:u,s+="\n"+e.slice(a,r),a=r+1),i=u;return s+="\n",e.length-a>t&&i>a?s+=e.slice(a,i)+"\n"+e.slice(i+1):s+=e.slice(a),s.slice(1)}function Ke(e,t,n,r){var o,a,i,u="",s=e.tag;for(o=0,a=n.length;o tag resolver accepts not "'+c+'" style');r=s.represent[c](t,c)}e.dump=r}return!0}return!1}function Ge(e,t,n,r,o,a,i){e.tag=null,e.dump=n,Ye(e,n,!1)||Ye(e,n,!0);var s,c=Oe.call(e.dump),l=r;r&&(r=e.flowLevel<0||e.flowLevel>t);var f,p,h="[object Object]"===c||"[object Array]"===c;if(h&&(p=-1!==(f=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||p||2!==e.indent&&t>0)&&(o=!1),p&&e.usedDuplicates[f])e.dump="*ref_"+f;else{if(h&&p&&!e.usedDuplicates[f]&&(e.usedDuplicates[f]=!0),"[object Object]"===c)r&&0!==Object.keys(e.dump).length?(!function(e,t,n,r){var o,a,i,s,c,l,f="",p=e.tag,h=Object.keys(n);if(!0===e.sortKeys)h.sort();else if("function"==typeof e.sortKeys)h.sort(e.sortKeys);else if(e.sortKeys)throw new u("sortKeys must be a boolean or a function");for(o=0,a=h.length;o1024)&&(e.dump&&10===e.dump.charCodeAt(0)?l+="?":l+="? "),l+=e.dump,c&&(l+=De(e,t)),Ge(e,t+1,s,!0,c)&&(e.dump&&10===e.dump.charCodeAt(0)?l+=":":l+=": ",f+=l+=e.dump));e.tag=p,e.dump=f||"{}"}(e,t,e.dump,o),p&&(e.dump="&ref_"+f+e.dump)):(!function(e,t,n){var r,o,a,i,u,s="",c=e.tag,l=Object.keys(n);for(r=0,o=l.length;r1024&&(u+="? "),u+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Ge(e,t,i,!1,!1)&&(s+=u+=e.dump));e.tag=c,e.dump="{"+s+"}"}(e,t,e.dump),p&&(e.dump="&ref_"+f+" "+e.dump));else if("[object Array]"===c)r&&0!==e.dump.length?(e.noArrayIndent&&!i&&t>0?Ke(e,t-1,e.dump,o):Ke(e,t,e.dump,o),p&&(e.dump="&ref_"+f+e.dump)):(!function(e,t,n){var r,o,a,i="",u=e.tag;for(r=0,o=n.length;r",e.dump=s+" "+e.dump)}return!0}function Qe(e,t){var n,r,o=[],a=[];for(Ze(e,o,a),n=0,r=a.length;nS;S++)if((h||S in x)&&(b=E(y=x[S],S,w),e))if(t)A[S]=b;else if(b)switch(e){case 3:return!0;case 5:return y;case 6:return S;case 2:c(A,y)}else switch(e){case 4:return!1;case 7:c(A,y)}return f?-1:o||l?l:A}};e.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterReject:l(7)}},function(e,t,n){"use strict";var r=n(66),o=n(153),a=n(127),i=n(81),u=n(63).f,s=n(231),c=n(38),l=n(51),f="Array Iterator",p=i.set,h=i.getterFor(f);e.exports=s(Array,"Array",(function(e,t){p(this,{type:f,target:r(e),index:0,kind:t})}),(function(){var e=h(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:t[r],done:!1}:{value:[r,t[r]],done:!1}}),"values");var d=a.Arguments=a.Array;if(o("keys"),o("values"),o("entries"),!c&&l&&"values"!==d.name)try{u(d,"name",{value:"values"})}catch(e){}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){var r=n(159);e.exports=r},function(e,t,n){e.exports=n(623)},function(e,t,n){"use strict";var r=n(952),o=n(953);function a(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=b,t.resolve=function(e,t){return b(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?b(e,!1,!0).resolveObject(t):t},t.format=function(e){o.isString(e)&&(e=b(e));return e instanceof a?e.format():a.prototype.format.call(e)},t.Url=a;var i=/^([a-z0-9.+-]+:)/i,u=/:[0-9]*$/,s=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),l=["'"].concat(c),f=["%","/","?",";","#"].concat(l),p=["/","?","#"],h=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},v={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},y=n(954);function b(e,t,n){if(e&&o.isObject(e)&&e instanceof a)return e;var r=new a;return r.parse(e,t,n),r}a.prototype.parse=function(e,t,n){if(!o.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),u=-1!==a&&a127?N+="x":N+=P[M];if(!N.match(h)){var D=T.slice(0,O),L=T.slice(O+1),B=P.match(d);B&&(D.push(B[1]),L.unshift(B[2])),L.length&&(b="/"+L.join(".")+b),this.hostname=D.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),j||(this.hostname=r.toASCII(this.hostname));var F=this.port?":"+this.port:"",z=this.hostname||"";this.host=z+F,this.href+=this.host,j&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==b[0]&&(b="/"+b))}if(!m[E])for(O=0,I=l.length;O0)&&n.host.split("@"))&&(n.auth=j.shift(),n.host=n.hostname=j.shift());return n.search=e.search,n.query=e.query,o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!_.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var k=_.slice(-1)[0],A=(n.host||e.host||_.length>1)&&("."===k||".."===k)||""===k,O=0,C=_.length;C>=0;C--)"."===(k=_[C])?_.splice(C,1):".."===k?(_.splice(C,1),O++):O&&(_.splice(C,1),O--);if(!x&&!E)for(;O--;O)_.unshift("..");!x||""===_[0]||_[0]&&"/"===_[0].charAt(0)||_.unshift(""),A&&"/"!==_.join("/").substr(-1)&&_.push("");var j,T=""===_[0]||_[0]&&"/"===_[0].charAt(0);S&&(n.hostname=n.host=T?"":_.length?_.shift():"",(j=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=j.shift(),n.host=n.hostname=j.shift()));return(x=x||n.host&&_.length)&&!T&&_.unshift(""),_.length?n.pathname=_.join("/"):(n.pathname=null,n.path=null),o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},a.prototype.parseHost=function(){var e=this.host,t=u.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,n){"use strict";n.r(t),n.d(t,"SHOW_AUTH_POPUP",(function(){return h})),n.d(t,"AUTHORIZE",(function(){return d})),n.d(t,"LOGOUT",(function(){return m})),n.d(t,"PRE_AUTHORIZE_OAUTH2",(function(){return v})),n.d(t,"AUTHORIZE_OAUTH2",(function(){return g})),n.d(t,"VALIDATE",(function(){return y})),n.d(t,"CONFIGURE_AUTH",(function(){return b})),n.d(t,"RESTORE_AUTHORIZATION",(function(){return w})),n.d(t,"showDefinitions",(function(){return x})),n.d(t,"authorize",(function(){return E})),n.d(t,"authorizeWithPersistOption",(function(){return _})),n.d(t,"logout",(function(){return S})),n.d(t,"logoutWithPersistOption",(function(){return k})),n.d(t,"preAuthorizeImplicit",(function(){return A})),n.d(t,"authorizeOauth2",(function(){return O})),n.d(t,"authorizeOauth2WithPersistOption",(function(){return C})),n.d(t,"authorizePassword",(function(){return j})),n.d(t,"authorizeApplication",(function(){return T})),n.d(t,"authorizeAccessCodeWithFormParams",(function(){return I})),n.d(t,"authorizeAccessCodeWithBasicAuthentication",(function(){return P})),n.d(t,"authorizeRequest",(function(){return N})),n.d(t,"configureAuth",(function(){return M})),n.d(t,"restoreAuthorization",(function(){return R})),n.d(t,"persistAuthorizationIfNeeded",(function(){return D}));var r=n(19),o=n.n(r),a=n(30),i=n.n(a),u=n(24),s=n.n(u),c=n(92),l=n.n(c),f=n(28),p=n(7),h="show_popup",d="authorize",m="logout",v="pre_authorize_oauth2",g="authorize_oauth2",y="validate",b="configure_auth",w="restore_authorization";function x(e){return{type:h,payload:e}}function E(e){return{type:d,payload:e}}var _=function(e){return function(t){var n=t.authActions;n.authorize(e),n.persistAuthorizationIfNeeded()}};function S(e){return{type:m,payload:e}}var k=function(e){return function(t){var n=t.authActions;n.logout(e),n.persistAuthorizationIfNeeded()}},A=function(e){return function(t){var n=t.authActions,r=t.errActions,o=e.auth,a=e.token,u=e.isValid,s=o.schema,c=o.name,l=s.get("flow");delete f.a.swaggerUIRedirectOauth2,"accessCode"===l||u||r.newAuthErr({authId:c,source:"auth",level:"warning",message:"Authorization may be unsafe, passed state was changed in server Passed state wasn't returned from auth server"}),a.error?r.newAuthErr({authId:c,source:"auth",level:"error",message:i()(a)}):n.authorizeOauth2WithPersistOption({auth:o,token:a})}};function O(e){return{type:g,payload:e}}var C=function(e){return function(t){var n=t.authActions;n.authorizeOauth2(e),n.persistAuthorizationIfNeeded()}},j=function(e){return function(t){var n=t.authActions,r=e.schema,o=e.name,a=e.username,i=e.password,u=e.passwordType,c=e.clientId,l=e.clientSecret,f={grant_type:"password",scope:e.scopes.join(" "),username:a,password:i},h={};switch(u){case"request-body":!function(e,t,n){t&&s()(e,{client_id:t});n&&s()(e,{client_secret:n})}(f,c,l);break;case"basic":h.Authorization="Basic "+Object(p.a)(c+":"+l);break;default:console.warn("Warning: invalid passwordType ".concat(u," was passed, not including client id and secret"))}return n.authorizeRequest({body:Object(p.b)(f),url:r.get("tokenUrl"),name:o,headers:h,query:{},auth:e})}};var T=function(e){return function(t){var n=t.authActions,r=e.schema,o=e.scopes,a=e.name,i=e.clientId,u=e.clientSecret,s={Authorization:"Basic "+Object(p.a)(i+":"+u)},c={grant_type:"client_credentials",scope:o.join(" ")};return n.authorizeRequest({body:Object(p.b)(c),name:a,url:r.get("tokenUrl"),auth:e,headers:s})}},I=function(e){var t=e.auth,n=e.redirectUrl;return function(e){var r=e.authActions,o=t.schema,a=t.name,i=t.clientId,u=t.clientSecret,s=t.codeVerifier,c={grant_type:"authorization_code",code:t.code,client_id:i,client_secret:u,redirect_uri:n,code_verifier:s};return r.authorizeRequest({body:Object(p.b)(c),name:a,url:o.get("tokenUrl"),auth:t})}},P=function(e){var t=e.auth,n=e.redirectUrl;return function(e){var r=e.authActions,o=t.schema,a=t.name,i=t.clientId,u=t.clientSecret,s=t.codeVerifier,c={Authorization:"Basic "+Object(p.a)(i+":"+u)},l={grant_type:"authorization_code",code:t.code,client_id:i,redirect_uri:n,code_verifier:s};return r.authorizeRequest({body:Object(p.b)(l),name:a,url:o.get("tokenUrl"),auth:t,headers:c})}},N=function(e){return function(t){var n,r=t.fn,a=t.getConfigs,u=t.authActions,c=t.errActions,f=t.oas3Selectors,p=t.specSelectors,h=t.authSelectors,d=e.body,m=e.query,v=void 0===m?{}:m,g=e.headers,y=void 0===g?{}:g,b=e.name,w=e.url,x=e.auth,E=(h.getConfigs()||{}).additionalQueryStringParams;if(p.isOAS3()){var _=f.serverEffectiveValue(f.selectedServer());n=l()(w,_,!0)}else n=l()(w,p.url(),!0);"object"===o()(E)&&(n.query=s()({},n.query,E));var S=n.toString(),k=s()({Accept:"application/json, text/plain, */*","Content-Type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},y);r.fetch({url:S,method:"post",headers:k,query:v,body:d,requestInterceptor:a().requestInterceptor,responseInterceptor:a().responseInterceptor}).then((function(e){var t=JSON.parse(e.data),n=t&&(t.error||""),r=t&&(t.parseError||"");e.ok?n||r?c.newAuthErr({authId:b,level:"error",source:"auth",message:i()(t)}):u.authorizeOauth2WithPersistOption({auth:x,token:t}):c.newAuthErr({authId:b,level:"error",source:"auth",message:e.statusText})})).catch((function(e){var t=new Error(e).message;if(e.response&&e.response.data){var n=e.response.data;try{var r="string"==typeof n?JSON.parse(n):n;r.error&&(t+=", error: ".concat(r.error)),r.error_description&&(t+=", description: ".concat(r.error_description))}catch(e){}}c.newAuthErr({authId:b,level:"error",source:"auth",message:t})}))}};function M(e){return{type:b,payload:e}}function R(e){return{type:w,payload:e}}var D=function(){return function(e){var t=e.authSelectors;if((0,e.getConfigs)().persistAuthorization){var n=t.authorized();localStorage.setItem("authorized",i()(n.toJS()))}}}},function(e,t,n){var r=n(926);e.exports=function(e){for(var t=1;t0&&"/"!==t[0]}));function Se(e,t,n){var r;t=t||[];var o=xe.apply(void 0,s()(r=[e]).call(r,i()(t))).get("parameters",Object(I.List)());return E()(o).call(o,(function(e,t){var r=n&&"body"===t.get("in")?t.get("value_xml"):t.get("value");return e.set(Object(T.A)(t,{allowHashes:!1}),r)}),Object(I.fromJS)({}))}function ke(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(I.List.isList(e))return A()(e).call(e,(function(e){return I.Map.isMap(e)&&e.get("in")===t}))}function Ae(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(I.List.isList(e))return A()(e).call(e,(function(e){return I.Map.isMap(e)&&e.get("type")===t}))}function Oe(e,t){var n,r;t=t||[];var o=q(e).getIn(s()(n=["paths"]).call(n,i()(t)),Object(I.fromJS)({})),a=e.getIn(s()(r=["meta","paths"]).call(r,i()(t)),Object(I.fromJS)({})),u=Ce(e,t),c=o.get("parameters")||new I.List,l=a.get("consumes_value")?a.get("consumes_value"):Ae(c,"file")?"multipart/form-data":Ae(c,"formData")?"application/x-www-form-urlencoded":void 0;return Object(I.fromJS)({requestContentType:l,responseContentType:u})}function Ce(e,t){var n,r;t=t||[];var o=q(e).getIn(s()(n=["paths"]).call(n,i()(t)),null);if(null!==o){var a=e.getIn(s()(r=["meta","paths"]).call(r,i()(t),["produces_value"]),null),u=o.getIn(["produces",0],null);return a||u||"application/json"}}function je(e,t){var n;t=t||[];var r=q(e),a=r.getIn(s()(n=["paths"]).call(n,i()(t)),null);if(null!==a){var u=t,c=o()(u,1)[0],l=a.get("produces",null),f=r.getIn(["paths",c,"produces"],null),p=r.getIn(["produces"],null);return l||f||p}}function Te(e,t){var n;t=t||[];var r=q(e),a=r.getIn(s()(n=["paths"]).call(n,i()(t)),null);if(null!==a){var u=t,c=o()(u,1)[0],l=a.get("consumes",null),f=r.getIn(["paths",c,"consumes"],null),p=r.getIn(["consumes"],null);return l||f||p}}var Ie=function(e,t,n){var r=e.get("url").match(/^([a-z][a-z0-9+\-.]*):/),o=C()(r)?r[1]:null;return e.getIn(["scheme",t,n])||e.getIn(["scheme","_defaultScheme"])||o||""},Pe=function(e,t,n){var r;return d()(r=["http","https"]).call(r,Ie(e,t,n))>-1},Ne=function(e,t){var n;t=t||[];var r=e.getIn(s()(n=["meta","paths"]).call(n,i()(t),["parameters"]),Object(I.fromJS)([])),o=!0;return p()(r).call(r,(function(e){var t=e.get("errors");t&&t.count()&&(o=!1)})),o},Me=function(e,t){var n,r,o={requestBody:!1,requestContentType:{}},a=e.getIn(s()(n=["resolvedSubtrees","paths"]).call(n,i()(t),["requestBody"]),Object(I.fromJS)([]));return a.size<1||(a.getIn(["required"])&&(o.requestBody=a.getIn(["required"])),p()(r=a.getIn(["content"]).entrySeq()).call(r,(function(e){var t=e[0];if(e[1].getIn(["schema","required"])){var n=e[1].getIn(["schema","required"]).toJS();o.requestContentType[t]=n}}))),o},Re=function(e,t,n,r){var o;if((n||r)&&n===r)return!0;var a=e.getIn(s()(o=["resolvedSubtrees","paths"]).call(o,i()(t),["requestBody","content"]),Object(I.fromJS)([]));if(a.size<2||!n||!r)return!1;var u=a.getIn([n,"schema","properties"],Object(I.fromJS)([])),c=a.getIn([r,"schema","properties"],Object(I.fromJS)([]));return!!u.equals(c)};function De(e){return I.Map.isMap(e)?e:new I.Map}},function(e,t,n){"use strict";(function(t){var r=n(874),o=n(875),a=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,i=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,u=/^[a-zA-Z]:/,s=new RegExp("^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+");function c(e){return(e||"").toString().replace(s,"")}var l=[["#","hash"],["?","query"],function(e,t){return h(t.protocol)?e.replace(/\\/g,"/"):e},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d+)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],f={hash:1,query:1};function p(e){var n,r=("undefined"!=typeof window?window:void 0!==t?t:"undefined"!=typeof self?self:{}).location||{},o={},i=typeof(e=e||r);if("blob:"===e.protocol)o=new m(unescape(e.pathname),{});else if("string"===i)for(n in o=new m(e,{}),f)delete o[n];else if("object"===i){for(n in e)n in f||(o[n]=e[n]);void 0===o.slashes&&(o.slashes=a.test(e.href))}return o}function h(e){return"file:"===e||"ftp:"===e||"http:"===e||"https:"===e||"ws:"===e||"wss:"===e}function d(e,t){e=c(e),t=t||{};var n,r=i.exec(e),o=r[1]?r[1].toLowerCase():"",a=!!r[2],u=!!r[3],s=0;return a?u?(n=r[2]+r[3]+r[4],s=r[2].length+r[3].length):(n=r[2]+r[4],s=r[2].length):u?(n=r[3]+r[4],s=r[3].length):n=r[4],"file:"===o?s>=2&&(n=n.slice(2)):h(o)?n=r[4]:o?a&&(n=n.slice(2)):s>=2&&h(t.protocol)&&(n=r[4]),{protocol:o,slashes:a||h(o),slashesCount:s,rest:n}}function m(e,t,n){if(e=c(e),!(this instanceof m))return new m(e,t,n);var a,i,s,f,v,g,y=l.slice(),b=typeof t,w=this,x=0;for("object"!==b&&"string"!==b&&(n=t,t=null),n&&"function"!=typeof n&&(n=o.parse),a=!(i=d(e||"",t=p(t))).protocol&&!i.slashes,w.slashes=i.slashes||a&&t.slashes,w.protocol=i.protocol||t.protocol||"",e=i.rest,("file:"===i.protocol&&(2!==i.slashesCount||u.test(e))||!i.slashes&&(i.protocol||i.slashesCount<2||!h(w.protocol)))&&(y[3]=[/(.*)/,"pathname"]);x=4?[t[0],t[1],t[2],t[3],"".concat(t[0],".").concat(t[1]),"".concat(t[0],".").concat(t[2]),"".concat(t[0],".").concat(t[3]),"".concat(t[1],".").concat(t[0]),"".concat(t[1],".").concat(t[2]),"".concat(t[1],".").concat(t[3]),"".concat(t[2],".").concat(t[0]),"".concat(t[2],".").concat(t[1]),"".concat(t[2],".").concat(t[3]),"".concat(t[3],".").concat(t[0]),"".concat(t[3],".").concat(t[1]),"".concat(t[3],".").concat(t[2]),"".concat(t[0],".").concat(t[1],".").concat(t[2]),"".concat(t[0],".").concat(t[1],".").concat(t[3]),"".concat(t[0],".").concat(t[2],".").concat(t[1]),"".concat(t[0],".").concat(t[2],".").concat(t[3]),"".concat(t[0],".").concat(t[3],".").concat(t[1]),"".concat(t[0],".").concat(t[3],".").concat(t[2]),"".concat(t[1],".").concat(t[0],".").concat(t[2]),"".concat(t[1],".").concat(t[0],".").concat(t[3]),"".concat(t[1],".").concat(t[2],".").concat(t[0]),"".concat(t[1],".").concat(t[2],".").concat(t[3]),"".concat(t[1],".").concat(t[3],".").concat(t[0]),"".concat(t[1],".").concat(t[3],".").concat(t[2]),"".concat(t[2],".").concat(t[0],".").concat(t[1]),"".concat(t[2],".").concat(t[0],".").concat(t[3]),"".concat(t[2],".").concat(t[1],".").concat(t[0]),"".concat(t[2],".").concat(t[1],".").concat(t[3]),"".concat(t[2],".").concat(t[3],".").concat(t[0]),"".concat(t[2],".").concat(t[3],".").concat(t[1]),"".concat(t[3],".").concat(t[0],".").concat(t[1]),"".concat(t[3],".").concat(t[0],".").concat(t[2]),"".concat(t[3],".").concat(t[1],".").concat(t[0]),"".concat(t[3],".").concat(t[1],".").concat(t[2]),"".concat(t[3],".").concat(t[2],".").concat(t[0]),"".concat(t[3],".").concat(t[2],".").concat(t[1]),"".concat(t[0],".").concat(t[1],".").concat(t[2],".").concat(t[3]),"".concat(t[0],".").concat(t[1],".").concat(t[3],".").concat(t[2]),"".concat(t[0],".").concat(t[2],".").concat(t[1],".").concat(t[3]),"".concat(t[0],".").concat(t[2],".").concat(t[3],".").concat(t[1]),"".concat(t[0],".").concat(t[3],".").concat(t[1],".").concat(t[2]),"".concat(t[0],".").concat(t[3],".").concat(t[2],".").concat(t[1]),"".concat(t[1],".").concat(t[0],".").concat(t[2],".").concat(t[3]),"".concat(t[1],".").concat(t[0],".").concat(t[3],".").concat(t[2]),"".concat(t[1],".").concat(t[2],".").concat(t[0],".").concat(t[3]),"".concat(t[1],".").concat(t[2],".").concat(t[3],".").concat(t[0]),"".concat(t[1],".").concat(t[3],".").concat(t[0],".").concat(t[2]),"".concat(t[1],".").concat(t[3],".").concat(t[2],".").concat(t[0]),"".concat(t[2],".").concat(t[0],".").concat(t[1],".").concat(t[3]),"".concat(t[2],".").concat(t[0],".").concat(t[3],".").concat(t[1]),"".concat(t[2],".").concat(t[1],".").concat(t[0],".").concat(t[3]),"".concat(t[2],".").concat(t[1],".").concat(t[3],".").concat(t[0]),"".concat(t[2],".").concat(t[3],".").concat(t[0],".").concat(t[1]),"".concat(t[2],".").concat(t[3],".").concat(t[1],".").concat(t[0]),"".concat(t[3],".").concat(t[0],".").concat(t[1],".").concat(t[2]),"".concat(t[3],".").concat(t[0],".").concat(t[2],".").concat(t[1]),"".concat(t[3],".").concat(t[1],".").concat(t[0],".").concat(t[2]),"".concat(t[3],".").concat(t[1],".").concat(t[2],".").concat(t[0]),"".concat(t[3],".").concat(t[2],".").concat(t[0],".").concat(t[1]),"".concat(t[3],".").concat(t[2],".").concat(t[1],".").concat(t[0])]:void 0),g[r]}function b(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=e.filter((function(e){return"token"!==e})),o=y(r);return o.reduce((function(e,t){return p()({},e,n[t])}),t)}function w(e){return e.join(" ")}function x(e){var t=e.node,n=e.stylesheet,r=e.style,o=void 0===r?{}:r,a=e.useInlineStyles,i=e.key,u=t.properties,s=t.type,c=t.tagName,l=t.value;if("text"===s)return l;if(c){var f,h=function(e,t){var n=0;return function(r){return n+=1,r.map((function(r,o){return x({node:r,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(o)})}))}}(n,a);if(a){var m=Object.keys(n).reduce((function(e,t){return t.split(".").forEach((function(t){e.includes(t)||e.push(t)})),e}),[]),g=u.className&&u.className.includes("token")?["token"]:[],y=u.className&&g.concat(u.className.filter((function(e){return!m.includes(e)})));f=p()({},u,{className:w(y)||void 0,style:b(u.className,Object.assign({},u.style,o),n)})}else f=p()({},u,{className:w(u.className)});var E=h(t.children);return d.a.createElement(c,v()({key:i},f),E)}}var E=/\n/g;function _(e){var t=e.codeString,n=e.codeStyle,r=e.containerStyle,o=void 0===r?{float:"left",paddingRight:"10px"}:r,a=e.numberStyle,i=void 0===a?{}:a,u=e.startingLineNumber;return d.a.createElement("code",{style:Object.assign({},n,o)},function(e){var t=e.lines,n=e.startingLineNumber,r=e.style;return t.map((function(e,t){var o=t+n;return d.a.createElement("span",{key:"line-".concat(t),className:"react-syntax-highlighter-line-number",style:"function"==typeof r?r(o):r},"".concat(o,"\n"))}))}({lines:t.replace(/\n$/,"").split("\n"),style:i,startingLineNumber:u}))}function S(e,t){return{type:"element",tagName:"span",properties:{key:"line-number--".concat(e),className:["comment","linenumber","react-syntax-highlighter-line-number"],style:t},children:[{type:"text",value:e}]}}function k(e,t,n){var r,o={display:"inline-block",minWidth:(r=n,"".concat(r.toString().length,".25em")),paddingRight:"1em",textAlign:"right",userSelect:"none"},a="function"==typeof e?e(t):e;return p()({},o,a)}function A(e){var t=e.children,n=e.lineNumber,r=e.lineNumberStyle,o=e.largestLineNumber,a=e.showInlineLineNumbers,i=e.lineProps,u=void 0===i?{}:i,s=e.className,c=void 0===s?[]:s,l=e.showLineNumbers,f=e.wrapLongLines,h="function"==typeof u?u(n):u;if(h.className=c,n&&a){var d=k(r,n,o);t.unshift(S(n,d))}return f&l&&(h.style=p()({},h.style,{display:"flex"})),{type:"element",tagName:"span",properties:h,children:t}}function O(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=0;r2&&void 0!==arguments[2]?arguments[2]:[];return A({children:e,lineNumber:t,lineNumberStyle:u,largestLineNumber:i,showInlineLineNumbers:o,lineProps:n,className:a,showLineNumbers:r,wrapLongLines:s})}function m(e,t){if(r&&t&&o){var n=k(u,t,i);e.unshift(S(t,n))}return e}function v(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return t||r.length>0?d(e,n,r):m(e,n)}for(var g=function(){var e=l[h],t=e.children[0].value;if(t.match(E)){var n=t.split("\n");n.forEach((function(t,o){var i=r&&f.length+a,u={type:"text",value:"".concat(t,"\n")};if(0===o){var s=v(l.slice(p+1,h).concat(A({children:[u],className:e.properties.className})),i);f.push(s)}else if(o===n.length-1){if(l[h+1]&&l[h+1].children&&l[h+1].children[0]){var c=A({children:[{type:"text",value:"".concat(t)}],className:e.properties.className});l.splice(h+1,0,c)}else{var d=v([u],i,e.properties.className);f.push(d)}}else{var m=v([u],i,e.properties.className);f.push(m)}})),p=h}h++};h .hljs-title":{color:"#88C0D0"},"hljs-keyword":{color:"#81A1C1"},"hljs-literal":{color:"#81A1C1"},"hljs-symbol":{color:"#81A1C1"},"hljs-number":{color:"#B48EAD"},"hljs-regexp":{color:"#EBCB8B"},"hljs-string":{color:"#A3BE8C"},"hljs-title":{color:"#8FBCBB"},"hljs-params":{color:"#D8DEE9"},"hljs-bullet":{color:"#81A1C1"},"hljs-code":{color:"#8FBCBB"},"hljs-emphasis":{fontStyle:"italic"},"hljs-formula":{color:"#8FBCBB"},"hljs-strong":{fontWeight:"bold"},"hljs-link:hover":{textDecoration:"underline"},"hljs-quote":{color:"#4C566A"},"hljs-comment":{color:"#4C566A"},"hljs-doctag":{color:"#8FBCBB"},"hljs-meta":{color:"#5E81AC"},"hljs-meta-keyword":{color:"#5E81AC"},"hljs-meta-string":{color:"#A3BE8C"},"hljs-attr":{color:"#8FBCBB"},"hljs-attribute":{color:"#D8DEE9"},"hljs-builtin-name":{color:"#81A1C1"},"hljs-name":{color:"#81A1C1"},"hljs-section":{color:"#88C0D0"},"hljs-tag":{color:"#81A1C1"},"hljs-variable":{color:"#D8DEE9"},"hljs-template-variable":{color:"#D8DEE9"},"hljs-template-tag":{color:"#5E81AC"},"abnf .hljs-attribute":{color:"#88C0D0"},"abnf .hljs-symbol":{color:"#EBCB8B"},"apache .hljs-attribute":{color:"#88C0D0"},"apache .hljs-section":{color:"#81A1C1"},"arduino .hljs-built_in":{color:"#88C0D0"},"aspectj .hljs-meta":{color:"#D08770"},"aspectj > .hljs-title":{color:"#88C0D0"},"bnf .hljs-attribute":{color:"#8FBCBB"},"clojure .hljs-name":{color:"#88C0D0"},"clojure .hljs-symbol":{color:"#EBCB8B"},"coq .hljs-built_in":{color:"#88C0D0"},"cpp .hljs-meta-string":{color:"#8FBCBB"},"css .hljs-built_in":{color:"#88C0D0"},"css .hljs-keyword":{color:"#D08770"},"diff .hljs-meta":{color:"#8FBCBB"},"ebnf .hljs-attribute":{color:"#8FBCBB"},"glsl .hljs-built_in":{color:"#88C0D0"},"groovy .hljs-meta:not(:first-child)":{color:"#D08770"},"haxe .hljs-meta":{color:"#D08770"},"java .hljs-meta":{color:"#D08770"},"ldif .hljs-attribute":{color:"#8FBCBB"},"lisp .hljs-name":{color:"#88C0D0"},"lua .hljs-built_in":{color:"#88C0D0"},"moonscript .hljs-built_in":{color:"#88C0D0"},"nginx .hljs-attribute":{color:"#88C0D0"},"nginx .hljs-section":{color:"#5E81AC"},"pf .hljs-built_in":{color:"#88C0D0"},"processing .hljs-built_in":{color:"#88C0D0"},"scss .hljs-keyword":{color:"#81A1C1"},"stylus .hljs-keyword":{color:"#81A1C1"},"swift .hljs-meta":{color:"#D08770"},"vim .hljs-built_in":{color:"#88C0D0",fontStyle:"italic"},"yaml .hljs-meta":{color:"#D08770"}},obsidian:{hljs:{display:"block",overflowX:"auto",padding:"0.5em",background:"#282b2e",color:"#e0e2e4"},"hljs-keyword":{color:"#93c763",fontWeight:"bold"},"hljs-selector-tag":{color:"#93c763",fontWeight:"bold"},"hljs-literal":{color:"#93c763",fontWeight:"bold"},"hljs-selector-id":{color:"#93c763"},"hljs-number":{color:"#ffcd22"},"hljs-attribute":{color:"#668bb0"},"hljs-code":{color:"white"},"hljs-class .hljs-title":{color:"white"},"hljs-section":{color:"white",fontWeight:"bold"},"hljs-regexp":{color:"#d39745"},"hljs-link":{color:"#d39745"},"hljs-meta":{color:"#557182"},"hljs-tag":{color:"#8cbbad"},"hljs-name":{color:"#8cbbad",fontWeight:"bold"},"hljs-bullet":{color:"#8cbbad"},"hljs-subst":{color:"#8cbbad"},"hljs-emphasis":{color:"#8cbbad"},"hljs-type":{color:"#8cbbad",fontWeight:"bold"},"hljs-built_in":{color:"#8cbbad"},"hljs-selector-attr":{color:"#8cbbad"},"hljs-selector-pseudo":{color:"#8cbbad"},"hljs-addition":{color:"#8cbbad"},"hljs-variable":{color:"#8cbbad"},"hljs-template-tag":{color:"#8cbbad"},"hljs-template-variable":{color:"#8cbbad"},"hljs-string":{color:"#ec7600"},"hljs-symbol":{color:"#ec7600"},"hljs-comment":{color:"#818e96"},"hljs-quote":{color:"#818e96"},"hljs-deletion":{color:"#818e96"},"hljs-selector-class":{color:"#A082BD"},"hljs-doctag":{fontWeight:"bold"},"hljs-title":{fontWeight:"bold"},"hljs-strong":{fontWeight:"bold"}},"tomorrow-night":{"hljs-comment":{color:"#969896"},"hljs-quote":{color:"#969896"},"hljs-variable":{color:"#cc6666"},"hljs-template-variable":{color:"#cc6666"},"hljs-tag":{color:"#cc6666"},"hljs-name":{color:"#cc6666"},"hljs-selector-id":{color:"#cc6666"},"hljs-selector-class":{color:"#cc6666"},"hljs-regexp":{color:"#cc6666"},"hljs-deletion":{color:"#cc6666"},"hljs-number":{color:"#de935f"},"hljs-built_in":{color:"#de935f"},"hljs-builtin-name":{color:"#de935f"},"hljs-literal":{color:"#de935f"},"hljs-type":{color:"#de935f"},"hljs-params":{color:"#de935f"},"hljs-meta":{color:"#de935f"},"hljs-link":{color:"#de935f"},"hljs-attribute":{color:"#f0c674"},"hljs-string":{color:"#b5bd68"},"hljs-symbol":{color:"#b5bd68"},"hljs-bullet":{color:"#b5bd68"},"hljs-addition":{color:"#b5bd68"},"hljs-title":{color:"#81a2be"},"hljs-section":{color:"#81a2be"},"hljs-keyword":{color:"#b294bb"},"hljs-selector-tag":{color:"#b294bb"},hljs:{display:"block",overflowX:"auto",background:"#1d1f21",color:"#c5c8c6",padding:"0.5em"},"hljs-emphasis":{fontStyle:"italic"},"hljs-strong":{fontWeight:"bold"}}},X=o()(Z),ee=function(e){return i()(X).call(X,e)?Z[e]:(console.warn("Request style '".concat(e,"' is not available, returning default instead")),Q)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.File=t.Blob=t.FormData=void 0;const r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:window;t.FormData=r.FormData,t.Blob=r.Blob,t.File=r.File},function(e,t,n){var r=n(147),o=Function.prototype,a=o.apply,i=o.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?i.bind(a):function(){return i.apply(a,arguments)})},function(e,t,n){var r=n(51),o=n(37),a=n(175),i=n(98),u=n(66),s=n(177),c=n(47),l=n(333),f=Object.getOwnPropertyDescriptor;t.f=r?f:function(e,t){if(e=u(e),t=s(t),l)try{return f(e,t)}catch(e){}if(c(e,t))return i(!o(a.f,e,t),e[t])}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(57);e.exports=r("navigator","userAgent")||""},function(e,t){},function(e,t,n){var r,o=n(33),a=n(181),i=n(227),u=n(152),s=n(339),c=n(222),l=n(182),f=l("IE_PROTO"),p=function(){},h=function(e){return"