git.iko.soy/typeable/servant-swagger-ui
on master help sign in
118 files changed+62591−29791
since splitsnapshots
unifiedsplit
.gitignore+3−1 .stylish-haskell.yaml+5−66 .travis.meta.yml−11 .travis.yml+194−60 README.md+16−2 cabal.haskell-ci+17 cabal.project+6 example/Main.hs−101 hackage-docs.sh−78 index.html.tmpl−119 package.yaml−49 screenshot.png servant-swagger-ui-core/Changelog.md+7 LICENSE → servant-swagger-ui-core/LICENSE servant-swagger-ui-core/servant-swagger-ui-core.cabal+54 servant-swagger-ui-core/src/Servant/Swagger/UI/Core.hs+120 servant-swagger-ui-example/LICENSE+30 Setup.hs → servant-swagger-ui-example/Setup.hs−1 servant-swagger-ui-example/servant-swagger-ui-example.cabal+49 servant-swagger-ui-example/src/Main.hs+213 servant-swagger-ui-jensoleg/LICENSE+45 servant-swagger-ui-jensoleg/jensoleg-dist/css/api-explorer.css+2426 servant-swagger-ui-jensoleg/jensoleg-dist/css/index.css+17432 swagger-dist-2.1.4/css/print.css → servant-swagger-ui-jensoleg/jensoleg-dist/css/print.css+19−39 swagger-dist-2.1.4/css/reset.css → servant-swagger-ui-jensoleg/jensoleg-dist/css/reset.css servant-swagger-ui-jensoleg/jensoleg-dist/css/screen.css+9 servant-swagger-ui-jensoleg/jensoleg-dist/css/standalone.css+294 servant-swagger-ui-jensoleg/jensoleg-dist/css/typography.css+26 servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.eot servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.svg+411 swagger-dist-2.1.4/fonts/DroidSans-Bold.ttf → servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.ttf servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.woff servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.woff2 servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.eot servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.svg+403 swagger-dist-2.1.4/fonts/DroidSans.ttf → servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.ttf servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.woff servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.woff2 servant-swagger-ui-jensoleg/jensoleg-dist/images/Swagger_explorer.png servant-swagger-ui-jensoleg/jensoleg-dist/images/Swagger_explorer_min.png swagger-dist-2.1.4/images/explorer_icons.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/explorer_icons.png swagger-dist-2.1.4/images/favicon-16x16.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/favicon-16x16.png swagger-dist-2.1.4/images/favicon-32x32.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/favicon-32x32.png swagger-dist-2.1.4/images/favicon.ico → servant-swagger-ui-jensoleg/jensoleg-dist/images/favicon.ico servant-swagger-ui-jensoleg/jensoleg-dist/images/json_editor_integration.png swagger-dist-2.1.4/images/logo_small.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/logo_small.png swagger-dist-2.1.4/images/pet_store_api.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/pet_store_api.png servant-swagger-ui-jensoleg/jensoleg-dist/images/senodio.png swagger-dist-2.1.4/images/throbber.gif → servant-swagger-ui-jensoleg/jensoleg-dist/images/throbber.gif swagger-dist-2.1.4/images/wordnik_api.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/wordnik_api.png servant-swagger-ui-jensoleg/jensoleg-dist/index.html+237 swagger-dist-2.1.4/lib/backbone-min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/backbone-min.js servant-swagger-ui-jensoleg/jensoleg-dist/lib/bootstrap.min.js+6 swagger-dist-2.1.4/lib/handlebars-2.0.0.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/handlebars-2.0.0.js swagger-dist-2.1.4/lib/highlight.7.3.pack.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/highlight.7.3.pack.js swagger-dist-2.1.4/lib/jquery-1.8.0.min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/jquery-1.8.0.min.js swagger-dist-2.1.4/lib/jquery.ba-bbq.min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/jquery.ba-bbq.min.js swagger-dist-2.1.4/lib/jquery.slideto.min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/jquery.slideto.min.js swagger-dist-2.1.4/lib/jquery.wiggle.min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/jquery.wiggle.min.js servant-swagger-ui-jensoleg/jensoleg-dist/lib/jsoneditor.js+7287 swagger-dist-2.1.4/lib/marked.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/marked.js servant-swagger-ui-jensoleg/jensoleg-dist/lib/swagger-oauth.js+286 swagger-dist-2.1.4/lib/underscore-min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/underscore-min.js servant-swagger-ui-jensoleg/jensoleg-dist/moncierge.json+7191 swagger-dist-2.1.4/o2c.html → servant-swagger-ui-jensoleg/jensoleg-dist/o2c.html servant-swagger-ui-jensoleg/jensoleg-dist/petstore.json+1029 servant-swagger-ui-jensoleg/jensoleg-dist/swagger-ui.js+22643 servant-swagger-ui-jensoleg/jensoleg-dist/swagger-ui.min.js+9 servant-swagger-ui-jensoleg/jensoleg-dist/swagger.json+1055 servant-swagger-ui-jensoleg/jensoleg.index.html.tmpl+255 servant-swagger-ui-jensoleg/servant-swagger-ui-jensoleg.cabal+98 servant-swagger-ui-jensoleg/src/Servant/Swagger/UI/JensOleG.hs+85 servant-swagger-ui-redoc/CHANGELOG.md+10 servant-swagger-ui-redoc/LICENSE+45 servant-swagger-ui-redoc/redoc-dist-1.22.3/redoc.min.js+8 servant-swagger-ui-redoc/redoc.index.html.tmpl+23 servant-swagger-ui-redoc/servant-swagger-ui-redoc.cabal+47 servant-swagger-ui-redoc/src/Servant/Swagger/UI/ReDoc.hs+84 servant-swagger-ui.cabal−126 servant-swagger-ui/CHANGELOG.md+55 servant-swagger-ui/LICENSE+45 servant-swagger-ui/index.html.tmpl+80 servant-swagger-ui/servant-swagger-ui.cabal+57 servant-swagger-ui/src/Servant/Swagger/UI.hs+90 servant-swagger-ui/swagger-ui-dist-3.36.1/favicon-16x16.png servant-swagger-ui/swagger-ui-dist-3.36.1/favicon-32x32.png servant-swagger-ui/swagger-ui-dist-3.36.1/oauth2-redirect.html+74 servant-swagger-ui/swagger-ui-dist-3.36.1/swagger-ui-bundle.js+3 servant-swagger-ui/swagger-ui-dist-3.36.1/swagger-ui-standalone-preset.js+3 servant-swagger-ui/swagger-ui-dist-3.36.1/swagger-ui.css+4 servant-swagger-ui/swagger-ui-dist-3.36.1/swagger-ui.js+3 src/Servant/Swagger/UI.hs−113 src/Servant/Swagger/UI/Internal.hs−57 stack-lts-2.yaml−10 stack-lts-5.yaml−7 stack.yaml−1 swagger-dist-2.1.4/css/screen.css−1300 swagger-dist-2.1.4/css/style.css−250 swagger-dist-2.1.4/css/typography.css−14 swagger-dist-2.1.4/images/collapse.gif swagger-dist-2.1.4/images/expand.gif swagger-dist-2.1.4/index.html.orig/index.html−124 swagger-dist-2.1.4/lang/en.js−55 swagger-dist-2.1.4/lang/es.js−52 swagger-dist-2.1.4/lang/fr.js−53 swagger-dist-2.1.4/lang/it.js−52 swagger-dist-2.1.4/lang/ja.js−53 swagger-dist-2.1.4/lang/pl.js−53 swagger-dist-2.1.4/lang/pt.js−53 swagger-dist-2.1.4/lang/ru.js−55 swagger-dist-2.1.4/lang/tr.js−53 swagger-dist-2.1.4/lang/translator.js−39 swagger-dist-2.1.4/lang/zh-cn.js−53 swagger-dist-2.1.4/lib/jsoneditor.min.js−11 swagger-dist-2.1.4/lib/swagger-oauth.js−338 swagger-dist-2.1.4/lib/underscore-min.map−1 swagger-dist-2.1.4/swagger-ui.js−26330 swagger-dist-2.1.4/swagger-ui.min.js−11
.gitignore+3−1
@@ -1,6 +1,8 @@
11dist/
2+dist-newstyle/
3+.ghc.environment.*
24.stack-work/
35.cabal-sandbox
46cabal.sandbox.config
57src/highlight.js
6−src/style.css
8+src/style.css
.stylish-haskell.yaml+5−66
@@ -1,77 +1,16 @@
1−# stylish-haskell configuration file
2−# ==================================
3−
4−# The stylish-haskell tool is mainly configured by specifying steps. These steps
5−# are a list, so they have an order, and one specific step may appear more than
6−# once (if needed). Each file is processed by these steps in the given order.
71steps:
8− # Convert some ASCII sequences to their Unicode equivalents. This is disabled
9− # by default.
10− # - unicode_syntax:
11− # # In order to make this work, we also need to insert the UnicodeSyntax
12− # # language pragma. If this flag is set to true, we insert it when it's
13− # # not already present. You may want to disable it if you configure
14− # # language extensions using some other method than pragmas. Default:
15− # # true.
16− # add_language_pragma: true
17−
18− # Import cleanup
192 - imports:
20− # There are different ways we can align names and lists.
21− #
22− # - global: Align the import names and import list throughout the entire
23− # file.
24− #
25− # - file: Like global, but don't add padding when there are no qualified
26− # imports in the file.
27− #
28− # - group: Only align the imports per group (a group is formed by adjacent
29− # import lines).
30− #
31− # - none: Do not perform any alignment.
32− #
33− # Default: global.
343 align: group
35−
36− # Language pragmas
4+ list_align: after_alias
5+ long_list_align: new_line
6+ empty_list_align: right_after
7+ list_padding: module_name
378 - language_pragmas:
38− # We can generate different styles of language pragma lists.
39− #
40− # - vertical: Vertical-spaced language pragmas, one per line.
41− #
42− # - compact: A more compact style.
43− #
44− # - compact_line: Similar to compact, but wrap each line with
45− # `{-#LANGUAGE #-}'.
46− #
47− # Default: vertical.
489 style: vertical
49−
50− # stylish-haskell can detect redundancy of some language pragmas. If this
51− # is set to true, it will remove those redundant pragmas. Default: true.
5210 remove_redundant: true
53−
54− # Align the types in record declarations
55− - records: {}
56−
57− # Replace tabs by spaces. This is disabled by default.
58− # - tabs:
59− # # Number of spaces to use for each tab. Default: 8, as specified by the
60− # # Haskell report.
61− # spaces: 8
62−
63− # Remove trailing whitespace
6411 - trailing_whitespace: {}
65−
66−# A common setting is the number of columns (parts of) code will be wrapped
67−# to. Different steps take this into account. Default: 80.
6812columns: 80
69−
70−# Sometimes, language extensions are specified in a cabal file or from the
71−# command line instead of using language pragmas in the file. stylish-haskell
72−# needs to be aware of these, so it can parse the file correctly.
73−#
74−# No language extensions are enabled by default.
7513language_extensions:
7614 - MultiParamTypeClasses
7715 - FlexibleContexts
16+ - ExplicitForAll
.travis.meta.ymldeleted−11
@@ -1,11 +0,0 @@
1−language: haskell-multi-ghc
2−
3−env:
4− - GHCVER=7.10.3 CABALVER=1.22 PEDANTIC=YES
5−
6−matrix:
7− fast_finish: true
8−
9−branches:
10− only:
11− - master
.travis.yml+194−60
@@ -1,65 +1,199 @@
1−# This file has been generated by travis-meta-yaml 0.2.0.0
2−# see https://github.com/phadej/travis-meta-yaml
3−sudo: false
1+# This Travis job script has been generated by a script via
2+#
3+# haskell-ci '--output' '.travis.yml' '--config=cabal.haskell-ci' 'cabal.project'
4+#
5+# To regenerate the script (for example after adjusting tested-with) run
6+#
7+# haskell-ci regenerate
8+#
9+# For more information, see https://github.com/haskell-CI/haskell-ci
10+#
11+# version: 0.10.3
12+#
13+version: ~> 1.0
414language: c
5−before_install:
6−- unset CC
7−- export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
8−- echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo
9− '?')]"
10−- cabal --version
11−- ghc --version
12−- if [ "$NOTESTS" = "YES" ]; then export CABALCONFOPTS=""; export CABALTEST="true";
13− else export CABALCONFOPTS="--enable-tests --enable-benchmarks"; export CABALTEST="cabal
14− test"; fi
15−- if [ "$PEDANTIC" = "YES" ]; then export CABALBUILDOPTS="--ghc-options=-Werror --ghc-options=-Wall";
16− fi
17−install:
18−- if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ]; then zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz
19− > $HOME/.cabal/packages/hackage.haskell.org/00-index.tar; ls -l $HOME/.cabal/packages/hackage.haskell.org/;
20− fi; cabal update; sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config; if [ -n "$CABALCONFIG"
21− ]; then cp $CABALCONFIG cabal.config; fi; if [ -n "$STACKAGESNAPSHOT" ]; then curl
22− --silent https://www.stackage.org/$STACKAGESNAPSHOT/cabal.config | grep -v "$(cabal
23− info . -v0 | head -n 1 | awk '{ print $2 }' | sed -E 's/-[0-9]+(\.[0-9]+)+//') =="
24− > cabal.config; fi; cabal install --only-dependencies $CABALCONFOPTS --dry -v >
25− installplan.txt; sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt;
26− if diff -u $HOME/.cabsnap/installplan.txt installplan.txt; then echo "cabal build-cache
27− HIT"; rm -rfv .ghc; cp -av $HOME/.cabsnap/ghc $HOME/.ghc; cp -av $HOME/.cabsnap/lib
28− $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/; else echo "cabal build-cache
29− MISS"; rm -rf $HOME/.cabsnap; mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share
30− $HOME/.cabal/bin; cabal install --only-dependencies $CABALCONFOPTS; fi; if [ ! -d
31− $HOME/.cabsnap ]; then echo "snapshotting package-db to build-cache"; mkdir $HOME/.cabsnap;
32− cp -av $HOME/.ghc $HOME/.cabsnap/ghc; cp -av $HOME/.cabal/lib $HOME/.cabal/share
33− $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/; fi;
34−script:
35−- if [ -f configure.ac ]; then autoreconf -i; fi
36−- cabal configure $CABALCONFOPTS -v2
37−- cabal build $CABALBUILDOPTS
38−- $CABALTEST
39−- if [ "$CABALVER" = "1.22" ]; then cabal check; fi
40−- cabal sdist
41−- SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz && (cd dist && cabal install
42− --force-reinstalls "$SRC_TGZ")
43−matrix:
44− fast_finish: true
45− include:
46− - env: GHCVER=7.10.3 CABALVER=1.22 PEDANTIC=YES
47− addons:
48− apt:
49− sources:
50− - hvr-ghc
51− packages:
52− - cabal-install-1.22
53− - ghc-7.10.3
54− - libgmp-dev
55− compiler: ! ': # ghc-7.10.3 cabal-1.22'
15+os: linux
16+dist: xenial
17+git:
18+ # whether to recursively clone submodules
19+ submodules: false
5620branches:
5721 only:
58− - master
59−before_cache:
60−- rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
61−- rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar
22+ - master
6223cache:
6324 directories:
64− - $HOME/.cabsnap
65− - $HOME/.cabal/packages
25+ - $HOME/.cabal/packages
26+ - $HOME/.cabal/store
27+ - $HOME/.hlint
28+before_cache:
29+ - rm -fv $CABALHOME/packages/hackage.haskell.org/build-reports.log
30+ # remove files that are regenerated by 'cabal update'
31+ - rm -fv $CABALHOME/packages/hackage.haskell.org/00-index.*
32+ - rm -fv $CABALHOME/packages/hackage.haskell.org/*.json
33+ - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.cache
34+ - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar
35+ - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar.idx
36+ - rm -rfv $CABALHOME/packages/head.hackage
37+jobs:
38+ include:
39+ - compiler: ghc-8.10.2
40+ addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.10.2","cabal-install-3.2"]}}
41+ os: linux
42+ - compiler: ghc-8.8.4
43+ addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.4","cabal-install-3.2"]}}
44+ os: linux
45+ - compiler: ghc-8.6.5
46+ addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.2"]}}
47+ os: linux
48+ - compiler: ghc-8.4.4
49+ addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.2"]}}
50+ os: linux
51+ - compiler: ghc-8.2.2
52+ addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.2"]}}
53+ os: linux
54+ - compiler: ghc-8.0.2
55+ addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.2"]}}
56+ os: linux
57+before_install:
58+ - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')
59+ - WITHCOMPILER="-w $HC"
60+ - HADDOCK=$(echo "/opt/$CC/bin/haddock" | sed 's/-/\//')
61+ - HCPKG="$HC-pkg"
62+ - unset CC
63+ - CABAL=/opt/ghc/bin/cabal
64+ - CABALHOME=$HOME/.cabal
65+ - export PATH="$CABALHOME/bin:$PATH"
66+ - TOP=$(pwd)
67+ - "HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\\d+)\\.(\\d+)\\.(\\d+)(\\.(\\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')"
68+ - echo $HCNUMVER
69+ - CABAL="$CABAL -vnormal+nowrap"
70+ - set -o pipefail
71+ - TEST=--enable-tests
72+ - BENCH=--enable-benchmarks
73+ - HEADHACKAGE=false
74+ - rm -f $CABALHOME/config
75+ - |
76+ echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config
77+ echo "remote-build-reporting: anonymous" >> $CABALHOME/config
78+ echo "write-ghc-environment-files: always" >> $CABALHOME/config
79+ echo "remote-repo-cache: $CABALHOME/packages" >> $CABALHOME/config
80+ echo "logs-dir: $CABALHOME/logs" >> $CABALHOME/config
81+ echo "world-file: $CABALHOME/world" >> $CABALHOME/config
82+ echo "extra-prog-path: $CABALHOME/bin" >> $CABALHOME/config
83+ echo "symlink-bindir: $CABALHOME/bin" >> $CABALHOME/config
84+ echo "installdir: $CABALHOME/bin" >> $CABALHOME/config
85+ echo "build-summary: $CABALHOME/logs/build.log" >> $CABALHOME/config
86+ echo "store-dir: $CABALHOME/store" >> $CABALHOME/config
87+ echo "install-dirs user" >> $CABALHOME/config
88+ echo " prefix: $CABALHOME" >> $CABALHOME/config
89+ echo "repository hackage.haskell.org" >> $CABALHOME/config
90+ echo " url: http://hackage.haskell.org/" >> $CABALHOME/config
91+install:
92+ - ${CABAL} --version
93+ - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
94+ - |
95+ echo "program-default-options" >> $CABALHOME/config
96+ echo " ghc-options: $GHCJOBS +RTS -M6G -RTS" >> $CABALHOME/config
97+ - cat $CABALHOME/config
98+ - rm -fv cabal.project cabal.project.local cabal.project.freeze
99+ - travis_retry ${CABAL} v2-update -v
100+ # Generate cabal.project
101+ - rm -rf cabal.project cabal.project.local cabal.project.freeze
102+ - touch cabal.project
103+ - |
104+ echo "packages: servant-swagger-ui" >> cabal.project
105+ echo "packages: servant-swagger-ui-core" >> cabal.project
106+ echo "packages: servant-swagger-ui-example" >> cabal.project
107+ echo "packages: servant-swagger-ui-jensoleg" >> cabal.project
108+ echo "packages: servant-swagger-ui-redoc" >> cabal.project
109+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui' >> cabal.project ; fi
110+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
111+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui-core' >> cabal.project ; fi
112+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
113+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui-example' >> cabal.project ; fi
114+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
115+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui-jensoleg' >> cabal.project ; fi
116+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
117+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui-redoc' >> cabal.project ; fi
118+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
119+ - |
120+ - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(servant-swagger-ui|servant-swagger-ui-core|servant-swagger-ui-example|servant-swagger-ui-jensoleg|servant-swagger-ui-redoc)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
121+ - cat cabal.project || true
122+ - cat cabal.project.local || true
123+ - if [ -f "servant-swagger-ui/configure.ac" ]; then (cd "servant-swagger-ui" && autoreconf -i); fi
124+ - if [ -f "servant-swagger-ui-core/configure.ac" ]; then (cd "servant-swagger-ui-core" && autoreconf -i); fi
125+ - if [ -f "servant-swagger-ui-example/configure.ac" ]; then (cd "servant-swagger-ui-example" && autoreconf -i); fi
126+ - if [ -f "servant-swagger-ui-jensoleg/configure.ac" ]; then (cd "servant-swagger-ui-jensoleg" && autoreconf -i); fi
127+ - if [ -f "servant-swagger-ui-redoc/configure.ac" ]; then (cd "servant-swagger-ui-redoc" && autoreconf -i); fi
128+ - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH}
129+ - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'"
130+ - rm cabal.project.freeze
131+ - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2 all
132+ - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --dep -j2 all
133+script:
134+ - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
135+ # Packaging...
136+ - ${CABAL} v2-sdist all
137+ # Unpacking...
138+ - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/
139+ - cd ${DISTDIR} || false
140+ - find . -maxdepth 1 -type f -name '*.tar.gz' -exec tar -xvf '{}' \;
141+ - find . -maxdepth 1 -type f -name '*.tar.gz' -exec rm '{}' \;
142+ - PKGDIR_servant_swagger_ui="$(find . -maxdepth 1 -type d -regex '.*/servant-swagger-ui-[0-9.]*')"
143+ - PKGDIR_servant_swagger_ui_core="$(find . -maxdepth 1 -type d -regex '.*/servant-swagger-ui-core-[0-9.]*')"
144+ - PKGDIR_servant_swagger_ui_example="$(find . -maxdepth 1 -type d -regex '.*/servant-swagger-ui-example-[0-9.]*')"
145+ - PKGDIR_servant_swagger_ui_jensoleg="$(find . -maxdepth 1 -type d -regex '.*/servant-swagger-ui-jensoleg-[0-9.]*')"
146+ - PKGDIR_servant_swagger_ui_redoc="$(find . -maxdepth 1 -type d -regex '.*/servant-swagger-ui-redoc-[0-9.]*')"
147+ # Generate cabal.project
148+ - rm -rf cabal.project cabal.project.local cabal.project.freeze
149+ - touch cabal.project
150+ - |
151+ echo "packages: ${PKGDIR_servant_swagger_ui}" >> cabal.project
152+ echo "packages: ${PKGDIR_servant_swagger_ui_core}" >> cabal.project
153+ echo "packages: ${PKGDIR_servant_swagger_ui_example}" >> cabal.project
154+ echo "packages: ${PKGDIR_servant_swagger_ui_jensoleg}" >> cabal.project
155+ echo "packages: ${PKGDIR_servant_swagger_ui_redoc}" >> cabal.project
156+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui' >> cabal.project ; fi
157+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
158+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui-core' >> cabal.project ; fi
159+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
160+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui-example' >> cabal.project ; fi
161+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
162+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui-jensoleg' >> cabal.project ; fi
163+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
164+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-swagger-ui-redoc' >> cabal.project ; fi
165+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi"
166+ - |
167+ - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(servant-swagger-ui|servant-swagger-ui-core|servant-swagger-ui-example|servant-swagger-ui-jensoleg|servant-swagger-ui-redoc)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
168+ - cat cabal.project || true
169+ - cat cabal.project.local || true
170+ # Building...
171+ # this builds all libraries and executables (without tests/benchmarks)
172+ - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all
173+ # Building with tests and benchmarks...
174+ # build & run tests, build benchmarks
175+ - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all
176+ # cabal check...
177+ - (cd ${PKGDIR_servant_swagger_ui} && ${CABAL} -vnormal check)
178+ - (cd ${PKGDIR_servant_swagger_ui_core} && ${CABAL} -vnormal check)
179+ - (cd ${PKGDIR_servant_swagger_ui_example} && ${CABAL} -vnormal check)
180+ - (cd ${PKGDIR_servant_swagger_ui_jensoleg} && ${CABAL} -vnormal check)
181+ - (cd ${PKGDIR_servant_swagger_ui_redoc} && ${CABAL} -vnormal check)
182+ # haddock...
183+ - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all
184+ # Building without installed constraints for packages in global-db...
185+ - rm -f cabal.project.local
186+ - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all
187+ # Constraint sets
188+ - rm -rf cabal.project.local
189+ # Constraint set servant-0.14
190+ - if [ $HCNUMVER -lt 80800 ] ; then ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.14.*' all ; fi
191+ # Constraint set servant-0.15
192+ - if [ $HCNUMVER -lt 80800 ] ; then ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.15.*' all ; fi
193+ # Constraint set servant-0.16
194+ - if [ $HCNUMVER -lt 81000 ] ; then ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.16.*' all ; fi
195+ # Constraint set servant-0.17
196+ - if [ $HCNUMVER -lt 81000 ] ; then ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.17.*' all ; fi
197+
198+# REGENDATA ("0.10.3",["--output",".travis.yml","--config=cabal.haskell-ci","cabal.project"])
199+# EOF
README.md+16−2
@@ -1,6 +1,8 @@
11# servant-swagger-ui
22
3−> Servant support for yaml
3+*Provide a Swagger UI for your Servant API*
4+
5+"[Swagger UI](http://swagger.io/swagger-ui/) allows anyone — be it your development team or your end consumers — to visualize and interact with the API’s resources without having any of the implementation logic in place."
46
57[![Build Status](https://travis-ci.org/phadej/servant-swagger-ui.svg?branch=master)](https://travis-ci.org/phadej/servant-swagger-ui)
68[![Hackage](https://img.shields.io/hackage/v/servant-swagger-ui.svg)](http://hackage.haskell.org/package/servant-swagger-ui)
@@ -9,4 +11,16 @@
911
1012## Example
1113
12−Check [`example/Main.hs`](https://github.com/phadej/servant-swagger-ui/blob/master/example/Main.hs) for an example.
14+![example screenshot](https://raw.githubusercontent.com/haskell-servant/servant-swagger-ui/master/screenshot.png)
15+
16+Check [`servant-swagger-ui-example/src/Main.hs`](https://github.com/haskell-servant/servant-swagger-ui/blob/master/servant-swagger-ui-example/src/Main.hs) for an example.
17+
18+## Development
19+
20+### Updating of bundled swagger-ui version:
21+
22+- Extract `dist` directory of `swagger-ui` into `swagger-dist-<version>`. Remove the `*.map` files.
23+- update `extra-source-files` in the `.cabal`
24+- move `index.html` into `index.html.tmpl`, do the diff, port the changes
25+- search replace the embbeded directory (in `Servant/Swagger/UI.hs`)
26+- test it works
cabal.haskell-cinew file+17
@@ -0,0 +1,17 @@
1+branches: master
2+
3+constraint-set servant-0.14
4+ ghc: >= 7.8 && <8.8
5+ constraints: servant ==0.14.*
6+
7+constraint-set servant-0.15
8+ ghc: >= 8.0 && <8.8
9+ constraints: servant ==0.15.*
10+
11+constraint-set servant-0.16
12+ ghc: >= 8.0 && <8.10
13+ constraints: servant ==0.16.*
14+
15+constraint-set servant-0.17
16+ ghc: >= 8.0 && <8.10
17+ constraints: servant ==0.17.*
cabal.projectnew file+6
@@ -0,0 +1,6 @@
1+packages:
2+ servant-swagger-ui/
3+ servant-swagger-ui-core/
4+ servant-swagger-ui-example/
5+ servant-swagger-ui-jensoleg/
6+ servant-swagger-ui-redoc/
example/Main.hsdeleted−101
@@ -1,101 +0,0 @@
1−{-# LANGUAGE DataKinds #-}
2−{-# LANGUAGE DeriveGeneric #-}
3−{-# LANGUAGE FlexibleInstances #-}
4−{-# LANGUAGE GeneralizedNewtypeDeriving #-}
5−{-# LANGUAGE MultiParamTypeClasses #-}
6−{-# LANGUAGE OverloadedStrings #-}
7−{-# LANGUAGE ScopedTypeVariables #-}
8−{-# LANGUAGE TemplateHaskell #-}
9−{-# LANGUAGE TypeFamilies #-}
10−{-# LANGUAGE TypeOperators #-}
11−{-# LANGUAGE UndecidableInstances #-}
12−{-# OPTIONS_GHC -fno-warn-orphans #-}
13−module Main (main, catIsMale, catName) where
14−
15−import Control.Lens hiding ((.=))
16−import Data.Aeson (ToJSON (..), object, (.=))
17−import Data.Maybe (fromMaybe)
18−import Data.String (IsString (..))
19−import Data.Text (Text)
20−import GHC.Generics (Generic)
21−import Network.Wai (Application)
22−import System.Environment (getArgs, lookupEnv)
23−import Text.Read (readMaybe)
24−
25−import Data.Swagger
26−import Servant
27−import Servant.Swagger
28−import Servant.Swagger.UI
29−
30−import qualified Network.Wai.Handler.Warp as Warp
31−
32−--
33−
34−data Cat = Cat { catName :: CatName, catIsMale :: Bool }
35− deriving (Generic, Show)
36−
37−instance ToJSON Cat where
38− toJSON (Cat n g) = object [ "catName" .= n , "catIsMale" .= g]
39−
40−newtype CatName = CatName Text
41− deriving (Eq, Show, Generic, FromText)
42−
43−instance ToJSON CatName where
44− toJSON (CatName n) = toJSON n
45−
46−instance IsString CatName where
47− fromString = CatName . fromString
48−
49−instance ToParamSchema CatName
50−instance ToSchema Cat
51−instance ToSchema CatName
52−
53−---
54−
55−type BasicAPI = Get '[PlainText, JSON] Text
56− :<|> "cat" :> Capture ":name" CatName :> Get '[JSON] Cat
57−
58−type SwaggerSchemaEndpoint = "swagger.js" :> Get '[JSON] Swagger
59−
60−data API
61−type API' = BasicAPI
62− :<|> SwaggerSchemaEndpoint
63− :<|> SwaggerUI "ui" SwaggerSchemaEndpoint API
64−
65−instance HasServer API where
66− type ServerT API m = ServerT API' m
67− route _ = route (Proxy :: Proxy API')
68−
69−type instance IsElem' e API = IsElem e API'
70−
71−-- Implementation
72−server :: Server API
73−server =
74− (pure "Hello World" :<|> catEndpoint)
75− :<|> pure swaggerDoc
76− :<|> swaggerUIServer
77− where
78− catEndpoint n = pure $ Cat n False
79−
80−-- Boilerplate
81−
82−swaggerDoc :: Swagger
83−swaggerDoc = toSwagger (Proxy :: Proxy BasicAPI)
84− & info.title .~ "Cats API"
85− & info.version .~ "2016.2.6"
86− & info.description ?~ "This is an API that tests servant-swagger support "
87−
88−api :: Proxy API
89−api = Proxy
90−
91−app :: Application
92−app = serve api server
93−
94−main :: IO ()
95−main = do
96− args <- getArgs
97− case args of
98− ("run":_) -> do
99− p <- fromMaybe 8000 . (>>= readMaybe) <$> lookupEnv "PORT"
100− Warp.run p app
101− _ -> putStrLn "To run, pass 'run' argument"
hackage-docs.shdeleted−78
@@ -1,78 +0,0 @@
1−#!/bin/bash
2−set -e
3−
4−# This if stack-enabled fork of https://github.com/ekmett/lens/blob/master/scripts/hackage-docs.sh
5−
6−if [ "$#" -ne 1 ]; then
7− echo "Usage: scripts/hackage-docs.sh HACKAGE_USER"
8− exit 1
9−fi
10−
11−user=$1
12−
13−cabal_file=$(find . -maxdepth 1 -name "*.cabal" -print -quit)
14−if [ ! -f "$cabal_file" ]; then
15− echo "Run this script in the top-level package directory"
16− exit 1
17−fi
18−
19−pkg=$(awk -F ":[[:space:]]*" 'tolower($1)=="name" { print $2 }' < "$cabal_file")
20−ver=$(awk -F ":[[:space:]]*" 'tolower($1)=="version" { print $2 }' < "$cabal_file")
21−
22−if [ -z "$pkg" ]; then
23− echo "Unable to determine package name"
24− exit 1
25−fi
26−
27−if [ -z "$ver" ]; then
28− echo "Unable to determine package version"
29− exit 1
30−fi
31−
32−echo "Detected package: $pkg-$ver"
33−
34−dir=$(mktemp -d build-docs.XXXXXX)
35−trap 'rm -r "$dir"' EXIT
36−
37−export PATH=$(stack path --bin-path)
38−
39−ghc --version
40−cabal --version
41−stack --version
42−
43−if haddock --hyperlinked-source >/dev/null
44−then
45− echo "Using fancy hyperlinked source"
46− HYPERLINK_FLAG="--haddock-option=--hyperlinked-source"
47−else
48− echo "Using boring hyperlinked source"
49− HYPERLINK_FLAG="--hyperlink-source"
50−fi
51−
52−# Cabal dist in temporary location
53−builddir=$dir/dist
54−
55−# Build dependencies haddocks with stack, so we get links
56−stack haddock --only-dependencies
57−
58−# Configure using stack databases
59−snapshotpkgdb=$(stack path --snapshot-pkg-db)
60−localpkgdb=$(stack path --local-pkg-db)
61−cabal configure -v2 --builddir=$builddir --package-db=clear --package-db=global --package-db=$snapshotpkgdb --package-db=$localpkgdb
62−
63−# Build Hadckage compatible docs
64−cabal haddock -v2 --builddir=$builddir $HYPERLINK_FLAG --html-location='/package/$pkg-$version/docs' --contents-location='/package/$pkg-$version'
65−
66−# Copy into right directory
67−cp -R $builddir/doc/html/$pkg/ $dir/$pkg-$ver-docs
68−
69−# Tar and gzip
70−tar cvz -C $dir --format=ustar -f $dir/$pkg-$ver-docs.tar.gz $pkg-$ver-docs
71−
72−# Upload
73−curl -X PUT \
74− -H 'Content-Type: application/x-tar' \
75− -H 'Content-Encoding: gzip' \
76− -u "$user" \
77− --data-binary "@$dir/$pkg-$ver-docs.tar.gz" \
78− "https://hackage.haskell.org/package/$pkg-$ver/docs"
index.html.tmpldeleted−119
@@ -1,119 +0,0 @@
1−
2−<!DOCTYPE html>
3−<html>
4−<head>
5− <meta charset="UTF-8">
6− <title>Swagger UI</title>
7− <link rel="icon" type="image/png" href="images/favicon-32x32.png" sizes="32x32" />
8− <link rel="icon" type="image/png" href="images/favicon-16x16.png" sizes="16x16" />
9− <link href='css/typography.css' media='screen' rel='stylesheet' type='text/css'/>
10− <link href='css/reset.css' media='screen' rel='stylesheet' type='text/css'/>
11− <link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
12− <link href='css/reset.css' media='print' rel='stylesheet' type='text/css'/>
13− <link href='css/print.css' media='print' rel='stylesheet' type='text/css'/>
14− <script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script>
15− <script src='lib/jquery.slideto.min.js' type='text/javascript'></script>
16− <script src='lib/jquery.wiggle.min.js' type='text/javascript'></script>
17− <script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script>
18− <script src='lib/handlebars-2.0.0.js' type='text/javascript'></script>
19− <script src='lib/underscore-min.js' type='text/javascript'></script>
20− <script src='lib/backbone-min.js' type='text/javascript'></script>
21− <script src='swagger-ui.js' type='text/javascript'></script>
22− <script src='lib/highlight.7.3.pack.js' type='text/javascript'></script>
23− <script src='lib/jsoneditor.min.js' type='text/javascript'></script>
24− <script src='lib/marked.js' type='text/javascript'></script>
25− <script src='lib/swagger-oauth.js' type='text/javascript'></script>
26−
27− <!-- Some basic translations -->
28− <!-- <script src='lang/translator.js' type='text/javascript'></script> -->
29− <!-- <script src='lang/ru.js' type='text/javascript'></script> -->
30− <!-- <script src='lang/en.js' type='text/javascript'></script> -->
31−
32− <script type="text/javascript">
33− $(function () {
34− var url = "SWAGGER_URL_PLACEHOLDER";
35−
36− // Pre load translate...
37− if(window.SwaggerTranslator) {
38− window.SwaggerTranslator.translate();
39− }
40− window.swaggerUi = new SwaggerUi({
41− url: url,
42− dom_id: "swagger-ui-container",
43− supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'],
44− onComplete: function(swaggerApi, swaggerUi){
45− if(typeof initOAuth == "function") {
46− initOAuth({
47− clientId: "your-client-id",
48− clientSecret: "your-client-secret-if-required",
49− realm: "your-realms",
50− appName: "your-app-name",
51− scopeSeparator: ",",
52− additionalQueryStringParams: {}
53− });
54− }
55−
56− if(window.SwaggerTranslator) {
57− window.SwaggerTranslator.translate();
58− }
59−
60− $('pre code').each(function(i, e) {
61− hljs.highlightBlock(e)
62− });
63−
64− addApiKeyAuthorization();
65− },
66− onFailure: function(data) {
67− log("Unable to Load SwaggerUI");
68− },
69− docExpansion: "none",
70− jsonEditor: false,
71− apisSorter: "alpha",
72− defaultModelRendering: 'schema',
73− showRequestHeaders: false
74− });
75−
76− function addApiKeyAuthorization(){
77− var key = encodeURIComponent($('#input_apiKey')[0].value);
78− if(key && key.trim() != "") {
79− var apiKeyAuth = new SwaggerClient.ApiKeyAuthorization("api_key", key, "query");
80− window.swaggerUi.api.clientAuthorizations.add("api_key", apiKeyAuth);
81− log("added key " + key);
82− }
83− }
84−
85− $('#input_apiKey').change(addApiKeyAuthorization);
86−
87− // if you have an apiKey you would like to pre-populate on the page for demonstration purposes...
88− /*
89− var apiKey = "myApiKeyXXXX123456789";
90− $('#input_apiKey').val(apiKey);
91− */
92−
93− window.swaggerUi.load();
94−
95− function log() {
96− if ('console' in window) {
97− console.log.apply(console, arguments);
98− }
99− }
100− });
101− </script>
102−</head>
103−
104−<body class="swagger-section">
105−<div id='header'>
106− <div class="swagger-ui-wrap">
107− <a id="logo" href="http://swagger.io">swagger</a>
108− <form id='api_selector'>
109− <div class='input'><input placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text"/></div>
110− <div class='input'><input placeholder="api_key" id="input_apiKey" name="apiKey" type="text"/></div>
111− <div class='input'><a id="explore" href="#" data-sw-translate>Explore</a></div>
112− </form>
113− </div>
114−</div>
115−
116−<div id="message-bar" class="swagger-ui-wrap" data-sw-translate>&nbsp;</div>
117−<div id="swagger-ui-container" class="swagger-ui-wrap"></div>
118−</body>
119−</html>
package.yamldeleted−49
@@ -1,49 +0,0 @@
1−name: servant-swagger-ui
2−version: 0.1.0.2.1.4
3−synopsis: Servant swagger ui
4−description: Provide embedded swagger UI for servant and swagger (i.e. servant-swagger)
5−author: Oleg Grenrus <oleg.grenrus@iki.fi>
6−maintainer: Oleg Grenrus <oleg.grenrus@iki.fi>
7−license: BSD3
8−github: phadej/servant-swagger-ui
9−category: Web
10−tested-with: GHC==7.10.3
11−extra-source-files:
12−- README.md
13−- index.html.tmpl
14−- swagger-dist-2.1.4/**/*
15−
16−ghc-options: -Wall
17−
18−dependencies:
19− - base >=4.7 && <4.9
20− - blaze-markup >=0.7.0.2 && <0.8
21− - bytestring >=0.10.4.0 && <0.11
22− - directory >=1.2.1.0 && <1.3
23− - file-embed >=0.0.8.2 && <0.1
24− - filepath >=1.3.0.2 && <1.5
25− - http-media >=0.6.2 && <0.7
26− - servant >=0.4.4.5 && <0.5
27− - servant-blaze >=0.4.4.5 && <0.5
28− - servant-server >=0.4.4.5 && <0.5
29− - servant-swagger >=1.0.1 && <1.1
30− - swagger2 >=2.0.1 && <2.1
31− - template-haskell >=2.9 && <2.11
32− - text >=1.2.0.6 && <1.3
33− - wai-app-static >=3.0.1.1 && <3.2
34−
35−library:
36− source-dirs: src
37−
38−tests:
39− example:
40− main: Main.hs
41− source-dirs: example
42− dependencies:
43− - servant-swagger-ui
44− - servant-server >=0.4.4.5 && <0.5
45− - aeson >=0.8.0.2 && <0.11
46− - base-compat >=0.6.0 && <0.10
47− - lens >=4.7.0.1 && <4.14
48− - wai >=3.0.3.0 && <3.3
49− - warp >=3.0.13.1 && <3.3
screenshot.pngnew file

Binary file not shown.

servant-swagger-ui-core/Changelog.mdnew file+7
@@ -0,0 +1,7 @@
1+# 0.3.3
2+
3+- Add `swaggerSchemaUIServerImpl'`
4+
5+# 0.3.1
6+
7+- Support `servant-0.14`
LICENSE → servant-swagger-ui-core/LICENSErenamed

The content is the same.

servant-swagger-ui-core/servant-swagger-ui-core.cabalnew file+54
@@ -0,0 +1,54 @@
1+cabal-version: 1.12
2+name: servant-swagger-ui-core
3+version: 0.3.3
4+x-revision: 4
5+synopsis: Servant swagger ui core components
6+category: Web, Servant, Swagger
7+description:
8+ Provide embedded swagger UI for servant and swagger (i.e. servant-swagger)
9+ .
10+ See servant-swagger-ui, servant-swagger-ui-jensoleg or
11+ servant-swagger-ui-redoc for "concrete" implementations.
12+
13+homepage: https://github.com/haskell-servant/servant-swagger-ui
14+bug-reports:
15+ https://github.com/haskell-servant/servant-swagger-ui/issues
16+
17+author: Oleg Grenrus <oleg.grenrus@iki.fi>
18+maintainer: haskell-servant-maintainers@googlegroups.com
19+license: BSD3
20+license-file: LICENSE
21+build-type: Simple
22+tested-with:
23+ GHC ==8.0.2
24+ || ==8.2.2
25+ || ==8.4.4
26+ || ==8.6.5
27+ || ==8.8.4
28+ || ==8.10.2
29+
30+extra-source-files: Changelog.md
31+
32+source-repository head
33+ type: git
34+ location: https://github.com/haskell-servant/servant-swagger-ui
35+
36+library
37+ hs-source-dirs: src
38+ ghc-options: -Wall
39+ build-depends:
40+ base >=4.7 && <4.15
41+ , blaze-markup >=0.7.0.2 && <0.9
42+ , bytestring >=0.10.4.0 && <0.11
43+ , http-media >=0.7.1.3 && <0.9
44+ , servant >=0.14 && <0.19
45+ , servant-blaze >=0.8 && <0.10
46+ , servant-server >=0.14 && <0.19
47+ , swagger2 >=2.3.0.1 && <2.7
48+ , text >=1.2.3.0 && <1.3
49+ , transformers >=0.3 && <0.6
50+ , transformers-compat >=0.3 && <0.7
51+ , wai-app-static >=3.0.1.1 && <3.2
52+
53+ exposed-modules: Servant.Swagger.UI.Core
54+ default-language: Haskell2010
servant-swagger-ui-core/src/Servant/Swagger/UI/Core.hsnew file+120
@@ -0,0 +1,120 @@
1+{-# LANGUAGE ConstraintKinds #-}
2+{-# LANGUAGE DataKinds #-}
3+{-# LANGUAGE DeriveGeneric #-}
4+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
5+{-# LANGUAGE MultiParamTypeClasses #-}
6+{-# LANGUAGE OverloadedStrings #-}
7+{-# LANGUAGE ScopedTypeVariables #-}
8+{-# LANGUAGE TypeFamilies #-}
9+{-# LANGUAGE TypeOperators #-}
10+{-# LANGUAGE UndecidableInstances #-}
11+-----------------------------------------------------------------------------
12+--
13+-- Provides 'SwaggerUI' and corresponding 'swaggerUIServer' to embed
14+-- <http://swagger.io/swagger-ui/ swagger ui> into the application.
15+--
16+-- All of UI files are embedded into the binary.
17+--
18+-- /An example:/
19+--
20+-- @
21+-- -- | Actual API.
22+-- type BasicAPI = Get '[PlainText, JSON] Text
23+-- :\<|> "cat" :> Capture ":name" CatName :> Get '[JSON] Cat
24+--
25+-- -- | API type with bells and whistles, i.e. schema file and swagger-ui.
26+-- type API = 'SwaggerSchemaUI' "swagger-ui" "swagger.json"
27+-- :\<|> BasicAPI
28+--
29+-- -- | Servant server for an API
30+-- server :: Server API
31+-- server = 'swaggerSchemaUIServer' swaggerDoc
32+-- :\<|> (pure "Hello World" :\<|> catEndpoint)
33+-- where
34+-- catEndpoint name = pure $ Cat name False
35+-- @
36+
37+module Servant.Swagger.UI.Core (
38+ -- * Swagger UI API
39+ SwaggerSchemaUI,
40+ SwaggerSchemaUI',
41+
42+ -- * Implementation details
43+ SwaggerUiHtml(..),
44+ swaggerSchemaUIServerImpl,
45+ swaggerSchemaUIServerImpl',
46+ Handler,
47+ ) where
48+
49+import Data.ByteString (ByteString)
50+import Data.Swagger (Swagger)
51+import GHC.TypeLits (KnownSymbol, Symbol, symbolVal)
52+import Network.Wai.Application.Static (embeddedSettings, staticApp)
53+import Servant
54+import Servant.HTML.Blaze (HTML)
55+import Text.Blaze (ToMarkup (..))
56+
57+import qualified Data.Text as T
58+
59+-- | Swagger schema + ui api.
60+--
61+-- @SwaggerSchemaUI "swagger-ui" "swagger.json"@ will result into following hierarchy:
62+--
63+-- @
64+-- \/swagger.json
65+-- \/swagger-ui
66+-- \/swagger-ui\/index.html
67+-- \/swagger-ui\/...
68+-- @
69+--
70+type SwaggerSchemaUI (dir :: Symbol) (schema :: Symbol) =
71+ SwaggerSchemaUI' dir (schema :> Get '[JSON] Swagger)
72+
73+-- | Use 'SwaggerSchemaUI'' when you need even more control over
74+-- where @swagger.json@ is served (e.g. subdirectory).
75+type SwaggerSchemaUI' (dir :: Symbol) (api :: *) =
76+ api
77+ :<|> dir :>
78+ ( Get '[HTML] (SwaggerUiHtml dir api)
79+ :<|> "index.html" :> Get '[HTML] (SwaggerUiHtml dir api)
80+ :<|> Raw
81+ )
82+
83+-- | Index file for swagger ui.
84+--
85+-- It's configured by the location of swagger schema and directory it lives under.
86+--
87+-- Implementation detail: the @index.html@ is prepopulated with parameters
88+-- to find schema file automatically.
89+data SwaggerUiHtml (dir :: Symbol) (api :: *) = SwaggerUiHtml T.Text
90+
91+instance (KnownSymbol dir, HasLink api, Link ~ MkLink api Link, IsElem api api)
92+ => ToMarkup (SwaggerUiHtml dir api)
93+ where
94+ toMarkup (SwaggerUiHtml template) = preEscapedToMarkup
95+ $ T.replace "SERVANT_SWAGGER_UI_SCHEMA" schema
96+ $ T.replace "SERVANT_SWAGGER_UI_DIR" dir
97+ $ template
98+ where
99+ schema = T.pack $ uriPath . linkURI $ safeLink proxyApi proxyApi
100+ dir = T.pack $ symbolVal (Proxy :: Proxy dir)
101+ proxyApi = Proxy :: Proxy api
102+
103+swaggerSchemaUIServerImpl
104+ :: (Server api ~ Handler Swagger)
105+ => T.Text -> [(FilePath, ByteString)]
106+ -> Swagger -> Server (SwaggerSchemaUI' dir api)
107+swaggerSchemaUIServerImpl indexTemplate files swagger
108+ = swaggerSchemaUIServerImpl' indexTemplate files $ return swagger
109+
110+-- | Use a custom server to serve the Swagger spec source.
111+swaggerSchemaUIServerImpl'
112+ :: T.Text -> [(FilePath, ByteString)]
113+ -> Server api -> Server (SwaggerSchemaUI' dir api)
114+swaggerSchemaUIServerImpl' indexTemplate files server
115+ = server
116+ :<|> return (SwaggerUiHtml indexTemplate)
117+ :<|> return (SwaggerUiHtml indexTemplate)
118+ :<|> rest
119+ where
120+ rest = Tagged $ staticApp $ embeddedSettings files
servant-swagger-ui-example/LICENSEnew file+30
@@ -0,0 +1,30 @@
1+Copyright (c) 2018, Oleg Grenrus
2+
3+All rights reserved.
4+
5+Redistribution and use in source and binary forms, with or without
6+modification, are permitted provided that the following conditions are met:
7+
8+ * Redistributions of source code must retain the above copyright
9+ notice, this list of conditions and the following disclaimer.
10+
11+ * Redistributions in binary form must reproduce the above
12+ copyright notice, this list of conditions and the following
13+ disclaimer in the documentation and/or other materials provided
14+ with the distribution.
15+
16+ * Neither the name of Oleg Grenrus nor the names of other
17+ contributors may be used to endorse or promote products derived
18+ from this software without specific prior written permission.
19+
20+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Setup.hs → servant-swagger-ui-example/Setup.hsrenamed−1
@@ -1,3 +1,2 @@
11import Distribution.Simple
2−main :: IO ()
32main = defaultMain
servant-swagger-ui-example/servant-swagger-ui-example.cabalnew file+49
@@ -0,0 +1,49 @@
1+cabal-version: 2.0
2+name: servant-swagger-ui-example
3+version: 0
4+synopsis: servant-swagger-ui example
5+category: Web, Servant, Swagger
6+description: A kind of test-suite of servant-swagger-ui
7+homepage: https://github.com/haskell-servant/servant-swagger-ui
8+bug-reports:
9+ https://github.com/haskell-servant/servant-swagger-ui/issues
10+
11+author: Oleg Grenrus <oleg.grenrus@iki.fi>
12+maintainer: haskell-servant-maintainers@googlegroups.com
13+license: BSD3
14+license-file: LICENSE
15+build-type: Simple
16+tested-with:
17+ GHC ==8.0.2
18+ || ==8.2.2
19+ || ==8.4.4
20+ || ==8.6.5
21+ || ==8.8.4
22+ || ==8.10.2
23+
24+source-repository head
25+ type: git
26+ location: https://github.com/haskell-servant/servant-swagger-ui
27+
28+executable servant-swagger-ui-example
29+ main-is: Main.hs
30+ ghc-options: -threaded
31+ build-depends:
32+ aeson >=0.8.0.2 && <1.6
33+ , base >=4.7 && <4.15
34+ , base-compat >=0.9.3 && <0.12
35+ , lens >=4.7.0.1 && <4.20
36+ , servant
37+ , servant-server
38+ , servant-swagger
39+ , servant-swagger-ui
40+ , servant-swagger-ui-core
41+ , servant-swagger-ui-jensoleg
42+ , servant-swagger-ui-redoc
43+ , swagger2
44+ , text
45+ , wai >=3.0.3.0 && <3.3
46+ , warp >=3.0.13.1 && <3.4
47+
48+ hs-source-dirs: src
49+ default-language: Haskell2010
servant-swagger-ui-example/src/Main.hsnew file+213
@@ -0,0 +1,213 @@
1+{-# LANGUAGE CPP #-}
2+{-# LANGUAGE DataKinds #-}
3+{-# LANGUAGE DeriveGeneric #-}
4+{-# LANGUAGE FlexibleInstances #-}
5+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
6+{-# LANGUAGE MultiParamTypeClasses #-}
7+{-# LANGUAGE OverloadedStrings #-}
8+{-# LANGUAGE ScopedTypeVariables #-}
9+{-# LANGUAGE TypeFamilies #-}
10+{-# LANGUAGE TypeOperators #-}
11+{-# LANGUAGE UndecidableInstances #-}
12+{-# OPTIONS_GHC -fno-warn-orphans #-}
13+module Main (main, catIsMale, catName) where
14+
15+import Prelude ()
16+import Prelude.Compat
17+
18+import Control.Lens hiding ((.=))
19+import Data.Aeson (FromJSON, ToJSON)
20+import Data.Maybe (fromMaybe)
21+import Data.String (IsString (..))
22+import Data.Text (Text)
23+import GHC.Generics (Generic)
24+import Network.Wai (Application)
25+import System.Environment (getArgs, lookupEnv)
26+import Text.Read (readMaybe)
27+
28+import Data.Swagger
29+import Servant
30+import Servant.Swagger
31+import Servant.Swagger.UI
32+import Servant.Swagger.UI.Core
33+import Servant.Swagger.UI.JensOleG
34+import Servant.Swagger.UI.ReDoc
35+
36+import qualified Network.Wai.Handler.Warp as Warp
37+
38+#if MIN_VERSION_servant(0,12,0)
39+#define SUMMARY(d) Summary d :>
40+#else
41+#define SUMMARY(d)
42+#endif
43+
44+#if MIN_VERSION_servant(0,13,0)
45+#if __GLASGOW_HASKELL__ >= 802 && MIN_VERSION_base(4,10,0)
46+import GHC.Generics (D1, Meta (..), Rep)
47+import GHC.TypeLits (AppendSymbol, Symbol)
48+#endif
49+#endif
50+
51+-- data types
52+data Cat = Cat { catName :: CatName, catIsMale :: Bool }
53+ deriving (Generic, Show)
54+
55+newtype CatName = CatName Text
56+ deriving ( Eq, Show, Generic
57+#if MIN_VERSION_servant(0,5,0)
58+ , FromHttpApiData
59+#else
60+ , FromText
61+#endif
62+ )
63+
64+instance IsString CatName where
65+ fromString = CatName . fromString
66+
67+-- swagger instances
68+instance ToJSON Cat
69+instance ToJSON CatName
70+instance FromJSON Cat
71+instance FromJSON CatName
72+instance ToParamSchema CatName
73+instance ToSchema Cat
74+instance ToSchema CatName
75+
76+-- api
77+
78+#if MIN_VERSION_servant(0,13,0)
79+#if __GLASGOW_HASKELL__ >= 802 && MIN_VERSION_base(4,10,0)
80+-- | Get a typename as type-level 'Symbol'.
81+--
82+-- Few non-Generic things are hard-coded, for else we fallback to 'Generic'
83+--
84+-- >>> :kind! TypeName Int
85+-- TypeName Int :: Symbol
86+-- = "Int"
87+--
88+-- >>> :kind! TypeName CatName
89+-- TypeName CatName :: Symbol
90+-- = "CatName"
91+--
92+-- Unfortunately we cannot use 'TypeError' for other cases,
93+-- as 'Rep' isn't reduced so 'GenericTypeName' cannot fall past first
94+-- equation. So you will get somewhat obscure errors saying
95+-- "no instance for (KnownSymbol ... (GenericTypeName YourNonGenericType ..."
96+--
97+-- >>> :kind! TypeName Float
98+-- TypeName Float :: Symbol
99+-- = GenericTypeName Float (Rep Float ())
100+--
101+-- It would be nice if there were such type family for 'Typeable', i.e. all
102+-- types :)
103+--
104+type family TypeName (x :: *) :: Symbol where
105+ TypeName Int = "Int"
106+ TypeName Text = "Text"
107+ TypeName x = GenericTypeName x (Rep x ())
108+
109+type family GenericTypeName t (r :: *) :: Symbol where
110+ GenericTypeName t (D1 ('MetaData name mod pkg nt) f x) = name
111+
112+type Desc t n = Description (AppendSymbol (TypeName t) (AppendSymbol " | " n))
113+#else
114+type Desc t n = Description n
115+#endif
116+#endif
117+
118+type FirstCatEndpoint =
119+#if MIN_VERSION_servant(0,13,0)
120+ "cat"
121+ :> Summary "First cat endpoint"
122+ :> Capture' '[Desc CatName "Cat's name"] ":name" CatName
123+ :> QueryParam' '[Required, Desc Int "Random number"] "num" Int
124+ :> QueryParam' '[Optional, Desc Text "Random text"] "text" Text
125+ :> Get '[JSON] Cat
126+#else
127+ "cat" :> Capture ":name" CatName
128+ :> QueryParam "num" Int :> QueryParam "text" Text :> Get '[JSON] Cat
129+#endif
130+
131+type BasicAPI = Get '[PlainText, JSON] Text
132+ :<|> FirstCatEndpoint
133+ :<|> SUMMARY("Second cat") "cat2" :> Capture ":name" CatName :> Get '[JSON] Cat
134+ :<|> SUMMARY("Third cat") "cat3" :> Capture ":name" CatName :> Get '[JSON] Cat
135+ :<|> SUMMARY("Post endpoint") "post-cat" :> ReqBody '[JSON] Cat :> Post '[JSON] Cat
136+
137+type API =
138+ -- this serves both: swagger.json and swagger-ui
139+ SwaggerSchemaUI "swagger-ui" "swagger.json"
140+ :<|> BasicAPI
141+
142+-- To test nested case
143+type API' = API
144+ :<|> "nested" :> API
145+ :<|> SwaggerSchemaUI' "foo-ui" ("foo" :> "swagger.json" :> Get '[JSON] Swagger)
146+
147+-- Implementation
148+
149+-- | We test different ways to nest API, so we have an enumeration
150+data Variant
151+ = Normal
152+ | Nested
153+ | SpecDown
154+ deriving (Eq)
155+
156+data UIFlavour
157+ = Original
158+ | JensOleG
159+ | ReDoc
160+ deriving (Eq)
161+
162+server' :: UIFlavour -> Server API'
163+server' uiFlavour = server Normal
164+ :<|> server Nested
165+ :<|> schemaUiServer (swaggerDoc' SpecDown)
166+ where
167+ server :: Variant -> Server API
168+ server variant =
169+ schemaUiServer (swaggerDoc' variant)
170+ :<|> (return "Hello World" :<|> catEndpoint' :<|> catEndpoint :<|> catEndpoint :<|> return)
171+ where
172+ catEndpoint' n _ _ = return $ Cat n (variant == Normal)
173+ catEndpoint n = return $ Cat n (variant == Normal)
174+ -- Unfortunately we have to specify the basePath manually atm.
175+
176+ schemaUiServer
177+ :: (Server api ~ Handler Swagger)
178+ => Swagger -> Server (SwaggerSchemaUI' dir api)
179+ schemaUiServer = case uiFlavour of
180+ Original -> swaggerSchemaUIServer
181+ JensOleG -> jensolegSwaggerSchemaUIServer
182+ ReDoc -> redocSchemaUIServer
183+
184+ swaggerDoc' Normal = swaggerDoc
185+ swaggerDoc' Nested = swaggerDoc
186+ & basePath ?~ "/nested"
187+ & info.description ?~ "Nested API"
188+ swaggerDoc' SpecDown = swaggerDoc
189+ & info.description ?~ "Spec nested"
190+
191+-- Boilerplate
192+
193+swaggerDoc :: Swagger
194+swaggerDoc = toSwagger (Proxy :: Proxy BasicAPI)
195+ & info.title .~ "Cats API"
196+ & info.version .~ "2016.8.7"
197+ & info.description ?~ "This is an API that tests servant-swagger support"
198+
199+api :: Proxy API'
200+api = Proxy
201+
202+app :: UIFlavour -> Application
203+app = serve api . server'
204+
205+main :: IO ()
206+main = do
207+ args <- getArgs
208+ let uiFlavour | "jensoleg" `elem` args = JensOleG
209+ | "redoc" `elem` args = ReDoc
210+ | otherwise = Original
211+ p <- fromMaybe 8000 . (>>= readMaybe) <$> lookupEnv "PORT"
212+ putStrLn $ "http://localhost:" ++ show p ++ "/"
213+ Warp.run p (app uiFlavour)
servant-swagger-ui-jensoleg/LICENSEnew file+45
@@ -0,0 +1,45 @@
1+Copyright (c) 2016, Oleg Grenrus
2+
3+All rights reserved.
4+
5+Redistribution and use in source and binary forms, with or without
6+modification, are permitted provided that the following conditions are met:
7+
8+ * Redistributions of source code must retain the above copyright
9+ notice, this list of conditions and the following disclaimer.
10+
11+ * Redistributions in binary form must reproduce the above
12+ copyright notice, this list of conditions and the following
13+ disclaimer in the documentation and/or other materials provided
14+ with the distribution.
15+
16+ * Neither the name of Oleg Grenrus nor the names of other
17+ contributors may be used to endorse or promote products derived
18+ from this software without specific prior written permission.
19+
20+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31+
32+---
33+
34+Bundled swagger-ui (index.html.tmpl original and swagger-dist-2.1.4 directory):
35+
36+Copyright 2016 SmartBear Software
37+
38+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
39+this file except in compliance with the License. You may obtain a copy of the
40+License at apache.org/licenses/LICENSE-2.0
41+
42+Unless required by applicable law or agreed to in writing, software distributed
43+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
44+CONDITIONS OF ANY KIND, either express or implied. See the License for the
45+specific language governing permissions and limitations under the License.
servant-swagger-ui-jensoleg/jensoleg-dist/css/api-explorer.cssnew file+2426
@@ -0,0 +1,2426 @@
1+.swagger-section pre code {
2+ display: block;
3+ padding: .5em
4+}
5+
6+.swagger-section pre .markdown .emphasis {
7+ font-style: italic
8+}
9+
10+.swagger-section pre .nginx .built_in {
11+ font-weight: 400
12+}
13+
14+.swagger-section pre .clojure .built_in, .swagger-section pre .lisp .title, .swagger-section pre .nginx .title, .swagger-section pre .subst, .swagger-section pre .tag .title, .swagger-section pre code {
15+ color: #fff
16+}
17+
18+.swagger-section pre .addition, .swagger-section pre .aggregate, .swagger-section pre .apache .cbracket, .swagger-section pre .apache .tag, .swagger-section pre .bash .variable, .swagger-section pre .constant, .swagger-section pre .django .variable, .swagger-section pre .erlang_repl .function_or_atom, .swagger-section pre .flow, .swagger-section pre .markdown .header, .swagger-section pre .parent, .swagger-section pre .preprocessor, .swagger-section pre .ruby .symbol, .swagger-section pre .ruby .symbol .string, .swagger-section pre .rules .value, .swagger-section pre .rules .value .number, .swagger-section pre .smalltalk .class, .swagger-section pre .stream, .swagger-section pre .string, .swagger-section pre .tag .value, .swagger-section pre .template_tag, .swagger-section pre .tex .command, .swagger-section pre .tex .special, .swagger-section pre .title {
19+ color: #00fcd4
20+}
21+
22+.swagger-section pre .annotation, .swagger-section pre .chunk, .swagger-section pre .comment, .swagger-section pre .diff .header, .swagger-section pre .markdown .blockquote, .swagger-section pre .template_comment {
23+ color: #e8eaeb
24+}
25+
26+.swagger-section pre .change, .swagger-section pre .date, .swagger-section pre .go .constant, .swagger-section pre .literal, .swagger-section pre .markdown .bullet, .swagger-section pre .markdown .link_url, .swagger-section pre .number, .swagger-section pre .regexp, .swagger-section pre .smalltalk .char, .swagger-section pre .smalltalk .symbol, .swagger-section pre .tag {
27+ color: #44c7f4
28+}
29+
30+.swagger-section pre .apache .sqbracket, .swagger-section pre .array, .swagger-section pre .attr_selector, .swagger-section pre .clojure .attribute, .swagger-section pre .coffeescript .property, .swagger-section pre .decorator, .swagger-section pre .deletion, .swagger-section pre .doctype, .swagger-section pre .envvar, .swagger-section pre .erlang_repl .reserved, .swagger-section pre .filter .argument, .swagger-section pre .important, .swagger-section pre .javadoc, .swagger-section pre .label, .swagger-section pre .localvars, .swagger-section pre .markdown .link_label, .swagger-section pre .nginx .built_in, .swagger-section pre .pi, .swagger-section pre .prompt, .swagger-section pre .pseudo, .swagger-section pre .ruby .string, .swagger-section pre .shebang, .swagger-section pre .tex .formula, .swagger-section pre .vhdl .attribute {
31+ color: #ff9ce3
32+}
33+
34+.swagger-section pre .aggregate, .swagger-section pre .apache .tag, .swagger-section pre .bash .variable, .swagger-section pre .built_in, .swagger-section pre .css .tag, .swagger-section pre .go .typename, .swagger-section pre .id, .swagger-section pre .javadoctag, .swagger-section pre .keyword, .swagger-section pre .markdown .strong, .swagger-section pre .phpdoc, .swagger-section pre .request, .swagger-section pre .smalltalk .class, .swagger-section pre .status, .swagger-section pre .tex .command, .swagger-section pre .title, .swagger-section pre .winutils, .swagger-section pre .yardoctag {
35+ font-weight: 700
36+}
37+
38+.swagger-section pre .coffeescript .javascript, .swagger-section pre .javascript .xml, .swagger-section pre .tex .formula, .swagger-section pre .xml .cdata, .swagger-section pre .xml .css, .swagger-section pre .xml .javascript, .swagger-section pre .xml .vbscript {
39+ opacity: .5
40+}
41+
42+.swagger-section #resources {
43+ position: relative;
44+ height: 100%;
45+ margin-bottom: 0
46+}
47+
48+@media (min-width: 992px) {
49+ .swagger-section #resources:before {
50+ content: "";
51+ background: #5c666f;
52+ height: 100%;
53+ width: 50%;
54+ top: 0;
55+ right: 0;
56+ position: absolute;
57+ z-index: -1
58+ }
59+}
60+
61+.swagger-section .resource {
62+ margin: 0
63+}
64+
65+.swagger-section .operations {
66+ padding: 20px 0 0
67+}
68+
69+.swagger-section .operation {
70+ margin: 0
71+}
72+
73+@media (min-width: 992px) {
74+ .swagger-section .operation {
75+ min-height: 100vh
76+ }
77+
78+ .swagger-section .operation:after {
79+ clear: both
80+ }
81+
82+ .swagger-section .operation:after, .swagger-section .operation:before {
83+ content: "";
84+ display: table
85+ }
86+}
87+
88+@media (min-width: 992px) {
89+ .swagger-section .operation > .content {
90+ float: left;
91+ width: 50%;
92+ padding: 0 10px
93+ }
94+}
95+
96+@media (min-width: 1400px) {
97+ .swagger-section .operation > .content {
98+ padding: 0 20px
99+ }
100+}
101+
102+@media (min-width: 992px) {
103+ .swagger-section .operation > .samples {
104+ float: left;
105+ width: 50%
106+ }
107+}
108+
109+.swagger-section h2.operation-title {
110+ display: block;
111+ float: none;
112+ color: #333;
113+ padding: 0;
114+ font-size: 25px;
115+ line-height: 1.3;
116+ font-weight: 400;
117+ margin: 20px 0
118+}
119+
120+@media (min-width: 992px) {
121+ .swagger-section h2.operation-title {
122+ font-size: 32px;
123+ font-weight: 200;
124+ line-height: 1;
125+ padding-right: 160px
126+ }
127+}
128+
129+@media (min-width: 1400px) {
130+ .swagger-section h2.operation-title {
131+ padding-right: 0;
132+ }
133+}
134+
135+.swagger-section h3 {
136+ font-weight: 400
137+}
138+
139+.swagger-section .heading {
140+ padding: 0 20px
141+}
142+
143+.swagger-section .heading .path {
144+ display: table-cell
145+}
146+
147+.swagger-section .heading .path a {
148+ font-weight: 400;
149+ color: #838991;
150+ font-size: 12px;
151+ max-width: 230px;
152+ overflow: hidden;
153+ display: inline-block;
154+ vertical-align: top;
155+ text-overflow: ellipsis;
156+ white-space: nowrap
157+}
158+
159+@media (min-width: 992px) {
160+ .swagger-section .heading .path a {
161+ font-size: 16px;
162+ max-width: 545px;
163+ }
164+}
165+
166+@media (min-width: 1400px) {
167+ .swagger-section .heading .path a {
168+ max-width: 405px;
169+ }
170+}
171+
172+.swagger-section .heading .http_method {
173+ display: table-cell
174+}
175+
176+.swagger-section .heading .http_method a {
177+ color: #fff;
178+ text-transform: uppercase;
179+ font-size: 11px;
180+ border-radius: 20px;
181+ padding: 2px 10px;
182+ font-weight: 700;
183+ display: inline-block
184+}
185+
186+.swagger-section .action-summary {
187+ margin: 0;
188+ padding: 20px;
189+ color: #838991
190+}
191+
192+.swagger-section .operation.get .http_method a, .swagger-section .operation.get .http_method span {
193+ background: #44c7f4
194+}
195+
196+.swagger-section .operation.post .http_method a, .swagger-section .operation.post .http_method span {
197+ background: #01b48f
198+}
199+
200+.swagger-section .operation.delete .http_method a, .swagger-section .operation.delete .http_method span {
201+ background: red
202+}
203+
204+.swagger-section .operation.patch .http_method a, .swagger-section .operation.patch .http_method span {
205+ background: #ff9a57
206+}
207+
208+.swagger-section .ui-form-control.error {
209+ border-color: #fd8888;
210+ border-width: 2px
211+}
212+
213+.swagger-section .parameter-item {
214+ min-width: 320px;
215+ background: #f8f8f9;
216+ color: #5c666f;
217+ font-size: 14px;
218+ margin-bottom: 20px
219+}
220+
221+.swagger-section .parameter-item .small-description {
222+ font-size: 12px;
223+ padding-top: 8px
224+}
225+
226+.swagger-section .parameter-item .small-description code {
227+ padding: 2px 4px;
228+ border-radius: 4px;
229+ font-size: 10px;
230+ border: 1px solid rgba(0, 0, 0, .07)
231+}
232+
233+.swagger-section .parameter-item .small-description code.code-signature {
234+ background: 0 0;
235+ color: gray;
236+ margin-right: 5px
237+}
238+
239+.swagger-section .parameter-item .small-description .markdown {
240+ display: inline-table;
241+}
242+
243+.swagger-section .parameter-item .small-description .markdown h1,
244+.swagger-section .parameter-item .small-description .markdown h2,
245+.swagger-section .parameter-item .small-description .markdown h3,
246+.swagger-section .parameter-item .small-description .markdown h4,
247+.swagger-section .parameter-item .small-description .markdown h5,
248+.swagger-section .parameter-item .small-description .markdown p,
249+.swagger-section .parameter-item .small-description .markdown li,
250+.swagger-section .parameter-item .small-description .markdown pre
251+{
252+ margin: 5px 0;
253+}
254+
255+@media (min-width: 992px) {
256+ .swagger-section .parameter-item {
257+ margin: 0 20px 20px;
258+ border-radius: 3px;
259+ border: 1px solid #e8eaeb;
260+ min-width: 0
261+ }
262+}
263+
264+.swagger-section .parameter-item:last-child {
265+ margin-bottom: 0
266+}
267+
268+@media (min-width: 992px) {
269+ .swagger-section .parameter-item:last-child {
270+ margin-bottom: 20px
271+ }
272+}
273+
274+/*
275+.swagger-section .parameter-item .parameter-content-type {
276+ display: none
277+}
278+*/
279+.swagger-section .parameter-item .param-property {
280+ padding: 20px;
281+ line-height: 1.4;
282+ border-bottom: 1px solid #e8eaeb;
283+ min-height: 59px
284+}
285+
286+@media (min-width: 992px) {
287+ .swagger-section .parameter-item .param-property {
288+ position: relative;
289+ padding-left: 150px
290+ }
291+
292+ .swagger-section .parameter-item .param-property:hover {
293+ background: #f0f0f2
294+ }
295+}
296+
297+.swagger-section .parameter-item .param-property:before {
298+ content: attr(data-label);
299+ display: block;
300+ font-weight: 700;
301+ margin-bottom: 15px;
302+ white-space: nowrap;
303+ overflow: hidden;
304+ text-overflow: ellipsis;
305+}
306+
307+@media (min-width: 992px) {
308+ .swagger-section .parameter-item .param-property:before {
309+ position: absolute;
310+ top: 28px;
311+ left: 0;
312+ display: inline-block;
313+ width: 150px;
314+ vertical-align: top;
315+ text-align: right;
316+ padding: 0 20px
317+ }
318+}
319+
320+.swagger-section .parameter-item .param-property:first-child, .swagger-section .parameter-item .param-property:last-child {
321+ border: 0
322+}
323+
324+.swagger-section .parameter-item .param-property:first-child {
325+ background: #949aa0;
326+ font-weight: 700;
327+ color: #fff
328+}
329+
330+@media (min-width: 992px) {
331+ .swagger-section .parameter-item .param-property:first-child {
332+ border-bottom: 1px solid #e8eaeb;
333+ background: #f8f8f9;
334+ color: #5c666f;
335+ font-weight: 400
336+ }
337+}
338+
339+.swagger-section .parameter-item .param-property:first-child:before {
340+ display: none
341+}
342+
343+@media (min-width: 992px) {
344+ .swagger-section .parameter-item .param-property:first-child:before {
345+ display: inline-block
346+ }
347+}
348+
349+.swagger-section .parameter-item .ui-form-control {
350+ width: auto;
351+ max-width: 100%
352+}
353+
354+.swagger-section .parameter-item .ui-form-control.body-textarea {
355+ min-height: 100px;
356+ width: 100%
357+}
358+
359+.swagger-section .parameter-item select.ui-form-control {
360+ width: auto
361+}
362+
363+@media (min-width: 992px) {
364+ .swagger-section .operations .model-signature h4 {
365+ color: #fff;
366+ text-transform: uppercase;
367+ letter-spacing: .08em;
368+ font-size: 14px
369+ }
370+}
371+
372+@media (min-width: 1400px) {
373+ .swagger-section .operations .model-signature h4 {
374+ padding: 20px 30px
375+ }
376+}
377+
378+.swagger-section .operations .model-signature .description {
379+ background: #5c666f;
380+ padding-bottom: 15px;
381+ color: #fff
382+}
383+
384+@media (min-width: 992px) {
385+ .swagger-section .operations .model-signature .description {
386+ background: #4e575e
387+ }
388+}
389+
390+.swagger-section .operations .model-signature .description > div {
391+ margin: 0;
392+ padding: 15px 20px
393+}
394+
395+.swagger-section .operations .model-signature .description > div:after {
396+ clear: both
397+}
398+
399+.swagger-section .operations .model-signature .description > div:after, .swagger-section .operations .model-signature .description > div:before {
400+ content: "";
401+ display: table
402+}
403+
404+@media (min-width: 1400px) {
405+ .swagger-section .operations .model-signature .description > div {
406+ padding: 15px 30px
407+ }
408+}
409+
410+.swagger-section .operations .model-signature .description > div + div {
411+ border-top: 1px solid #717d88
412+}
413+
414+@media (min-width: 992px) {
415+ .swagger-section .operations .model-signature .description > div + div {
416+ border-top: 1px solid #5c666f
417+ }
418+}
419+
420+.swagger-section .operations .model-signature .description .objectName {
421+ background: #535c64;
422+ display: block;
423+ font-weight: 700;
424+ padding: 20px
425+}
426+
427+@media (min-width: 992px) {
428+ .swagger-section .operations .model-signature .description .objectName {
429+ background: #576169;
430+ font-size: 13px;
431+ padding: 10px 30px;
432+ margin-top: 15px
433+ }
434+
435+ .swagger-section .operations .model-signature .description .objectName:first-child {
436+ margin-top: 0
437+ }
438+}
439+
440+.swagger-section .operations .model-signature .description .objectName .bracketsIcon, .swagger-section .operations .model-signature .description .objectName .objectNameText {
441+ display: table-cell
442+}
443+
444+.swagger-section .operations .model-signature .description .objectName .objectNameText {
445+ padding-left: 10px
446+}
447+
448+.swagger-section .operations .model-signature .description .objectName .bracketsIcon {
449+ opacity: .7;
450+ font-family: Menlo, monospace;
451+ font-size: 11px
452+}
453+
454+.swagger-section .operations .model-signature .description .propType {
455+ border-radius: 3px;
456+ padding: 0 5px;
457+ display: table-cell;
458+ border: 1px solid;
459+ font-weight: 400;
460+ font-size: 10px;
461+ font-family: Menlo, monospace;
462+ position: relative;
463+ top: -1px;
464+ left: 5px;
465+ max-width: 120px;
466+ text-overflow: ellipsis;
467+ overflow: hidden
468+}
469+
470+.swagger-section .operations .model-signature .description .propType[title=object], .swagger-section .operations .model-signature .description .propType[title] {
471+ color: #ff9ce3
472+}
473+
474+.swagger-section .operations .model-signature .description .propType[title=string] {
475+ color: #00fcd4
476+}
477+
478+.swagger-section .operations .model-signature .description .propType[title=boolean], .swagger-section .operations .model-signature .description .propType[title=integer] {
479+ color: #44c7f4
480+}
481+
482+.swagger-section .operations .model-signature .description .propType[title="array[string]"], .swagger-section .operations .model-signature .description .propType[title="array[object]"], .swagger-section .operations .model-signature .description .propType[title=array] {
483+ color: #eaca2c
484+}
485+
486+@media (min-width: 992px) {
487+ .swagger-section .operations .model-signature .description .propType {
488+ display: inline-block;
489+ vertical-align: top;
490+ top: 0;
491+ left: 0;
492+ line-height: 1;
493+ font-size: 9px;
494+ padding: 4px 5px
495+ }
496+}
497+
498+.swagger-section .operations .model-signature .description .propName {
499+ display: table-cell;
500+ font-weight: 700
501+}
502+
503+@media (min-width: 992px) {
504+ .swagger-section .operations .model-signature .description .propName {
505+ display: block
506+ }
507+}
508+
509+.swagger-section .operations .model-signature .description .propOptKey {
510+ opacity: .7;
511+ display: block
512+}
513+
514+@media (min-width: 992px) {
515+ .swagger-section .operations .model-signature .description .propOptKey {
516+ display: inline-block;
517+ vertical-align: top;
518+ margin-left: 5px;
519+ position: relative;
520+ top: -2px
521+ }
522+}
523+
524+@media (min-width: 992px) {
525+ .swagger-section .operations .model-signature .description .propDesc {
526+ float: right;
527+ width: 60%;
528+ width: calc(100% - 200px);
529+ padding-left: 20px;
530+ font-size: 12px;
531+ line-height: 1.5
532+ }
533+}
534+
535+@media (min-width: 992px) {
536+ .swagger-section .operations .model-signature .description .propLabels {
537+ text-align: right;
538+ text-align: right;
539+ display: block;
540+ width: 40%;
541+ width: calc(200px);
542+ float: left;
543+ font-size: 12px
544+ }
545+}
546+
547+.swagger-section pre {
548+ background: #4e575e;
549+ margin: 0;
550+ word-wrap: break-word !important;
551+ max-height: none;
552+ border-radius: 0;
553+ color: #fff
554+}
555+
556+.swagger-section pre code {
557+ color: #fff;
558+ background: none !important
559+}
560+
561+@media (min-width: 992px) {
562+ .swagger-section .responses-wrapper {
563+ padding: 0 20px
564+ }
565+}
566+
567+.swagger-section .operation-status {
568+ background: #f8f8f9;
569+ color: #5c666f;
570+ min-width: 320px
571+}
572+
573+@media (min-width: 992px) {
574+ .swagger-section .operation-status {
575+ background: 0 0
576+ }
577+}
578+
579+.swagger-section .operation-status td {
580+ width: auto;
581+ vertical-align: middle;
582+ border-bottom: 1px solid #e8eaeb;
583+ line-height: 1.4;
584+ padding: 15px
585+}
586+
587+.swagger-section .operation-status td:nth-child(1) {
588+ padding: 20px
589+}
590+
591+.swagger-section .operation-status td:nth-child(2) {
592+ color: #8c9299
593+}
594+
595+.swagger-section .token-generator {
596+ min-width: 320px;
597+ background: #5c666f;
598+ padding: 15px 20px;
599+ box-shadow: 0 1px 10px 0 rgba(0, 0, 0, .25);
600+ position: relative;
601+ max-height: 270px;
602+ overflow-y: auto
603+}
604+
605+@media (min-width: 992px) {
606+ .swagger-section .token-generator {
607+ padding-top: 40px;
608+ padding-right: 20px;
609+ box-shadow: none;
610+ background: #f3f3f4;
611+ color: #5c666f;
612+ max-height: none;
613+ min-width: 100%;
614+ width: 100%;
615+ margin-bottom: 30px;
616+ border-bottom: 1px solid #e8eaeb
617+ }
618+}
619+
620+@media (min-width: 992px) {
621+ .swagger-section .token-generator.hide {
622+ display: block !important
623+ }
624+}
625+
626+.swagger-section .token-generator .tg-link {
627+ color: #fff;
628+ font-size: 13px;
629+ text-decoration: underline;
630+ padding-top: 10px;
631+ display: inline-block;
632+ cursor: pointer
633+}
634+
635+.swagger-section .token-generator .tg-link + .tg-link {
636+ margin-left: 15px
637+}
638+
639+@media (min-width: 992px) {
640+ .swagger-section .token-generator .tg-link {
641+ color: #5c666f;
642+ margin-bottom: 20px
643+ }
644+
645+ .swagger-section .token-generator .tg-link:active, .swagger-section .token-generator .tg-link:hover {
646+ color: #9da2a8
647+ }
648+}
649+
650+.swagger-section .token-generator [data-scope-list] {
651+ margin-bottom: 10px
652+}
653+
654+@media (min-width: 992px) {
655+ .swagger-section .token-generator [data-scope-list] {
656+ margin-bottom: 20px
657+ }
658+}
659+
660+.swagger-section .token-generator [data-scope] {
661+ color: #fff;
662+ padding-bottom: 10px
663+}
664+
665+@media (min-width: 992px) {
666+ .swagger-section .token-generator [data-scope] {
667+ color: #5c666f;
668+ border: 1px solid #dfe2e4;
669+ border-radius: 20px;
670+ padding: 8px 20px 8px 12px;
671+ display: table;
672+ margin-bottom: 7px
673+ }
674+}
675+
676+.swagger-section .token-generator [data-scope] .name {
677+ font-size: 12px
678+}
679+
680+.swagger-section .token-generator [data-scope] [data-remove] {
681+ cursor: pointer
682+}
683+
684+@media (min-width: 992px) {
685+ .swagger-section .token-generator [data-scope] [data-remove] {
686+ color: #333
687+ }
688+
689+ .swagger-section .token-generator [data-scope] [data-remove]:active, .swagger-section .token-generator [data-scope] [data-remove]:hover {
690+ color: red
691+ }
692+}
693+
694+.swagger-section .token-generator [data-scope] [data-remove]:after {
695+ content: "\E179";
696+ font-family: budicon-font !important;
697+ font-style: normal !important;
698+ font-weight: 400 !important;
699+ font-variant: normal !important;
700+ text-transform: none !important;
701+ speak: none;
702+ line-height: 1;
703+ -webkit-font-smoothing: antialiased;
704+ -moz-osx-font-smoothing: grayscale;
705+ font-size: 10px;
706+ position: relative;
707+ left: 7px;
708+ top: 2px;
709+ opacity: .5
710+}
711+
712+.swagger-section .token-generator [data-close] {
713+ color: #fff;
714+ position: absolute;
715+ top: 0;
716+ right: 0;
717+ font-size: 12px;
718+ padding: 14px 20px;
719+ cursor: pointer
720+}
721+
722+@media (min-width: 992px) {
723+ .swagger-section .token-generator [data-close] {
724+ display: none
725+ }
726+}
727+
728+.swagger-section .token-generator .btn {
729+ background: #fff;
730+ border: 0;
731+ float: right
732+}
733+
734+@media (min-width: 992px) {
735+ .swagger-section .token-generator .btn {
736+ border: 1px solid #cfd3d5;
737+ height: 32px
738+ }
739+}
740+
741+.swagger-section .token-generator .btn:active, .swagger-section .token-generator .btn:hover {
742+ background: #e8eaeb
743+}
744+
745+@media (min-width: 992px) {
746+ .swagger-section .token-generator .btn.disabled {
747+ opacity: .3
748+ }
749+}
750+
751+.swagger-section .token-generator .btn > span {
752+ position: relative;
753+ top: 2px
754+}
755+
756+.swagger-section .token-generator .custom-select {
757+ background: #fff;
758+ padding: 0 18px 0 12px;
759+ border-radius: 3px;
760+ display: inline-block;
761+ width: 44.5%;
762+ width: calc(50% - 5px);
763+ height: 32px;
764+ line-height: 32px;
765+ white-space: nowrap;
766+ text-overflow: ellipsis;
767+ overflow: hidden;
768+ font-size: 13px;
769+ vertical-align: top
770+}
771+
772+@media (min-width: 992px) {
773+ .swagger-section .token-generator .custom-select {
774+ border: 1px solid #cfd3d5
775+ }
776+}
777+
778+@media (min-width: 992px) {
779+ .swagger-section .token-generator .custom-select.disabled {
780+ opacity: .3
781+ }
782+}
783+
784+.swagger-section .token-generator .custom-select:after {
785+ content: "\E16E";
786+ font-family: budicon-font !important;
787+ font-style: normal !important;
788+ font-weight: 400 !important;
789+ font-variant: normal !important;
790+ text-transform: none !important;
791+ speak: none;
792+ line-height: 1;
793+ -webkit-font-smoothing: antialiased;
794+ -moz-osx-font-smoothing: grayscale;
795+ font-size: 12px;
796+ position: absolute;
797+ top: 12px;
798+ right: 10px;
799+ opacity: .7;
800+ pointer-events: none;
801+ color: #5c666f
802+}
803+
804+.swagger-section .token-generator .custom-select + .custom-select {
805+ margin-left: 5px
806+}
807+
808+.swagger-section .token-generator .scope-selector {
809+ padding: 15px 0
810+}
811+
812+.swagger-section .token-generator .scope-selector:after {
813+ clear: both
814+}
815+
816+.swagger-section .token-generator .scope-selector:after, .swagger-section .token-generator .scope-selector:before {
817+ content: "";
818+ display: table
819+}
820+
821+.swagger-section .token-generator .scope-selector > .area {
822+ float: left
823+}
824+
825+.swagger-section .token-generator .scope-selector label {
826+ display: none
827+}
828+
829+@media (min-width: 992px) {
830+ .swagger-section .token-generator .scope-selector label {
831+ display: block
832+ }
833+}
834+
835+.swagger-section .token-generator .scope-selector .controls {
836+ width: calc(100% - 55px)
837+}
838+
839+.swagger-section .token-generator .scope-selector .cta {
840+ width: 55px
841+}
842+
843+.swagger-section .token-generator .scope-selector .cta:after {
844+ clear: both
845+}
846+
847+.swagger-section .token-generator .scope-selector .cta:after, .swagger-section .token-generator .scope-selector .cta:before {
848+ content: "";
849+ display: table
850+}
851+
852+.swagger-section .token-generator label {
853+ text-transform: uppercase;
854+ letter-spacing: .08em;
855+ font-size: 12px;
856+ font-weight: 700;
857+ color: #fff;
858+ display: inline-block;
859+ margin-bottom: 10px
860+}
861+
862+@media (min-width: 992px) {
863+ .swagger-section .token-generator label {
864+ color: #5c666f;
865+ font-size: 13px;
866+ margin-bottom: 15px
867+ }
868+}
869+
870+.swagger-section .operations h4 {
871+ font-size: 16px;
872+ padding: 20px;
873+ margin: 0;
874+ color: #5c666f;
875+ cursor: pointer;
876+ box-shadow: inset 0 -1px 0 0 #e8eaeb;
877+ transition: box-shadow 0 300ms ease;
878+ min-width: 320px;
879+ position: relative
880+}
881+
882+@media (min-width: 992px) {
883+ .swagger-section .operations h4 {
884+ box-shadow: none;
885+ cursor: default
886+ }
887+}
888+
889+.swagger-section .operations h4:after {
890+ content: "\E17B";
891+ font-family: budicon-font !important;
892+ font-style: normal !important;
893+ font-weight: 400 !important;
894+ font-variant: normal !important;
895+ text-transform: none !important;
896+ speak: none;
897+ line-height: 1;
898+ -webkit-font-smoothing: antialiased;
899+ -moz-osx-font-smoothing: grayscale;
900+ font-size: 12px;
901+ position: absolute;
902+ top: 25px;
903+ right: 20px;
904+ opacity: .7
905+}
906+
907+@media (min-width: 992px) {
908+ .swagger-section .operations h4:after {
909+ display: none
910+ }
911+}
912+
913+/* change
914+.swagger-section .operations [data-accordion].open h4 {
915+ box-shadow: inset 0 -1px 0 0 transparent;
916+ transition: box-shadow 0 0 ease
917+}
918+*/
919+
920+.swagger-section .operations h4:not(.collapsed) {
921+ box-shadow: inset 0 -1px 0 0 transparent;
922+ transition: box-shadow 0 0 ease
923+}
924+
925+/* change
926+.swagger-section .operations [data-accordion].open h4:after {
927+ content: "\E17A";
928+ font-family: budicon-font !important;
929+ font-style: normal !important;
930+ font-weight: 400 !important;
931+ font-variant: normal !important;
932+ text-transform: none !important;
933+ speak: none;
934+ line-height: 1;
935+ -webkit-font-smoothing: antialiased;
936+ -moz-osx-font-smoothing: grayscale
937+}
938+*/
939+
940+.swagger-section .operations h4:not(.collapsed):after {
941+ content: "\E17A";
942+ font-family: budicon-font !important;
943+ font-style: normal !important;
944+ font-weight: 400 !important;
945+ font-variant: normal !important;
946+ text-transform: none !important;
947+ speak: none;
948+ line-height: 1;
949+ -webkit-font-smoothing: antialiased;
950+ -moz-osx-font-smoothing: grayscale
951+}
952+
953+/*
954+@media (min-width: 992px) {
955+ .swagger-section .scopes {
956+ padding: 0 15px
957+ }
958+}
959+
960+.swagger-section .scopes .scope {
961+ background: #f8f8f9;
962+ color: #5c666f;
963+ display: block;
964+ padding: 15px 20px;
965+ font-size: 12px;
966+ cursor: pointer
967+}
968+
969+.swagger-section .scopes .scope:before {
970+ content: "";
971+ font-family: budicon-font !important;
972+ font-style: normal !important;
973+ font-weight: 400 !important;
974+ font-variant: normal !important;
975+ text-transform: none !important;
976+ speak: none;
977+ line-height: 1;
978+ -webkit-font-smoothing: antialiased;
979+ -moz-osx-font-smoothing: grayscale;
980+ position: relative;
981+ top: 2px;
982+ margin-right: 5px
983+}
984+
985+.swagger-section .scopes .scope.active {
986+ background: #ebebee
987+}
988+
989+.swagger-section .scopes .scope.active:before {
990+ content: "\E178";
991+ font-family: budicon-font !important;
992+ font-style: normal !important;
993+ font-weight: 400 !important;
994+ font-variant: normal !important;
995+ text-transform: none !important;
996+ speak: none;
997+ line-height: 1;
998+ -webkit-font-smoothing: antialiased;
999+ -moz-osx-font-smoothing: grayscale
1000+}
1001+
1002+@media (min-width: 992px) {
1003+ .swagger-section .scopes .scope.active {
1004+ background: #f8f8f9
1005+ }
1006+}
1007+
1008+@media (min-width: 992px) {
1009+ .swagger-section .scopes .scope {
1010+ display: inline-block;
1011+ border: 1px solid #e8eaeb;
1012+ border-radius: 20px;
1013+ background: 0 0;
1014+ padding: 8px 12px
1015+ }
1016+}
1017+
1018+.swagger-section .scopes .scope + .scope {
1019+ border-top: 1px solid #e8eaeb
1020+}
1021+
1022+@media (min-width: 992px) {
1023+ .swagger-section .scopes .scope + .scope {
1024+ margin: 5px
1025+ }
1026+}
1027+*/
1028+
1029+.api-popup-scopes .scopes {
1030+ padding: 0 15px
1031+}
1032+
1033+.api-popup-scopes .scopes .scope:before {
1034+ content: "";
1035+ font-family: budicon-font !important;
1036+ font-style: normal !important;
1037+ font-weight: 400 !important;
1038+ font-variant: normal !important;
1039+ text-transform: none !important;
1040+ speak: none;
1041+ line-height: 1;
1042+ -webkit-font-smoothing: antialiased;
1043+ -moz-osx-font-smoothing: grayscale;
1044+ position: relative;
1045+ top: 2px;
1046+ margin-right: 5px
1047+}
1048+
1049+.api-popup-scopes .scopes .scope.active:before {
1050+ content: "\E178";
1051+ font-family: budicon-font !important;
1052+ font-style: normal !important;
1053+ font-weight: 400 !important;
1054+ font-variant: normal !important;
1055+ text-transform: none !important;
1056+ speak: none;
1057+ line-height: 1;
1058+ -webkit-font-smoothing: antialiased;
1059+ -moz-osx-font-smoothing: grayscale
1060+}
1061+
1062+.api-popup-scopes .scopes .scope.active {
1063+ background: #f8f8f9
1064+}
1065+
1066+.api-popup-scopes .scopes .scope {
1067+ cursor: pointer;
1068+ display: inline-block;
1069+ border: 1px solid #e8eaeb;
1070+ border-radius: 20px;
1071+ background: 0 0;
1072+ padding: 8px 12px
1073+}
1074+
1075+.api-popup-scopes .scopes .scope + .scope {
1076+ margin: 5px
1077+}
1078+
1079+.swagger-section .sticky-nav.fixed {
1080+ position: fixed;
1081+ top: 0;
1082+ left: 0;
1083+ width: 100%;
1084+ z-index: 600
1085+}
1086+
1087+@media (min-width: 992px) {
1088+ .swagger-section .sticky-nav.fixed {
1089+ width: 290px;
1090+ height: 100%;
1091+ overflow-y: auto
1092+ }
1093+}
1094+
1095+@media (min-width: 1400px) {
1096+ .swagger-section .sticky-nav.fixed {
1097+ width: 320px
1098+ }
1099+}
1100+
1101+.swagger-section .sticky-nav [data-navigator] {
1102+ transition: height 300ms ease;
1103+ height: 0;
1104+ overflow-y: scroll;
1105+ overflow-x: hidden;
1106+ background: #4e575e;
1107+ box-shadow: inset 0 2px 10px 0 rgba(0, 0, 0, .4);
1108+ position: absolute;
1109+ top: 43px;
1110+ width: 100%;
1111+ z-index: 500
1112+}
1113+
1114+@media (min-width: 992px) {
1115+ .swagger-section .sticky-nav [data-navigator] {
1116+ position: static;
1117+ height: auto;
1118+ overflow: visible;
1119+ background: #f8f8f9;
1120+ box-shadow: none
1121+ }
1122+
1123+ .swagger-section .sticky-nav [data-navigator]:before {
1124+ display: inline-block;
1125+ content: "API Reference";
1126+ text-transform: uppercase;
1127+ letter-spacing: .08em;
1128+ color: #5c666f;
1129+ font-size: 13px;
1130+ font-weight: 700;
1131+ margin-bottom: 15px;
1132+ padding: 0 20px
1133+ }
1134+}
1135+
1136+@media (min-width: 992px) {
1137+ .swagger-section .sticky-nav [data-navigator] [data-resource] {
1138+ cursor: pointer
1139+ }
1140+}
1141+
1142+@media (min-width: 992px) {
1143+ .swagger-section .sticky-nav [data-navigator] [data-resource] .item {
1144+ display: none
1145+ }
1146+}
1147+
1148+@media (min-width: 992px) {
1149+ .swagger-section .sticky-nav [data-navigator] [data-resource].active .item {
1150+ display: block
1151+ }
1152+}
1153+
1154+.swagger-section .sticky-nav [data-navigator] [data-resource]:before {
1155+ content: attr(label);
1156+ display: block;
1157+ color: #fff;
1158+ padding: 10px 20px;
1159+ text-transform: uppercase;
1160+ letter-spacing: .08em;
1161+ font-size: 11px;
1162+ font-weight: 700;
1163+ background: #454d53
1164+}
1165+
1166+@media (min-width: 992px) {
1167+ .swagger-section .sticky-nav [data-navigator] [data-resource]:before {
1168+ background: 0 0;
1169+ text-transform: none;
1170+ font-size: 16px;
1171+ font-weight: 400;
1172+ letter-spacing: 0;
1173+ color: #5c666f
1174+ }
1175+}
1176+
1177+@media (min-width: 992px) {
1178+ .swagger-section .sticky-nav [data-navigator] [label=Tools] {
1179+ display: none
1180+ }
1181+}
1182+
1183+.swagger-section .sticky-nav [data-navigator] .item {
1184+ padding: 12px 20px;
1185+ color: #fff;
1186+ cursor: pointer;
1187+ overflow: hidden;
1188+ text-overflow: ellipsis;
1189+ white-space: nowrap;
1190+ position: relative
1191+}
1192+
1193+@media (min-width: 992px) {
1194+ .swagger-section .sticky-nav [data-navigator] .item {
1195+ color: #5c666f;
1196+ padding: 9px 9px 9px 40px;
1197+ font-size: 14px;
1198+ background: #f3f3f4
1199+ }
1200+
1201+ .swagger-section .sticky-nav [data-navigator] .item:active, .swagger-section .sticky-nav [data-navigator] .item:hover {
1202+ color: #8c9299
1203+ }
1204+}
1205+
1206+.swagger-section .sticky-nav [data-navigator] .item[data-tg-switch]:after {
1207+ content: 'OFF';
1208+ position: absolute;
1209+ right: 20px;
1210+ top: 8px;
1211+ display: block;
1212+ background: #000;
1213+ width: 40px;
1214+ font-size: 11px;
1215+ font-weight: 700;
1216+ text-transform: uppercase;
1217+ text-align: center;
1218+ padding: 5px 0;
1219+ border-radius: 13px;
1220+ opacity: .2
1221+}
1222+
1223+.swagger-section .sticky-nav [data-navigator] .item[data-tg-switch].active:after {
1224+ content: 'ON';
1225+ background: rgba(68, 199, 244, .5);
1226+ opacity: 1
1227+}
1228+
1229+.swagger-section .sticky-nav [data-navigator] .item[data-selected] {
1230+ background: rgba(68, 199, 244, .5);
1231+ padding-right: 42px
1232+}
1233+
1234+@media (min-width: 992px) {
1235+ .swagger-section .sticky-nav [data-navigator] .item[data-selected] {
1236+ background: #f3f3f4;
1237+ font-weight: 700;
1238+ color: #333
1239+ }
1240+
1241+ .swagger-section .sticky-nav [data-navigator] .item[data-selected]:active, .swagger-section .sticky-nav [data-navigator] .item[data-selected]:hover {
1242+ color: #333
1243+ }
1244+}
1245+
1246+.swagger-section .sticky-nav [data-navigator] .item[data-selected]:after {
1247+ content: "\E178";
1248+ font-family: budicon-font !important;
1249+ font-style: normal !important;
1250+ font-weight: 400 !important;
1251+ font-variant: normal !important;
1252+ text-transform: none !important;
1253+ speak: none;
1254+ line-height: 1;
1255+ -webkit-font-smoothing: antialiased;
1256+ -moz-osx-font-smoothing: grayscale;
1257+ font-size: 12px;
1258+ position: absolute;
1259+ top: 15px;
1260+ right: 20px;
1261+ opacity: .7;
1262+ pointer-events: none
1263+}
1264+
1265+@media (min-width: 992px) {
1266+ .swagger-section .sticky-nav [data-navigator] .item[data-selected]:after {
1267+ display: none
1268+ }
1269+}
1270+
1271+.swagger-section .sticky-nav [data-navigator] .item + .item {
1272+ border-top: 1px solid #576169
1273+}
1274+
1275+@media (min-width: 992px) {
1276+ .swagger-section .sticky-nav [data-navigator] .item + .item {
1277+ border-top: 1px solid #e8eaeb
1278+ }
1279+}
1280+
1281+.swagger-section .sticky-nav.nav-open [data-navigator] {
1282+ height: 180px;
1283+ height: 100vh
1284+}
1285+
1286+@media (min-width: 992px) {
1287+ .swagger-section .sticky-nav.nav-open [data-navigator] {
1288+ height: auto
1289+ }
1290+}
1291+
1292+.swagger-section .custom-select {
1293+ position: relative
1294+}
1295+
1296+.swagger-section .custom-select.disabled {
1297+ opacity: .65
1298+}
1299+
1300+.swagger-section .custom-select select {
1301+ position: absolute;
1302+ top: 0;
1303+ left: 0;
1304+ width: 100%;
1305+ height: 100%;
1306+ opacity: 0;
1307+ -webkit-appearance: none
1308+}
1309+
1310+.swagger-section .mobile-nav {
1311+ position: relative;
1312+ background: #fff;
1313+ padding: 15px 20px;
1314+ cursor: default;
1315+ text-transform: uppercase;
1316+ letter-spacing: .08em;
1317+ font-size: 12px;
1318+ border-bottom: 1px solid #ebebee;
1319+ z-index: 800
1320+}
1321+
1322+@media (min-width: 992px) {
1323+ .swagger-section .mobile-nav {
1324+ display: none
1325+ }
1326+}
1327+
1328+.swagger-section .mobile-nav:after {
1329+ content: "\E16E";
1330+ font-family: budicon-font !important;
1331+ font-style: normal !important;
1332+ font-weight: 400 !important;
1333+ font-variant: normal !important;
1334+ text-transform: none !important;
1335+ speak: none;
1336+ line-height: 1;
1337+ -webkit-font-smoothing: antialiased;
1338+ -moz-osx-font-smoothing: grayscale;
1339+ font-size: 12px;
1340+ position: absolute;
1341+ top: 15px;
1342+ right: 20px;
1343+ opacity: .7;
1344+ pointer-events: none
1345+}
1346+
1347+.swagger-section .mobile-nav > span {
1348+ display: table-cell
1349+}
1350+
1351+.swagger-section .mobile-nav .select-label {
1352+ color: #9da2a8;
1353+ min-width: 110px
1354+}
1355+
1356+.swagger-section .mobile-nav [data-selected-value] {
1357+ max-width: 140px;
1358+ overflow: hidden;
1359+ text-overflow: ellipsis;
1360+ white-space: nowrap
1361+}
1362+
1363+.modal-backdrop {
1364+ background: none !important
1365+}
1366+
1367+.changes-disclaimer {
1368+ display: none;
1369+ border: 1px solid #dddde2;
1370+ border-radius: 3px;
1371+ padding: 15px;
1372+ margin: 20px 20px 40px;
1373+ line-height: 1.4;
1374+ background: #ebebee;
1375+ font-size: 13px
1376+}
1377+
1378+@media (min-width: 992px) {
1379+ .changes-disclaimer {
1380+ display: block
1381+ }
1382+}
1383+
1384+.site-header .container {
1385+ max-width: none !important;
1386+ width: 100%
1387+}
1388+
1389+body {
1390+ overflow-x: hidden
1391+}
1392+
1393+#api2-explorer .btn {
1394+ outline: 0
1395+}
1396+
1397+#api2-explorer code.json {
1398+ font-size: 12px
1399+}
1400+
1401+#api2-explorer a.toggle-samples {
1402+ display: none
1403+}
1404+
1405+#api2-explorer .modal {
1406+ background: rgba(244, 241, 241, .95)
1407+}
1408+
1409+#api2-explorer .modal h5 {
1410+ color: #5c666f;
1411+ text-transform: uppercase;
1412+ font-size: 12px;
1413+ margin: 10px 0;
1414+ letter-spacing: .065em
1415+}
1416+
1417+#api2-explorer .modal pre {
1418+ border-radius: 3px
1419+}
1420+
1421+#api2-explorer .modal .modal-content {
1422+ box-shadow: 0 0 10px 0 rgba(0, 0, 0, .1);
1423+ border: 0
1424+}
1425+
1426+#api2-explorer .modal .modal-title {
1427+ padding: 0;
1428+ margin: 0;
1429+ font-size: 16px
1430+}
1431+
1432+#api2-explorer .modal .modal-title .http_method {
1433+ text-transform: uppercase;
1434+ font-size: 12px;
1435+ letter-spacing: .065em
1436+}
1437+
1438+#api2-explorer .modal .modal-title .http_method .text {
1439+ color: #fff;
1440+ font-size: 11px;
1441+ padding: 4px 10px;
1442+ border-radius: 20px;
1443+ margin-left: 10px
1444+}
1445+
1446+#api2-explorer .modal .modal-dialog {
1447+ overflow: visible
1448+}
1449+
1450+#api2-explorer .modal .modal-dialog .modal-body {
1451+ padding: 20px;
1452+ max-height: none
1453+}
1454+
1455+@media (min-width: 992px) {
1456+ #api2-explorer .modal .modal-dialog .modal-body {
1457+ padding: 20px 30px
1458+ }
1459+}
1460+
1461+#swagger-ui-container {
1462+ position: relative
1463+}
1464+
1465+@media (min-width: 992px) {
1466+ .swagger-section #swagger_sidebar {
1467+ width: 290px;
1468+ position: absolute;
1469+ left: 0;
1470+ top: 0;
1471+ height: 100%;
1472+ background: #f8f8f9;
1473+ min-height: 100vh
1474+ }
1475+}
1476+
1477+@media (min-width: 1400px) {
1478+ .swagger-section #swagger_sidebar {
1479+ width: 320px
1480+ }
1481+}
1482+
1483+@media (min-width: 992px) {
1484+ .swagger-section #resources_container {
1485+ width: 100%;
1486+ padding-left: 290px
1487+ }
1488+}
1489+
1490+@media (min-width: 1400px) {
1491+ .swagger-section #resources_container {
1492+ padding-left: 320px
1493+ }
1494+}
1495+
1496+.swagger-section .implementation-notes {
1497+ padding: 0 20px
1498+}
1499+
1500+.swagger-section .endpoint {
1501+ margin: 0 0 100px
1502+}
1503+
1504+@media (min-width: 992px) {
1505+ .swagger-section .endpoint + .endpoint, .swagger-section .endpoint:first-child {
1506+ border-top: 1px solid rgba(0, 0, 0, .08)
1507+ }
1508+}
1509+
1510+.swagger-section .sandbox_header {
1511+ padding: 0 20px 20px
1512+}
1513+
1514+.swagger-section .sandbox_header a {
1515+ text-decoration: underline
1516+}
1517+
1518+.swagger-section .sandbox_header .btn-primary {
1519+ margin-right: 5px
1520+}
1521+
1522+.swagger-section #resources a.toggle-samples {
1523+ display: none
1524+}
1525+
1526+.swagger-section #resources .endpoint {
1527+ transition: opacity 300ms ease-in-out
1528+}
1529+
1530+@media (min-width: 992px) {
1531+ .swagger-section #resources {
1532+ width: 100%;
1533+ transition: width 300ms
1534+ }
1535+
1536+ .swagger-section #resources .operation .content {
1537+ position: relative
1538+ }
1539+
1540+ .swagger-section #resources a.toggle-samples {
1541+ display: inline-block;
1542+ position: absolute;
1543+ top: 30px;
1544+ right: 20px;
1545+ color: #5c666f;
1546+ text-decoration: none;
1547+ cursor: pointer
1548+ }
1549+
1550+ .swagger-section #resources a.toggle-samples:hover .text {
1551+ text-decoration: underline
1552+ }
1553+
1554+ .swagger-section #resources a.toggle-samples .circle-icon {
1555+ display: inline-block;
1556+ background: rgba(128, 128, 128, .09);
1557+ border-radius: 50%;
1558+ border: 1px solid rgba(92, 102, 111, .09);
1559+ font-size: 11px;
1560+ height: 30px;
1561+ width: 30px;
1562+ line-height: 30px;
1563+ padding: 0;
1564+ text-align: center;
1565+ position: relative;
1566+ margin-left: 8px
1567+ }
1568+
1569+ .swagger-section #resources a.toggle-samples .circle-icon:before {
1570+ content: '\E16F';
1571+ font-family: budicon-font !important;
1572+ font-style: normal !important;
1573+ font-weight: 400 !important;
1574+ font-variant: normal !important;
1575+ text-transform: none !important;
1576+ speak: none;
1577+ line-height: 1;
1578+ -webkit-font-smoothing: antialiased;
1579+ -moz-osx-font-smoothing: grayscale;
1580+ font-size: 12px;
1581+ position: relative;
1582+ top: 2px
1583+ }
1584+
1585+ .swagger-section #resources a.toggle-samples:active, .swagger-section #resources a.toggle-samples:hover {
1586+ color: #9da2a8
1587+ }
1588+}
1589+
1590+@media (min-width: 1400px) {
1591+ .swagger-section #resources a.toggle-samples {
1592+ display: none
1593+ }
1594+}
1595+
1596+.swagger-section #resources.is-collapsing .endpoint {
1597+ opacity: 0;
1598+ transition: none
1599+}
1600+
1601+@media (min-width: 992px) {
1602+ .swagger-section #resources.samples-collapsed {
1603+ width: 130%;
1604+ }
1605+
1606+ .swagger-section #resources.samples-collapsed a.toggle-samples .circle-icon:before {
1607+ content: '\E0F8';
1608+ font-family: budicon-font !important;
1609+ font-style: normal !important;
1610+ font-weight: 400 !important;
1611+ font-variant: normal !important;
1612+ text-transform: none !important;
1613+ speak: none;
1614+ line-height: 1;
1615+ -webkit-font-smoothing: antialiased;
1616+ -moz-osx-font-smoothing: grayscale
1617+ }
1618+
1619+ .swagger-section #resources.samples-collapsed .samples > * {
1620+ display: none
1621+ }
1622+}
1623+
1624+@media (min-width: 1400px) {
1625+ .swagger-section #resources.samples-collapsed {
1626+ width: 100%
1627+ }
1628+
1629+ .swagger-section #resources.samples-collapsed .samples > * {
1630+ display: inherit
1631+ }
1632+}
1633+
1634+.swagger-section ul#resources, .swagger-section ul.endpoints {
1635+ padding: 0
1636+}
1637+
1638+.swagger-section [data-accordion] [data-content] {
1639+ overflow: hidden;
1640+ max-height: 0
1641+}
1642+
1643+@media (min-width: 992px) {
1644+ .swagger-section [data-accordion] [data-content] {
1645+ max-height: none !important
1646+ }
1647+}
1648+
1649+.swagger-section .swagger-ui-wrap {
1650+ line-height: 1;
1651+ font-family: proxima-nova, sans-serif;
1652+ margin-left: auto;
1653+ margin-right: auto
1654+}
1655+
1656+.swagger-section .swagger-ui-wrap b, .swagger-section .swagger-ui-wrap strong {
1657+ font-family: proxima-nova, sans-serif;
1658+ font-weight: 700
1659+}
1660+
1661+.swagger-section .swagger-ui-wrap blockquote, .swagger-section .swagger-ui-wrap q {
1662+ quotes: none
1663+}
1664+
1665+.swagger-section .swagger-ui-wrap blockquote:after, .swagger-section .swagger-ui-wrap blockquote:before, .swagger-section .swagger-ui-wrap q:after, .swagger-section .swagger-ui-wrap q:before {
1666+ content: none
1667+}
1668+
1669+.swagger-section .swagger-ui-wrap .heading_with_menu h1, .swagger-section .swagger-ui-wrap .heading_with_menu h2, .swagger-section .swagger-ui-wrap .heading_with_menu h3, .swagger-section .swagger-ui-wrap .heading_with_menu h4, .swagger-section .swagger-ui-wrap .heading_with_menu h5, .swagger-section .swagger-ui-wrap .heading_with_menu h6 {
1670+ display: block;
1671+ clear: none;
1672+ float: left;
1673+ -moz-box-sizing: border-box;
1674+ -webkit-box-sizing: border-box;
1675+ -ms-box-sizing: border-box;
1676+ box-sizing: border-box;
1677+ width: 60%
1678+}
1679+
1680+.swagger-section .swagger-ui-wrap table {
1681+ border-collapse: collapse;
1682+ border-spacing: 0
1683+}
1684+
1685+.swagger-section .swagger-ui-wrap table thead tr th {
1686+ padding: 5px;
1687+ font-size: .9em;
1688+ color: #666;
1689+ border-bottom: 1px solid #999
1690+}
1691+
1692+.swagger-section .swagger-ui-wrap table tbody tr:last-child td {
1693+ border-bottom: none
1694+}
1695+
1696+.swagger-section .swagger-ui-wrap table tbody tr.offset {
1697+ background-color: #f0f0f0
1698+}
1699+
1700+.swagger-section .swagger-ui-wrap ol {
1701+ margin: 0 0 10px;
1702+ padding: 0 0 0 18px
1703+}
1704+
1705+.swagger-section .swagger-ui-wrap ol li {
1706+ padding: 5px 0;
1707+ font-size: .9em;
1708+ color: #333
1709+}
1710+
1711+.swagger-section .swagger-ui-wrap ol, .swagger-section .swagger-ui-wrap ul {
1712+ list-style: none
1713+}
1714+
1715+.swagger-section .swagger-ui-wrap h1 a, .swagger-section .swagger-ui-wrap h2 a, .swagger-section .swagger-ui-wrap h3 a, .swagger-section .swagger-ui-wrap h4 a, .swagger-section .swagger-ui-wrap h5 a, .swagger-section .swagger-ui-wrap h6 a {
1716+ text-decoration: none
1717+}
1718+
1719+.swagger-section .swagger-ui-wrap h1 a:hover, .swagger-section .swagger-ui-wrap h2 a:hover, .swagger-section .swagger-ui-wrap h3 a:hover, .swagger-section .swagger-ui-wrap h4 a:hover, .swagger-section .swagger-ui-wrap h5 a:hover, .swagger-section .swagger-ui-wrap h6 a:hover {
1720+ text-decoration: underline
1721+}
1722+
1723+.swagger-section .swagger-ui-wrap h1 span.divider, .swagger-section .swagger-ui-wrap h2 span.divider, .swagger-section .swagger-ui-wrap h3 span.divider, .swagger-section .swagger-ui-wrap h4 span.divider, .swagger-section .swagger-ui-wrap h5 span.divider, .swagger-section .swagger-ui-wrap h6 span.divider {
1724+ color: #aaa
1725+}
1726+
1727+.swagger-section .swagger-ui-wrap article, .swagger-section .swagger-ui-wrap aside, .swagger-section .swagger-ui-wrap details, .swagger-section .swagger-ui-wrap figcaption, .swagger-section .swagger-ui-wrap figure, .swagger-section .swagger-ui-wrap footer, .swagger-section .swagger-ui-wrap header, .swagger-section .swagger-ui-wrap hgroup, .swagger-section .swagger-ui-wrap menu, .swagger-section .swagger-ui-wrap nav, .swagger-section .swagger-ui-wrap section, .swagger-section .swagger-ui-wrap summary {
1728+ display: block
1729+}
1730+
1731+.swagger-section .swagger-ui-wrap .content > .content-type > div > label {
1732+ clear: both;
1733+ display: block;
1734+ color: #0F6AB4;
1735+ font-size: 1.1em;
1736+ margin: 0;
1737+ padding: 15px 0 5px
1738+}
1739+
1740+.swagger-section .swagger-ui-wrap .icon-btn {
1741+ cursor: pointer
1742+}
1743+
1744+.swagger-section .swagger-ui-wrap .info_title {
1745+ padding-bottom: 10px;
1746+ font-weight: 700;
1747+ font-size: 25px
1748+}
1749+
1750+.swagger-section .swagger-ui-wrap div.big p, .swagger-section .swagger-ui-wrap p.big {
1751+ font-size: 1em;
1752+ margin-bottom: 10px
1753+}
1754+
1755+.swagger-section .swagger-ui-wrap form.fullwidth ol li.numeric input, .swagger-section .swagger-ui-wrap form.fullwidth ol li.string input, .swagger-section .swagger-ui-wrap form.fullwidth ol li.text textarea, .swagger-section .swagger-ui-wrap form.fullwidth ol li.url input {
1756+ width: 500px !important
1757+}
1758+
1759+.swagger-section .swagger-ui-wrap .info_license, .swagger-section .swagger-ui-wrap .info_tos {
1760+ padding-bottom: 5px
1761+}
1762+
1763+.swagger-section .swagger-ui-wrap .message-fail {
1764+ color: #c00
1765+}
1766+
1767+.swagger-section .swagger-ui-wrap .info_contact {
1768+ padding-bottom: 5px
1769+}
1770+
1771+.swagger-section .swagger-ui-wrap .info_description {
1772+ padding-bottom: 10px;
1773+ font-size: 15px
1774+}
1775+
1776+.swagger-section .swagger-ui-wrap .markdown ol li, .swagger-section .swagger-ui-wrap .markdown ul li {
1777+ padding: 3px 0;
1778+ line-height: 1.4em;
1779+ color: #333
1780+}
1781+
1782+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input, .swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input, .swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input {
1783+ display: block;
1784+ padding: 4px;
1785+ width: auto;
1786+ clear: both
1787+}
1788+
1789+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input.title, .swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input.title, .swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input.title {
1790+ font-size: 1.3em
1791+}
1792+
1793+.swagger-section .swagger-ui-wrap table.fullwidth {
1794+ width: 100%
1795+}
1796+
1797+.swagger-section .swagger-ui-wrap .model-signature {
1798+ font-family: proxima-nova, sans-serif;
1799+ font-size: 1em;
1800+ line-height: 1.5em
1801+}
1802+
1803+.swagger-section .swagger-ui-wrap .model-signature .signature-nav a {
1804+ text-decoration: none;
1805+ color: #AAA
1806+}
1807+
1808+.swagger-section .swagger-ui-wrap .model-signature .signature-nav a:hover {
1809+ text-decoration: underline;
1810+ color: #000
1811+}
1812+
1813+.swagger-section .swagger-ui-wrap .model-signature .signature-nav .selected {
1814+ color: #000;
1815+ text-decoration: none
1816+}
1817+
1818+.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav {
1819+ display: block;
1820+ margin: 0;
1821+ padding: 0
1822+}
1823+
1824+.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li:last-child {
1825+ padding-right: 0;
1826+ border-right: none
1827+}
1828+
1829+.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li {
1830+ float: left;
1831+ margin: 0 5px 5px 0;
1832+ padding: 2px 5px 2px 0;
1833+ border-right: 1px solid #ddd
1834+}
1835+
1836+.swagger-section .swagger-ui-wrap .model-signature .snippet small {
1837+ font-size: .75em
1838+}
1839+
1840+.swagger-section .swagger-ui-wrap .model-signature .signature-container {
1841+ clear: both
1842+}
1843+
1844+.swagger-section .swagger-ui-wrap .required {
1845+ font-weight: 700
1846+}
1847+
1848+.swagger-section .swagger-ui-wrap h1 {
1849+ color: #000;
1850+ font-size: 1.5em;
1851+ line-height: 1.3em;
1852+ padding: 10px 0;
1853+ font-family: proxima-nova, sans-serif;
1854+ font-weight: 700
1855+}
1856+
1857+.swagger-section .swagger-ui-wrap .heading_with_menu {
1858+ float: none;
1859+ clear: both;
1860+ overflow: hidden;
1861+ display: block
1862+}
1863+
1864+.swagger-section .swagger-ui-wrap .heading_with_menu ul {
1865+ display: block;
1866+ clear: none;
1867+ float: right;
1868+ -moz-box-sizing: border-box;
1869+ -webkit-box-sizing: border-box;
1870+ -ms-box-sizing: border-box;
1871+ box-sizing: border-box;
1872+ margin-top: 10px
1873+}
1874+
1875+.swagger-section .swagger-ui-wrap span.weak {
1876+ color: #666
1877+}
1878+
1879+.swagger-section .swagger-ui-wrap .message-success {
1880+ color: #89BF04
1881+}
1882+
1883+.swagger-section .swagger-ui-wrap caption, .swagger-section .swagger-ui-wrap td, .swagger-section .swagger-ui-wrap th {
1884+ text-align: left;
1885+ font-weight: 400;
1886+ vertical-align: middle
1887+}
1888+
1889+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.text textarea {
1890+ font-family: proxima-nova, sans-serif;
1891+ height: 250px;
1892+ padding: 4px;
1893+ display: block;
1894+ clear: both
1895+}
1896+
1897+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.select select {
1898+ display: block;
1899+ clear: both
1900+}
1901+
1902+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean {
1903+ float: none;
1904+ clear: both;
1905+ overflow: hidden;
1906+ display: block
1907+}
1908+
1909+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean label {
1910+ display: block;
1911+ float: left;
1912+ clear: none;
1913+ margin: 0;
1914+ padding: 0
1915+}
1916+
1917+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean input {
1918+ display: block;
1919+ float: left;
1920+ clear: none;
1921+ margin: 0 5px 0 0
1922+}
1923+
1924+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.required label {
1925+ color: #000
1926+}
1927+
1928+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label {
1929+ display: block;
1930+ clear: both;
1931+ width: auto;
1932+ padding: 0 0 3px;
1933+ color: #666
1934+}
1935+
1936+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label abbr {
1937+ padding-left: 3px;
1938+ color: #888
1939+}
1940+
1941+.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li p.inline-hints {
1942+ font-style: italic;
1943+ font-size: .9em;
1944+ margin: 0
1945+}
1946+
1947+.swagger-section .swagger-ui-wrap form.formtastic fieldset.buttons {
1948+ margin: 0;
1949+ padding: 0
1950+}
1951+
1952+.swagger-section .swagger-ui-wrap span.blank, .swagger-section .swagger-ui-wrap span.empty {
1953+ color: #888;
1954+ font-style: italic
1955+}
1956+
1957+.swagger-section .swagger-ui-wrap .markdown h3 {
1958+ color: #547f00
1959+}
1960+
1961+.swagger-section .swagger-ui-wrap .markdown h4 {
1962+ color: #666
1963+}
1964+
1965+.swagger-section .swagger-ui-wrap div.gist {
1966+ margin: 20px 0 25px !important
1967+}
1968+
1969+.swagger-section .swagger-ui-wrap ul#resources {
1970+ font-family: proxima-nova, sans-serif;
1971+ font-size: .9em
1972+}
1973+
1974+.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading h2 a, .swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading h2 a {
1975+ color: #000
1976+}
1977+
1978+.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading ul.options li a, .swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading ul.options li a {
1979+ color: #555
1980+}
1981+
1982+.swagger-section .swagger-ui-wrap ul#resources li.resource:last-child {
1983+ border-bottom: none
1984+}
1985+
1986+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading {
1987+ border: 1px solid transparent;
1988+ float: none;
1989+ clear: both;
1990+ overflow: hidden;
1991+ display: block
1992+}
1993+
1994+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options {
1995+ overflow: hidden;
1996+ padding: 0;
1997+ display: block;
1998+ clear: none;
1999+ float: right;
2000+ margin: 14px 10px 0 0
2001+}
2002+
2003+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li {
2004+ float: left;
2005+ clear: none;
2006+ margin: 0;
2007+ padding: 2px 10px;
2008+ border-right: 1px solid #ddd;
2009+ color: #666;
2010+ font-size: .9em
2011+}
2012+
2013+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a {
2014+ color: #aaa;
2015+ text-decoration: none
2016+}
2017+
2018+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover {
2019+ color: #000
2020+}
2021+
2022+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a.active, .swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:active, .swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover {
2023+ text-decoration: underline
2024+}
2025+
2026+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.first, .swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:first-child {
2027+ padding-left: 0
2028+}
2029+
2030+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.last, .swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:last-child {
2031+ padding-right: 0;
2032+ border-right: none
2033+}
2034+
2035+.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options.first, .swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options:first-child {
2036+ padding-left: 0
2037+}
2038+
2039+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 {
2040+ display: block;
2041+ clear: none;
2042+ float: left;
2043+ width: auto;
2044+ margin: 0;
2045+ padding: 0;
2046+ line-height: 1.1em;
2047+ color: #000
2048+}
2049+
2050+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path {
2051+ padding-left: 10px
2052+}
2053+
2054+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a:hover {
2055+ text-decoration: underline
2056+}
2057+
2058+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span {
2059+ margin: 0;
2060+ padding: 0
2061+}
2062+
2063+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options {
2064+ overflow: hidden;
2065+ padding: 0;
2066+ display: block;
2067+ clear: none;
2068+ float: right;
2069+ margin: 6px 10px 0 0
2070+}
2071+
2072+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li {
2073+ float: left;
2074+ clear: none;
2075+ margin: 0;
2076+ padding: 2px 10px;
2077+ font-size: .9em
2078+}
2079+
2080+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li a {
2081+ text-decoration: none
2082+}
2083+
2084+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li.access {
2085+ color: #000
2086+}
2087+
2088+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content {
2089+ border-top: none
2090+}
2091+
2092+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading h3 span.http_method a {
2093+ background-color: #c5862b
2094+}
2095+
2096+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li {
2097+ border-right: 1px solid #ddd;
2098+ border-right-color: #f0e0ca;
2099+ color: #c5862b
2100+}
2101+
2102+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li a {
2103+ color: #c5862b
2104+}
2105+
2106+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading h3 span.http_method a {
2107+ text-transform: uppercase;
2108+ background-color: #ffd20f
2109+}
2110+
2111+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li {
2112+ border-right: 1px solid #ddd;
2113+ border-right-color: #ffd20f;
2114+ color: #ffd20f
2115+}
2116+
2117+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li a {
2118+ color: #ffd20f
2119+}
2120+
2121+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading h3 span.http_method a {
2122+ background-color: #0f6ab4
2123+}
2124+
2125+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li {
2126+ border-right: 1px solid #ddd;
2127+ border-right-color: #c3d9ec;
2128+ color: #0f6ab4
2129+}
2130+
2131+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li a {
2132+ color: #0f6ab4
2133+}
2134+
2135+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content {
2136+ border-top: none
2137+}
2138+
2139+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li.last, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li:last-child, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li.last, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li:last-child, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li.last, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li:last-child, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li.last, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li:last-child, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li.last, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li:last-child, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li.last, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li:last-child {
2140+ padding-right: 0;
2141+ border-right: none
2142+}
2143+
2144+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a.active, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:active, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:hover {
2145+ text-decoration: underline
2146+}
2147+
2148+.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li.first, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li:first-child, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations.first, .swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations:first-child {
2149+ padding-left: 0
2150+}
2151+
2152+.swagger-section .swagger-ui-wrap p#colophon {
2153+ margin: 0 15px 40px;
2154+ padding: 10px 0;
2155+ font-size: .8em;
2156+ border-top: 1px solid #ddd;
2157+ font-family: proxima-nova, sans-serif;
2158+ color: #999;
2159+ font-style: italic
2160+}
2161+
2162+.swagger-section .swagger-ui-wrap p#colophon a {
2163+ text-decoration: none;
2164+ color: #547f00
2165+}
2166+
2167+.swagger-section .swagger-ui-wrap h3 {
2168+ color: #000;
2169+ font-size: 1.1em;
2170+ padding: 10px 0
2171+}
2172+
2173+.swagger-section .swagger-ui-wrap .markdown ol, .swagger-section .swagger-ui-wrap .markdown ul {
2174+ font-family: proxima-nova, sans-serif;
2175+ margin: 5px 0 10px;
2176+ padding: 0 0 0 18px;
2177+ list-style-type: disc
2178+}
2179+
2180+.swagger-section .swagger-ui-wrap form.form_box {
2181+ background-color: #ebf3f9;
2182+ border: 1px solid #c3d9ec;
2183+ padding: 10px
2184+}
2185+
2186+.swagger-section .swagger-ui-wrap form.form_box label {
2187+ color: #0f6ab4 !important
2188+}
2189+
2190+.swagger-section .swagger-ui-wrap form.form_box input[type=submit] {
2191+ display: block;
2192+ padding: 10px
2193+}
2194+
2195+.swagger-section .swagger-ui-wrap form.form_box p.weak {
2196+ font-size: .8em
2197+}
2198+
2199+.swagger-section .swagger-ui-wrap form.form_box p {
2200+ font-size: .9em;
2201+ padding: 0 0 15px;
2202+ color: #7e7b6d
2203+}
2204+
2205+.swagger-section .swagger-ui-wrap form.form_box p a {
2206+ color: #646257
2207+}
2208+
2209+.swagger-section .swagger-ui-wrap form.form_box p strong {
2210+ color: #000
2211+}
2212+
2213+.swagger-section .title {
2214+ font-style: bold
2215+}
2216+
2217+.swagger-section .secondary_form {
2218+ display: none
2219+}
2220+
2221+.swagger-section .main_image {
2222+ display: block;
2223+ margin-left: auto;
2224+ margin-right: auto
2225+}
2226+
2227+.swagger-section .oauth_body {
2228+ margin-left: 100px;
2229+ margin-right: 100px
2230+}
2231+
2232+.swagger-section .oauth_submit {
2233+ text-align: center
2234+}
2235+
2236+.swagger-section .api-popup-dialog {
2237+ z-index: 10000;
2238+ position: absolute;
2239+ width: 500px;
2240+ background: #FFF;
2241+ padding: 20px;
2242+ border: 1px solid #ccc;
2243+ border-radius: 5px;
2244+ display: none;
2245+ font-size: 13px;
2246+ color: #777
2247+}
2248+
2249+.swagger-section .api-popup-dialog .api-popup-title {
2250+ font-size: 24px;
2251+ padding: 10px 0
2252+}
2253+
2254+.swagger-section .api-popup-dialog p.error-msg {
2255+ padding-left: 5px;
2256+ padding-bottom: 5px
2257+}
2258+
2259+.swagger-section .api-popup-dialog button.api-popup-authbtn, .swagger-section .api-popup-dialog button.api-popup-cancel {
2260+ height: 30px
2261+}
2262+
2263+.swagger-section .api-popup-scopes {
2264+ padding: 10px 20px
2265+}
2266+
2267+.swagger-section .api-popup-scopes li {
2268+ padding: 5px 0;
2269+ line-height: 20px
2270+}
2271+
2272+.swagger-section .api-popup-scopes .api-scope-desc {
2273+ padding-left: 20px;
2274+ font-style: italic
2275+}
2276+
2277+.swagger-section .api-popup-scopes li input {
2278+ position: relative;
2279+ top: 2px
2280+}
2281+
2282+.swagger-section .api-popup-actions {
2283+ padding-top: 10px
2284+}
2285+
2286+.swagger-section .access, .swagger-section .auth {
2287+ float: right
2288+}
2289+
2290+.swagger-section #api_information_panel {
2291+ position: absolute;
2292+ background: #FFF;
2293+ border: 1px solid #ccc;
2294+ border-radius: 5px;
2295+ display: none;
2296+ font-size: 13px;
2297+ max-width: 300px;
2298+ line-height: 30px;
2299+ color: #000;
2300+ padding: 5px
2301+}
2302+
2303+.swagger-section #api_information_panel p .api-msg-enabled {
2304+ color: green
2305+}
2306+
2307+.swagger-section #api_information_panel p .api-msg-disabled {
2308+ color: red
2309+}
2310+
2311+.swagger-section .api-ic {
2312+ /* height: 18px;
2313+ vertical-align: middle;
2314+ display: inline-block;
2315+ background: url(../images/explorer_icons.png) no-repeat*/
2316+}
2317+
2318+.swagger-section .ic-info {
2319+ background-position: 0 0;
2320+ width: 18px;
2321+ margin-top: -7px;
2322+ margin-left: 4px
2323+}
2324+
2325+.swagger-section .ic-warning {
2326+ background-position: -60px 0;
2327+ width: 18px;
2328+ margin-top: -7px;
2329+ margin-left: 4px
2330+}
2331+
2332+.swagger-section .ic-error {
2333+ background-position: -30px 0;
2334+ width: 18px;
2335+ margin-top: -7px;
2336+ margin-left: 4px
2337+}
2338+
2339+.swagger-section .ic-off {
2340+ /* background-position: -90px 0;
2341+ width: 58px;
2342+ margin-top: -4px;
2343+ */
2344+ cursor: pointer
2345+}
2346+
2347+.swagger-section .ic-on {
2348+ /* background-position: -160px 0;
2349+ width: 58px;
2350+ margin-top: -4px;
2351+ */
2352+ cursor: pointer
2353+}
2354+
2355+.swagger-section #header {
2356+ background-color: #89bf04;
2357+ padding: 14px
2358+}
2359+
2360+.swagger-section #header a#logo {
2361+ font-size: 1.5em;
2362+ font-weight: 700;
2363+ text-decoration: none;
2364+ background: url(../images/logo_small.png) left center no-repeat;
2365+ padding: 20px 0 20px 40px;
2366+ color: #fff
2367+}
2368+
2369+.swagger-section #header form#api_selector {
2370+ display: block;
2371+ clear: none;
2372+ float: right
2373+}
2374+
2375+.swagger-section #header form#api_selector .input {
2376+ display: block;
2377+ clear: none;
2378+ float: left;
2379+ margin: 0 10px 0 0
2380+}
2381+
2382+.swagger-section #header form#api_selector .input input#input_apiKey {
2383+ width: 200px
2384+}
2385+
2386+.swagger-section #header form#api_selector .input input#input_baseUrl {
2387+ width: 400px
2388+}
2389+
2390+.swagger-section #header form#api_selector .input a#explore {
2391+ display: block;
2392+ text-decoration: none;
2393+ font-weight: 700;
2394+ padding: 6px 8px;
2395+ font-size: .9em;
2396+ color: #fff;
2397+ background-color: #547f00;
2398+ -moz-border-radius: 4px;
2399+ -webkit-border-radius: 4px;
2400+ -o-border-radius: 4px;
2401+ -ms-border-radius: 4px;
2402+ -khtml-border-radius: 4px;
2403+ border-radius: 4px
2404+}
2405+
2406+.swagger-section #header form#api_selector .input a#explore:hover {
2407+ background-color: #547f00
2408+}
2409+
2410+.swagger-section #header form#api_selector .input input {
2411+ font-size: .9em;
2412+ padding: 3px;
2413+ margin: 0
2414+}
2415+
2416+.swagger-section #content_message {
2417+ margin: 10px 15px;
2418+ font-style: italic;
2419+ color: #999
2420+}
2421+
2422+.swagger-section #message-bar {
2423+ min-height: 30px;
2424+ text-align: center;
2425+ padding-top: 10px
2426+}
servant-swagger-ui-jensoleg/jensoleg-dist/css/index.cssnew file+17432

This diff is too big to show here.

swagger-dist-2.1.4/css/print.css → servant-swagger-ui-jensoleg/jensoleg-dist/css/print.cssrenamed+19−39

This diff is too big to show here.

swagger-dist-2.1.4/css/reset.css → servant-swagger-ui-jensoleg/jensoleg-dist/css/reset.cssrenamed

The content is the same.

servant-swagger-ui-jensoleg/jensoleg-dist/css/screen.cssnew file+9

This diff is too big to show here.

servant-swagger-ui-jensoleg/jensoleg-dist/css/standalone.cssnew file+294

This diff is too big to show here.

servant-swagger-ui-jensoleg/jensoleg-dist/css/typography.cssnew file+26

This diff is too big to show here.

servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.eotnew file

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.svgnew file+411

This diff is too big to show here.

swagger-dist-2.1.4/fonts/DroidSans-Bold.ttf → servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.ttfrenamed

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.woffnew file

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-700.woff2new file

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.eotnew file

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.svgnew file+403

This diff is too big to show here.

swagger-dist-2.1.4/fonts/DroidSans.ttf → servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.ttfrenamed

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.woffnew file

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/fonts/droid-sans-v6-latin-regular.woff2new file

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/images/Swagger_explorer.pngnew file

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/images/Swagger_explorer_min.pngnew file

Binary file not shown.

swagger-dist-2.1.4/images/explorer_icons.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/explorer_icons.pngrenamed

Binary file not shown.

swagger-dist-2.1.4/images/favicon-16x16.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/favicon-16x16.pngrenamed

Binary file not shown.

swagger-dist-2.1.4/images/favicon-32x32.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/favicon-32x32.pngrenamed

Binary file not shown.

swagger-dist-2.1.4/images/favicon.ico → servant-swagger-ui-jensoleg/jensoleg-dist/images/favicon.icorenamed

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/images/json_editor_integration.pngnew file

Binary file not shown.

swagger-dist-2.1.4/images/logo_small.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/logo_small.pngrenamed

Binary file not shown.

swagger-dist-2.1.4/images/pet_store_api.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/pet_store_api.pngrenamed

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/images/senodio.pngnew file

Binary file not shown.

swagger-dist-2.1.4/images/throbber.gif → servant-swagger-ui-jensoleg/jensoleg-dist/images/throbber.gifrenamed

Binary file not shown.

swagger-dist-2.1.4/images/wordnik_api.png → servant-swagger-ui-jensoleg/jensoleg-dist/images/wordnik_api.pngrenamed

Binary file not shown.

servant-swagger-ui-jensoleg/jensoleg-dist/index.htmlnew file+237

This diff is too big to show here.

swagger-dist-2.1.4/lib/backbone-min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/backbone-min.jsrenamed

The content is the same.

servant-swagger-ui-jensoleg/jensoleg-dist/lib/bootstrap.min.jsnew file+6

This diff is too big to show here.

swagger-dist-2.1.4/lib/handlebars-2.0.0.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/handlebars-2.0.0.jsrenamed

The content is the same.

swagger-dist-2.1.4/lib/highlight.7.3.pack.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/highlight.7.3.pack.jsrenamed

The content is the same.

swagger-dist-2.1.4/lib/jquery-1.8.0.min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/jquery-1.8.0.min.jsrenamed

The content is the same.

swagger-dist-2.1.4/lib/jquery.ba-bbq.min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/jquery.ba-bbq.min.jsrenamed

The content is the same.

swagger-dist-2.1.4/lib/jquery.slideto.min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/jquery.slideto.min.jsrenamed

The content is the same.

swagger-dist-2.1.4/lib/jquery.wiggle.min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/jquery.wiggle.min.jsrenamed

The content is the same.

servant-swagger-ui-jensoleg/jensoleg-dist/lib/jsoneditor.jsnew file+7287

This diff is too big to show here.

swagger-dist-2.1.4/lib/marked.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/marked.jsrenamed

The content is the same.

servant-swagger-ui-jensoleg/jensoleg-dist/lib/swagger-oauth.jsnew file+286

This diff is too big to show here.

swagger-dist-2.1.4/lib/underscore-min.js → servant-swagger-ui-jensoleg/jensoleg-dist/lib/underscore-min.jsrenamed

The content is the same.

servant-swagger-ui-jensoleg/jensoleg-dist/moncierge.jsonnew file+7191

This diff is too big to show here.

swagger-dist-2.1.4/o2c.html → servant-swagger-ui-jensoleg/jensoleg-dist/o2c.htmlrenamed

The content is the same.

servant-swagger-ui-jensoleg/jensoleg-dist/petstore.jsonnew file+1029

This diff is too big to show here.

servant-swagger-ui-jensoleg/jensoleg-dist/swagger-ui.jsnew file+22643

This diff is too big to show here.

servant-swagger-ui-jensoleg/jensoleg-dist/swagger-ui.min.jsnew file+9

This diff is too big to show here.

servant-swagger-ui-jensoleg/jensoleg-dist/swagger.jsonnew file+1055

This diff is too big to show here.

servant-swagger-ui-jensoleg/jensoleg.index.html.tmplnew file+255

This diff is too big to show here.

servant-swagger-ui-jensoleg/servant-swagger-ui-jensoleg.cabalnew file+98

This diff is too big to show here.

servant-swagger-ui-jensoleg/src/Servant/Swagger/UI/JensOleG.hsnew file+85

This diff is too big to show here.

servant-swagger-ui-redoc/CHANGELOG.mdnew file+10

This diff is too big to show here.

servant-swagger-ui-redoc/LICENSEnew file+45

This diff is too big to show here.

servant-swagger-ui-redoc/redoc-dist-1.22.3/redoc.min.jsnew file+8

This diff is too big to show here.

servant-swagger-ui-redoc/redoc.index.html.tmplnew file+23

This diff is too big to show here.

servant-swagger-ui-redoc/servant-swagger-ui-redoc.cabalnew file+47

This diff is too big to show here.

servant-swagger-ui-redoc/src/Servant/Swagger/UI/ReDoc.hsnew file+84

This diff is too big to show here.

servant-swagger-ui.cabaldeleted−126

This diff is too big to show here.

servant-swagger-ui/CHANGELOG.mdnew file+55

This diff is too big to show here.

servant-swagger-ui/LICENSEnew file+45

This diff is too big to show here.

servant-swagger-ui/index.html.tmplnew file+80

This diff is too big to show here.

servant-swagger-ui/servant-swagger-ui.cabalnew file+57

This diff is too big to show here.

servant-swagger-ui/src/Servant/Swagger/UI.hsnew file+90

This diff is too big to show here.

servant-swagger-ui/swagger-ui-dist-3.36.1/favicon-16x16.pngnew file

Binary file not shown.

servant-swagger-ui/swagger-ui-dist-3.36.1/favicon-32x32.pngnew file

Binary file not shown.

servant-swagger-ui/swagger-ui-dist-3.36.1/oauth2-redirect.htmlnew file+74

This diff is too big to show here.

servant-swagger-ui/swagger-ui-dist-3.36.1/swagger-ui-bundle.jsnew file+3

This diff is too big to show here.

servant-swagger-ui/swagger-ui-dist-3.36.1/swagger-ui-standalone-preset.jsnew file+3

This diff is too big to show here.

servant-swagger-ui/swagger-ui-dist-3.36.1/swagger-ui.cssnew file+4

This diff is too big to show here.

servant-swagger-ui/swagger-ui-dist-3.36.1/swagger-ui.jsnew file+3

This diff is too big to show here.

src/Servant/Swagger/UI.hsdeleted−113

This diff is too big to show here.

src/Servant/Swagger/UI/Internal.hsdeleted−57

This diff is too big to show here.

stack-lts-2.yamldeleted−10

This diff is too big to show here.

stack-lts-5.yamldeleted−7

This diff is too big to show here.

stack.yamldeleted−1

This diff is too big to show here.

swagger-dist-2.1.4/css/screen.cssdeleted−1300

This diff is too big to show here.

swagger-dist-2.1.4/css/style.cssdeleted−250

This diff is too big to show here.

swagger-dist-2.1.4/css/typography.cssdeleted−14

This diff is too big to show here.

swagger-dist-2.1.4/images/collapse.gifdeleted

Binary file not shown.

swagger-dist-2.1.4/images/expand.gifdeleted

Binary file not shown.

swagger-dist-2.1.4/index.html.orig/index.htmldeleted−124

This diff is too big to show here.

swagger-dist-2.1.4/lang/en.jsdeleted−55

This diff is too big to show here.

swagger-dist-2.1.4/lang/es.jsdeleted−52

This diff is too big to show here.

swagger-dist-2.1.4/lang/fr.jsdeleted−53

This diff is too big to show here.

swagger-dist-2.1.4/lang/it.jsdeleted−52

This diff is too big to show here.

swagger-dist-2.1.4/lang/ja.jsdeleted−53

This diff is too big to show here.

swagger-dist-2.1.4/lang/pl.jsdeleted−53

This diff is too big to show here.

swagger-dist-2.1.4/lang/pt.jsdeleted−53

This diff is too big to show here.

swagger-dist-2.1.4/lang/ru.jsdeleted−55

This diff is too big to show here.

swagger-dist-2.1.4/lang/tr.jsdeleted−53

This diff is too big to show here.

swagger-dist-2.1.4/lang/translator.jsdeleted−39

This diff is too big to show here.

swagger-dist-2.1.4/lang/zh-cn.jsdeleted−53

This diff is too big to show here.

swagger-dist-2.1.4/lib/jsoneditor.min.jsdeleted−11

This diff is too big to show here.

swagger-dist-2.1.4/lib/swagger-oauth.jsdeleted−338

This diff is too big to show here.

swagger-dist-2.1.4/lib/underscore-min.mapdeleted−1

This diff is too big to show here.

swagger-dist-2.1.4/swagger-ui.js−26330

This diff is too big to show here.

swagger-dist-2.1.4/swagger-ui.min.js−11

This diff is too big to show here.